大家好,请教一下,smart 200在做modbus通信时,一个保持寄存器是16位,传输整数没问题,但是我要传输浮点数怎么处理呢?
问题补充:
再补充两个问题:
1.怎么处理位传送,比如主站要给一个bool量信号来驱动从站的V600.3,这个是怎么实现的?
2.从站要返回一个bool量信号给主站,这个又是怎么具体实现的呢?
最佳答案
Modbus RTU 的保持寄存器以“字”为单位,1 个浮点型数据则由 2 个“字”构成。浮点数就传2个字;
如果不能识别以西门子格式表示的浮点数。如果HMI软件一方无法处理这种浮点数,则可在S7-200 SMART CPU中编程将存入保持寄存器区的浮点数的高“字”和低“字”互换。
S7-200 SMART Modbus通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
补充:
主站向从站的保持寄存器发送字,从站收到这个字后,在从站程序中,用收到这个字的第三位驱动V600.3.
第二个补充问题同上面的处理方法,只是在从站中将要发送的BIT 位组合成字,放在从站的保持寄从器区,主站读到后,在主站侧按从站测的组合来解析其对应关系
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc362407.html