modbus-ventilation
Opis
Bloczek modbus-ventilation służy do integracji rekuperatora sterowanego przez Modbus RTU po RS485. Bloczek okresowo odczytuje stan urządzenia i udostępnia go przez powiązane urządzenie wirtualne vlogic.
Pierwsza wersja bloczka obsługuje model Systemair SAVE. Mapa wartości dla tego modelu jest wbudowana, dlatego użytkownik nie konfiguruje adresów rejestrów ani kolejności bajtów.
Bloczek nie ma wejść ani klasycznych wyjść logiki. Odczyt i zapis wartości odbywa się przez powiązane urządzenie wirtualne oraz standardowe bloczki input i output.
Pierwszy odczyt z urządzenia następuje po inicjalizacji projektu. Kolejne odczyty są wykonywane cyklicznie co refreshInterval milisekund.
Parametry konfiguracyjne
| Nazwa parametru | Wartość |
|---|---|
Nazwa (name) |
Opcjonalna nazwa bloczka. Jest używana jako domyślna nazwa powiązanego urządzenia wirtualnego. |
Model urządzenia (deviceModel) |
Obowiązkowy model rekuperatora. W tej wersji obsługiwana jest wartość Systemair SAVE. |
Adres urządzenia (deviceAddress) |
Obowiązkowy adres slave Modbus. Dla Systemair SAVE dozwolony zakres to 1-247. Adres musi być unikalny wśród bloczków modbus-ventilation korzystających z tej samej konfiguracji RS485 (server). |
Interwał odświeżania (refreshInterval) |
Obowiązkowy czas pomiędzy kolejnymi cyklami odczytu w milisekundach. Dozwolony zakres: 1-3600000 ms. |
Limit czasu odpowiedzi (responseTimeout) |
Obowiązkowy maksymalny czas oczekiwania na odpowiedź urządzenia w milisekundach. Dozwolony zakres: 10-60000 ms. |
Konfiguracja RS485 (server) |
Obowiązkowy identyfikator bloczka modbus-client, z którego pobierana jest konfiguracja portu RS485. |
Dla modelu Systemair SAVE wskazana konfiguracja RS485 musi spełniać następujące wymagania:
| Ustawienie RS485 | Wymaganie |
|---|---|
| Baudrate | Jedna z wartości: 9600, 19200, 38400, 57600, 115200. |
| Parity | None, Even albo Odd. |
| Stop bits | Dokładnie 1 bit stopu. |
Obsługa wejścia
Bloczek modbus-ventilation nie ma wejść i nie przyjmuje zdarzeń z innych bloczków.
Do odczytu wartości rekuperatora należy używać bloczka input skonfigurowanego na właściwość powiązanego urządzenia wirtualnego. Do zmiany wartości zapisywalnych należy używać bloczka output albo interfejsu użytkownika urządzenia wirtualnego.
Wyjścia bloczka
Bloczek modbus-ventilation nie udostępnia klasycznych wyjść logiki do dalszego łączenia w flow.
Stan rekuperatora jest udostępniany przez powiązane urządzenie wirtualne. Dla modelu Systemair SAVE dostępne są następujące właściwości:
| Właściwość | Kierunek | Opis |
|---|---|---|
relative_humidity |
RO | Wilgotność względna w procentach. |
supply_fan_rpm |
RO | Obroty wentylatora nawiewnego w rpm. |
extract_fan_rpm |
RO | Obroty wentylatora wywiewnego w rpm. |
outdoor_air_temperature |
RO | Temperatura powietrza zewnętrznego w stopniach Celsjusza. |
supply_air_temperature |
RO | Temperatura nawiewu w stopniach Celsjusza. |
supply_air_temperature_setpoint |
RW | Zadana temperatura nawiewu w stopniach Celsjusza. |
operation_mode |
RW | Aktualny tryb pracy rekuperatora. |
manual_airflow_level |
RW | Poziom wentylatorów w trybie ręcznym. |
Właściwości oznaczone jako RO są tylko do odczytu. Właściwości oznaczone jako RW można odczytywać i zapisywać.
Wartości mogą mieć stan nieznany. W interfejsie WWW taka wartość jest pokazywana jako null. W aplikacji mobilnej jest przekazywana jako status unknown. W bloczkach input i output oznacza to, że urządzenie jest podłączone, ale bieżąca wartość danej właściwości nie jest teraz znana.
Jeżeli dana funkcja nie jest wspierana przez model urządzenia, odpowiadająca jej właściwość nie jest udostępniana. Dla Systemair SAVE wspierane są wszystkie właściwości wymienione w tabeli.
Zadana temperatura nawiewu
Dla modelu Systemair SAVE właściwość supply_air_temperature_setpoint ma zakres 12.0-30.0°C i krok 0.1°C.
Wartość spoza zakresu jest ignorowana i nie jest wysyłana do urządzenia. Wartość mieszcząca się w zakresie, ale niezgodna z krokiem, jest zaokrąglana do najbliższego kroku 0.1°C. Wartości dokładnie pośrodku dwóch kroków są zaokrąglane w górę.
Zapis wartości nie zmienia lokalnego stanu optymistycznie. Nowa wartość będzie widoczna dopiero po odczytaniu jej z rekuperatora.
Tryb pracy
Dla modelu Systemair SAVE odczytywane tryby pracy mogą mieć wartości:
automanualcrowdedrefreshfireplaceawayholidaycooker_hoodvacuum_cleanercdi1cdi2cdi3pressure_guard
Zapisywalne są wartości:
automanualcrowdedrefreshfireplaceawayholiday
Pozostałe tryby mogą zostać odczytane z urządzenia, ale nie są ustawiane przez bloczek w tej wersji.
Ręczny poziom wentylacji
Dla modelu Systemair SAVE właściwość manual_airflow_level obsługuje wartości:
lownormalhigh
Wartość off nie jest wspierana w tej wersji. Jeżeli urządzenie zwróci poziom spoza wspieranej listy, właściwość przechodzi w stan nieznany.
Zachowanie przy błędach odczytu
Pojedynczy błąd odczytu Modbus nie odłącza urządzenia wirtualnego i nie usuwa od razu ostatniej poprawnej wartości. Po przekroczeniu limitu ponowień skonfigurowanego w powiązanym bloczku modbus-client nieznana staje się tylko ta wartość, której nie udało się odczytać.
Nieprawidłowa konfiguracja bloczka powoduje błąd konfiguracji i odłączenie powiązanego urządzenia wirtualnego. Chwilowy problem komunikacji z rekuperatorem nie odłącza urządzenia, jeżeli konfiguracja bloczka jest poprawna.
Błędy zwracane przez bloczek
Bloczek może pokazywać następujące komunikaty błędów:
| Kod błędu | Opis błędu |
|---|---|
Invalid name configuration. |
Parametr name ma niepoprawny typ albo format. |
Invalid device model configuration. |
Parametr deviceModel jest nieobecny, pusty, ma niepoprawny typ albo wskazuje model niewspierany przez bieżącą wersję bloczka. |
Invalid device address configuration. |
Parametr deviceAddress jest nieobecny, ma niepoprawny typ albo jest poza dozwolonym zakresem. Dla Systemair SAVE dozwolony zakres to 1-247. |
Invalid refresh interval configuration. |
Parametr refreshInterval jest nieobecny, ma niepoprawny typ albo jest poza zakresem 1-3600000 ms. |
Invalid response timeout configuration. |
Parametr responseTimeout jest nieobecny, ma niepoprawny typ albo jest poza zakresem 10-60000 ms. |
Missing RS485 configuration. |
Parametr server jest nieobecny, pusty albo nie wskazuje istniejącego bloczka modbus-client. |
Duplicated device address configuration. |
Inny bloczek modbus-ventilation używa tej samej pary server i deviceAddress. |
Invalid baudrate configuration. |
Wspólna konfiguracja RS485 nie zawiera poprawnej wartości baudrate. |
Baudrate configuration mismatch. |
Bloczek korzysta z konfiguracji RS485 niespójnej z innymi bloczkami Modbus w projekcie. |
Systemair SAVE requires RS485 baudrate 9600, 19200, 38400, 57600 or 115200. |
Konfiguracja RS485 wskazuje baudrate spoza listy wartości dopuszczonych dla Systemair SAVE. |
Invalid parity configuration. |
Wspólna konfiguracja RS485 nie zawiera poprawnej wartości parity. |
Parity configuration mismatch. |
Bloczek korzysta z konfiguracji parity niespójnej z innymi bloczkami Modbus w projekcie. |
Invalid stop bits configuration. |
Wspólna konfiguracja RS485 nie zawiera poprawnej liczby bitów stopu. |
Stop bits configuration mismatch. |
Bloczek korzysta z konfiguracji stop bits niespójnej z innymi bloczkami Modbus w projekcie. |
Invalid parity or stop bits configuration. |
Konfiguracja RS485 łączy parity inną niż None z dwoma bitami stopu, co jest niedozwolone przez wspólną warstwę RS485 projektu. |
Systemair SAVE requires RS485 stop bits 1. |
Konfiguracja RS485 wskazuje inną liczbę bitów stopu niż 1. |
Przykłady działania
- Aby pokazać wilgotność rekuperatora w logice projektu, skonfiguruj bloczek
inputna właściwośćrelative_humiditypowiązanego urządzeniamodbus-ventilation. - Aby ustawić zadaną temperaturę nawiewu na 21.5°C, wyślij wartość liczbową
21.5do właściwościsupply_air_temperature_setpointprzez bloczekoutputalbo interfejs urządzenia wirtualnego. - Aby przełączyć rekuperator w tryb przewietrzania, ustaw właściwość
operation_modenarefresh. - Jeśli kilka kolejnych odczytów temperatury nawiewu się nie powiedzie, właściwość
supply_air_temperaturestanie się nieznana, ale urządzenie wirtualne pozostanie podłączone, o ile konfiguracja jest poprawna.