Spis treści
Moduł LB-480 zapewnia obsługę protokołu MODBUS/TCP, zgodnie ze specyfikacją Modbus Organization.
TCP: Używany jest domyślnie przeznaczony dla tego protokołu port 502. W wersjach firmware < 3.5.2 akceptowane jest jednocześnie tylko jedno połączenie TCP, wszystkie kolejne próby połączenia są odrzucane. Począwszy od wersji 3.5.2 akceptowane są dwa połączenia TCP, na wypadek gdyby były problemy z pierwszym połączeniem (np. długi czas zamykania, z powodu niedopilnowania przez master'a prawidłowej procedury zamknięcia połączenia TCP - np. gdy program zostanie zamknięty "na siłę" lub się po prostu błędnie zachowuje. Pomimo obsługi dwóch połączeń, nadal jest wskazane używanie tylko jednego master'a.
UDP: Używany jest port 502, analogicznie jak dla TCP. Ilość master'ów odpytujących moduł o dane przy użyciu protokołu UDP jest nieograniczona i jest to wskazana metoda komunikacji, jeśli jest dostępna w używanym oprogramowaniu. Nie ma tu problemu z niedomkniętymi połączeniami TCP w przypadku problemów komunikacyjnych i z opóźnieniem otwierania nowego połączenia.
Zaimplementowane są następujące funkcje:
1 - Read Coils,
3 - Read Holding Registers,
4 - Read Input Registers,
5 - Write Single Coil,
6 - Write Single Register,
15 - Write Multiple Coils,
16 - Write Multiple Registers,
43/14 - Read Device Identification
Funkcje są dostępne począwszy od wersji firmware 5.1.
Sterowanie wyjściami binarnymi jest możliwe za pomocą następujących funkcji: 1 - Read Coils, 5 - Write Single Coil, 15 - Write Multiple Coils.
Aby była możliwość zdalnego sterowania wyjściem binarnym, musi zostać ustawiony w module odpowiedni tryb pracy tego wyjścia - sterowanie MODBUS/WWW lub suma wszystkich sygnałów.
W przypadku potencjalnej nieciągłości przestrzeni adresowej (np. zamontowany PORT1 i PORT3, brak PORT2) bity dla PORT2 są możliwe do zapisania i odczytania, żeby nie wymuszać dzielenia komend na nieciągłe zakresy adresów. Zapis stanu dla nieistniejących wyjść jest ignorowany, odczyt daje wynik = 0.
Poniższa tabela przedstawia dostępne do zdalnego sterowania wyjścia binarne w module LB-480.
adres | funkcja |
---|---|
0 | OUTPUT 1 (na płytce głównej) |
1 | OUTPUT 2 (na płytce głównej) |
2 | PORT 1 RELAY 1 |
3 | PORT 1 RELAY 2 |
4 | PORT 2 RELAY 1 |
5 | PORT 2 RELAY 2 |
6 | PORT 3 RELAY 1 |
7 | PORT 3 RELAY 2 |
Poniższa tabela przedstawia dostępne rejestry typu INPUT (odczyt funkcją 04 – Read Input Registers).
Podane adresy to adresy protokołowe. Numer rejestru MODBUS typu INPUT oblicza się dodając do adresu protokołowego wartość 30001.
Wszystkie wartości są w kolejności bajtów big-endian (starszy-młodszy), high byte / low byte, high word / low word.
UWAGA: dotyczy wersji firmware począwszy od 4.6, dla LB-480 i LB-490. Starsze wersje firmware w LB-480 udostęniają tylko następujący podzbiór rejestrów: 0-10, 20-27, 28-35, 36-43, 64-191, 192-319. Starsze wersje firmware w LB-490 udostępniają taki sam podzbiór rejestrów jak LB-480, w związku z czym możliwy jest odczyt danych tylko dla wejść 1-8.
Tryby pracy wejść, typy czujników, zmiennych, wartości i jednostki zmiennych są opisane w rozdziale Tryby pracy, typy czujników, wyniki pomiarów i zmienne.
adres | typ | wartość |
---|---|---|
Informacje ogólne o urządzeniu | ||
0 | 16-bit unsigned integer | Typ urządzenia (stała wartość 480). |
1 | 16-bit unsigned integer | Numer seryjny urządzenia. |
2–3 | 32-bit unsigned integer | Wersja bootloader'a: bity 24–31: numer wersji główny, bity 16–23: numer wersji poboczny, bity 8–15: numer rewizji, bity 0–7: numer beta. |
4-5 | 32-bit unsigned integer | Data wydania bootloader'a: bity 16–31: rok, bity 8–15: miesiąc, bity 0–7: dzień. |
6–7 | 32-bit unsigned integer | Wersja firmware: bity 24–31: numer wersji główny, bity 16–23: numer wersji poboczny, bity 8–15: numer rewizji, bity 0–7: numer beta. |
8–9 | 32-bit unsigned integer | Data wydania firmware: bity 16–31: rok, bity 8–15: miesiąc, bity 0–7: dzień. |
10 | 16-bit unsigned integer | Numer wersji protokołu komunikacyjnego. |
11 | 16-bit unsigned integer | Numer najniższej kombatybilnej wersji protokołu komunikacyjnego. |
12 | 16-bit unsigned integer | Ilość wejść na płytce głównej. |
13 | 16-bit unsigned integer | Ilość portów do podłączenia modułów rozszerzeń. |
Informacje o wejściach IN1-IN8 | ||
20–27 | 8× 16-bit unsigned integer |
Tryb pracy wejścia IN1-IN8 |
28–35 | 8× 16-bit unsigned integer | Typ czujnika S300 na wejściu IN1-IN8; 0 gdy wejście pracuje w innym trybie niż S300 albo brak jest dołączonego czujnika na wejściu |
36–43 | 8× 16-bit unsigned integer | Numer seryjny czujnika S300 na wejściu IN1-IN8; 0 gdy wejście pracuje w innym trybie niż S300 albo brak jest dołączonego czujnika na wejściu |
44–51 | 8× 16-bit unsigned integer | Ilość zmiennych zdefiniowanych dla danego wejścia IN1-IN8. |
Informacje o modułach PORT1-PORT3 | ||
52–54 | 3× 16-bit unsigned integer | Tryb pracy (typ) modułu PORT1-PORT3. |
55–57 | 3× 16-bit unsigned integer | Status modułu PORT1-PORT3. |
58–60 | 3× 16-bit unsigned integer | Numer seryjny modułu PORT1-PORT3, jeśli numer jest dostępny. |
61–63 | 3× 16-bit unsigned integer | Ilość zmiennych zdefiniowanych dla danego modułu PORT1-PORT3. |
Wyniki pomiarów z wejść IN1-IN8 | ||
64–191 | 8× 8× 32-bit integer |
Wartość numeryczna w postaci stałoprzecinkowej określająca wynik pomiaru dla wielkości mierzonej na wejściu IN1-IN8; i dla danej kolejnej zmiennej 1-8. Jeżeli wejście jest nieaktywne lub dana zmienna nie istnieje, to zwracana jest wartość specjalna 1000000000. Jeżeli wykryta została sytuacja awaryjna (np. zwarcie czujnika), to zwracana jest wartość specjalna -1000000000. |
192–319 | 8× 8× 32-bit float |
Wartość numeryczna w postaci zmiennoprzecinkowej określająca wynik pomiaru dla wielkości mierzonej na wejściu IN1-IN8 i dla danej kolejnej zmiennej 1-8. Jeżeli wejście jest nieaktywne, dana zmienna nie istnieje lub wykryta została sytuacja awaryjna (np. zwarcie czujnika) to zwracana jest wartość specjalna NaN. |
320–383 | 8× 8× 16-bit unsigned integer |
Ilość cyfr po przecinku w wyniku pomiaru. Ta wartość ma znaczenie dla wyników w postaci stało- i zmiennoprzecinkowej: dla wartości stałoprzecinkowej oznacza w którym miejscu należy postawić przecinek, dla wartości zmiennoprzecinkowej oznacza precyzję i ilość znaczących cyfr po przecinku w wyniku. Jeżeli wejście jest nieaktywne, dana zmienna nie istnieje lub wykryta została sytuacja awaryjna (np. zwarcie czujnika) to zwracana jest wartość 0. |
Wyniki pomiarów z modułów PORT1-PORT3 UWAGA: nie dotyczy wielowejściowych modułów LB-499-AIN, LB-499-GIN. Wyniki z czujników podłączonych do wejść tych modułów są w sekcji danych z wejść modułów wielowejściowych. | ||
384-431 | 3× 8× 32-bit integer |
Wartość numeryczna w postaci stałoprzecinkowej określająca wynik pomiaru dla wielkości mierzonej na porcie PORT1-PORT3; i dla danej kolejnej zmiennej 1-8. Jeżeli wejście jest nieaktywne lub dana zmienna nie istnieje, to zwracana jest wartość specjalna 1000000000. Jeżeli wykryta została sytuacja awaryjna (np. zwarcie czujnika), to zwracana jest wartość specjalna -1000000000. |
432-479 | 3× 8× 32-bit float |
Wartość numeryczna w postaci zmiennoprzecinkowej określająca wynik pomiaru dla wielkości mierzonej na wejściu IN1-IN8 i dla danej kolejnej zmiennej 1-8. Jeżeli wejście jest nieaktywne, dana zmienna nie istnieje lub wykryta została sytuacja awaryjna (np. zwarcie czujnika) to zwracana jest wartość specjalna NaN. |
480-503 | 3× 8× 16-bit unsigned integer |
Ilość cyfr po przecinku w wyniku pomiaru. Ta wartość ma znaczenie dla wyników w postaci stało- i zmiennoprzecinkowej: dla wartości stałoprzecinkowej oznacza w którym miejscu należy postawić przecinek, dla wartości zmiennoprzecinkowej oznacza precyzję i ilość znaczących cyfr po przecinku w wyniku. Jeżeli wejście jest nieaktywne, dana zmienna nie istnieje lub wykryta została sytuacja awaryjna (np. zwarcie czujnika) to zwracana jest wartość 0. |
Informacje o wejściach modułów wielowejściowych (LB-499-AIN, LB-499-GIN) | ||
504-511 536-543 568-575 | 3× 8× 16-bit unsigned integer |
Tryb pracy wejścia. |
512-519 544-551 576-583 | 3× 8× 16-bit unsigned integer |
Typ czujnika S300 na wejściu modułu lub 0 gdy wejście pracuje w innym trybie niż S300 albo brak jest dołączonego czujnika na wejściu. |
520-527 552-559 584-591 | 3× 8× 16-bit unsigned integer |
Numer seryjny czujnika S300 na wejściu lub 0 gdy wejście pracuje w innym trybie niż S300 albo brak jest dołączonego czujnika na wejściu. |
528-535 560-567 592-599 | 3× 8× 16-bit unsigned integer |
Ilość zmiennych zdefiniowanych dla danego wejścia. |
Wyniki pomiarów z wejść modułów wielowejściowych | ||
600-983 | 3× 8× 8× 32-bit integer |
Wartość numeryczna w postaci stałoprzecinkowej określająca wynik pomiaru dla wielkości mierzonej na porcie PORT1-PORT3; i dla danej kolejnej zmiennej 1-8. Jeżeli wejście jest nieaktywne lub dana zmienna nie istnieje, to zwracana jest wartość specjalna 1000000000. Jeżeli wykryta została sytuacja awaryjna (np. zwarcie czujnika), to zwracana jest wartość specjalna -1000000000. |
984-1367 | 3× 8× 8× 32-bit float |
Wartość numeryczna w postaci zmiennoprzecinkowej określająca wynik pomiaru dla wielkości mierzonej na wejściu IN1-IN8 i dla danej kolejnej zmiennej 1-8. Jeżeli wejście jest nieaktywne, dana zmienna nie istnieje lub wykryta została sytuacja awaryjna (np. zwarcie czujnika) to zwracana jest wartość specjalna NaN. |
1368-1559 | 3× 8× 8× 16-bit unsigned integer |
Ilość cyfr po przecinku w wyniku pomiaru. Ta wartość ma znaczenie dla wyników w postaci stało- i zmiennoprzecinkowej: dla wartości stałoprzecinkowej oznacza w którym miejscu należy postawić przecinek, dla wartości zmiennoprzecinkowej oznacza precyzję i ilość znaczących cyfr po przecinku w wyniku. Jeżeli wejście jest nieaktywne, dana zmienna nie istnieje lub wykryta została sytuacja awaryjna (np. zwarcie czujnika) to zwracana jest wartość 0. |