﻿<?xml version="1.0" encoding="utf-8"?>
<DeviceDescription xmlns="http://www.3s-software.com/schemas/DeviceDescription-1.0.xsd" xmlns:ts="http://www.3s-software.com/schemas/TargetSettings-0.1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Types namespace="localTypes">
	<EnumType basetype="std:DWORD" name="BaudrateType">
      <Enum identifier="B4800">
        <Value>4800</Value>
        <VisibleName name="local:B4800">4800</VisibleName>
      </Enum>
	  <Enum identifier="B9600">
        <Value>9600</Value>
        <VisibleName name="local:B9600">9600</VisibleName>
      </Enum>
	  <Enum identifier="B19200">
        <Value>19200</Value>
        <VisibleName name="local:B19200">19200</VisibleName>
      </Enum>
	  <Enum identifier="B57600">
        <Value>57600</Value>
        <VisibleName name="local:B57600">57600</VisibleName>
      </Enum>
	  <Enum identifier="B115200">
        <Value>115200</Value>
        <VisibleName name="local:B115200">115200</VisibleName>
      </Enum>
    </EnumType>
	<EnumType basetype="std:STRING" name="ParityType">
      <Enum identifier="EVEN">
        <Value>'E'</Value>
        <VisibleName name="local:EVEN">EVEN</VisibleName>
      </Enum>
      <Enum identifier="ODD">
        <Value>'O'</Value>
        <VisibleName name="local:ODD">ODD</VisibleName>
      </Enum>
      <Enum identifier="NONE">
        <Value>'N'</Value>
        <VisibleName name="local:NONE">NONE</VisibleName>
      </Enum>
    </EnumType>
	<EnumType basetype="std:BYTE" name="DatabitType">
      <Enum identifier="D7">
        <Value>7</Value>
        <VisibleName name="local:D7">7</VisibleName>
      </Enum>
      <Enum identifier="D8">
        <Value>8</Value>
        <VisibleName name="local:D7">8</VisibleName>
      </Enum>
    </EnumType> 
	<EnumType basetype="std:BYTE" name="StopbitType">
      <Enum identifier="S1">
        <Value>1</Value>
        <VisibleName name="local:S1">1</VisibleName>
      </Enum>
      <Enum identifier="S2">
        <Value>2</Value>
        <VisibleName name="local:S2">2</VisibleName>
      </Enum>
    </EnumType>
	<EnumType basetype="std:BYTE" name="ComIDType">
      <Enum identifier="COM1">
        <Value>1</Value>
        <VisibleName name="local:COM1">1</VisibleName>
      </Enum>
      <Enum identifier="COM2">
        <Value>2</Value>
        <VisibleName name="local:COM2">2</VisibleName>
      </Enum>
    </EnumType>
	<RangeType basetype="std:BYTE" name="SlaveIDType"> 
	  <Min>1</Min>
	  <Max>247</Max>
	  <Default>1</Default>
	</RangeType>
	<RangeType basetype="std:WORD" name="FrameTimeoutType"> 
	  <Min>1</Min>
	  <Max>999</Max>
	  <Default>100</Default>
	</RangeType>
  </Types> 

  <Strings namespace="local">
    <Language lang="en">
      <String identifier="ModelName">ModbusRtuDevice</String>  
      <String identifier="DeviceDescription"></String>
      <String identifier="VendorName">HCFA</String>
      <String identifier="typedescription">HCFA modbus RTU device</String>
    </Language>
  </Strings>
  
  <Device hideInCatalogue="false">  
    <DeviceIdentification>
      <Type>32805</Type>
      <Id>16c7 0001</Id>  
      <Version>1.0.0.0</Version>   
    </DeviceIdentification>
    <DeviceInfo>
      <Name name="local:ModelName">ModbusRtuDevice</Name>  
      <Description name="local:DeviceDescription">HCFA modbus RTU device</Description>
      <Vendor name="local:VendorName">HCFA</Vendor>
      <OrderNumber>-</OrderNumber>  	 
    </DeviceInfo>
	
    <!--Child Connector Description,child connectors should always be defined as slot and the slot count must be 1--> 	  
    <Connector connectorId="1" moduleType="32805" interface="Common.PCI" role="child" explicit="false" hostpath="-1">
      <InterfaceName name="local:PCI">ModbusRtuDevice</InterfaceName>
      <Slot count="1" allowEmpty="false"></Slot>  
	  
	  <HostParameterSet> 
	    <!--Modbus serial port config-->
		  <Parameter ParameterId="41000" type="localTypes:ComIDType">
			<Attributes offlineaccess="readwrite" onlineaccess="read" download="true" functional="false" />
			<Default>1</Default>
			<Name name="local:Parameter.COMID">COMID</Name>
			<Description name="local:Parameter.COMID">The com port used for communication</Description>
		  </Parameter>
		  
          <Parameter ParameterId="41001" type="localTypes:BaudrateType">
            <Attributes offlineaccess="readwrite" onlineaccess="read" download="true" functional="false" />
            <Default>9600</Default>
            <Name name="local:Parameter.Baudrate">Baudrate</Name>
            <Description name="local:Parameter.Baudrate">Baudrate of the serial port</Description>
          </Parameter>
		  
		  <Parameter ParameterId="41002" type="localTypes:DatabitType">
            <Attributes offlineaccess="readwrite" onlineaccess="read" download="true" functional="false" />
            <Default>8</Default>
            <Name name="local:Parameter.Databit">Databit</Name>
            <Description name="local:Parameter.Databit">Databit of the serial port</Description>
          </Parameter>
		  
		  <Parameter ParameterId="41003" type="localTypes:StopbitType">
            <Attributes offlineaccess="readwrite" onlineaccess="read" download="true" functional="false" />
            <Default>1</Default>
            <Name name="local:Parameter.Stopbit">Stopbit</Name>
            <Description name="local:Parameter.Stopbit">Stopbit of the serial port</Description>
          </Parameter>
		  
		  <Parameter ParameterId="41004" type="localTypes:ParityType">
            <Attributes offlineaccess="readwrite" onlineaccess="read" download="true" functional="false" />
            <Default>'E'</Default>
            <Name name="local:Parameter.Parity">Parity</Name>
            <Description name="local:Parameter.Parity">Parity for messages on the serial port</Description>
          </Parameter>
		  
		  <Parameter ParameterId="41005" type="localTypes:FrameTimeoutType">
            <Attributes offlineaccess="readwrite" onlineaccess="read" download="true" functional="false" />
            <Default>100</Default>
            <Name name="local:Parameter.FrameTimeout">FrameTimeout</Name>
			<Unit name="local:Parameter.FrameTimeout">ms</Unit>
            <Description name="local:Parameter.FrameTimeout">Timeout of the frame transmissions</Description>
          </Parameter> 
		  
	      <Parameter ParameterId="41006" type="localTypes:SlaveIDType">
            <Attributes offlineaccess="readwrite" onlineaccess="read" download="true" functional="false" />
            <Default>1</Default>
            <Name name="local:Parameter.SlaveID">SlaveID</Name>
            <Description name="local:Parameter.SlaveID">Address of the modbus rtu device</Description>
          </Parameter>
		
	  </HostParameterSet> 
	  
	  <DriverInfo needsBusCycle="false">
	    <RequiredLib libname="HCFAModbusLib" placeholderlib="HCFAModbusLib" vendor="HCFA" version="1.0.0.0">
	      <FBInstance basename="$(DeviceName)" fbname="MODBUSRTU_DeviceDiag"> 
		    <!--methodname为空时则调用功能块实例本身-->
		    <CyclicCall methodname="" task="#buscycletask" whentocall="BeforeReadInputs" /> 
		  </FBInstance>
	    </RequiredLib>
	  </DriverInfo>
    </Connector> 
  </Device>
 
</DeviceDescription>
