﻿<?xml version="1.0" encoding="utf-8"?>
<Templates format="2" protocolVersion="89">
  <Template revision="1.0" id="f57d670a-aadf-497e-a377-7edbc11da92f">
    <SuggestedCCUParameters>
      <UseAsciiCommunication>False</UseAsciiCommunication>
      <StopBits>One</StopBits>
      <DataBits>8</DataBits>
      <Parity>None</Parity>
      <Baudrate>9600</Baudrate>
      <DelayBetweenRequests>-1</DelayBetweenRequests>
      <ReadWriteTimeout>1000</ReadWriteTimeout>
    </SuggestedCCUParameters>
    <ImportParameters>
      <Parameter>
        <Id>SlaveId</Id>
        <Name>Slave Id</Name>
        <Value>1</Value>
      </Parameter>
      <Parameter>
        <Id>IpAddress</Id>
        <Name>IP address</Name>
        <Value>192.168.1.0</Value>
      </Parameter>
    </ImportParameters>
    <RevisionHistory>
      <Revision id="1.0">Initial version</Revision>
    </RevisionHistory>
    <Name>Liquid level sensor - retenčná nádrž</Name>
    <CcuModel>ModbusRtuCCU</CcuModel>
    <Producer></Producer>
    <Model></Model>
    <Description></Description>
    <Module>
      <Name>Liquid level sensor - retenčná nádrž</Name>
      <Id>-1</Id>
      <Model>ModbusModule</Model>
      <DeviceProperties>
        <DeviceType>7001</DeviceType>
        <InternalPollInterval>30000</InternalPollInterval>
        <PrefetchModeId>0</PrefetchModeId>
        <ServiceAttributesFormulas>[{"AttributeDefinition":{"Name":"Slave Address"},"ReadFormula":"modbusr(H, 0, int16);"},{"AttributeDefinition":{"Name":"Baud Rate"},"ReadFormula":"SWITCH(modbusr(H, 1, int16),\n\t0, 1200,\n\t1, 2400,\n\t2, 4800,\n\t3, 9600,\n\t4, 19200,\n\t5, 38400,\n\t6, 57600,\n\t7, 115200,\n      NaN\n);"},{"AttributeDefinition":{"Name":"Unit"},"ReadFormula":"switch(modbusr(H, 2, int16),\n\t0, \u0022MPa\u0022,\n\t1, \u0022KPa\u0022,\n\t2, \u0022Pa\u0022,\n\t3, \u0022bar\u0022,\n\t4, \u0022mbar\u0022,\n\t5, \u0022Kgcm2\u0022,\n\t6, \u0022PSI\u0022,\n\t7, \u0022mH2O\u0022,\n\t8, \u0022mmH2O\u0022,\n\t9, \u0022inH2O\u0022,\n\t10, \u0022H2O\u0022,\n\t11, \u0022mHg\u0022,\n\t12, \u0022mmHg\u0022,\n\t13, \u0022inHg\u0022,\n\t14, \u0022atm\u0022,\n\t15, \u0022Torr\u0022,\n\t16, \u0022m\u0022,\n\t17, \u0022cm\u0022,\n\t18, \u0022mm\u0022,\n\t19, \u0022Kg\u0022,\n\t20, \u0022\u00B0C\u0022,\n\t21, \u0022PH\u0022,\n\t22, \u0022\u00B0F\u0022,\n\tNaN\n);"},{"AttributeDefinition":{"Name":"Decimal points"},"ReadFormula":"SWITCH(modbusr(H, 3, int16),\n\t0, \u0022####\u0022,\n\t1, \u0022###.#\u0022,\n\t2, \u0022##.##\u0022,\n\t3, \u0022#.###\u0022,\t\n\t4, \u0022#.###\u0022,\n\tNaN\n);"}]</ServiceAttributesFormulas>
        <ServiceActionsScripts>[{"ActionDefinition":{"Name":"Rewrite the Slave Address","NumericParameters":[{"FriendlyName":"Slave Address","Abbreviation":"SlaveAddr","IsFloat":false,"MinValue":1,"MaxValue":255}],"BoolParameters":[],"EnumParameters":[]},"Script":"modbusw(SH, 0, int16, SlaveAddr);\nmodbusw(SH, 15, int16, 0);  # Save to user area"}]</ServiceActionsScripts>
        <SlaveId>$[SlaveId]</SlaveId>
        <MaxPrefetchGroupSize>100</MaxPrefetchGroupSize>
        <IpAddress>$[IpAddress]</IpAddress>
      </DeviceProperties>
      <Devices>
        <Device>
          <Name>Water level</Name>
          <Model>ModbusVariable</Model>
          <Id>-2</Id>
          <DeviceProperties>
            <DeviceType>0</DeviceType>
            <SerializedValueLogTypeConversions>{"86":"{\u0022ValueLogTypeConversionTypeId\u0022:3,\u0022SerializedValueLogTypeConversion\u0022:\u0022{\\u0022Value1OnInput\\u0022:0,\\u0022Value1OnOutput\\u0022:0,\\u0022Value2OnInput\\u0022:1,\\u0022Value2OnOutput\\u0022:1,\\u0022SourceValueLogTypes\\u0022:[62],\\u0022TargetValueLogType\\u0022:86}\u0022}"}</SerializedValueLogTypeConversions>
            <InternalPollInterval>15000</InternalPollInterval>
            <InitializeScript></InitializeScript>
            <ReadScript></ReadScript>
            <PrefetchModeId>0</PrefetchModeId>
            <ServiceAttributesFormulas></ServiceAttributesFormulas>
            <ServiceActionsScripts></ServiceActionsScripts>
            <CustomDeviceVariables />
            <ShouldDoPeriodicWrite>False</ShouldDoPeriodicWrite>
            <IsReadOnly>True</IsReadOnly>
            <ReadState>VAR val := MODBUSR(H, 4, Int16)/power(10, modbusr(H, 3, int16));

switch(modbusr(H, 2, int16),
	16, val,
	17, val / 100, 
	NaN
);</ReadState>
            <WriteState></WriteState>
            <IconId>0</IconId>
          </DeviceProperties>
        </Device>
      </Devices>
    </Module>
  </Template>
</Templates>
