MODBUS_MASTER_B (196)
MODBUS_MASTER_B (196)
ID 196
Zastosowanie: |
PLC |
Grupa: I/O
Opis skrótowy:
Funkcja wymieniająca wskazane rejestry za pomocą protokołu modbus z wybranym urządzeniem slave na magistrali RS485.
Wejścia (6 sztuk):
Nr |
Typ |
Impuls |
Oznaczenie |
Uwagi |
1 |
B |
nie |
exe |
Stan wysoki załącza wymianę danych |
2 | I | - | func | Numer funkcji Dostępne funkcje: 01 - ReadCoils 03 - ReadHoldingRegisters 05 - WriteSingleCoil 06 - WriteSingleRegister 15 - WriteMultipleCoils 16 - WriteMultipleRegisters |
3 | I | - | addr | Numer początkowy rejestru modbus |
4 | I | - | num | Numer początkowy rejestru |
5 | I | - | size | Ilość rejestrów do wysłania/odczytania |
6 | I | - | slave | identyfikator urządzenia slave na magistrali |
Wyjścia (3 sztuki):
Nr |
Typ |
Impuls |
Oznaczenie |
Uwagi |
1 |
B |
nie |
busy |
Sygnalizacja trwania wymiany danych |
2 |
B |
tak (0->1) |
error |
Sygnalizacja błędu |
3 |
I |
- |
error_id |
Numer błędu |
Ustawienia: brak
Opis działania:
Funkcja MODBUS_MASTER_B komunikuje się z urządzeniami zewnętrznymi za pomocą protokołu Modbus. W bloku dostępne są 3 funkcje za pomocą, których można wysyłać lub odbierać dane.
Funkcja 01 - ReadCoils odczytuje dowolne markery urządzenia slave. Blok może działać w dwóch konfiguracjach. Pierwsza polega na impulsowaniu bloku. Jeśli na wejściu bloku pojawi się jedynka
blok wysyła zapytanie do urządzenia slave o wybrane markery, po otrzymaniu odpowiedzi rejestry są kopiowane do wybranych markerów sterownika. Jeśli na wejściu bloku pojawi się kolejny impuls blok wykona
się, jeśli poprzednia komunikacja została zakończona lub minął czas na odpowiedź. Druga konfiguracja to podanie na wejście bloku jedynki na stałe. Blok w tej konfiguracji działa podobnie jak w powyższej, jedyna
różnica polega na tym że blok zaczyna kolejny cykl odczytu danych automatycznie w momencie zakończenia poprzedniego.
Funkcja 03 - ReadHoldingRegisters odczytuje dowolne rejestry urządzenia slave. Blok może działać w dwóch konfiguracjach. Pierwsza polega na impulsowaniu bloku. Jeśli na wejściu bloku pojawi się jedynka
blok wysyła zapytanie do urządzenia slave o wybrane rejestry, po otrzymaniu odpowiedzi rejestry są kopiowane do wybranych rejestrów sterownika. Jeśli na wejściu bloku pojawi się kolejny impuls blok wykona
się, jeśli poprzednia komunikacja została zakończona lub minął czas na odpowiedź. Druga konfiguracja to podanie na wejście bloku jedynki na stałe. Blok w tej konfiguracji działa podobnie jak w powyższej, jedyna
różnica polega na tym że blok zaczyna kolejny cykl odczytu danych automatycznie w momencie zakończenia poprzedniego.
Funkcja 05 - WriteSingleCoil umożliwia zapis pojedynczego markera do urządzenia slave, ilość markeró w tym przypadku będzie zawsze równa 1. Blok może działać w dwóch konfiguracjach. Pierwsza
polega na impulsowaniu bloku. Jeśli na wejściu bloku pojawi się jedynka blok wysyła wybrany marker do urządzenia slave i czeka na odpowiedz. Jeśli na wejściu bloku pojawi się kolejny impuls
blok wykona się jeśli poprzednia komunikacja została zakończona lub miną czas na odpowiedź. Druga konfiguracja to podanie na wejście bloku jedynki na stałe. Blok w tej konfiguracji działa
podobnie jak w powyższej, jedyna różnica polega na tym że blok zaczyna kolejny cykl zapisu danych automatycznie w momencie zakończenia poprzedniego.
Funkcja 06 - WriteSingleRegister umożliwia zapis pojedynczego rejestru do urządzenia slave, ilość rejestrów w tym przypadku będzie zawsze równa 1. Blok może działać w dwóch konfiguracjach. Pierwsza
polega na impulsowaniu bloku. Jeśli na wejściu bloku pojawi się jedynka blok wysyła wybrany rejestr do urządzenia slave i czeka na odpowiedz. Jeśli na wejściu bloku pojawi się kolejny impuls
blok wykona się jeśli poprzednia komunikacja została zakończona lub miną czas na odpowiedź. Druga konfiguracja to podanie na wejście bloku jedynki na stałe. Blok w tej konfiguracji działa
podobnie jak w powyższej, jedyna różnica polega na tym że blok zaczyna kolejny cykl zapisu danych automatycznie w momencie zakończenia poprzedniego.
Funkcja 15 - WriteMultipleCoils jest przeznaczona do wysłania dowolnej liczby markerów. Blok może działać w dwóch konfiguracjach. Pierwsza polega na impulsowaniu bloku. Jeśli na wejściu bloku
pojawi się jedynka blok wysyła wybrane markery do urządzenia slave i czeka na odpowiedz. Jeśli na wejściu bloku pojawi się kolejny impuls blok wykona się jeśli poprzednia komunikacja została
zakończona lub miną czas na odpowiedź. Druga konfiguracja to podanie na wejście bloku jedynki na stałe. Blok w tej konfiguracji działa podobnie jak w powyższej, jedyna różnica polega na tym że
blok zaczyna kolejny cykl zapisu danych automatycznie w momencie zakończenia poprzedniego.
Funkcja 16 - WriteMultipleRegisters jest przeznaczona do wysłania dowolnej liczby rejestrów. Blok może działać w dwóch konfiguracjach. Pierwsza polega na impulsowaniu bloku. Jeśli na wejściu bloku
pojawi się jedynka blok wysyła wybrane rejestry do urządzenia slave i czeka na odpowiedz. Jeśli na wejściu bloku pojawi się kolejny impuls blok wykona się jeśli poprzednia komunikacja została
zakończona lub miną czas na odpowiedź. Druga konfiguracja to podanie na wejście bloku jedynki na stałe. Blok w tej konfiguracji działa podobnie jak w powyższej, jedyna różnica polega na tym że
blok zaczyna kolejny cykl zapisu danych automatycznie w momencie zakończenia poprzedniego.
W trakcie trwania komunikacji wyjście busy jest załączone. Wyjścia error i err_id są aktywowane w momencie wystąpienia błędów. Tabela z opisem błędów znajduje się poniżej:
Err_id |
Opis |
0 | Brak błędu |
1 | Brak funkcji do wykonania |
2 | Odebrano nieprawidłowe dane od slave'a |
3 | Wysłano niepoprawne dane do slave'a |
4 | Nieprawidłowy identyfikator urządzenia slave |
5 | Niepoprawny ilość rejestrów |
6 | Niepoprawny numer rejestru modbusa |
7 | - |
8 | Niepoprawny numer rejestru sterownika |
9 | Niepoprawny zakres rejestrów sterownika |
Do nawiązania komunikacji należy użyć jednorazowo funkcji RS485WriteSettings i skonfigurować w ten sposób parametry interfejsu Modbus.
Uwagi:
- Dla sterownika w wersji 4s2a można zaadresować od 1 do 127 urządzeń slave
- W wersji 4s2a sterownika, funkcje przeznaczone do zarządzania wejściami/wyjściami operują jedynie na markerach
- W wersji 4s2a sterownika, dopuszczalny zakres adresów modbus wynosi od 0 do 65535
- W wersji 4s2a sterownika, dopuszczalny zakres adresów rejestrów sterownika wynosi od 1 do 5000
- W wersji 4s2a sterownika, dopuszczalny zakres adresów markerów sterownika wynosi od 1 do 2000
- W wersji 4s2a sterownika, maksymalna ilość rejestrów/markerów sterownika i rejestrów modbus wynosi 800
Używane rejestry R i znaczniki M:
Blok wykorzystuje rejestry zdefiniowane przez użytkownika w ustawieniach bloku.