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 RS-485, protokół komunikacji MODBUS RTU, komunikacja w trybie HALF DUPLEX, prędkość transmisji [b/s] 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 01 (0x01) Read Coils (odczyt N x bitów) ZNACZENIE 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 wywiew) ustawiany jest w trybie serwisowym sterownika tylko z poziomu manipulatora RM4. strona 2 z 13
Holding Registers (odczyt kod 0x03, zapis pojedynczego rejestru - kod 0x06, zapis grupy rejestrów - kod 0x10 nr rejestru Wartości dopuszczalne 0 0-4 (wentylatory EC 0-5) ustawiony bieg znaczenie 1 0-120 czas wietrzenia w minutach wpisanie wartości większej niż 0 uruchamia wietrzenie 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 prędkość transmisji [b/s] (domyślnie 19200) 25(s) 0-2 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 dla wentylatorów EC * (s) rejestry 23-25 (serwisowe) są dostępne dopiero po restarcie sterownika z załączonym przełącznikiem dip-switch 2 (patrz rozdział 2). strona 3 z 13
Input Registers (odczyt kod 0x04) nr rejestru Wartości dopuszczalne 0 0-4 (wentylatory EC 0-5) ustawiony bieg 1 0-120 czas wietrzenia w minutach znaczenie 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) 13 0 4 (AC) 0 100 (EC) aktualna wydajność wentylatora nawiewnego 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 - numer alarmu (nieobsługiwane) 23(s) 1-247 adres sterownika S2 24(s) 4800, 9600, 14400, 19200, 28800, 38400, 57600 prędkość transmisji [b/s] 25(s) 0-2 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 dla wentylatorów EC * (s) rejestry 23-25 (serwisowe) są dostępne dopiero po restarcie sterownika z załączonym przełącznikiem dip-switch 2 (patrz rozdział 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 wywiew) ustawiany jest w trybie serwisowym sterownika tylko z poziomu manipulatora 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: 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 Ilość bitów Lo 0x02 CRC Lo 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) 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 Ilość bitów Lo 0x01 CRC Lo 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: 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 CRC Lo 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: 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 Rejestr 13 Lo np. 0x28 CRC Lo 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: 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 Rejestr 15 Lo np. 0x30 Rejestr 16 Hi np. 0xFF Rejestr 16 Lo Rejestr 17 Hi Rejestr 17 Lo CRC Lo np. 0xF7 np. 0xFF np. 0xEC 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): 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 CRC Lo 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: 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 CRC Lo 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: 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 Zapisywana wartość 0x03 CRC Lo 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: 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 Rejestr 0 Hi 0x00 Rejestr 0 Lo Rejestr 1 Hi Rejestr 1 Lo Rejestr 2 Hi Rejestr 2 Lo Rejestr 3 Hi Rejestr 3 Lo CRC Lo 0x05 0x00 0x00 0x00 np. 0x25 0x00 np. 0x25 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
Wyświetlacz serwisowy Terminator transmisji RS- 485 Protokół transmisji RS-485 Gniazdo RJ45 manipulatora RM4 Manipulator RM4 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, Przełącznik serwisowy dipswitch strona 12 z 13
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