<?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="1" 
        FirmwareVersion="6">
  <HoldingRegisters SetMode="Multiple">
  
  
    <!--
    dev.hardware                  - identyfikator sprzętu - 3
    
    dev.firmware                  - identyfikator oprogramowania - 1
    
    dev.version                   - wersja oprogramowania - 6
    
    dev.uid.0                           
    dev.uid.1
    dev.uid.2
    dev.uid.3                     - [R] unikalny identyfikator urządzenia.

    dev.reset                     - ustawienie na jeden tej flagi powoduje przywrócenie ustawień fabrycznych

    dev.restart                   - ustawienie na jeden tej flagi powoduje restart urządzenia
    
    modbus.address                - adres modbus urządzenia - wartość domyślna to 255
    
    input.t.0.value, 
    input.t.1.value, 
    input.t.2.value, 
    input.t.3.value               - wartości temperatur zmierzone odpowiednio na kanałach 0, 1, 2, 3 w dziesiętnych częściach stopnia celsiusza. mogą one
                                    być również wykorzystane jako wejścia dwustanowe - patrz "statusy wejść temperaturowych"
    
    input.t.0.err, 
    input.t.1.err, 
    input.t.2.err, 
    input.t.3.err                 - statusy wejść temperaturowych, odpowiednio 0, 1, 2, 3.
                                    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
    output.px.1                   - wartości dla wyjść analogowych pwm. [0..100]. Po uruchomieniu urządzenia rejestry te ładowane
                                    są wartościami domyślnymi, które zapisane są w rejestrach odpowiednio setting.default.px.0
                                    oraz setting.default.px.0.
                              
    output.do.0                   - wyjście dwustanowe przekaźnikowe. Wyjście to jest również wykorzystywane przez
                                    funkcję watchdoga, jeżeli została ona aktywowana - patrz dalszy opis. Jeżeli funkcja watchdoga
                                    nie jest aktywna, wówczas podczas uruchomienia, do rejestru tego przepisywana jest wartość
                                    z rejestru setting.default.do.0. Odczyt tego rejestru zwraca zawsze faktyczny stan danego przekaźnika. 
                                    Ustawienie tego rejestru, powoduje automatyczne ustawienie powiązanego z nim  przekaźnika.
                                    
    output.do.1
    output.do.2
    output.do.3
    output.do.4                     - wyjścia dwustanowe przekaźnikowe. [0..1]. Podczas uruchomienia, do rejestrów tych przepisywane
                                    są wartości rejestrów odpowiednio: setting.default.do.1, setting.default.do.2, setting.default.do.3, setting.default.do.4.
                                    Odczyt ich zwraca zawsze faktyczny stan danego przekaźnika. Ustawienie ich, powoduje automatyczne
                                    ustawienie przekaźnika związanego z danym rejestrem
   
    setting.default.px.0
    setting.default.px.1          - wartości domyślne wyjść pwm. [0..100]. Wartości tych rejestrów są przepisywane do rejestrów odpowiednio
                                    output.px.0 i output.px.1 podczas startu urządzenia
                              
    setting.default.do.0
    setting.default.do.1
    setting.default.do.2
    setting.default.do.3
    setting.default.do.4          - wartości domyślne wyjść przekaźnikowych [0..1]. Wartości tych rejestrów są przepisywane do rejestrów 
                                    odpowiednio output.do.0, output.do.1, output.do.2, output.do.3 oraz output.do.4 podczas startu urządzenia o ile nie zostały
                                    załączone funkcje watchdoga (kanał 0).
                              
    setting.px.0.min
    setting.px.1.min              - rejestry kalibrujące wyjścia pwm odpowiedio output.px.0 oraz output.px.1. [0..100]. Wartość ta jest podawana do
                                    odpowiedniego kanału PWM, jeżeli na odpowiednim wejściu output.px.N wpisano wartość 0. Wartość ta nie może być
                                    większa od odpowiedniego rejestru setting.px.N.max
                              
    setting.px.0.max
    setting.px.1.max              - rejestry kalibrujące wyjścia pwm odpowiedio output.px.0 oraz output.px.1. [0..100]. Wartość ta jest podawana do
                                    odpowiedniego kanału PWM, jeżeli na odpowiednim wejściu output.px.N wpisano wartość 100. Wartość ta nie może być
                                     mniejsza od odpowiedniego rejestru setting.px.N.min
                              
                              
    setting.t.0.calib
    setting.t.1.calib
    setting.t.2.calib
    setting.t.3.calib             - rejestry kalibrujące wskazania temperatur w jednostkach dziesiętnych stopni celsiusza [-50..50]. 
                                    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.
                              
    counter.system.work_time      - czas pracy urządzenia wyrażony w minutach             

    setting.hwd.period            - rejestr funkcji watchdoga. Jeżeli jest wpisana wartość zero to funkcja watchdoga jest wyłączona. Każda
                                    inna wartość powoduje że funkcja watchdoga jest załączona i oznacza okres w sekundach, maksymalnie przez który musi
                                    zostać wpisana wartość 1 do rejestru setting.hwd.heartbit, żeby wyjście output.do.0 nie zostało ustawione na 0.
    
    setting.hwd.heartbit          - rejestr watchdoga [1], który przy aktywnej tej funkcji cyklicznie musi być pobudzany żeby nie zostało ustawione 0
                                    na wyjściu output.do.0 - patrz opis setting.hwd.period.
                                   
    setting.hwd.reset.time        - rejestr watchdoga oznaczający czas impulsu resetującego wyjście output.do.0 wyrażony w sekundach. 
                                    Jeżeli przez okres czasu, który jest zapisany w rejestrze setting.hwd.period nie nastąpi pobudzenie
                                    rejestru setting.hwd.heartbit, wówczas wyjście output.do.0 zostanie ustawione na 0 na ten okres po czym
                                    zostanie ustawione spowrotem na jeden.
                                   
    counter.hwd.resets_no         - liczba resetów wykonanych przez watchdog. Resety spowodowane ręcznie oraz wyzwolone przez funkcję "Delay Trigger" nie są zliczane

    setting.hwd.clr_resets_no     - wpisanie jedynki do tego rejestru powoduje wyczyszczenie rejestru counter.hwd.resets_no

    -->

    <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="hex"/>
    <HReg Addr="4"  Name="dev.uid.1"                  Rd="1" Wr="0" Min="0"      Max="65535"  Presentation="hex"/>
    <HReg Addr="5"  Name="dev.uid.2"                  Rd="1" Wr="0" Min="0"      Max="65535"  Presentation="hex"/>
    <HReg Addr="6"  Name="dev.uid.3"                  Rd="1" Wr="0" Min="0"      Max="65535"  Presentation="hex"/>
    <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="-32768" Max="32767"  Presentation="signed"/>
    <HReg Addr="11" Name="input.t.1.value"            Rd="1" Wr="0" Min="-32768" Max="32767"  Presentation="signed"/>
    <HReg Addr="12" Name="input.t.2.value"            Rd="1" Wr="0" Min="-32768" Max="32767"  Presentation="signed"/>
    <HReg Addr="13" Name="input.t.3.value"            Rd="1" Wr="0" Min="-32768" Max="32767"  Presentation="signed"/>
    <HReg Addr="14" Name="input.t.0.err"              Rd="1" Wr="0" Min="0"      Max="3"      Presentation="signed"/>
    <HReg Addr="15" Name="input.t.1.err"              Rd="1" Wr="0" Min="0"      Max="3"      Presentation="signed"/>
    <HReg Addr="16" Name="input.t.2.err"              Rd="1" Wr="0" Min="0"      Max="3"      Presentation="signed"/>
    <HReg Addr="17" Name="input.t.3.err"              Rd="1" Wr="0" Min="0"      Max="3"      Presentation="signed"/>
    <HReg Addr="18" Name="output.px.0"                Rd="1" Wr="1" Min="0"      Max="100"    Presentation="signed"/>
    <HReg Addr="19" Name="output.px.1"                Rd="1" Wr="1" Min="0"      Max="100"    Presentation="signed"/>
    <HReg Addr="20" Name="output.do.0"                Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="21" Name="output.do.1"                Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="22" Name="output.do.2"                Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="23" Name="output.do.3"                Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="24" Name="output.do.4"                Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="25" Name="setting.default.px.0"       Rd="1" Wr="1" Min="0"      Max="100"    Presentation="signed"/>
    <HReg Addr="26" Name="setting.default.px.1"       Rd="1" Wr="1" Min="0"      Max="100"    Presentation="signed"/>
    <HReg Addr="27" Name="setting.default.do.0"       Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="28" Name="setting.default.do.1"       Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="29" Name="setting.default.do.2"       Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="30" Name="setting.default.do.3"       Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="31" Name="setting.default.do.4"       Rd="1" Wr="1" Min="0"      Max="1"      Presentation="signed"/>
    <HReg Addr="32" Name="setting.px.0.min"           Rd="1" Wr="1" Min="0"      Max="100"    Presentation="signed"/>
    <HReg Addr="33" Name="setting.px.0.max"           Rd="1" Wr="1" Min="0"      Max="100"    Presentation="signed"/>
    <HReg Addr="34" Name="setting.px.1.min"           Rd="1" Wr="1" Min="0"      Max="100"    Presentation="signed"/>
    <HReg Addr="35" Name="setting.px.1.max"           Rd="1" Wr="1" Min="0"      Max="100"    Presentation="signed"/>
    <HReg Addr="36" Name="setting.t.0.calib"          Rd="1" Wr="1" Min="-50"    Max="50"     Presentation="signed"/>
    <HReg Addr="37" Name="setting.t.1.calib"          Rd="1" Wr="1" Min="-50"    Max="50"     Presentation="signed"/>
    <HReg Addr="38" Name="setting.t.2.calib"          Rd="1" Wr="1" Min="-50"    Max="50"     Presentation="signed"/>
    <HReg Addr="39" Name="setting.t.3.calib"          Rd="1" Wr="1" Min="-50"    Max="50"     Presentation="signed"/>
    <HReg Addr="40" Name="counter.system.work_time"   Rd="1" Wr="0" Min="0"      Max="65535"  Presentation="unsigned"/>
    <HReg Addr="41" Name="setting.hwd.period"         Rd="1" Wr="1" Min="0"      Max="65535"  Presentation="unsigned"/>
    <HReg Addr="42" Name="setting.hwd.heartbit"       Rd="1" Wr="1" Min="1"      Max="1"      Presentation="signed"/>
    <HReg Addr="43" Name="setting.hwd.reset.time"     Rd="1" Wr="1" Min="1"      Max="65535"  Presentation="unsigned"/>
    <HReg Addr="44" Name="counter.hwd.resets_no"      Rd="1" Wr="0" Min="0"      Max="65535"  Presentation="unsigned"/>
    <HReg Addr="45" Name="setting.hwd.clr_resets_no"  Rd="1" Wr="1" Min="1"      Max="1"      Presentation="signed"/>
  </HoldingRegisters>
  
  <InputRegisters>
  </InputRegisters>
  
  <Coils>
  </Coils>
  
  <DiscreteInputs>
  </DiscreteInputs>
  

</Device>