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ń.