6. Wytyczne przy programowaniu komunikacji S-Bus
W celu osiągnięcia wysokiej i
stałej szybkości przesyłania danych w sieci S-Bus, poniższe wskazówki mogą być
przydatne podczas programowania komunikacji S-Bus.
Sieć S-Bus w Fupli
- Fupla obsługuje wszystkie bloczki Transmit i Receive
FBoxes jednakowo. Domyślnie, wszystkie zapytania
obsługiwane są cyklicznie i automatycznie wysyłane do portu
komunikacyjnego.
Oznacza to, że wartość np. flagi alarmu jest wysyłana z taką samą
częstością jak wartość temperatury zewnętrznej, która zwykle nie zmienia
się w przeciągu minuty.
- Komunikacja S-Bus jest zawsze zarządzana z programu użytkownika.
Wydajność może zależeć od czasu cyklu programu.
W przypadku cyklu programu z czasem 300 ms, maksymalnie jeden telegram będzie
wysyłany również z czasem 300 ms.
- Każdy FBox tworzy jeden telegram na cykl komunikacji.
- Telegram może zawierać do 128 bajtów
(tablica 32 rejestrów lub 128 flag).
Transmisja telegramu, który zawiera 128 bajtów nie zabiera znacznie więcej
czasu od przesłania telegramu z 1 bitem danych (czasy zależą od szybkości
transmisji).
Z drugiej strony wysyłanie dwóch telegramów zabiera dwa razy więcej czasu
niż wysłanie jednego.
Powoduje to, że wydajność zależy
bardziej od liczby telegramów niż od liczby transmitowanych bajtów.
Wnioski
- Wysyłaj wiele zasobów w jednym bloczku kiedy
jest to możliwe.
Uzywaj bloczków "Transmit- i odpowiednio Recive quick".
- W celu
zwiększenia wydajności komunikacji zaleca się wysyłanie wolnozmiennych danych w odstępach czasowych.
Jednym z możliwych rozwiązań może być dwa lub
więcej bloczków send lub recive, które wyzwalane są po kolei (zobacz stronę
fupli powyżej). Należy się upewnić, że czas sygnału ‘enable’ każdego z tych
bloczków jest co najmniej równy cyklowi komunikacji.
- Transmituj wejścia i wyjścia
jako flagi
(w tabeli). Lub nawet lepiej – mapuj je w rejestrach.
Tym sposobem możemy oszczędzić na telegramach (tym samym cyklu
komunikacji).
- Używaj bloczka "S-Bus station (-IP)" w celu
uniknięcia bardzo dużego cyklu komunikacji w przypadku uszkodzenia stacji slave!
- Ten bloczek nie wysyła ciągle
telegramów do stacji ‘oznaczonej’ jako nieobecna ale w określonych
odstępach (po krótkim lub długim czasie ponownego połączenia).
- W celu odczytu wolno zmiennych
wartości należy rozważyć użycie
bloczka "Receive Integer Multiple" (tylko PG5
1.4 i wyższe)
W
zależności od projektu mogą oczywiście być wzięte pod uwagę tylko pojedyncze
lub nawet żadne z powyższych zaleceń.
do góry