上一月的帖子,研究了个把星期,总算把RS指令发送出数据了。
http://bbs.gongkong.com/d/201904/790051_1.shtml
照着它的模块专用软件发送的, 01 03 00 20 00 18 44 0A
通过PLC收到数据 01 00 30 40 40 27 71 可以对比它的专用软件接收的数据,基本一致,至此RS通讯已经通讯上了
01 03 是读取站号1的数据,最后位应该是效验。模块的通道1为H20,发送的 01 03 00 20 00 18 44 0A大概是什么意思,接受的数据又是什么意思,是如何转化为我们看到的浮点数的。下图是接收到的数据,在PLC中我该如何才能把这些接收到的数转化为可识别的浮点数
引用 彩色气球 的回复内容: 看下modbus的通讯的格式,然后你自己对比一下 站地...
-------------------------
当D0=D8 8F,D1=40 3F时,D0浮点显示为2.9975927,
转成10进制之后得到数据
一.那排列的顺序应该是1101 1000 1000 1111 0100 0000 0011 1111(首位为正,为负数啊,这PLC取的数据都是相反的吗?)
假使排列的顺序就为40 3F D8 8F,即0100 0000 0011 1111 1101 1000 1000 1111
其中2.9975927=10.1111 1111 0110 0010,那10000000如何表示指数为1的?这个我知道了,1为指数1,1000 0001为指数2,1000 0010 为指数3.....
二.0103 0020 0018 440A我知道是什么意思了,但返回的0103 30 403F D88F中的“30”大概代表什么意思