<?xml version="1.0" encoding="utf-8"?>
<protocol name="Modbus" caption="Modbus" module="ModbusRtu" driver="Async" version="2.0"
  redundancy="Modbus" priority="0"
  IPaddress="127.0.0.1" port="2406"
  portNumber="1" baudRate="19200" dataBits="8" parity="0" stopBits="0"
  portCfg="0" timeoutCfg="0" 
  direction="0" 
  protocolId="0"        
  timeShiftS="0" timeShiftW="0" startDelay="0" repeat="3"
  t0="2000" t1="3000" t2="0" t3="0" t4="4000" t13="100" t14="50" connectionOscillationRate="0" connectionOscillationCount="0">
  <properties title="number,caption,name" format="%s, %s (%s)"
    rdx="line(index=number,name=name,type=module,driver=driver,redLine=priority,
      IPaddress=IPaddress,port=port,
      portNumber=portNumber,baudRate=baudRate,dataBits=dataBits,parity=parity,stopBits=stopBits,
	  portCfg=portCfg,timeoutCfg=timeoutCfg,
      direction=direction,
      protocolId=protocolId,
      timeShiftS=timeShiftS,timeShiftW=timeShiftW,startDelay=startDelay,repeat=repeat,
      t0=t0,t1=t1,t2=t2,t3=t3,t4=t4,t13=t13,t14=t14,connectionOscillationRate=connectionOscillationRate,connectionOscillationCount=connectionOscillationCount)">
    <property name="name" caption="Протокол"
      type="text"	editing="false" visible="false" key="false"/>
    <property name="caption" caption="Наименование"
      type="text"	editing="true" visible="true" key="false"/>
    <property name="module" caption="Модуль"
      type="text"	editing="true" visible="true" key="false">
      <enum item="ModbusRtu" caption="ModbusRtu"/>
      <enum item="ModbusRtuSlave" caption="ModbusRtuSlav"/>
      <enum item="ModbusAscii" caption="ModbusAscii"/>
      <enum item="ModbusAsciiSlave" caption="ModbusAsciiSlave"/>
      <enum item="ModbusTcp" caption="ModbusTcp"/>
      <enum item="ModbusTcpSlave" caption="ModbusTcpSlave"/>
    </property>
    <property name="driver" caption="Драйвер"
      type="text"	editing="true" visible="true" key="false">
      <enum item="Async" caption="COM-порт (Serial)"/>
      <enum item="Tcp" caption="Tcp-master"/>
      <enum item="TcpServer" caption="TcpServer-slave"/>
      <enum item="Udp" caption="Udp"/>
    </property>
    <property name="redundancy" caption="Резервирование"
   	  type="text"	editing="false" visible="false" key="false"/>
    <property name="priority" caption="Приоритет"
      type="int"	editing="true" visible="true" key="false">
      <range min="0" max="100"/>
    </property>
    <property name="IPaddress" caption="IP-адрес"
      type="text"	editing="true" visible="true" key="false"/>
    <property name="port" caption="TCP-порт"
      type="int"	editing="true" visible="true" key="false"/>
    <property name="portNumber" caption="COM-порт"
      type="int"	editing="true" visible="true" key="false"/>
    <property name="baudRate" caption="Скорость"
      type="text"	editing="true" visible="true" key="false">
      <enum item="100" caption="100"/>
      <enum item="110" caption="110"/>
      <enum item="200" caption="200"/>
      <enum item="300" caption="300"/>
      <enum item="600" caption="600"/>
      <enum item="1200" caption="1200"/>
      <enum item="2400" caption="2400"/>
      <enum item="4800" caption="4800"/>
      <enum item="9600" caption="9600"/>
      <enum item="14400" caption="14400"/>
      <enum item="19200" caption="19200"/>
      <enum item="38400" caption="38400"/>
      <enum item="56000" caption="56000"/>
      <enum item="57600" caption="57600"/>
      <enum item="115200" caption="115200"/>
      <enum item="128000" caption="128000"/>
      <enum item="256000" caption="256000"/>
    </property>
    <property name="dataBits" caption="Длина слова"
      type="text"	editing="true" visible="false" key="false">
      <enum item="5" caption="5"/>
      <enum item="6" caption="6"/>
      <enum item="7" caption="7"/>
      <enum item="8" caption="8*"/>
    </property>
    <property name="parity" caption="Паритет"
      type="text"	editing="true" visible="true" key="false">
      <enum item="0" caption="0-NOPARITY"/>
      <enum item="1" caption="1-ODDPARITY"/>
      <enum item="2" caption="2-EVENPARITY*"/>
      <enum item="3" caption="3-MARKPARITY"/>
    </property>
    <property name="stopBits" caption="Количество стоп-бит"
      type="text"	editing="true" visible="false" key="false">
      <enum item="0" caption="0-ONESTOPBIT*"/>
      <enum item="1" caption="1-ONE5STOPBITS"/>
      <enum item="2" caption="2-TWOSTOPBITS"/>
    </property>
    <property name="portCfg" caption="Удаленное конфигурирование (TCP-порт)"
      type="int"	editing="true" visible="true" key="false"/>
    <property name="timeoutCfg" caption="Удаленное конфигурирование (таймаут, сек)"
      type="int"	editing="true" visible="true" key="false"/>
    <property name="direction" caption="Первичная (вторичная) станция"
      type="bool"	editing="true" visible="false" key="false"/>
    <property name="protocolId" caption="Идентификатор протокола"
      type="int"	editing="true" visible="false" key="false"/>
    <property name="timeShiftS" caption="Сдвиг летнего времени(s)"
      type="int"	editing="true" visible="true" key="false"/>
    <property name="timeShiftW" caption="Сдвиг зимнего времени(s)"
      type="int"	editing="true" visible="true" key="false"/>
    <property name="t0" caption="Таймаут подключения (ms)"
      type="int" editing="true" visible="true" key="false"/>
    <property name="t1" caption="Таймаут ожидания ответа (ms)"
      type="int" editing="true" visible="true" key="false"/>
    <property name="t2" caption="Таймаут синхронизации часов (ms). GE Multilin F650"
      type="int" editing="true" visible="true" key="false"/>
    <property name="t3" caption="Таймаут snapshot"
      type="int" editing="true" visible="true" key="false"/>
    <property name="t4" caption="Таймаут запросов (ms)"
      type="int" editing="true" visible="true" key="false"/>
    <property name="repeat" caption="Количество повторных запросов"
      type="int" editing="true" visible="true" key="false"/>
    <property name="t13" caption="Таймаут обмена по TCP/IP (ms)"
      type="int" editing="true" visible="false" key="false"/>
    <property name="t14" caption="Таймаут ожидания не в overlaped режиме (ms)"
      type="int" editing="false" visible="false" key="false"/>
    <property name="connectionOscillationRate" caption="Таймаут дребезга канала (сек)"
      type="int" editing="false" visible="false" key="false"/>
    <property name="connectionOscillationCount" caption="Число быстрых изменений"
      type="int" editing="false" visible="false" key="false"/>
  </properties>
 	<remoteunit address="1" caption="Устройство" byteOrder="0" oscFlag="false" oscPath="." path="">
    <properties title="caption" format="%s">
      <property name="caption" caption="Наименование"
        type="text"	editing="true" visible="true" key="false"/>
      <property name="address" caption="Адрес устройства"
        type="int"	editing="true" visible="true" key="true"/>
      <property name="byteOrder" caption="Обратный порядок байт"
        type="bool"	editing="true" visible="true" key="false"/>
      <property name="oscFlag" caption="Чтение осциллограмм"
        type="bool"	editing="true" visible="true" key="false"/>
      <property name="oscPath" caption="Папка для осциллограмм"
        type="text"	editing="true" visible="true" key="false"/>
      <property name="path" caption="path" type="text" editing="false" visible="true" key="false"/>
    </properties>
    <source caption="" function="1" no="1" start="0" length="1" type="1" no2="0">
      <properties title="no,caption" format="%s, %s" rdx="rtu(address=remoteunit.address,byteOrder=remoteunit.byteOrder,oscFlag=remoteunit.oscFlag,oscPath=remoteunit.oscPath),board(function=function),informationObject(no=no,count=count,start=start,length=length,type=type,no2=no2)">
        <property name="caption" caption="Наименование" type="text" editing="true" visible="true" key="false"/>
        <property name="function" caption="Тип регистра" type="int" editing="true" visible="true" key="true">
          <enum item="1" caption="1-Coils (bit)"/>
          <enum item="2" caption="2-Discrete Inputs (bit)"/>
          <enum item="3" caption="3-Holding Registers (int2)"/>
          <enum item="4" caption="4-Input Register (int2)"/>
          <enum item="100" caption="100-Holding Registers (uint2)"/>
          <enum item="101" caption="101-Input Registers (uint2)"/>
          <enum item="102" caption="102-Holding Registers (int4)"/>
          <enum item="103" caption="103-Holding Registers (float4)"/>
          <enum item="104" caption="104-Input Registers (int4)"/>
          <enum item="105" caption="105-Input Registers (float4)"/>
          <enum item="106" caption="106-Holding Registers (count, start, length, type)"/>
          <enum item="107" caption="107-Input Registers (count, start, length, type)"/>
          <enum item="108" caption="108-Holding Registers (int4, Telys)"/>
          <enum item="109" caption="109-Input Registers (int4, Telys)"/>
          <enum item="71" caption="71-состояние"/>
          <!-- 
          <enum item="1" caption="1-Coils: This function code is used to read from 1 to 2000 contiguous status of coils in a remote device"/>
          <enum item="2" caption="2-Discrete Inputs: This function code is used to read from 1 to 2000 contiguous status of discrete inputs in a remote device"/>
          <enum item="3" caption="3-Holding Registers: This function code is used to read the contents of a contiguous block of holding registers in a remote device"/>
          <enum item="4" caption="4-Input Register: This function code is used to read from 1 to approx. 125 contiguous input registers in a remote device"/>
          -->
        </property>
        <property name="no" caption="Адрес регистра" type="int" editing="true" visible="true" key="true" rep="%d"/>
        <property name="count" caption="Количество запрашиваемых регистров" type="int" editing="true" visible="true" key="false"/>
        <property name="start" caption="Смещение (bit)" type="int" editing="true" visible="true" key="true"/>
        <property name="length" caption="Длина (bit)" type="int" editing="true" visible="true" key="false"/>
        <property name="type" caption="Тип значения" type="int" editing="true" visible="true" key="false">
          <enum item="1" caption="1-int"/>
          <enum item="2" caption="2-uint"/>
          <enum item="3" caption="3-float"/>
          <enum item="4" caption="4-string"/>
          <enum item="5" caption="5-bool"/>
        </property>
        <property name="no2" caption="Дополнительный адрес" type="int" editing="false" visible="false" key="false"/>
      </properties>
    </source>
    <pass  caption="" function="1" no="1" start="0" length="1" type="1" no2="0">
      <properties title="no,caption" format="%s, %s" rdx="crt(address=remoteunit.address,byteOrder=remoteunit.byteOrder,oscFlag=remoteunit.oscFlag,oscPath=remoteunit.oscPath,function=function,no=no,start=start,length=length,type=type,no2=no2)">
        <property name="caption" caption="Наименование" type="text" editing="true" visible="true" key="false"/>
        <property name="function" caption="Тип регистра" type="int" editing="true" visible="true" key="true">
          <enum item="3" caption="3-Holding Registers (int2)"/>
          <enum item="4" caption="4-Input Register (int2)"/>
          <enum item="5" caption="5-Single Coil"/>
          <enum item="6" caption="6-Single Register"/>
          <enum item="16" caption="16-Multiple Registers"/>
        </property>
        <property name="no" caption="Адрес регистра" type="int" editing="true" visible="true" key="true" rep="%d"/>
        <property name="start" caption="Смещение (bit)" type="int"	editing="true" visible="true" key="true"/>
        <property name="length" caption="Длина (bit)" type="int" editing="true" visible="true" key="false"/>
        <property name="type" caption="Тип значения" type="int" editing="true" visible="true" key="false">
          <enum item="1" caption="1-int"/>
          <enum item="2" caption="2-uint"/>
          <enum item="3" caption="3-float"/>
          <enum item="4" caption="4-bin"/>
        </property>
        <property name="no2" caption="Дополнительный адрес" type="int" editing="false" visible="false" key="false"/>
      </properties>
    </pass>
    <controlsource caption="" function="1" no="1" start="0" length="1" type="1" no2="0">
      <properties title="no,caption" format="%s, %s" rdx="rtu(address=remoteunit.address,byteOrder=remoteunit.byteOrder,oscFlag=remoteunit.oscFlag,oscPath=remoteunit.oscPath),board(function=function),informationObject(no=no,start=start,length=length,type=type,no2=no2)">
        <property name="caption" caption="Наименование" type="text" editing="true" visible="true" key="false"/>
        <property name="function" caption="Тип регистра" type="int" editing="true" visible="false" key="true">
          <enum item="5" caption="5-Single Coil"/>
          <enum item="6" caption="6-Single Register"/>
          <enum item="16" caption="16-Multiple Registers"/>
          <enum item="201" caption="Телеуправление МС1218Ц"/>
          <enum item="202" caption="Телеуправление ЭНМВ-1-0/3R-220-A1"/>
          <enum item="203" caption="Телеуправление Сириус-2-Л"/>
        </property>
        <property name="no" caption="Адрес регистра" type="int" editing="true" visible="false" key="true" rep="%d"/>
        <property name="start" caption="Смещение (bit)" type="int" editing="true" visible="false" key="true"/>
        <property name="length" caption="Длина (bit)" type="int" editing="true" visible="false" key="false"/>
        <property name="type" caption="Тип значения" type="int" editing="true" visible="false" key="false">
          <enum item="1" caption="1-int"/>
          <enum item="2" caption="2-uint"/>
          <enum item="3" caption="3-float"/>
          <enum item="4" caption="4-bin"/>
        </property>
        <property name="no2" caption="Дополнительный адрес" type="int" editing="false" visible="false" key="false"/>
      </properties>
    </controlsource>
    <controlpass  caption="" function="1" no="1" start="0" length="1" type="1" no2="0">
      <properties title="no,caption" format="%s, %s" rdx="crt(address=remoteunit.address,byteOrder=remoteunit.byteOrder,oscFlag=remoteunit.oscFlag,oscPath=remoteunit.oscPath,function=function,no=no,start=start,length=length,type=type,no2=no2)">
        <property name="caption" caption="Наименование" type="text" editing="true" visible="true" key="false"/>
        <property name="function" caption="Тип регистра" type="int" editing="true" visible="true" key="true">
          <enum item="5" caption="5-Single Coil"/>
          <enum item="6" caption="6-Single Register"/>
          <enum item="16" caption="16-Multiple Registers"/>
          <enum item="201" caption="Телеуправление МС1218Ц"/>
          <enum item="202" caption="Телеуправление ЭНМВ-1-0/3R-220-A1"/>
          <enum item="203" caption="Телеуправление Сириус-2-Л"/>
        </property>
        <property name="no" caption="Адрес регистра" type="int" editing="true" visible="true" key="true" rep="%d"/>
        <property name="start" caption="Смещение (bit)" type="int"	editing="true" visible="true" key="true"/>
        <property name="length" caption="Длина (bit)" type="int" editing="true" visible="false" key="false"/>
        <property name="type" caption="Тип значения " type="int" editing="true" visible="false" key="false">
          <enum item="1" caption="1-int"/>
          <enum item="2" caption="2-uint"/>
          <enum item="3" caption="3-float"/>
          <enum item="4" caption="4-bin"/>
        </property>
        <property name="no2" caption="Дополнительный адрес" type="int" editing="true" visible="true" key="false"/>
      </properties>
    </controlpass>
  </remoteunit>
</protocol>
