Opis protokołu Modbus RTU sterownika S2 - Pro-Vent
Transkrypt
Opis protokołu Modbus RTU sterownika S2 - Pro-Vent
Sterownik procesorowy S-2 Komunikacja RS485 – MODBUS Sterownik centrali wentylacyjnej PRO-VENT S2 umożliwia komunikację z innymi urządzeniami poprzez interfejs szeregowy RS485. Zapis i odczyt danych realizowany jest za pomocą funkcji protokołu MODBUS RTU. Spis treści Parametry interfejsu szeregowego: .................................................................................................... 1 1. Protokół MODBUS.......................................................................................................................... 2 1.1 Zaimplementowane funkcje ........................................................................................................... 2 1.2 Mapy rejestrów oraz zmiennych bitowych .................................................................................... 2 1.3 Przykłady wykorzystania zaimplementowanych funkcji............................................................... 5 1.3.1. Funkcja „Read Coils” kod 0x01 ............................................................................................ 5 1.3.2. Funkcja „Read Discrete Inputs” kod 0x02 ............................................................................ 6 1.3.3. Funkcja „Read Holding Registers” kod 0x03 ....................................................................... 6 1.3.4. Funkcja „Read Input Registers” kod 0x04............................................................................. 7 1.3.5. Funkcja „Write Single Coil” kod 0x05 .................................................................................. 8 1.3.6. Funkcja „Write Single Register” kod 0x06............................................................................ 8 1.3.7. Funkcja „Write Multiple Coils” kod 0x0F ............................................................................. 9 1.3.8. Funkcja „Write Multiple Registers” kod 0x10.................................................................... 10 2. Tryb serwisowy ...............................................................................................................................11 Parametry interfejsu szeregowego: warstwa fizyczna protokół komunikacji komunikacja w trybie prędkość transmisji [b/s] – – – – RS-485, MODBUS RTU, HALF DUPLEX , 19200 (domyślna), 4800, 9600, 14400, 19200, 28800, 38400, 57600, format przesyłanych danych 8 bitów danych + 1 bit stopu (2 bity stopu w przypadku braku bitu parzystości) + 1 bit parzystości (even lub odd). domyślnie 8 bitów danych + 1 bit stopu + bit parzystości (even) adres sterownika – 1 ÷ 247 (1 - adres domyślny). Uwaga !!! W przypadku nieznania aktualnych ustawień sterownika S2 (adres sterownika, prędkość transmisji, format przesyłanych danych) istnieje możliwość odczytania oraz ustawienia parametrów interfejsu w trybie serwisowym (patrz rozdział 2). strona 1 z 13 1. Protokół MODBUS. 1.1 Zaimplementowane funkcje W sterowniku zaimplementowano następujące funkcje standardu MODBUS: KOD ZNACZENIE 01 (0x01) Read Coils (odczyt N x bitów) 02 (0x02) Read Discrete Inputs (odczyt N x bitów) 03 (0x03) Read Holding Registers (odczyt N x 16-bitowych rejestrów) 04 (0x04) Read Input Registers (odczyt N x 16-bitowych rejestrów) 05 (0x05) Write Single Coil (zapis pojedyńczego bitu) 06 (0x06) Write Single Register (zapis pojedynczego 16-bitowego rejestru) 15 (0x0f) Write Multiple Coils (zapis N x bitów) 16 (0x10) Write Multiple Registers (zapis N x 16-bitowych rejestrów) 1.2 Mapy rejestrów oraz zmiennych bitowych Uwaga! W przypadku wentylatorów AC rejestry 2 ÷ 11 są niedostępne (Holding Registers oraz Input Registers). Rejestry te dostępne są tylko w przypadku wentylatorów EC (elektronicznie komutowanych), bowiem tylko w tych wentylatorach możliwa jest płynna zmiana wydajności. Wartości rejestrów o adresie 0 oraz 2 ÷ 11 zapisywane są do pamięci EEPROM dopiero po 10 minutach od ostatniej zmiany. Dopiero zapis umożliwia podjęcie przez centralę pracy według tych ustawień po zaniku napięcia zasilania. Coils (odczyt – kod 0x01, zapis pojedynczego bitu – kod 0x05, zapis grupy bitów – kod 0x0f) nr bitu znaczenie 0 stan bypass- u, 0 – bypass wyłączony, 1 – bypass załączony 1 0 – wentylacja pełna, 1 – nawiew bądź wywiew wyłączony z poziomu manipulatora bądź z poziomu tego bitu *. 2 0 – wietrzenie wyłączone, 1 – wietrzenie załączone (praca na 4 biegu) * wyłączany wentylator (nawiew lub wy wiew) ustawiany jest w trybie serwisowym sterownika tylko z pozio mu man ipulatora RM4. strona 2 z 13 Holding Registers (odczyt – kod 0x03, zapis pojedynczego rejestru - kod 0x06, zapis grupy rejestrów - kod 0x10 nr rejestru 0 Wartości dopuszczalne 0-4 znaczenie ustawiony bieg (wentylatory EC 0 - 5) czas wietrzenia w minutach – wpisanie wartości większej niż 0 uruchamia wietrzenie 1 0 - 120 2 10 - 100 wydajność wentylatora nawiewnego jeżeli ustawiony bieg ma wartość 5 3 10 - 100 wydajność wentylatora wywiewnego jeżeli ustawiony bieg ma wartość 5 4 10 - 100 wydajność wentylatora nawiewnego na 1 biegu 5 10 - 100 wydajność wentylatora nawiewnego na 2 biegu 6 10 - 100 wydajność wentylatora nawiewnego na 3 biegu 7 10 - 100 wydajność wentylatora nawiewnego na 4 biegu 8 10 - 100 wydajność wentylatora wywiewnego na 1 biegu 9 10 - 100 wydajność wentylatora wywiewnego na 2 biegu 10 10 - 100 wydajność wentylatora wywiewnego na 3 biegu 11 10 - 100 wydajność wentylatora wywiewnego na 4 biegu 23(s) 1 - 247 adres sterownika S2 (domyślnie 1) 24(s) 4800, 9600, 14400, 19200, 28800, 38400, 57600 25(s) 0-2 prędkość transmisji [b/s] (domyślnie 19200) 0 - brak bitu parzystości + 2 bity stopu 1 - bit stopu + bit parzystości (odd – nieparzystość) 2 - bit stopu + bit parzystości (even – parzystość) (domyślnie 2) * dostępne wyłącznie d la wentylatorów EC * (s) rejestry 23-25 (serwisowe) są dostępne dopiero po restarcie sterownika z załączonym przełącznikiem d ip-switch 2 (patrz rozd ział 2). strona 3 z 13 Input Registers (odczyt – kod 0x04) nr rejestru 0 Wartości dopuszczalne 0-4 znaczenie ustawiony bieg (wentylatory EC 0 - 5) 1 0 - 120 czas wietrzenia w minutach 2 10 - 100 wydajność wentylatora nawiewnego jeżeli ustawiony bieg ma wartość 5 3 10 - 100 wydajność wentylatora wywiewnego jeżeli ustawiony bieg ma wartość 5 4 10 - 100 wydajność wentylatora nawiewnego na 1 biegu 5 10 - 100 wydajność wentylatora nawiewnego na 2 biegu 6 10 - 100 wydajność wentylatora nawiewnego na 3 biegu 7 10 - 100 wydajność wentylatora nawiewnego na 4 biegu 8 10 - 100 wydajność wentylatora wywiewnego na 1 biegu 9 10 - 100 wydajność wentylatora wywiewnego na 2 biegu 10 10 - 100 wydajność wentylatora wywiewnego na 3 biegu 11 10 - 100 wydajność wentylatora wywiewnego na 4 biegu 12 0 – 4 (AC) 0 – 100 (EC) aktualna wydajność wentylatora nawiewnego 13 0 – 4 (AC) 0 – 100 (EC) aktualna wydajność wentylatora wywiewnego 14 - wartość temperatury z czujnika podłączonego pod wejście A0 15 - wartość temperatury z czujnika podłączonego pod wejście A2 16 - wartość temperatury z czujnika podłączonego pod wejście A4 17 - wartość temperatury z czujnika podłączonego pod wejście A5 18 0-4 etap rozmrażania 19 0 - 60 licznik rozmrażania (liczy w minutach) 20 0 - 60 licznik enable (liczy w minutach) 21 0-7 numer kanału który wywołał zadziałanie awaryjnego stopu 22 - 23(s) 1 - 247 24(s) 4800, 9600, 14400, 19200, 28800, 38400, 57600 25(s) 0-2 numer alarmu (nieobsługiwane) adres sterownika S2 prędkość transmisji [b/s] 0 - brak bitu parzystości + 2 bity stopu 1 - bit parzystości(odd – nieparzystość) + 1 bit stopu 2 - bit parzystości(even – parzystość) + 1 bit stopu * dostępne wyłącznie d la wentylatorów EC * (s) rejestry 23-25 (serwisowe) są dostępne dopiero po restarcie sterownika z załączonym przełącznikiem d ip-switch 2 (patrz rozd ział 2). strona 4 z 13 Discretes Inputs(odczyt – kod 0x02) nr bitu znaczenie 0 Stan bypass-u, 0 – bypass wyłączony, 1 – bypass załączony 1 0 – wentylacja pełna, 1 – nawiew bądź wywiew wyłączony z poziomu manipulatora bądź z poziomu tego bitu *. 2 0 – wietrzenie wyłączone, 1 – wietrzenie załączone (praca na 4 biegu) 3 Stan sygnału enable, 0 – sygnał enable wyłączony, 1 – sygnał enable załączony * wyłączany wentylator (nawiew lub wy wiew) ustawiany jest w trybie serwisowym sterownika tylko z pozio mu man ipulatora RM4. 1.3 Przykłady wykorzystania zaimplementowanych funkcji 1.3.1. Funkcja „Read Coils” kod 0x01 Funkcja służy do odczytu parametrów jedno-bitowych z centrali. Odczytać można kilka bitów lecz adresy bitów muszą po sobie następować. Przykład zastosowania funkcji „Read Coils” do odczytu stanu bypass-u oraz stanu wentylatora nawiewnego: Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x01 Funkcja 0x01 Adres pierwszego bitu Hi 0x00 Ilość bajtów 0x01 Adres pierwszego bitu Lo 0x00 Stan bitów w bajcie 0x03 Ilość bitów Hi 0x00 CRC Lo wg obliczeń Ilość bitów Lo 0x02 CRC Hi wg obliczeń CRC Lo wg obliczeń CRC Hi wg obliczeń Na podstawie odebranych danych można określić stan bypass-u oraz stan wentylatora nawiewnego. Stan wysoki bitu o adresie 0 oznacza bypass załączony. Stan wysoki bitu o adresie 1 oznacza wyłączony wentylator nawiewny. strona 5 z 13 1.3.2. Funkcja „Read Discrete Inputs” kod 0x02 Funkcja służy do odczytu stanu zmiennych bitowych. Przykład zastosowania funkcji „Read Dicsrete Inputs” do odczytu stanu sygnały enable (sygnał pracy centrali) Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x02 Funkcja 0x02 Adres pierwszego bitu Hi 0x00 Ilość bajtów 0x01 Adres pierwszego bitu Lo 0x03 Odczytana wartość 0x01 Ilość bitów Hi 0x00 CRC Lo wg obliczeń Ilość bitów Lo 0x01 CRC Hi wg obliczeń CRC Lo wg obliczeń CRC Hi wg obliczeń Powyższy przykład przedstawia odczyt stanu sygnał enable. Odczytana wartość wynosi 0x01 = 0b00000001 czyli pierwszy bit począwszy od adresu 0x03 ma wartość 1 – sygnał enable załączony. 1.3.3. Funkcja „Read Holding Registers” kod 0x03 Funkcja służy do odczytu poszczególnych rejestrów z urządzenia. Przesyłać można po kilka rejestrów (adresy rejestrów muszą następować po sobie). Przykład zastosowania funkcji „Read Holding Registers” do odczytu ustawionej wydajności centrali: Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x03 Funkcja 0x03 Adres pierwszego rejestru Hi 0x00 Ilość bajtów 0x02 Adres pierwszego rejestru Lo 0x00 Rejestr 0 Hi 0x00 Ilość rejestrów Hi 0x00 Rejestr 0 Lo np. 0x03 Ilość rejestrów Lo 0x01 CRC Lo wg obliczeń CRC Lo wg obliczeń CRC Hi wg obliczeń CRC Hi wg obliczeń Na podstawie odebranych danych można określić ustawiony bieg centrali. Rejestr 0 = 0x0003 oznacza ustawiony bieg 3. strona 6 z 13 1.3.4. Funkcja „Read Input Registers” kod 0x04 Funkcja służy do odczytu poszczególnych rejestrów z urządzenia. Przesyłać można po kilka rejestrów (adresy rejestrów muszą następować po sobie). Przykład zastosowania funkcji „Read Input Registers” do odczytu aktualnej wydajności centrali: Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x04 Funkcja 0x04 Adres pierwszego rejestru Hi 0x00 Ilość bajtów 0x04 Adres pierwszego rejestru Lo 0x0C Rejestr 12 Hi 0x00 Ilość rejestrów Hi 0x00 Rejestr 12 Lo np. 0x23 Ilość rejestrów Lo 0x02 Rejestr 13 Hi 0x00 CRC Lo wg obliczeń Rejestr 13 Lo np. 0x28 CRC Hi wg obliczeń CRC Lo wg obliczeń CRC Hi wg obliczeń Na podstawie odebranych danych można określić aktualną wydajność centrali. Rejestr 12 = 0x0023 – aktualna wydajność wentylatora nawiewnego 35%. Rejestr 13 = 0x0028 – aktualna wydajność wentylatora wywiewnego 40%. Przykład zastosowania funkcji „Read Input Registers” do odczytu wartości z czujników temperatury: Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x04 Funkcja 0x04 Adres pierwszego rejestru Hi 0x00 Ilość bajtów 0x08 Adres pierwszego rejestru Lo 0x0E Rejestr 14 Hi np. 0x00 Ilość rejestrów Hi 0x00 Rejestr 14 Lo np. 0x24 Ilość rejestrów Lo 0x04 Rejestr 15 Hi np. 0x00 CRC Lo wg obliczeń Rejestr 15 Lo np. 0x30 CRC Hi wg obliczeń Rejestr 16 Hi np. 0xFF Rejestr 16 Lo np. 0xF7 Rejestr 17 Hi np. 0xFF Rejestr 17 Lo np. 0xEC CRC Lo wg obliczeń CRC Hi wg obliczeń strona 7 z 13 Wartość temperatury reprezentowana jest 16-bitową zmienną ze znakiem(typ short). Aby otrzymać temperaturę w stopniach Celsjusza wartość należy podzielić przez 2 np.: - odczytana wartość z rejestru 14 – 0x0024 (36), 36 / 2 = 18°C, - odczytana wartość z rejestru 16 – 0xFFF7 (-8), -8 / 2 = -4°C. 1.3.5. Funkcja „Write Single Coil” kod 0x05 Funkcja służy do zapisu pojedynczego bitu. Przykład zastosowania funkcji „Write Single Coil” do uruchomienia funkcji wietrzenia (praca centrali na czwartym biegu przez 15 minut): Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x05 Funkcja 0x05 Adres bitu Hi 0x00 Adres pierwszego bitu Hi 0x00 Adres bitu Lo 0x02 Adres pierwszego bitu Lo 0x02 Stan bitu 0xFF Stan bitu 0xFF 0x00 0x00 CRC Lo wg obliczeń CRC Lo wg obliczeń CRC Hi wg obliczeń CRC Hi wg obliczeń Powyższy przykład przedstawia załączenie funkcji wietrzenia (praca centrali na czwartym biegu przez 15 minut). 1.3.6. Funkcja „Write Single Register” kod 0x06 Funkcja służy do zapisu pojedynczego rejestru w urządzeniu. Przykład zastosowania funkcji „Write Single Register” do zapisu ustawionej wydajności centrali: Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x06 Funkcja 0x06 Adres rejestru Hi 0x00 Adres rejestru Hi 0x00 Adres rejestru Lo 0x00 Adres rejestru Lo 0x00 Rejestr Hi 0x00 Rejestr Hi 0x00 Rejestr Lo np. 0x02 Rejestr Lo np. 0x02 CRC Lo wg obliczeń CRC Lo wg obliczeń CRC Hi wg obliczeń CRC Hi wg obliczeń Powyższy przykład przedstawia ustawienie wydajności centrali na 2 bieg. strona 8 z 13 1.3.7. Funkcja „Write Multiple Coils” kod 0x0F Funkcja służy do zapisu pojedynczego bitu. Przykład zastosowania funkcji „Write Multiple Coils” do załączenia przepustnicy bypass-u oraz wyłączenia wentylatora nawiewnego: Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x0F Funkcja 0x0F Adres pierwszego bitu Hi 0x00 Adres pierwszego bitu Hi 0x00 Adres pierwszego bitu Lo 0x00 Adres pierwszego bitu Lo 0x00 Ilość bitów Hi 0x00 Ilość bitów Hi 0x00 Ilość bitów Lo 0x02 Ilość bitów Lo 0x02 Ilość bajtów 0x01 CRC Lo wg obliczeń Zapisywana wartość 0x03 CRC Hi wg obliczeń CRC Lo wg obliczeń CRC Hi wg obliczeń Powyższy przykład przedstawia załączenie funkcji wietrzenia (praca centrali na czwartym biegu przez 15 minut). strona 9 z 13 1.3.8. Funkcja „Write Multiple Registers” kod 0x10 Funkcja służy do zapisu pojedynczego rejestru w urządzeniu. Przykład zastosowania funkcji „Write Multiple Registers” do zapisu bezpośredniej wydajności wentylacji dla wentylatorów EC: Odpowiedź Zapytanie Adres urządzenia 0x0A Adres urządzenia 0x0A Funkcja 0x10 Funkcja 0x10 Adres pierwszego rejestru Hi 0x00 Adres pierwszego rejestru Hi 0x00 Adres pierwszego rejestru Lo 0x00 Adres pierwszego rejestru Lo 0x00 Ilość rejestrów Hi 0x00 Ilość rejestrów Hi 0x00 Ilość rejestrów Lo 0x04 Ilość rejestrów Lo 0x04 Ilość bajtów 0x08 CRC Lo wg obliczeń Rejestr 0 Hi 0x00 CRC Hi wg obliczeń Rejestr 0 Lo 0x05 Rejestr 1 Hi 0x00 Rejestr 1 Lo 0x00 Rejestr 2 Hi 0x00 Rejestr 2 Lo np. 0x25 Rejestr 3 Hi 0x00 Rejestr 3 Lo np. 0x25 CRC Lo wg obliczeń CRC Hi wg obliczeń Powyższy przykład przedstawia ustawienie 5 biegu (rejestr o adresie 0) - wydajność wentylatorów EC ustawiana według wypełnienia wprowadzonego do rejestrów o adresie 0x02 oraz 0x03. strona 10 z 13 2. Tryb serwisowy W sterowniku S2 dostępnych jest kilka trybów nastaw serwisowych, przy czym niektóre z nich dostępne są wyłącznie z poziomu manipulatora RM4. Tryb1 (tylko z poziomu manipulatora RM4) – umożliwia zmianę konfiguracji zastosowanych wentylatorów (AC, EC), parametrów układu rozmrożeniowego oraz wyboru wyłączanego wentylatora (nawiew/wywiew). Tryb2 – umożliwia zmianę wydajności wentylatorów EC na poszczególnych biegach centrali. Tryb ten dostępny jest zarówno z poziomu manipulatora RM4 jak i protokołu transmisji rejestry 2 ÷ 11 (Holding Registers oraz Input Registers). W niniejszej dokumentacji opisano szczegółowo jedynie tryb umożliwiający zmianę parametrów transmisji protokołu komunikacji RS-485. Tryb3 – w przypadku kiedy nie znamy aktualnych ustawień sterownika centrali (adres sterownika, prędkość transmisji, format przesyłanych danych) istnieje możliwość odczytania ustawień w trybie serwisowym z wymuszonymi parametrami transmisji. W trybie tym możliwe jest również ustawienie parametrów interfejsu RS-485. W celu wejścia w tryb serwisowy z wymuszonymi parametrami transmisji należy: odłączyć zasilanie 230V AC, ustawić na module sterownika S2 przełącznik dip-switch 2 w pozycji ON, podłączyć zasilanie z wciśniętym klawiszem MAX na manipulatorze RM4. Wejście do tego trybu sygnalizowane jest miganiem na manipulatorze dwóch diod zielonych oraz jednej czerwonej. Sterownik centrali uruchomi się z następującymi parametrami interfejsu transmisji: prędkość transmisji – 19200 [b/s], adres sterownika – 247, format danych – 8 bitów danych + bit stopu + bit parzystości (even). Parametry interfejsu szeregowego znajdują się w rejestrach 23 ÷ 25 „Holding Registers” zgodnie z opisem powyżej. Tryb serwisowy służy wyłącznie do zmiany bądź odczytu parametrów interfejsu szeregowego. Po zakończeniu podglądu lub edycji parametrów należy ustawić przełącznik dip-switch 2 w pozycji OFF i ponownie uruchomić centralę poprzez odłączenie i podłączenie zasilania 230V AC. Po restarcie sterownik rozpocznie pracę zgodnie z ustawionymi parametrami transmisji. Widok płytki modułu sterownika S2 z zaznaczonym przełącznikiem serwisowym dip-switch przedstawiono na zdjęciu poniżej. W czasie normalnej pracy sterownika przełącznik dip-switch 2 musi znajdować się w pozycji OFF. W przeciwnym razie sterownik może nie działać prawidłowo sygnalizując awarię na manipulatorze RM4. strona 11 z 13 Terminator transmisji RS485 Protokół transmisji RS-485 Manipulator RM 4 Gn iazdo RJ45 man ipulatora RM4 Wyświetlacz serwisowy Kolejność pinów złącza IDC10 układu transmisji RS-485: 1 – zasilanie GND, 2 – zasilanie +12V DC, 3 – zasilanie GND, 4 – zasilanie +12V DC, 5 – zasilanie GND, 6 – zasilanie +12V DC, 7 – Komunikacja RS485 - A, 8 – Komunikacja RS485 - B, strona 12 z 13 Przełączn ik serwisowy dipswitch Uwaga! kolejność pinów złącza IDC jest inna niż kolejność pinów złącza RJ45 zamontowanego na zewnętrz centrali MISTRAL. Kolejność pinów złącza RJ45: 1 – Zasilanie +12V DC 2 – Zasilanie GND 3 – Zasilanie +12V DC 4 – Zasilanie GND 5 – Zasilanie +12V DC 6 – Zasilanie GND 7 – Komunikacja RS485 - B 8 – Komunikacja RS485 - A W celu ułatwienia serwisu urządzenia zaleca się zacisnąć wtyk modularny zgodnie ze standardem EIA/TIA 568B, co przedstawiono na rysunku poniżej. Podana numeracja liczona jest od lewej w gnieździe, na które patrzymy od strony frontowej tj. wtyku, gdzie klips wtyku skierowany jest w dół. STANDARD EIA/TIA 568B: 1 - Biało-pomarańczowy 2 - Pomarańczowy 3 - Biało-zielony 4 - Niebieski 5 - Biało-niebieski 6 - Zielony 7 - Biało-brązowy 8 - Brązowy 12345678 strona 13 z 13