app-thermo
Opis
Bloczek app-thermo jest programowym termostatem udostępnianym równocześnie do logiki projektu, aplikacji mobilnej oraz interfejsu WWW. Pozwala ustawiać temperaturę zadaną, przekazywać aktualną temperaturę z czujnika oraz wybierać tryb pracy termostatu.
Bloczek może pracować w trybie grzania, chłodzenia albo automatycznym, zależnie od konfiguracji. Po dodaniu go do projektu tworzona jest powiązana reprezentacja urządzenia wirtualnego, dzięki której stan termostatu jest widoczny także poza samą logiką.
Bloczek posiada jedno wejście główne, dwa wejścia oznaczane za pomocą bloczka tag oraz cztery wyjścia.
Parametry konfiguracyjne
| Nazwa parametru | Wartość |
|---|---|
name |
Parametr opcjonalny. Określa nazwę widoczną dla użytkownika w aplikacji mobilnej i WWW. Brak tego parametru nie blokuje pracy bloczka. |
heating_mode |
Parametr obowiązkowy typu logicznego true albo false. Określa, czy bloczek ma obsługiwać tryb grzania. |
cooling_mode |
Parametr obowiązkowy typu logicznego true albo false. Określa, czy bloczek ma obsługiwać tryb chłodzenia. Co najmniej jeden z parametrów heating_mode albo cooling_mode musi mieć wartość true. |
auto_mode |
Parametr obowiązkowy typu logicznego true albo false. Wartość true włącza możliwość używania trybu automatycznego. Tryb automatyczny może być włączony tylko wtedy, gdy jednocześnie obsługiwane są tryby grzania i chłodzenia. |
hysteresis |
Parametr obowiązkowy określający szerokość histerezy temperatury. Dozwolony zakres wynosi od 0°C do 12°C. |
minimum_temperature |
Parametr obowiązkowy określający minimalną dopuszczalną temperaturę zadaną. Dozwolony zakres wynosi od -270°C do 3000°C. Wartość musi być mniejsza od maximum_temperature. |
maximum_temperature |
Parametr obowiązkowy określający maksymalną dopuszczalną temperaturę zadaną. Dozwolony zakres wynosi od -270°C do 3000°C. Wartość musi być większa od minimum_temperature. |
step |
Parametr obowiązkowy określający krok zmiany temperatury zadanej prezentowany w aplikacji mobilnej i WWW. Dozwolony zakres wynosi od 0.1°C do 10°C. |
persistent_state |
Parametr opcjonalny typu logicznego true albo false. Gdy ustawione jest true, bloczek po restarcie projektu próbuje odtworzyć ostatnią zapisaną temperaturę zadaną. Parametr ten dotyczy tylko temperatury zadanej. Stan włączenia termostatu oraz wybrany tryb pracy są zapamiętywane niezależnie od niego. |
Obsługa wejścia
Na wejściu głównym bloczek reaguje na następujące wartości:
- wartość true włącza termostat
- wartość false wyłącza termostat
- komenda heating wysłana z bloczka
commandprzełącza termostat w tryb grzania - komenda cooling wysłana z bloczka
commandprzełącza termostat w tryb chłodzenia - komenda auto wysłana z bloczka
commandprzełącza termostat w tryb automatyczny, o ile taki tryb został dopuszczony w konfiguracji
Inne wartości podane na wejście główne są ignorowane.
Dodatkowo bloczek obsługuje następujące wejścia oznaczane za pomocą bloczka tag:
| Numer i nazwa wejścia | Opis działania |
|---|---|
tag1: Temperatura zadana. |
Wartość numeryczna podana na wejście tag1 ustawia nową temperaturę zadaną termostatu. Wartość spoza zakresu określonego parametrami minimum_temperature i maximum_temperature jest ignorowana. Jeśli tag1 nie jest podłączony, temperatura zadana nadal może być zmieniana z aplikacji mobilnej, WWW albo przez sceny i programatory. |
tag2: Temperatura zmierzona. |
Wartość numeryczna podana na wejście tag2 ustawia aktualną temperaturę odczytaną z czujnika. Wartość spoza zakresu od -270°C do 3000°C jest traktowana jak brak poprawnego pomiaru. W takiej sytuacji bloczek nie przechodzi w grzanie ani chłodzenie i pozostaje w stanie bezczynności, o ile nie został wcześniej wyłączony. |
Do każdego z wejść tag1 i tag2 może być podłączony najwyżej jeden bloczek tag. Większa liczba takich połączeń jest błędem konfiguracji.
Bloczek może działać także bez połączeń wejściowych, ale bez poprawnej temperatury zmierzonej nie będzie automatycznie przechodził w grzanie ani chłodzenie.
Zasada działania termostatu
Bloczek wykorzystuje temperaturę zadaną, temperaturę zmierzoną oraz parametr hysteresis do wyznaczenia bieżącego stanu pracy.
Jeżeli termostat jest wyłączony, nie grzeje i nie chłodzi niezależnie od temperatur.
Jeżeli brakuje poprawnej temperatury zadanej albo poprawnej temperatury zmierzonej, bloczek przechodzi w stan bezczynności idle.
W trybie automatycznym:
- gdy temperatura zmierzona spadnie poniżej
temperatura_zadana - hysteresis, termostat przechodzi w grzanie - gdy temperatura zmierzona wzrośnie powyżej
temperatura_zadana + hysteresis, termostat przechodzi w chłodzenie - gdy termostat już grzeje, to wraca do bezczynności po osiągnięciu temperatury zadanej
- gdy termostat już chłodzi, to wraca do bezczynności po spadku temperatury do wartości zadanej
W trybie tylko grzania albo tylko chłodzenia:
- stan pracy jest zmieniany dopiero po wyjściu temperatury poza pasmo histerezy
- w trybie grzania termostat zaczyna grzać, gdy temperatura spadnie poniżej
temperatura_zadana - hysteresis - w trybie chłodzenia termostat zaczyna chłodzić, gdy temperatura wzrośnie powyżej
temperatura_zadana + hysteresis - po rozpoczęciu pracy termostat utrzymuje bieżący stan aż do przekroczenia przeciwnej granicy pasma histerezy
W praktyce oznacza to, że w trybie tylko grzania wyłączenie grzania następuje dopiero po wzroście temperatury powyżej temperatura_zadana + hysteresis, a w trybie tylko chłodzenia wyłączenie chłodzenia następuje dopiero po spadku temperatury poniżej temperatura_zadana - hysteresis.
Wyjścia bloczka
| Numer i nazwa wyjścia | Opis wyjścia |
|---|---|
| 1. Temperatura zadana. | Zwraca aktualną temperaturę zadaną termostatu jako wartość temperatury. Wyjście jest emitowane po ustawieniu poprawnej temperatury zadanej. |
| 2. Stan grzania. | Zwraca wartość true, gdy termostat aktualnie grzeje. W pozostałych stanach zwraca false. |
| 3. Stan chłodzenia. | Zwraca wartość true, gdy termostat aktualnie chłodzi. W pozostałych stanach zwraca false. |
| 4. Stan wyłączenia termostatu. | Zwraca wartość true, gdy termostat jest wyłączony. Stan bezczynności idle nie ustawia tego wyjścia na true. |
Jeżeli termostat jest w stanie bezczynności idle, to wyjścia 2, 3 i 4 zwracają jednocześnie wartość false.
Błędy zwracane przez bloczek
Bloczek może zwracać następujące błędy:
| Kod błędu | Opis błędu |
|---|---|
Invalid heating mode configuration. |
Parametr heating_mode nie został podany albo ma niepoprawną wartość. |
Invalid cooling mode configuration. |
Parametr cooling_mode nie został podany albo ma niepoprawną wartość. |
Both heating and cooling modes are not supported. |
Jednocześnie wyłączono obsługę grzania i chłodzenia. Bloczek musi obsługiwać przynajmniej jeden z tych trybów. |
Invalid auto mode configuration. |
Parametr auto_mode nie został podany albo ma niepoprawną wartość. |
Auto mode is supported but heating mode is not supported. |
Włączono auto_mode, ale wyłączono heating_mode. |
Auto mode is supported but cooling mode is not supported. |
Włączono auto_mode, ale wyłączono cooling_mode. |
Invalid hysteresis temperature. |
Parametr hysteresis jest niepoprawny albo jest spoza dozwolonego zakresu. |
Invalid minimum temperature. |
Parametr minimum_temperature jest niepoprawny albo jest spoza dozwolonego zakresu. |
Invalid maximum temperature. |
Parametr maximum_temperature jest niepoprawny albo jest spoza dozwolonego zakresu. |
Minimum temperature greater/equal than maximum temperature. |
Wartość minimum_temperature jest większa od maximum_temperature albo jest z nią równa. |
Invalid step temperature. |
Parametr step jest niepoprawny albo jest spoza dozwolonego zakresu. |
Too many tag1 connections. |
Do wejścia tag1 podłączono więcej niż jeden bloczek tag. |
Too many tag2 connections. |
Do wejścia tag2 podłączono więcej niż jeden bloczek tag. |
Przykłady działania
- Jeśli bloczek pracuje tylko w trybie grzania,
temperatura_zadana = 22.0°C,hysteresis = 0.5°C, a temperatura zmierzona spadnie do21.4°C, to wyjście 2 przejdzie na true. - W tej samej konfiguracji grzanie nie wyłączy się przy
22.0°C, tylko dopiero po wzroście temperatury powyżej22.5°C. - Jeśli bloczek pracuje w trybie automatycznym,
temperatura_zadana = 22.0°C,hysteresis = 0.5°C, a temperatura zmierzona spadnie do21.4°C, termostat zacznie grzać. Po wzroście temperatury do22.0°Cprzejdzie w bezczynnośćidle. - Jeśli bloczek pracuje w trybie automatycznym,
temperatura_zadana = 22.0°C,hysteresis = 0.5°C, a temperatura zmierzona wzrośnie do22.6°C, termostat zacznie chłodzić. - Jeśli na wejście główne zostanie podana wartość false, to wyjście 4 przejdzie na true, a wyjścia 2 i 3 przejdą na false niezależnie od temperatur.