Skip to content

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:

  • auto
  • manual
  • crowded
  • refresh
  • fireplace
  • away
  • holiday
  • cooker_hood
  • vacuum_cleaner
  • cdi1
  • cdi2
  • cdi3
  • pressure_guard

Zapisywalne są wartości:

  • auto
  • manual
  • crowded
  • refresh
  • fireplace
  • away
  • holiday

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:

  • low
  • normal
  • high

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 input na właściwość relative_humidity powiązanego urządzenia modbus-ventilation.
  • Aby ustawić zadaną temperaturę nawiewu na 21.5°C, wyślij wartość liczbową 21.5 do właściwości supply_air_temperature_setpoint przez bloczek output albo interfejs urządzenia wirtualnego.
  • Aby przełączyć rekuperator w tryb przewietrzania, ustaw właściwość operation_mode na refresh.
  • Jeśli kilka kolejnych odczytów temperatury nawiewu się nie powiedzie, właściwość supply_air_temperature stanie się nieznana, ale urządzenie wirtualne pozostanie podłączone, o ile konfiguracja jest poprawna.