﻿<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Hilmar Panzer (3S-Smart Software Solutions GmbH) -->
<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" xsi:schemaLocation="http://www.3s-software.com/schemas/DeviceDescription-1.0.xsd D:\CoDeSys\Documentation\DOCUME~2.)\PRODUC~1\CODESY~1.0\DEVELO~1\FEATUR~1\DeviceDescription-1.0.xsd">
  <Types namespace="localTypes">
  </Types>
  <Strings namespace="localStrings">
    <Language lang="de">
      <String identifier="TypeName">Encoder</String>
      <String identifier="TypeDescription">SoftMotion free Encoder</String>
      <String identifier="_3S">Suzhou Lingchen Acquisition Computer Co.Ltd.</String>
    </Language>
    <Language lang="en">
      <String identifier="TypeName">Encoder</String>
      <String identifier="TypeDescription">SoftMotion free Encoder</String>
      <String identifier="_3S">Suzhou Lingchen Acquisition Computer Co.Ltd.</String>
    </Language>
    <Language lang="fr">
      <String identifier="TypeName">Encoder</String>
      <String identifier="TypeDescription">SoftMotion free Encoder</String>
      <String identifier="_3S">Suzhou Lingchen Acquisition Computer Co.Ltd.</String>
    </Language>
    <Language lang="es">
      <String identifier="TypeName">Encoder</String>
      <String identifier="TypeDescription">SoftMotion free Encoder</String>
      <String identifier="_3S">Suzhou Lingchen Acquisition Computer Co.Ltd.</String>
    </Language>
    <Language lang="it">
      <String identifier="TypeName">Encoder</String>
      <String identifier="TypeDescription">SoftMotion free Encoder</String>
      <String identifier="_3S">Suzhou Lingchen Acquisition Computer Co.Ltd.</String>
    </Language>
  </Strings>
  <Files namespace="local">
    <Language lang="en">
      <File fileref="local" identifier="DriveIcon">
        <LocalFile>SoftMotion_Encoder.ico</LocalFile>
      </File>
    </Language>
  </Files>
  <Device>
    <DeviceIdentification>
      <Type>1151</Type>
      <Id>FFFF 0001</Id>
      <Version>3.5.5.0</Version>
    </DeviceIdentification>
    <CompatibleVersions>
      <Version>3.4.*.*</Version>
      <Version>3.5.*.*</Version>
    </CompatibleVersions>
    <DeviceInfo>
      <Name name="localStrings:TypeName">Encoder</Name>
      <Description name="localStrings:TypeDescription">LC Counter Encoder</Description>
      <Vendor name="localStrings:_3S">Suzhou Lingchen Acquisition Computer Co.Ltd.</Vendor>
      <OrderNumber>0x17da 0021 C617</OrderNumber>
      <Icon name="local:DriveIcon">SoftMotion_Encoder.ico</Icon>
    </DeviceInfo>
    <!--
    <Connector connectorId="1" moduleType="1248" interface="Common.SoftMotion.Logical" role="parent" explicit="false" hostpath="0" initialStatusFlag="241">
      <InterfaceName name="local:InterfaceName">SM_Drive_Logical:</InterfaceName>
      <Var />
    </Connector>
	-->
    <Connector role="child" connectorId="0" interface="Local.Counter" moduleType="1151" explicit="false">
      <!-- <Connector role="child" connectorId="0" interface="Local.Counter" moduleType="1052" explicit="false"> -->
      <InterfaceName name="localStrings:InterfaceName">Encoder:</InterfaceName>
      <Slot count="1" allowEmpty="false" />
      <HostParameterSet>
        <ParameterSection>
          <Name name="local:AXIS_REF">AXIS_REF: Standard</Name>
          <Parameter ParameterId="1021" type="std:WORD">
            <Attributes download="true" functional="false" />
            <Default>0</Default>
            <Name name="x">wDriveID</Name>
            <Description name="x">Unique ID of the drive</Description>
            <Custom />
          </Parameter>
          <Parameter ParameterId="71100" type="std:BOOL">
            <Attributes channel="none" download="true" functional="false" offlineaccess="readwrite" onlineaccess="read" />
            <Name name="local:CounterEnable">CounterEnable</Name>
            <Description name="local:CounterEnable">CounterEnable</Description>
            <Default>TRUE</Default>
          </Parameter>
          <!-- <Parameter ParameterId="1051" type="std:DWORD">
            <Attributes download="true" functional="false" />
            <Default>1</Default>
            <Name name="localStrings:AXIS_REF.dwRatioTechUnitsDenom">dwRatioTechUnitsDenom</Name>
            <Description name="localStrings:AXIS_REF.dwRatioTechUnitsDenom.Desc">conversion inc./tech.units denominator</Description>
            <Custom />
          </Parameter>
          <Parameter ParameterId="1052" type="std:DINT">
            <Attributes download="true" functional="false" />
            <Default>1</Default>
            <Name name="localStrings:AXIS_REF.iRatioTechUnitsNum">iRatioTechUnitsNum</Name>
            <Description name="localStrings:AXIS_REF.iRatioTechUnitsNum.Desc">conversion inc./tech.units numerator</Description>
            <Custom />
          </Parameter> -->
          <Parameter ParameterId="1060" type="std:INT">
            <Attributes download="true" functional="false" />
            <Default>1</Default>
            <Name name="localStrings:AXIS_REF.iMovementType">iMovementType</Name>
            <Description name="localStrings:AXIS_REF.iMovementType.Desc">movement type: 0: rotary/modulo, 1: linear</Description>
            <Custom />
          </Parameter>
          <Parameter ParameterId="1061" type="std:LREAL">
            <Attributes download="true" functional="false" />
            <Default>360.0</Default>
            <Name name="localStrings:AXIS_REF.fPositionPeriod">fPositionPeriod</Name>
            <Description name="localStrings:AXIS_REF.fPositionPeriod.Desc">modulo value for rotary drives</Description>
            <Custom />
          </Parameter>
        </ParameterSection>
        <ParameterSection>
          <Name name="local:AXIS_REF">AXIS_REF: Scalings</Name>
          <Parameter ParameterId="5000" type="std:UDINT">
            <Default>1</Default>
            <Name name="localStrings:numerator">numerator</Name>
            <Description name="local:Scalings">脉冲数pluse=numerator/denominator * 移动距离(用户单位unit)</Description>
          </Parameter>
          <!-- <Parameter ParameterId="5001" type="std:DINT">
            <Default>1</Default>
            <Name name="localStrings:ScalingMotorTurns1">ScalingEncoderTurns1</Name>
          </Parameter> -->
          <!-- <Parameter ParameterId="5002" type="std:DINT">
            <Default>1</Default>
            <Name name="localStrings:ScalingMotorTurns2">ScalingEncoderTurns2</Name>
          </Parameter> -->
          <Parameter ParameterId="5005" type="std:LREAL">
            <Default>1</Default>
            <Name name="localStrings:denominator">denominator</Name>
            <Description name="local:Scalings">脉冲数pluse=numerator/denominator * 移动距离(用户单位unit)</Description>
          </Parameter>
          <!-- <Parameter ParameterId="5006" type="std:BOOL">
            <Default>FALSE</Default>
            <Name name="localStrings:InvertDirection">InvertDirection</Name>
          </Parameter> -->
        </ParameterSection>
        <!-- <ParameterSection>
          <Name name="local:AXIS_REF">ENCODER_REF: Input</Name>
          <Parameter ParameterId="10000" type="std:BYTE">
            <Default>32</Default>
            <Name name="localStrings:EncoderBitWidth">EncoderBitWidth</Name>
          </Parameter>
        </ParameterSection> -->
        <!-- <ParameterSection>
          <Name name="local:DriverInOutputs">possible cyclic driver in-/outputs</Name>
          <Parameter ParameterId="8000" type="std:INT">
            <Attributes channel="none" download="true" functional="false" offlineaccess="read" onlineaccess="read" />
            <Default>0</Default>
            <Name name="localStrings:NumberOfMappingParams">NumberOfOutputMappingParams</Name>
            <Custom />
          </Parameter>
          <Parameter ParameterId="8500" type="std:INT">
            <Attributes channel="none" download="true" functional="false" offlineaccess="read" onlineaccess="read" />
            <Default>0</Default>
            <Name name="localStrings:NumberOfMappingParams">NumberOfInputMappingParams</Name>
            <Custom />
          </Parameter>
          <Parameter ParameterId="8999" type="std:BOOL">
            <Default>FALSE</Default>
            <Name name="localStrings:AutomaticMapping">Automatic Mapping</Name>
          </Parameter>
        </ParameterSection> -->
      </HostParameterSet>
      <DriverInfo needsBusCycle="false">
        <RequiredLib libname="HighSpeedIO" placeholderlib="HighSpeedIO" vendor="Suzhou Lingchen Acquisition Computer Co.Ltd." version="20250322" identifier="HighSpeedIO">
          <FBInstance basename="$(DeviceName)" fbname="Encoder" fbnamediag="Encoder">
            <Initialize methodName="Initialize" />
            <CyclicCall methodname="BeforeReadInputs" task="#buscycletask" whentocall="beforeReadInputs" />
            <CyclicCall methodname="AfterReadInputs" task="#buscycletask" whentocall="afterReadInputs" />
            <CyclicCall methodname="BeforeWriteOutputs" task="#buscycletask" whentocall="beforeWriteOutputs" />
            <CyclicCall methodname="AfterWriteOutputs" task="#buscycletask" whentocall="afterWriteOutputs" />
          </FBInstance>
        </RequiredLib>
      </DriverInfo>
    </Connector>
  </Device>
</DeviceDescription>