发表于:2015/1/20 18:54:00
#0楼
大家都知道西门子PLC寄存器以字节为单位,最高位为VB0。大多数的设备的寄存器0为最低字节。MODBUS通迅是经字为单位的,西门子PLC和其它设备传送以字为单位的数据时都统一以MODBUS寄存器(比如40001)转换,所以数据没有改变。
但传送浮点型数据时就要注意了:其它设备的高位数据传送到MODBUS寄存器40002、低位数据传送到MODBUS寄存器40001;而西门子(以VB0为起始寄存地址)读取时是把40001做为高位数据(VW0)、40002做为低位数据的(VW2);读出来的数据(VD0)就会有错。把VW0传送到VW12、VW2传送到VW10再读VD10时数据就正常了。
语言组织能加有限,只是觉得对大家有点帮助。是做工程时读流量时发现的。
但传送浮点型数据时就要注意了:其它设备的高位数据传送到MODBUS寄存器40002、低位数据传送到MODBUS寄存器40001;而西门子(以VB0为起始寄存地址)读取时是把40001做为高位数据(VW0)、40002做为低位数据的(VW2);读出来的数据(VD0)就会有错。把VW0传送到VW12、VW2传送到VW10再读VD10时数据就正常了。
语言组织能加有限,只是觉得对大家有点帮助。是做工程时读流量时发现的。
/校长