Hi all,
I have a Beckhoff PLC send some data to an old CS8C, over Modbus/TCP.
One of the variables I'm broadcasting is a 32-bit float.
On the beckhoff side I've just mapped it into the output registers area, so it instantenuously becomes a "DWORD".
The problem is it stays like that on the robot side: I assign it to a "num" variable, and it displays as if it is an UNSIGNED LONG (so basically, identical to the raw DWORD).
How can I tell the CS8C this num is a floating point number?
See below the modbus.xml of the robot.
I don't have access to SRS at the moment unfortunately and had to manually edit it.
XML
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<TOPICSLIST>
<TOPIC Name="Modbus" Card="0" Channel="0" Equipment="0" RefreshPeriod="200" Actif="1">
<MODULE Tag_name_root="Bit" IDModule="BOOLEAN" InputSize="" OutputSize="0">
</MODULE>
<MODULE Tag_name_root="Word" IDModule="WORD" InputSize="" OutputSize="48">
<ITEM Name="iCmd" Syntaxe="%QW0" Offset="0"/>
<ITEM Name="iCmdCtr" Syntaxe="%QW1" Offset="1"/>
<ITEM Name="iFloat" Syntaxe="%QD2" Offset="2"/>
</MODULE>
</TOPIC>
<GENERAL_PARAMETERS TopicName="Modbus" TCP_Port="502" ConnectionNumber="2"/>
</TOPICSLIST>
Display More
Additional relevant definitions from the .dtx file (this is just a fragment, not the complete file):
Code
<dataList xmlns="DataNameSpace" >
<aioSection>
<aio name="aio_iCmd" public="true" privilege="0" size="1" />
<aio name="aio_iCmdCtr" public="true" privilege="0" size="1" />
<aio name="aio_iFloat" public="true" privilege="0" size="2" />
</aioSection>
<numSection>
<num name="iCmd" public="false" privilege="0" >
<valueNum index="0" value="0" />
</num>
<num name="iCmdCtr" public="false" privilege="0" >
<valueNum index="0" value="0" />
</num>
<num name="iFloat" public="false" privilege="0" >
<valueNum index="0" value="0" />
</num>
</numSection>
Display More
Would be grateful for any help...