Labview 和 西门子1200 Modbus TCP通讯,如何实现浮点数的交互?
时间:10-02
整理:3721RD
点击:
Labview 和 西门子1200 Modbus TCP通讯,其通讯是按照一个保持寄存器进行的,也就是占2个字节,可以实现bool,int类型的数据传输,单PLC这边如果要传输real类型(占四个字节),通讯结果就不正确。各位大神帮帮忙,感谢!
小技巧:在传送bool量时,需要在Labview中交换高低字节,这样在PLC这边得到的Bool值才是正确的。
相互讨论哈,已发现一种方法!
拼接指令加上强制转换可以实现PLC到Labview的real传输,反过来还没找到方法哦。
傳送如果以字為單位,可以把4個字節分為高字和低字傳送
已经解决!谢谢
我也想知道啊 大神
将labview中的单精度浮点数转换为32位长整型,然后将32位长整型拆分为两个16位的整数(拆分数字命令),通过写入多个保持寄存器命令,就可向PLC写入real量。
已测试,完全正确!
先按字读上来,也就是说把PLC浮点,拆分成俩个字,读上来。读上来后进行字拼接,然后转换成单精度浮点。不懂加微信:362896182
是按照这种方式做的!谢谢
小编有没有源程序分享一下,不太明白你说的意思