这个电表与台达PLC,与施耐德Twido PLC通讯都通上了,读取上来的直接就是浮点数,现在我使用224XP与该电表通讯上了读上来的不管是浮点数还是整数,都是乱码,请大神帮忙分析下什么原因,现在我用224XP读取方法个人感觉和台达,Twido方法都一样的
图片说明:
最佳答案
1、参见:
、《S7-200基于modbus协议与智能仪表之间的通信实现方法》连接:
http://www.gongkong.com/webpage/paper/200712/4-B15D-E1D9C8D7E4EA.htm
http://www.jdzj.com/datum/showart.asp?art_id=6877
http://wenku.baidu.com/view/7923c95b312b3169a451a4ff.html
、《S7-200 CPUs -- 通信组态和编程 -- USS, modbus 或自由口通信》连接:
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&objId=28767151&nodeid0=10805397&load=treecontent&lang=zh&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=CN
2、注意这个问题:
有些仪表使用modbus RTU通信协议时,处理存储在数据保持寄存器中的实数(浮点数)的方式与西门子的实数保存格式不同。西门子的PLC遵循“高字节低地址、低字节高地址”的规律。
modbus RTU的保持寄存器总是以“字(双字节)”为单位,而一个实数需要4个字节(双字)表示。仪表可能会把保持寄存器的两个“字”互换位置,造成不能识别以西门子格式表示的实数。在S7-200 CPU中编程将存入数据缓冲区(保持寄存器区)的实数的高字和低字互换。
提问者对于答案的评价:
感谢阿鸣大师耐心的耐心回答,现在解决了 确实是需要把高低字呼唤位置的,感谢感谢 万分感谢
专家置评
已阅,最佳答案正确。
对于数据通信,如果出现乱码说明通上了,首先怀疑数据地址顺序。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc211527.html