<?xml version="1.0" encoding="UTF-8"?>
<!--Copyright (C) 2004-2015 InsBud www.insbud.net-->

<Device xmlns="http://www.insbud.net/common/devcfg" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.insbud.net/common/devcfg devcfg.xsd"
        Version="1.2"
        HardwareId="3" 
        FirmwareId="11" 
        FirmwareVersion="5">
  <HoldingRegisters SetMode="Multiple">
  
  
    <!--
    
    symbole [RWS] oznaczają: 
    R - do odczytu; 
    W - do zapisu; 
    S - do zapisu w eeprom
    
    
    dev.hardware                        - [R] identyfikator sprzętu - 3
    
    dev.firmware                        - [R] identyfikator oprogramowania - 11
    
    dev.version                         - [R] wersja oprogramowania - 5
    
    dev.reset                           - [RW] ustawienie na jeden tej flagi powoduje przywrócenie ustawień fabrycznych

    dev.restart                         - [RW] ustawienie na jeden tej flagi powoduje restart urządzenia
    
    dev.uid.0                           
    dev.uid.1
    dev.uid.2
    dev.uid.3                           - [R] unikalny identyfikator urządzenia.

    modbus.address                      - [RWS] adres modbus urządzenia - wartość domyślna to 255
    
    input.t.0.value, 
    input.t.1.value, 
    input.t.2.value                     - [R] (-250..1000) wartości temperatur zmierzone odpowiednio na kanałach 0, 1, 2 w dziesiętnych 
                                          częściach stopnia celsiusza. Do wejść tych podłączone są następujące czujniki:
                                          t.0 - czujnik temperatury kominka/pieca na paliwo stałe
                                          t.1 - czujnik temperatury na dole zbiornika buforowego
                                          t.2 - czujnik temperatury w sprzęgle hydraulicznym
                                    
    input.t.0.mf.value                  - [R] (-250..1000) wartość temperatury na kanale 0 (input.t.0.value czujnik temperatury kominka/pieca) w dziesiętnych 
                                          częściach stopnia celsiusza po przepuszczeniu przez filtr medianowy. Rejestr ten używany jest przez regulator 
                                          wentylatora.
                                    
    input.r.3.value                     - [R] (0..100) przetworzona wartość wejścia input.3.do wejścia tego podłączony jest potencjometr obrotów wentylatora 
                                          kominka/pieca na paliwo stałe. Potencjometr ten pełni również funkcję prostego interfejsu użytkownika, tj posiada
                                          możliwość uruchamiania kominka oraz jego zatrzymywania, jeżeli kominek znajduje sie w trybie rozpalania. Sterowanie
                                          polega na wykonaniu pewnych sekwencji.
                                          1. sekwencja startowa - gdy kominek znajduje się w stanie spoczynku (czytaj rejestr counter.device.state) wówczas
                                             wykonanie sekwencji startowej powoduje przejście urządzenia w tryb rozpalania. sekwencja startowa polega na 
                                             ustawieniu gałki potencjometra w pozycji minimalnej, następnie na obrocie w kierunku pozycji maksymalnej, po czym
                                             gdy ją osiągnie, ponownym ustawieniu potencjometra w pozycji minimalnej.
                                             
                                             max:         ________________
                                             min:________|                |_________________...
                                                         ^                ^                ^
                                                         |==(*) max 1sec==|                |
                                                         |==(**) 2 sec=====================|
                                                         
                                             (*) - w tym czasie musi nastąpić opuszczenie pozycji minimalnej, osiągnięcie maksymalnej i ponowny powrót
                                                   do pozycji minimalnej
                                             (**) - detekcja następuje po dwóch sekundach od rozpoczęcia sekwencji. od ponownego osiągnięcia pozycji minimalnej
                                                    nie może nastąpić zmiana wartości na pozycję maksymalną.

                                                    
                                          2. sekwencja wyłączająca. Gdy kominek znajduje sie w stanie rozpalania, wówczas wykonanie sekwencji wyłączającej
                                             powoduje przejście urządzenia w stan spoczynku. sekwencja wyłączająca jest podobna do sekwencji startowej, lecz
                                             ponadto gdy gałka potencjometru wróci do pozycji minimalnej, wymagany jest dodatkowy cykl ustawienia jej na pozycję
                                             maksymalną, po czym na minimalną.
                                             
                                             max:         ________________     _______
                                             min:________|                |___|       |_____...
                                                         ^                ^                ^
                                                         |==(*) max 1sec==|                |
                                                         |==(**) 2 sec=====================|
                                                         
                                             (*) - w tym czasie musi nastąpić opuszczenie pozycji minimalnej, osiągnięcie maksymalnej i ponowny powrót
                                                   do pozycji minimalnej
                                             (**) - detekcja następuje po dwóch sekundach od rozpoczęcia sekwencji. od ponownego osiągnięcia pozycji minimalnej
                                                    należy wykonać dodatkowy cykl - max min.
                                          
                                          Generowanie wyżej wymienionych sekwencji możliwe jest również z poziomu modbus - czytaj opis rejestru 
                                          setting.control.trigger.
                                                    
    input.r.3.raw.value                 - [R] (0..1023) jest to surowa wartość z przetwornika A/C dla wejścia input.3.
    
    input.t.0.err, 
    input.t.1.err, 
    input.t.2.err                       - [R], (0..5) statusy wejść temperaturowych, odpowiednio 0, 1, 2.
                                          0 - pomiar temperatury prawidłowy
                                          1 - wejście rozwarte, nie wykryto czujnika
                                          2 - wejscie zwarte do masy
                                          3 - pomiar temperatury poniżej zakresu
                                          4 - pomiar temperatury powyżej zakresu
                                          5 - inny błąd
    
    output.px.0                         - [R] (0..100) wyjście regulowane - triakowe. Do wyjścia tego podłączony jest wentylator
                                          kominka/pieca na paliwo stałe. Gdy urządzenie znajduje sie w stanie bezczynności (czytaj opis rejestru 
                                          counter.device.state) wówczas wentylator jest wyłączony (output.px.0 = 0). Gdy urządzenie znajduje sie w stanie 
                                          rozpalania, wówczas wentylator jest załączony z pełną mocą (output.px.0 = 100). Gdy urządzenie znajduje się w stanie
                                          palenia lub w stanie wygaszania, wówczas należy rozpatrzeć dwa przypadki - czy urządzenie jest w trybie pracy 
                                          automatycznej (setting.control.mode = 0) lub ręcznej (setting.control.mode = 1).
                                          - w trybie pracy ręcznej obroty wentylatora uzależnione są od pozycji gałki potencjometra, przy czym dla minimalnego
                                            położenia gałki, na wyjście output.px.0 zadawana jest wartość z rejestru setting.fan.rpm.min.value a dla 
                                            położenia maksymalnego, output.px.0 przyjmuje wartość z rejestru setting.fan.rpm.max.value. Pośrednie położenia 
                                            gałki potencjometru przeliczane są w sposób proporcjonalny.
                                          - w trybie pracy automatycznej, do sterowania wartością output.px.0 wykorzystywany jest regulator PID o nastawach 
                                            zapisanych w rejestrach setting.fan.pid.kp, setting.fan.pid.ki oraz setting.fan.pid.kd. Okres próbkowania wynosi
                                            10 sekund. wartością zadaną jest setting.supply.optimal.t.value, wielkością mierzoną jest input.t.0.value, sygnałem
                                            wymuszającym jest oczywiście output.px.0.
                                                                      
                                                      (setting.supply.optimal.t.value - input.t.0.mf.value)    
                                                                             |
                                            setting.supply.optimal.t.value   |         output.px.0           input.t.0.value
                                                           |           ___   |   _______  |  _____                | 
                                                           v          |   |  v  |       | v |     |               v
                                                       ============= +| + |=====| K_pid |===| K_o |=============x================
                                                                      |___|     |_______|   |_____|             |
                                                                        =                                       |
                                                                        |                                       |
                                                                        +=======================================+
                                                            
                                          K_pid - transmitancja regulatora PID
                                          K_o   - transmitancja obiektu - wejście obroty wentylatora, wyjście temperatura kominka
                                          
                                          Transmitancja całego układu wynosi:
                                          
                                                     input.t.0.mf.value          K_pid * K_o
                                          K = ============================== = ================
                                              setting.supply.optimal.t.value   1 + K_pid * K_o
                                              
                                                 input.t.0.mf.value
                                          K_o = ==================== = ? = należy zidentytfikować
                                                   output.px.0
                                          K_pid:   

                                          e(t) = setting.supply.optimal.t.value(t) - input.t.0.mf.value(t)
                                                            __________________
                                                       +===|setting.fan.pid.kp|========================+
                                                       |   |==================|                        |
                                                       |   |      100         |                        |
                                                       |   |__________________|                        +
                                                       |                          ________________    ___
                                                e(t)   |    __________________   | /t             |  |   |   output.px.0(t)
                                                =======*===|setting.fan.pid.ki|==| | e(tau) d(tau)|=+| + |=====
                                                       |   |==================|  |0/              |  |___|
                                                       |   |      100         |  |________________|    +
                                                       |   |__________________|                        |
                                                       |                                               |
                                                       |                          ________             |
                                                       |    __________________   | d e(t) |            |
                                                       +===|setting.fan.pid.kd|==| ====== |============+
                                                           |==================|  |   dt   |
                                                           |      100         |  |________|
                                                           |__________________|  
                                                                                 
                                          powyższy regulator PID opisany jest równaniem:

                                                           setting.fan.pid.kp   setting.fan.pid.ki   /t                setting.fan.pid.kd   d e(t)
                                          output.px.0(t) = ================== + ================== * | e(tau) d(tau) + ================== * ======
                                                                  100                   100         0/                        100             dt
                                                             
                                                             
                                          w dziedzinie laplace'a, transmitancja jego wynosi:
                                                             
                                                  output.px.0(s)   setting.fan.pid.kp   setting.fan.pid.ki   setting.fan.pid.kd * s
                                          K_pid = ============== = ================== + ================== + ======================
                                                     e(s)               100                   100* s                   100
                                          
                                          gdzie s - zespolona częstotliwość.
                                          Nastawy regulatora (dobór parametrów setting.fan.pid.kp, setting.fan.pid.ki, setting.fan.pid.kd) należy rozpocząć od
                                          identyfikacji objektu - kominka pieca. czyli wyznaczeniu jego wzmocnienia statycznego oraz stałych czasowych
                                          odpowiedzi. (... tu w przyszłości znajdzie się opis)
                                          
                                          Można też wymusić określony stan wentylatora poprzez ustawienie rejestru setting.fan.mode na 1. wówczas 
                                          wartość rejestru output.px.0 kopiowana jest z rejestru setting.fan.manual.value.
                                          Gdy temperatura kominka input.t.0.value przekroczy wartość krytyczną setting.supply.t.max.value, z uwzględnieniem
                                          histerezy (setting.supply.t.hyst) wówczas wentylator bezwzględnie zostanie wyłączony, niezależnie od trybu pracy.
                                          
    output.px.1                         - [RWS] (0..100) wyjście regulowane - triakowe. Do wyjścia tego podłączone jest dodatkowe
                                          urządzenie sterowane bezpośrednio przez protokół komunikacyjny. Wartość fabryczna: 0.
                              
    output.do.0                         - [R] (0..1) wyjście dwustanowe przekaźnikowe wykorzystane przez pompę ładującą. Pompa jest załączona 
                                          gdy temperatura kominka input.t.0.value jest większa od wartości rejestru setting.load.pump.on.t.value
                                          z uwzględnieniem histerezy setting.load.pump.on.t.hyst lub gdy różnica temperatur (input.t.0.value -
                                          (input.t.1.value lub input.t.2.value - czytaj setting.load.pump.mode.delta.t)) wzrośnie powyżej wartości rejestru 
                                          setting.load.pump.on.delta.t, przy czym spadek  tej różnicy poniżej setting.load.pump.on.delta.t nie ma wpływu na 
                                          pracę pompy ładującej. Pompa jest wyłączona gdy tempeartura kominka input.t.0.value spadnie poniżej wartości rejestru
                                          setting.load.pump.on.t.value z uwzględnieniem histerezy setting.load.pump.on.t.hyst oraz jednocześnie
                                          różnica temperatur (input.t.0.value - (input.t.1.value  lub input.t.2.value - czytaj setting.load.pump.mode.delta.t)) 
                                          spadnie poniżej wartości rejestru setting.load.pump.off.delta.t. Wzrost wartości tej różnicy powyżej wartość rejestru
                                          setting.load.pump.off.delta.t nie ma wpływu na załączenie pompy. Można też wymusić określony stan pompy ładującej 
                                          poprzez ustawienie rejestru setting.load.pump.mode na 1. wówczas wartość rejestru output.do.0 kopiowana z rejestru 
                                          setting.load.pump.manual.value. Gdy urządzenie znajduje sie w stanie rozpalania (czytaj counter.device.state) wówczas
                                          wzrost różnicy temperatur (input.t.0.value - input.t.1.value) powyżej wartości setting.load.pump.on.delta.t jest
                                          ignorowany i nie powoduje załączenia pompy ładującej. Wzrost ten jest również ignorowany po nieudanym rozpalaniu przez
                                          okres czasu zapisany w rejestrze setting.load.pump.delta.lock.time, Czas jaki pozostał do końca blokady przedstawiony
                                          jest w rejestrze counter.load.pump.remaining.time. W trybie rozpalania, palenia i gaszenia, czas ten jest kasowany.
                                    
    output.do.1                         - [R] (0..1) wyjście dwustanowe przekaźnikowe wykorzystane przez przepustnicę powietrza dolotowego. W trybie palenia
                                          oraz w trybie wygaszania, przepustnica pracuje w trybie automatycznym, tj jeżeli temperatura input.t.0.value spadnie
                                          poniżej wartości setting.airdamper.switch.t.value z uwzględnieniem histerezy setting.airdamper.switch.t.hyst, wówczas
                                          przepustnica jest otwierana (output.do.1 = 1). w przeciwnym razie jest zamknięta (output.do.1 = 0). W trybie
                                          bezczynności, przepustnica jest stale zamknięta (output.do.1 = 0), natomiast w trybie rozpalania, cały czas otwarta
                                          (output.do.1 = 1). Można też wymusić określony stan przepustnicy poprzez ustawienie rejestru setting.airdamper.mode
                                          na 1. wówczas wartość rejestru output.do.1 będzie kopiowana z rejestru setting.airdamper.manual.value.
                                          Gdy temperatura kominka input.t.0.value przekroczy wartość krytyczną setting.supply.t.max.value, z uwzględnieniem
                                          histerezy (setting.supply.t.hyst) wówczas przepustnica zostaniezamknięta, niezależnie od trybu pracy.
    
    output.do.2                         - [R] (0..1) wyjście dwustanowe przekaźnikowe do którego podłączona jest pompa buforowa. Stan tego wyjścia
                                          zależy w głównej mierze od dwóch rejestrów sterujących - setting.hyd.t.demand oraz 
                                          setting.hyd.heat.demand.
                                          
                                          1.    brak żądania ciepła na sprzęgło hydrauliczne - setting.hyd.heat.demand == 0. Wówczas mamy dwa
                                                przypadki:
                                          
                                          1.1   pompa ładująca wyłączona - output.do.0 == 0: pompa buforowa również jest wyłączona - output.do.2 = 0
                                          
                                          1.2   pompa ładująca załączona - output.do.0 == 1: pompa buforowa również jest załączona - output.do.2 = 1
                                          
                                          2.    ustawione jest żądanie ciepła na sprzęgło  hydrauliczne - setting.hyd.heat.demand == 1. Tutaj 
                                                również mamy dwa przypadki:
                                          
                                          2.1   pompa ładująca wyłączona - output.do.0 == 0 
                                                oraz 
                                                temperatura na sprzęgle hydraulicznym input.t.2.value jest mniejsza od wymaganej temperatury sprzęgła 
                                                hydraulicznego setting.hyd.t.demand z uwzględnieniem histerezy setting.hyd.t.hyst
                                                oraz 
                                                temperatura w zbiorniku buforowym input.t.1.value jest wyższa od temperatury w sprzęgle hydraulicznym
                                                input.t.2.value o deltę załączenia/wyłączenia pompy buforowej (setting.buff.pump.on.delta.t oraz
                                                setting.buff.pump.off.delta.t - które tworzą swego rodzaju wartość zadaną i zarazem histerezę): pompa
                                                buforowa zostaje załączona - output.do.2 = 1.
                                                w przeciwnym wypdaku pompa buforowa zostaje wyłączona - output.do.2 = 0.
                                                
                                          2.2   pompa ładująca włączona - output.do.0 == 1
                                                oraz 
                                                temperatura na sprzęgle hydraulicznym input.t.2.value jest większa od wymaganej temperatury sprzęgła 
                                                hydraulicznego setting.hyd.t.demand z uwzględnieniem histerezy setting.hyd.t.hyst
                                                oraz
                                                temperatura w sprzęgle hydraulicznym input.t.2.value jest wyższa od temperatury w zbiorniku buforowym
                                                input.t.1.value o deltę załączenia/wyłączenia pompy buforower (setting.buff.pump.on.delta.t oraz
                                                setting.buff.pump.off.delta.t - które tworzą swego rodzaju wartość zadaną i zarazem histerezę): pompa
                                                buforowa zostaje załączona - output.do.2 = 1.
                                                w przeciwnym wypdaku pompa buforowa zostaje wyłączona - output.do.2 = 0.
    
                                          Można też wymusić określony stan pompy buforowej poprzez ustawienie rejestru setting.buff.pump.mode na 1. wówczas 
                                          wartość rejestru output.do.2 kopiowana jest z rejestru setting.buff.pump.manual.value.
                                          Dodatkowo pompa buforowa posiada parametr będący minimalnym czasem pracy (czytaj setting.buff.pump.min.worktime oraz
                                          counter.buff.pump.remaining.time). Parametr ten uwzglęniany jest jedynie gdy pompa sterowana jest na podstawie
                                          logiki. Przełączenie pompy w tryb ręczny nie ma wpływu na minimalny czas pracy.
    
    output.do.3                         - [R] (0..1) wyjście dwustanowe przekaźnikowe. Wyjście to jest sygnałem dla innego urządzenia grzewczego, zezwalającym
                                          na jego pracę. 0 - dodatkowe urządzenie nie ma pozwolenia na pracę, 1 - dodatkowe urządzenie ma pozwolenie na pracę.
                                          Logika obsługi tego wyjścia uzależniona jest od wartości rejestru setting.heater.signal.mode.
                              
    setting.t.0.calib
    setting.t.1.calib
    setting.t.2.calib                   - [RWS] (-100..100) rejestry kalibrujące wskazania temperatur w jednostkach dziesiętnych stopni celsiusza. 
                                          Wartości tych rejestrów każdorazowo są dodawane do pomiaru temperatury
                                          na odpowiednim kanale i wynik zapisywany jest w odpowiednim rejestrze input.t.N.value.
                                          Wartości fabryczne: 0.
    setting.r.3.min.calib.trigger                                      
    setting.r.3.max.calib.trigger       - [RW] (1) rejestr kalibrujący potencjometr input.r.3.value. Ze względu na specyfikę układu wejściowego urządzenia,
                                          położenie potencjometru nie będzie odczytywane jednoznacznie w różnych egzemplarzach urządzenia i będzie ono 
                                          uzależnione od tolerancji zastosowanych elementów w układzie wejściowym oraz od wartości wewnętrznego napięcia 
                                          referencyjnego mikrokontrolera. Dlatego należy dokonać kalibracji przed pierwszym uruchomieniem w układzie docelowym
                                          oraz każdorazowo po wymianie jakiegokolwiek elementu w torze analogowym wejścia lub po wymianie MCU. Kalibracja polega
                                          na ustawieniu na wartość maksymalną gałki potencjometru podłączonego do wejścia input.3 a następnie na wpisaniu 1 do 
                                          rejestru setting.r.3.max.calib.trigger. W tym momencie surowa wartość odczytana z przetwornika A/D zostanie
                                          zapamiętana w rejestrze counter.r.3.max.calib.raw.value. Następnie należy ustawić potencjometr w pozycji minimalnej po
                                          czym wpisać wartość 1 do rejestru setting.r.3.min.calib.trigger. Wtedy surowa wartość odczytana z przetwornika A/D
                                          zostanie zapamiętana w rejestrze counter.r.3.min.calib.raw.value. Zapamiętane wartości będą uwzględniane przy
                                          wyznaczaniu wartości rejestruinput.r.3.value na podstawie rejestru input.r.3.raw.value.
    
    counter.r.3.min.calib.raw.value     - [RS] (0..1023). Wartość fabryczna 0. Zapamiętana wartość przetwornika A/C w wyniku kalibracji dla minimalnego 
                                          położenia jego gałki
    
    counter.r.3.max.calib.raw.value     - [RS] (0..1023). Wartość fabryczna 1023. Zapamiętana wartość przetwornika A/C w wyniku kalibracji dla maksymalnego 
                                          położenia jego gałki
                              
    counter.system.work_time            - [RS] (0..65535) czas pracy urządzenia wyrażony w minutach.
    
    setting.load.pump.on.t.value        - [RWS] (-250..1000) temperatura włączenia pompy ładującej. gdy temperatura input.t.0.value wzroźnie powyżej 
                                          tej wartości z uwzględnieniem histerezy (setting.load.pump.on.t.hyst) wówczas nastąpi załączenie pompy 
                                          ładującej (output.do.0). Gdy spadnie poniżej, również z uwzględnieniem histerezy, może nastąpić wyłączenie
                                          lecz nie musi (czytaj setting.load.pump.on.delta.t oraz setting.load.pump.off.delta.t). wartość tego 
                                          rejestru wyrażona jest w dziesiętnych częściach stopnia celsiusza. Wartość fabryczna: 500 (50*C)

    setting.load.pump.on.t.hyst         - [RWS] (-100..100) histereza temperatury włączenia pompy ładującej. Wartość tego rejestru wyrażona jest w 
                                          dziesiętnych częściach stopnia celsiusza. Wartość fabryczna: 40 (4*C)
    
    setting.load.pump.on.delta.t        - [RWS] (10..1000) - wartość różnicy temperatur kominka (input.t.0.value) i dolnej części zbiornika buforowego
                                          (input.t.1.value), powyżej której nastąpi załączenie pompy ładującej kominka (output.do.0). Wartość ta musi
                                          być większa od setting.load.pump.off.delta.t. Gdy nastąpi próba naruszenia tego warunku, urządzenie zwróci
                                          błąd. Omawiany rejestr nie ma wpływu na wyłączenie pompy ładującej kominka - odpowiedzialny jest za to 
                                          między innymi komplementarny rejestr - setting.load.pump.off.delta.t. Wartość teo rejestru wyrażona 
                                          jest w dziesiętnych częściach stopnia celsiusza. Wartość fabryczna: 60 (6*C).
                                          
    setting.load.pump.off.delta.t       - [RWS] (10..1000) - wartość różnicy temperatur kominka (input.t.0.value) i dolnej części zbiornika buforowego
                                          (input.t.1.value), poniżej której może nastąpić wyłączenie pompy ładującej kominka (output.do.0). lecz nie
                                          musi. (czytaj opis setting.load.pump.on.t.value). Żeby nastąpiło wyłączenie pompy ładującej kominka na skutek
                                          spadku różnicy temperatur (input.t.0.value - input.t.1.value) poniżej wartości omawianego rejestru, wówczas
                                          tempeartura kominka input.t.0.value musi również spaść poniżej wartości setting.load.pump.on.t.value z 
                                          uwzględnieniem histerezy setting.load.pump.on.t.hyst. Wartość opisywanego rejestru musi być mniejsza od 
                                          wartości rejestru setting.load.pump.on.delta.t. Gdy nastąpi próba naruszenia tego warunku, urządzenie zwróci
                                          błąd. Omawiany rejestr nie ma wpływu na załączenie pompy ładującej kominka - odpowiedzialny jest za to rejestr
                                          między innymi rejestr - setting.load.pump.on.delta.t. Wartość teo rejestru wyrażona jest w dziesiętnych 
                                          częściach stopnia celsiusza. Wartość fabryczna: 30 (3*C)
                                          
    setting.hyd.t.demand                - [RWS] (10..1000) wymagana temperatura sprzęgła hydraulicznego wyrażona w dziesiętnych częściach stopnia 
                                          celsiusza. Rejestr ten jest używany w przypadku gdy ustawiona jest na 1 flaga setting.hyd.heat.demand.
                                          Jego znaczenie uzależnione jest od stanu wyjścia pompy ładującej output.do.0.
                                          gdy output.do.0 == 0 oraz temperatura na sprzęgle hydraulicznym input.t.2.value jest poniżej wartości opisywanego
                                          rejestru z uwzględnieniem histerezy (setting.hyd.t.hyst) wówczas pompa buforowa (output.do.2) może być 
                                          załączona - lecz nie musi - czytaj opis rejestrów setting.buff.pump.on.delta.t oraz setting.buff.pump.off.delta.t.
                                          gdy output.do.0 == 1 oraz temperatura na sprzęgle hydraulicznym input.t.2.value jest powyżej wartości opisywanego
                                          rejestru z uwzględnieniem histerezy (setting.hyd.t.hyst) wówczas pompa buforowa (output.do.2) może być 
                                          załączona - lecz nie musi - czytaj opis rejestrów setting.buff.pump.on.delta.t oraz setting.buff.pump.off.delta.t.
                                          Wartość fabryczna: 400 (40*C). Wartość tego rejestru może mieć wpływ na zewnętrzny sygnał zezwolenia na pracę
                                          output.do.3 o ile rejestr setting.heater.signal.mode jest ustawiony na 2.

    setting.hyd.t.hyst                  - [RWS] (0..100) histereza wymaganej temperatury sprzęgła hydraulicznego wyrażona w dziesiętnych częściach stopnia 
                                          celsiusza. czytaj opis rejestru setting.hyd.t.demand. Wartość fabryczna: 40 (4*C)
                                          
    setting.hyd.heat.demand             - [RWS] (0..1) żądanie ciepła na sprzęgło hydrauliczne - wartość dwustanowa. Rejestr ten jest rejestrem sterującym
                                          pracą pompy buforowej, podłączonej do wyjścia output.do.2 - czytaj opis tego rejestru.
                                          Wartość fabryczna: 1.
                                          
    setting.buff.pump.on.delta.t        - [RWS] (10..1000) - wartość różnicy temperatur wyrażona w dziesiętnych częściach stopnia celsiusza. Wartość ta jest
                                          używana w przypadku gdy ustawiona jest flaga na 1 żadania ciepła na sprzęgło hydrauliczne 
                                          (setting.hyd.heat.demand) a jej definicja zależy od stanu wyjścia pompy ładującej (output.do.0).
                                          Gdy output.do.0 == 0 wtedy wartość opisywanego rejestru oznacza wartość różnicy temperatur zbiornika buforowego 
                                          input.t.1.value i sprzęgła hydraulicznego input.t.2.value (input.t.1.value - input.t.2.value) powyżej której może 
                                          nastąpić załączenie pompy buforowej lecz nie musi - czytaj opis rejestru output.do.2. (dodatkowo temperatura na
                                          sprzęgle hydraulicznym input.t.2.value musi być poniżej wymaganej - setting.hyd.t.demand z uwzględnieniem
                                          histerezy setting.hyd.t.hyst)
                                          Gdy output.do.0 == 1 wtedy wartość opisywanego rejestru oznacza wartość różnicy temperatur sprzęgła hydraulicznego 
                                          input.t.2.value i zbiornika buforowego input.t.1.value (input.t.2.value - input.t.1.value) powyżej której może 
                                          nastąpić załączenie pompy buforowej lecz nie musi - czytaj opis rejestru output.do.2. (dodatkowo temperatura na
                                          sprzęgle hydraulicznym input.t.2.value musi być powyżej wymaganej - setting.hyd.t.demand z uwzględnieniem
                                          histerezy setting.hyd.t.hyst)
                                          Wartość fabryczna: 40 (4*C)
    
    setting.buff.pump.off.delta.t       - [RWS] (10..1000) - wartość różnicy temperatur wyrażona w dziesiętnych częściach stopnia celsiusza. Wartość ta jest
                                          używana w przypadku gdy ustawiona jest flaga na 1 żadania ciepła na sprzęgło hydrauliczne 
                                          (setting.hyd.heat.demand) a jej definicja zależy od stanu wyjścia pompy ładującej (output.do.0).
                                          Gdy output.do.0 == 0 wtedy wartość opisywanego rejestru oznacza wartość różnicy temperatur zbiornika buforowego 
                                          input.t.1.value i sprzęgła hydraulicznego input.t.2.value (input.t.1.value - input.t.2.value) poniżej której 
                                          nastąpi wyłączenie pompy buforowej - czytaj opis rejestru output.do.2.
                                          Gdy output.do.0 == 1 wtedy wartość opisywanego rejestru oznacza wartość różnicy temperatur sprzęgła hydraulicznego 
                                          input.t.2.value i zbiornika buforowego input.t.1.value (input.t.2.value - input.t.1.value) poniżej której 
                                          nastąpi wyłączenie pompy buforowej - czytaj opis rejestru output.do.2.
                                          Wartość fabryczna: 20 (2*C)
    
    counter.device.state                - [R] (0..3) - rejestr opisujący stan sterownika.
                                          0 - stan spoczynku. w tym stanie przepustnica jest wyłączona (output.do.1 = 0) oraz wentylator jest wyłączony
                                              (output.px.0 = 0). Do tego trybu sterownik przechodzi automatycznie - ze stanu wygaszania - gdy temperatura
                                              input.t.0.value spadnie poniżej minimalnej temperatury zasilania (setting.supply.t.min.value) z uwzględnieniem 
                                              histerezy (setting.supply.t.hyst) i będzie się utrzymywała na tym poziomie dłużej niż czas ustawiony w rejestrze 
                                              setting.extinguish.time. Przejście do tego trybu również jest możliwe z trybu rozpalania po wykryciu na 
                                              potencjometrze input.r.3.value sekwencji wyłączającej - czytaj opis tego rejestru - lub gdy stan rozpalania
                                              trwa dłużej niż czas zapisany w rejestrze - setting.firing_up.time. Istnieje też możliwość osiągnięcia tego stanu
                                              po odpowiednim wpisie do rejestru setting.control.trigger gdy urządzenie znajduje sie w stanie rozpalania. Gdy po 
                                              załączeniu urządzenia temperatura kominka input.t.0.value jest mniejsza niż minimalna temperatura zasilania 
                                              (setting.supply.t.min.value), wówczas urządzenie zostanie również wprowadzone w stan spoczynku.
                                          1 - stan rozpalania. W tym stanie przepustnica jest otwarta (output.do.1 = 1) oraz wentylator jest załączony z
                                              maksymalnymi obrotami (ouput.px.0 = 100). Do tego stanu można przejść jedynie ze stanu spoczynku - po wykryciu
                                              sekwencji startowej na potencjometrze (input.r.3.value) - czytaj opis tego rejestru. Urządzenie wychodzi z tego
                                              stanu do stanu palenia, gdy temperatura input.t.0.value osiągnie wartość setting.supply.t.min.value z 
                                              uwzględnieniem histerezy (setting.supply.t.hyst) w czasie krótszym niż czas zapisany w rejestrze 
                                              setting.firing_up.time. Gdy temperatura input.t.0.value nie przekroczy wartości setting.supply.t.min.value w
                                              czasie krótszym niż setting.firing_up.time - urządzenie powraca w stan spoczynku. Istnieje również możliwość
                                              osiągnięcia tego stanu poprzez odpowiedni wpis do rejestru setting.control.trigger gdy urządzenie znajduje
                                              się w stanie spoczynku.
                                          2 - stan palenia. Do tego stanu, urządzenie może przejść tylko gdy temperatura kominka input.t.0.value jest wyższa
                                              od temperatury zasilania setting.supply.t.min.value z uwzględnieniem histerezy setting.supply.t.hyst. W stanie 
                                              palenia urządzenie może pracować w dwóch trybach - automatycznym lub ręcznym (czytaj opis rejestru 
                                              setting.control.mode). W trybie automatycznym wentylator jest sterowany na podstawie temperatury input.t.0.value 
                                              - o ile wartość rejestru  counter.current.pot.value wynosi 0 . Gdy wartość  rejestru counter.current.pot.value 
                                              jest różna od zera, lub jawnie wpisno 1 do rejestru setting.control.mode -  wówczas sterowanie przechodzi w tryb 
                                              ręczny - w którym wysterowanie wentylatora (output.px.0) zależy od wartości rejestru counter.current.pot.value. 
                                              W stanie palenia przepustnica sterowana jest na podstawie temperatury input.t.0.value. Jeżeli temperatura 
                                              input.t.0.value jest mniejsza niż wartość rejestru setting.airdamper.switch.t.value z uwzględnieniem histerezy 
                                              setting.airdamper.switch.t.hyst, wówczas wyjście przepustnicy output.do.1 przyjmuje wartość 1 (przepustnica jest 
                                              otwierana). W przeciwnym wypadku, wyjście output.do.1 przyjmuje wartość 0 - przepustnica jest zamykana. Warto 
                                              wspomnieć, że gdy po załączeniu zasilania,  tempeartura kominka input.t.0.value będzie powyżej wartości minimalnej
                                              temperatury zasilania setting.supply.t.min.value - wówczas urządzenie również zostane wprowadzone w stan palenia.
                                          3 - stan wygaszania. Do stanu wygaszania można przejść tylko w sposób automatyczny ze stanu palenia na skutek 
                                              spadku temperatury input.t.0.value poniżej wartości setting.supply.t.min.value z uwzględnieniem histerezy
                                              setting.supply.t.hyst. zachowanie urządzenie w tym stanie jest identyczne jak w stanie palenia. Stan ten może
                                              trwać nie dłużej niż czas wygaszania kominka zdefiniowany w rejestrze setting.extinguish.time. Jeżeli temperatura
                                              input.t.0.value zdoła osiągnąć wartość setting.supply.t.min.value z uwzględnieniem histerezy w czasie krótszym
                                              lub równym setting.firing_up.time - wówczas urządzenie powraca do stanu palenia. W przeciwnym wypadku urządzenie
                                              przechodzi w stan spoczynku.
    
                                          Gdy temperatura kominka input.t.0.value przekroczy wartość krytyczną setting.supply.t.max.value, z uwzględnieniem
                                          histerezy (setting.supply.t.hyst) wówczas wentylator bezwzględnie zostanie wyłączony oraz przepustnica zostanie
                                          zamknięta, niezależnie od stanu pracy oraz trybu urządzeń wykonawczych komimnka.

    
    setting.supply.t.min.value          - [RWS] (10..1000) - minimalna temperatura zasilania wyrażona w dziesiętnych częściach stopnia celsiusza. Wartość
                                          fabryczna: 400 (40*C). Jeżeli nowa wartość, która ma być zapisana do tego rejestru jest większa bądź równa wartości
                                          setting.supply.t.max.value, wówczas urządzenie zwróci błąd i cała transakcja zostanie anulowana
    
    setting.supply.t.max.value          - [RWS] (10..1000) - maksymalna wartość temperatury zasilania wyrażona w dziesiętnych częściach stopnia celsiusza.
                                          Wartość fabryczna: 900 (90*C). Gdy temperatura kominka input.t.0.value przekroczy tą wartość z uwzględnieniem
                                          histerezy (setting.supply.t.hyst) wówczas wentylator bezwzględnie zostanie wyłączony oraz przepustnica zostanie
                                          zamknięta, niezależnie od stanu pracy oraz trybu urządzeń wykonawczych komimnka. Jeżeli wartość zapisana do tego 
                                          rejestru jest mniejsza bądź równa aniżeli wartość rejestru setting.supply.t.min.value, wówczas urządzenie zwróci
                                          błąd i cała transakcja zostanie anulowana.
    
    setting.supply.t.hyst               - [RWS] (0..1000) - histereza minimalnej oraz maksymalnej temperatury zasilania (setting.supply.t.max.value oraz
                                          setting.supply.t.max.value) wyrażona w dziesiętnych częściach stopnia celsiusa. Wartość fabryczna: 40 (4*C).
    
    setting.extinguish.time             - [RWS] (0..65530) - czas wygaszania kominka wyrażony w minutach. Wartość fabryczna: 40.
    
    setting.firing_up.time              - [RWS] (0..65530) - czas rozpalania kominka wyrażony w minutach. Wartość fabryczna: 40.
    
    setting.fan.rpm.max.value           - [RWS] (0..100) - maksymalna wartość obrotów wentylatora wyrażona w procentach wysterowania wyjścia output.px.0.
                                          wartość fabryczna: 100. Wartość ta jest wystawiana na wyjście output.px.0 gdy urządzenie znajduje sie w trybie
                                          rozpalania. Wartość ta również jest przekazywana na output.px.0 gdy urządzenie znajduje się w ręcznym trybie 
                                          sterowania (patrz rejestr setting.control.mode) w stanie palenia/wygaszania gdy gałka potencjometru znajduje się w 
                                          maksymalnym położeniu. Najogólniej rzecz biorąc jest to maksymalna wartość jaką może obrać wyjście output.px.0.
    
    setting.fan.rpm.min.value           - [RWS] (0..100) - minimalna wartość obrotów wentylatora wyrażona w procentach wysterowania wyjścia output.px.0.
                                          wartość fabryczna: 20. Jest to minimalna wartość jaka może zostać przepisana na wyjście wentylatora output.px.0. 
                                          Gdy urządzenie jest w stanie palenia/wygaszania (czytaj counter.device.state) w trybie ręcznego sterowania (czytaj 
                                          setting.control.mode), wówczas ta wartość jest przepisywana bezpośrednio na wyjście output.px.0. 
    
    setting.control.mode                - [RWS] (0..1) - zadany tryb sterowania urządzenia gdy znajduje się ono w stanie palenia lub wygaszania. Wartość
                                          fabryczna: 0
                                          1 - tryb ręczny - obroty wentylatora output.px.0 zadawane są na podstawie rejestru counter.current.pot.value. 
                                              Przy czym jeżeli jego wartość wynosi 0, to na wyjście output.px.0 podawana jest wartość z rejestru 
                                              setting.fan.rpm.min.value a gdy wynosi on 100, na wyjście output.px.0 zadawana jest wartość z rejestru 
                                              setting.fan.rpm.max.value. Położenia pośrednie przeliczane są w sposób proporcjonalny.
                                          0 - tryb automatyczny. żeby sterowanie było w tybie automatycznym, dodatkowo wartość rejestru 
                                              counter.current.pot.value musi wynosić 0. Gdy tak nie jest, wówczas obowiązuje tryb ręczny. W trybie automatycznym
                                              obroty wentylatora uzależnione są od temperatury kominka input.t.0.value. Wartością zadaną jest wartość wpisana
                                              w rejestrze setting.supply.optimal.t.value. Upraszczając im większa różnica temperatur 
                                              (setting.supply.optimal.t.value - input.t.0.value) tym większe obroty wentylatora. Obroty wentylatora będą 
                                              zawierać się w granicach [setting.fan.rpm.min.value .. setting.fan.rpm.max.value]. Dokładny opis sterowania
                                              umieszczono przy opisie rejestru output.px.0.value.
                                              
                                              
    counter.control.mode                - [R] (0..1) - rzeczywisty tryb sterowania urządzenia, gdy znajduje się ono w stanie palenia lub wygaszania. Rejestr 
                                          ten wprowadzono ze względu na fakt, iż pomimo użytkownik zada sterowanie automatyczne (czytaj rejestr 
                                          setting.control.mode) to wcale nie musi znaleźć w tym trybie ponieważ gałka potencjometru nie będzie ustawiona w
                                          w pozycji minimalnej (czytaj opis rejestru setting.control.mode). Wartość 1 oznacza tryb ręczny, 0 tryb automatyczny.
                                          
    setting.airdamper.switch.t.value    - [RWS] (-250..1000) temperatura przełączania przepustnicy wyrażona w dziesiętnych częściach stopni celsiusza. Rejestr
                                          ten jest uwzględniany jedynie wtedy gdy urządzenie znajduje się w stanie palenia lub wygaszania (czytaj opis rejestru
                                          counter.device.state). Jeżeli temperatura input.t.0.value jest mniejsza niż wartość opisywanego rejestru z
                                          uwzględnieniem histerezy setting.airdamper.switch.t.hyst, wówczas wyjście przepustnicy output.do.1 przyjmuje wartość
                                          1 (przepustnica jest otwierana). W przeciwnym wypadku, wyjście output.do.1 przyjmuje wartość 0 - przepustnica jest
                                          zamykana. Wartość fabryczna: 800 (80*C)
                                          
    setting.airdamper.switch.t.hyst     - [RWS] (10..1000) histereza temperatury przełączenia przepustnicy setting.airdamper.switch.t.value wyrażona w
                                          dziesiętnych częściach stopnia celsiusza. Wartość fabryczna: 40 (4*C).
    
    setting.fan.mode                    - [RWS] (0..1) tryb pracy wentylatora. wartość fabryczna: 0. 0 - tryb automatyczny - rejestr output.px.0 wyznaczany jest
                                          na podstawie logiki. 1 - tryb ręczny - wartość output.px.0 kopiowana jest z rejestru setting.fan.manual.value z 
                                          pominięciem logiki.
    
    setting.fan.manual.value            - [RWS] (0..100). wartość przepisywana na wyjście output.px.0 jeżeli ustawiono ręczny tryb pracy wentylatora. (rejestr
                                          setting.fan.mode = 1). wartość fabryczna: 0
    
    setting.airdamper.mode              - [RWS] (0..1) tryb pracy przepustnicy. wartość fabryczna: 0. 0 - tryb automatyczny - rejestr output.do.1 wyznaczany
                                          jest na podstawie logiki. 1 - tryb ręczny - wartość output.do.1 kopiowana jest z rejestru
                                          setting.airdamper.manual.value z pominięciem logiki.
    
    setting.airdamper.manual.value      - [RWS] (0..1) wartość przepisywana na wyjście output.do.1 jeżeli ustawiono ręczny tryb pracy przepustnicy. (rejestr
                                          setting.airdamper.mode = 1). wartość fabryczna: 0
    
    setting.buff.pump.mode              - [RWS] (0..1) tryb pracy pompy bufora. wartość fabryczna: 0. 0 - tryb automatyczny - rejestr output.do.2 wyznaczany
                                          jest na podstawie logiki. 1 - tryb ręczny - wartość output.do.2 kopiowana jest z rejestru 
                                          setting.buff.pump.manual.value z pominięciem logiki.
    
    setting.buff.pump.manual.value      - [RWS] (0..1) wartość przepisywana na wyjście output.do.2 jeżeli ustawiono ręczny tryb pracy pompy buforowej. (rejestr
                                          setting.buff.pump.mode = 1). wartość fabryczna: 0
    
    setting.load.pump.mode              - [RWS] (0..1) tryb pracy pompy ładującej. wartość fabryczna: 0. 0 - tryb automatyczny - rejestr output.do.0 wyznaczany
                                          jest na podstawie logiki. 1 - tryb ręczny - wartość output.do.0 kopiowana jest z rejestru 
                                          setting.load.pump.manual.value z pominięciem logiki.
    
    setting.load.pump.manual.value      - [RWS] (0..1) wartość przepisywana na wyjście output.do.0 jeżeli ustawiono ręczny tryb pracy pompy ładującej. (rejestr
                                          setting.load.pump.mode = 1). wartość fabryczna: 0
                                          
    setting.heater.signal.mode          - [RWS] (0..2) tryb pracy sygnału zezwolenia na pracę dodatkowego urządzenia grzewczego podłączonego do wyjścia
                                          output.do.3. wartość fabryczna: 0. 
                                          0 - tryb automatyczny - rejestr output.do.3 wyznaczany jest na podstawie logiki - Dodatkowe urządzenie grzewcze ma 
                                              zezwolenie na pracę (output.do.3 = 1) gdy bieżące urządzenie jest w stanie spoczynku (czytaj opis rejestru 
                                              counter.device.state)  oraz dodatkowo temperatura w zbiorniku buforowym input.t.1.value spadnie poniżej wartości 
                                              setting.buff.limit.t.value z uwzględnieniem histerezy setting.buff.limit.t.hyst.
                                          1 - tryb ręczny - wartość output.do.3 kopiowana jest z rejestru setting.heater.signal.manual.value z pominięciem 
                                              logiki.
                                          2 - tryb automatyczny uwzględniający tempraturę sprzęgła hydraulicznego - czyli output.do.3 jest ustawiane na 1, gdy
                                              jest spełniony pierwszy warunek (0) oraz dodatkowo temperatura sprzęgła input.t.2.value jest niższa od
                                              setting.hyd.heat.demand z uwzględnieniem histerezy setting.hyd.t.hyst.
    
    setting.heater.signal.manual.value  - [RWS] (0..1) wartość przepisywana na wyjście output.do.3 jeżeli ustawiono ręczny tryb pracy sygnału zezwolenia na 
                                          pracę dodatkowego urządzenia grzewczego. (rejestr setting.heater.signal.mode = 1). wartość fabryczna: 0
                                          
    setting.control.trigger             - [RW] (1..2) trigger za pomocą którego możliwe jest zdalne sterowanie załączeniem kominka w trybie bezczynności oraz
                                          wyłączeniem kominka w trybie rozpalania. Po ustawieniu tego rejestru na daną wartość i przetworzeniu jej przez logikę,
                                          rejestr ten przyjmie wartość 0. Rejestr ten funkcjonalnością swoją może zastąpić potencjometr w zakresie zadawania 
                                          sekwencji sterujących.
                                          1 - załączenie kominka - jeżeli kominek jest w stanie bezczynności, wówczas wpisanie tej wartości powoduje przejście
                                              urządzenia w stan rozpalania.
                                          2 - wyłączenie kominka - jeżeli kominek jest w stanie rozpalania, wówczas wpisanie tej wartości powoduje przejście
                                              kominka w tryb bezczynności.
    
    setting.pot.value                   - [RWS] (0..100) zdalnie zadana wartość położenia potencjometru. wpis jakiejkolwiek wartości do tego rejestru ze 
                                          zdefiniowanego zakresu, powoduje ustawienie rejestru counter.current.pot.value na tą wartość oraz ustawienie rejestru
                                          counter.current.pot.source na wartość 1. Wartość fabryczna: 0.
    
    counter.current.pot.value           - [R] (0..100) bieżąca wartość zadana obrotów wentylatora. wartość tego rejestru wyznaczana jest na podstawie rejestru
                                          setting.pot.value lub input.r.3.value. - opisuje to rejestr counter.current.pot.source.
                                          
    counter.current.pot.source          - [RS] (0..1) rejestr opisujący sposób wyznaczania wartości dla rejestru counter.current.pot.value. Wartość fabryczna: 0
                                          0 - wartość rejestru counter.current.pot.value kopiowana jest z rejestru input.r.3.value. 
                                          1 - wartość rejsttru counter.current.pot.value kopiowana jest z rejestru setting.pot.value.
                                          Zmiana wartości tego rejestru dokonywana jest w sposób pośredni. Jeżeli zdalnie zmieniono wartość rejestru
                                          setting.pot.value, wówczas opisywany rejestr przyjmuje wartość 1. Jeżeli natomiast poruszono gałką potencjometra
                                          podłączonego do wejścia input.r.3, wówczas opisywany rejestr przyjmuje wartość 0. Gdy rejestr posiada wartość 1,
                                          wówczas istnieje możliwość że wartość input.r.3.value zmieni się na skutek falowań napięć i innych zakłuceń, 
                                          wprowadzono więc tzw strefę nieczułości potencjometra - strefa ta definiuje zakres wartości, o którą musi się
                                          zmienić rejestr input.r.3.value, żeby przełączyć wartość opisywanego rejestru na 0. - czytaj opis rejestru
                                          setting.pot.deadband.
    
    setting.pot.deadband                - [RWS] (0..100) strefa nieczułości potencjomatra po przekroczeniu której, rejestr counter.current.pot.source przyjmuje
                                          wartość 0. Wartość fabryczna: 1. Jeżeli wartość rejsestru counter.current.pot.value wyznaczana jest na podstawie
                                          rejestru setting.pot.value, wówczas rejestr counter.current.pot.source ustawiony jest na 1. Żeby rejstr 
                                          counter.current.pot.source znowu przyjął wartość 0, trzeba poruszyć gałką potencjometra, żeby zmienić wartość rejestru
                                          input.r.3.value. opisywana strefa nieczułości definiuje wartość o jaką należy zmienić rejestr input.r.3.value, żeby
                                          counter.current.pot.source był ponownie ustawiony na 0. Dla przykładu, jeżeli input.r.3.value wskazuje aktualnie
                                          wartość 65 a setting.pot.deadband jest ustawiony na 2, wówczas zmiana wartości input.r.3.value w zakresie
                                          [65 - 2 .. 65 + 2] = [63 .. 67] nie powoduje żadnej reakcji jeżeli chodzi o zmianę counter.current.pot.source. dopiero
                                          po ustawieniu na wartość mniejszą od 63 lub większą od 67, powoduje zmianę wartości counter.current.pot.source na 1.
                                          
    setting.supply.optimal.t.value      - [RWS] (-250..1000) zadana wartość temperatury zasilania kominka wyrażona w dziesiętnych częściach stopnia celsiusza
                                          dla automatycznego trybu pracy, w stanie palenia i wygaszania. Wartość fabryczna: 450 (45*C). Układ regulacji
                                          automatycznej wentylatora stara się utrzymywać temperaturę input.t.0.value na tym poziomie, uwzglęniając dodatkowe
                                          parametry setting.fan.pid.kp, setting.fan.pid.ki oraz setting.fan.pid.kd. Czytaj opis rejestru ouput.px.0.value
                                         
    setting.fan.pid.kp                  - [RWS] (0..65535) współczynnik wzmocnienia statycznego regulatora PID obrotów wentylatora wyrażony w tysięcznych
                                          częściach. czytaj opis rejestru output.px.0.value. Wartość fabryczna: 5000

    setting.fan.pid.ki                  - [RWS] (0..65535) współczynnik wzmocnienia części całkującej regulatora PID obrotów wentylatora wyrażony w tysięcznych
                                          częściach. czytaj opis rejestru output.px.0.value. Wartość fabryczna: 0.

    setting.fan.pid.kd                  - [RWS] (0..65535) współczynnik wzmocnienia części różniczkującej regulatora PID obrotów wentylatora wyrażony w
                                          tysięcznych częściach. czytaj opis rejestru output.px.0.value. Wartość fabryczna: 0.
                                          
    counter.fan.pid.out                 - [R] (-32768..32767) pomocniczy rejestr będący wyjściem regulatora PID używany do strojenia regulatora.
    
    counter.fan.pid.current.integral    - [R] (-32768..32767) bieżąca wartość integrału dla regulatora PID.
    
    setting.fan.pid.integral.limit      - [RWS] (-32768..32767) ograniczenie wartości integrału - counter.fan.pid.integral może przyjmować wartości z zakresu
                                          [-counter.fan.pid.integral..counter.fan.pid.integral]. wartość fabryczna: 2000
                                          
    setting.load.pump.delta.lock.time   - [RWS] (0..65535) jest to czas wyrażony w minutach, przez jaki należy ignorować warunek załączenia pompy ładującej na 
                                          skutek wzrostu różnicy temperatur (input.t.0.value - input.t.1.value lub input.t.2.value - czytaj opis rejestru
                                          setting.load.pump.mode.delta.t) powyżej wartości setting.load.pump.on.delta.t  po nieudanym rozpalaniu, gdy urządzenie
                                          znajduje sie w stanie spoczynku. Aktualny czas, jaki pozostał do końca ignorowania tego warunku, pokazany jest w 
                                          rejestrze counter.load.pump.remaining.time. Wartość fabryczna: 40
    
    counter.load.pump.remaining.time    - [R] (0..65535)  jest to czas wyrażony w minutach, jaki pozostał do końca ignorowania warunku załączenia pompy 
                                          ładującej na skutek wzrostu różnicy temperatur (input.t.0.value - input.t.1.value lub input.t.2.value - czytaj opis
                                          rejestru setting.load.pump.mode.delta.t) powyżej wartości setting.load.pump.on.delta.t po nieudanym rozpalaniu, gdy 
                                          urządzenie znajduje sie w stanie spoczynku.
                                          
    setting.buff.limit.t.value          - [RWS] (10..1000) Wartość progowa temperatury zbiornika buforowego input.t.1.value, wyrażona w dziesiętnych częściach
                                          stopnia celsiusza, powyżej której nie ma zgody na załączenie dodatkowego urządzenia grzewczego (czytaj output.do.3).
                                          Wartość fabryczna: 300 (30*C)

    setting.buff.limit.t.hyst           - [RWS] (10..1000) histereza progowej temperatury zbiornika buforowego setting.buff.limit.t.value. wyrażona w
                                          dziesiętnych częściach stopnia celsiusza. Wartość fabryczna: 20 (2*C).
                                          
    setting.load.pump.mode.delta.t      - [RWS] (0..1) tryb wyznaczania delty załączenia/wyłączenia pompy ładującej. Wartość fabryczna: 0
                                          0 - delta załączenia pompy ładującej jest liczona w stosunku do różnicy temperatur (input.t.0.value 
                                              - input.t.1.value) - zasilaniem a buforem
                                          1 - delta załączenia pompy ładującej jest liczona w stosunku do różnicy temperatur (input.t.0.value 
                                              - input.t.2.value) - zasilaniem a sprzęgłem
                                         
    setting.buff.pump.min.worktime      - [RWS] (0..65535) minimalny czas pracy pompy buforowej wyrażony w minutach. Jeżeli pompa buforowa zostanie załączona,
                                          wówczas jednorazowo nie będzie pracować krócej niż czas w opisywanym rejestrze - pomimo iż logika będzie sterowała
                                          inaczej. Wartość fabryczna: 5 minut. Minimalny czas przewz jaki pompa jeszcze będzie pracować zawarty jest w 
                                          rejestrze counter.buff.pump.remaining.time. Czas ten nie jest uwzględniany jeżeli pompa została przełączona w tryb
                                          ręczny - czytaj opis rejestrów setting.buff.pump.manual.value oraz setting.buff.pump.mode.
                                          
    counter.buff.pump.remaining.time    - [R] (0..65535) minimalny czas, przez jaki pompa buforowa będzie jeszcze pracowała wyrażony w minutach. czytaj rejestr
                                          setting.buff.pump.min.worktime
    -->

    <HReg Addr="0"  Name="dev.hardware"                          Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="1"  Name="dev.firmware"                          Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="2"  Name="dev.version"                           Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="3"  Name="dev.uid.0"                             Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="4"  Name="dev.uid.1"                             Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="5"  Name="dev.uid.2"                             Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="6"  Name="dev.uid.3"                             Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="7"  Name="dev.reset"                             Rd="1" Wr="1" Min="1"       Max="1"           Presentation="signed"/>
    <HReg Addr="8"  Name="dev.restart"                           Rd="1" Wr="1" Min="1"       Max="1"           Presentation="signed"/>
    <HReg Addr="9"  Name="modbus.address"                        Rd="1" Wr="1" Min="1"       Max="255"         Presentation="signed"/>
    <HReg Addr="10" Name="input.t.0.value"                       Rd="1" Wr="0" Min="-250"    Max="1000"        Presentation="signed"/>
    <HReg Addr="11" Name="input.t.0.mf.value"                    Rd="1" Wr="0" Min="-250"    Max="1000"        Presentation="signed"/>
    <HReg Addr="12" Name="input.t.1.value"                       Rd="1" Wr="0" Min="-250"    Max="1000"        Presentation="signed"/>
    <HReg Addr="13" Name="input.t.2.value"                       Rd="1" Wr="0" Min="-250"    Max="1000"        Presentation="signed"/>
    <HReg Addr="14" Name="input.r.3.value"                       Rd="1" Wr="0" Min="0"       Max="100"         Presentation="unsigned"/>
    <HReg Addr="15" Name="input.r.3.raw.value"                   Rd="1" Wr="0" Min="0"       Max="1023"        Presentation="unsigned"/>
    <HReg Addr="16" Name="input.t.0.err"                         Rd="1" Wr="0" Min="0"       Max="5"           Presentation="signed"/>
    <HReg Addr="17" Name="input.t.1.err"                         Rd="1" Wr="0" Min="0"       Max="5"           Presentation="signed"/>
    <HReg Addr="18" Name="input.t.2.err"                         Rd="1" Wr="0" Min="0"       Max="5"           Presentation="signed"/>
    <HReg Addr="19" Name="output.px.0"                           Rd="1" Wr="0" Min="0"       Max="100"         Presentation="signed"/>
    <HReg Addr="20" Name="output.px.1"                           Rd="1" Wr="1" Min="0"       Max="100"         Presentation="signed"/>
    <HReg Addr="21" Name="output.do.0"                           Rd="1" Wr="0" Min="0"       Max="1"           Presentation="signed"/>
    <HReg Addr="22" Name="output.do.1"                           Rd="1" Wr="0" Min="0"       Max="1"           Presentation="signed"/>
    <HReg Addr="23" Name="output.do.2"                           Rd="1" Wr="0" Min="0"       Max="1"           Presentation="signed"/>
    <HReg Addr="24" Name="output.do.3"                           Rd="1" Wr="0" Min="0"       Max="1"           Presentation="signed"/>
    <HReg Addr="25" Name="setting.t.0.calib"                     Rd="1" Wr="1" Min="-100"    Max="100"         Presentation="signed"/>
    <HReg Addr="26" Name="setting.t.1.calib"                     Rd="1" Wr="1" Min="-100"    Max="100"         Presentation="signed"/>
    <HReg Addr="27" Name="setting.t.2.calib"                     Rd="1" Wr="1" Min="-100"    Max="100"         Presentation="signed"/>
    <HReg Addr="28" Name="setting.r.3.min.calib.trigger"         Rd="1" Wr="1" Min="1"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="29" Name="setting.r.3.max.calib.trigger"         Rd="1" Wr="1" Min="1"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="30" Name="setting.load.pump.on.t.value"          Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="31" Name="setting.hyd.t.demand"                  Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="32" Name="setting.supply.t.min.value"            Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="33" Name="setting.supply.t.max.value"            Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="34" Name="setting.airdamper.switch.t.value"      Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="35" Name="setting.load.pump.on.delta.t"          Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="36" Name="setting.load.pump.off.delta.t"         Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="37" Name="setting.buff.pump.on.delta.t"          Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="38" Name="setting.buff.pump.off.delta.t"         Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="39" Name="setting.load.pump.on.t.hyst"           Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="unsigned"/>
    <HReg Addr="40" Name="setting.hyd.t.hyst"                    Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="unsigned"/>
    <HReg Addr="41" Name="setting.supply.t.hyst"                 Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="unsigned"/>
    <HReg Addr="42" Name="setting.airdamper.switch.t.hyst"       Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="unsigned"/>
    <HReg Addr="43" Name="setting.extinguish.time"               Rd="1" Wr="1" Min="1"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="44" Name="setting.firing_up.time"                Rd="1" Wr="1" Min="1"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="45" Name="setting.fan.rpm.min.value"             Rd="1" Wr="1" Min="0"       Max="100"         Presentation="unsigned"/>
    <HReg Addr="46" Name="setting.fan.rpm.max.value"             Rd="1" Wr="1" Min="0"       Max="100"         Presentation="unsigned"/>
    <HReg Addr="47" Name="setting.control.mode"                  Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="48" Name="setting.hyd.heat.demand"               Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="49" Name="setting.fan.mode"                      Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="50" Name="setting.fan.manual.value"              Rd="1" Wr="1" Min="0"       Max="100"         Presentation="unsigned"/>
    <HReg Addr="51" Name="setting.airdamper.mode"                Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="52" Name="setting.airdamper.manual.value"        Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="53" Name="setting.buff.pump.mode"                Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="54" Name="setting.buff.pump.manual.value"        Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="55" Name="setting.load.pump.mode"                Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="56" Name="setting.load.pump.manual.value"        Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="57" Name="setting.heater.signal.mode"            Rd="1" Wr="1" Min="0"       Max="2"           Presentation="unsigned"/>
    <HReg Addr="58" Name="setting.heater.signal.manual.value"    Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="59" Name="setting.control.trigger"               Rd="1" Wr="1" Min="1"       Max="2"           Presentation="unsigned"/>
    <HReg Addr="60" Name="setting.pot.value"                     Rd="1" Wr="1" Min="0"       Max="100"         Presentation="unsigned"/>
    <HReg Addr="61" Name="setting.pot.deadband"                  Rd="1" Wr="1" Min="0"       Max="100"         Presentation="unsigned"/>
    <HReg Addr="62" Name="setting.supply.optimal.t.value"        Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="63" Name="setting.fan.pid.kp"                    Rd="1" Wr="1" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="64" Name="setting.fan.pid.ki"                    Rd="1" Wr="1" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="65" Name="setting.fan.pid.kd"                    Rd="1" Wr="1" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="66" Name="setting.fan.pid.integral.limit"        Rd="1" Wr="1" Min="0"       Max="32767"       Presentation="signed"/>
    <HReg Addr="67" Name="setting.buff.limit.t.value"            Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="signed"/>
    <HReg Addr="68" Name="setting.buff.limit.t.hyst"             Rd="1" Wr="1" Min="10"      Max="1000"        Presentation="unsigned"/>
    <HReg Addr="69" Name="setting.load.pump.delta.lock.time"     Rd="1" Wr="1" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="70" Name="setting.load.pump.mode.delta.t"        Rd="1" Wr="1" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="71" Name="setting.buff.pump.min.worktime"        Rd="1" Wr="1" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="72" Name="counter.device.state"                  Rd="1" Wr="0" Min="0"       Max="3"           Presentation="unsigned"/>
    <HReg Addr="73" Name="counter.r.3.min.calib.raw.value"       Rd="1" Wr="0" Min="0"       Max="1023"        Presentation="unsigned"/>
    <HReg Addr="74" Name="counter.r.3.max.calib.raw.value"       Rd="1" Wr="0" Min="0"       Max="1023"        Presentation="unsigned"/>
    <HReg Addr="75" Name="counter.control.mode"                  Rd="1" Wr="0" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="76" Name="counter.system.work_time"              Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="77" Name="counter.current.pot.value"             Rd="1" Wr="0" Min="0"       Max="100"         Presentation="unsigned"/>
    <HReg Addr="78" Name="counter.current.pot.source"            Rd="1" Wr="0" Min="0"       Max="1"           Presentation="unsigned"/>
    <HReg Addr="79" Name="counter.fan.pid.out"                   Rd="1" Wr="0" Min="-32768"  Max="32767"       Presentation="signed"/>
    <HReg Addr="80" Name="counter.fan.pid.current.integral"      Rd="1" Wr="0" Min="-32768"  Max="32767"       Presentation="signed"/>
    <HReg Addr="81" Name="counter.load.pump.remaining.time"      Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
    <HReg Addr="82" Name="counter.buff.pump.remaining.time"      Rd="1" Wr="0" Min="0"       Max="65535"       Presentation="unsigned"/>
  
  </HoldingRegisters>
  
  <InputRegisters>
  </InputRegisters>
  
  <Coils>
  </Coils>
  
  <DiscreteInputs>
  </DiscreteInputs>
  

</Device>