先看仪表说明书,每种仪表的地址都可能不一样。如温湿度模块数值在H0至H4,温度模块对应通道数值在H20至H30,温度模块读D0什么都没有的就是0.先看你所需要采集的数在仪表上是D几,modbus上位机一般都是读写加上4001,你这只需读的话就加上3001,但是解码顺序不能反还是要看说明书。(你可以参考最近精华帖西门子LOGO与MCGS通信,也有MODBUS通讯)
以莫迪康ModbusRTU为例
16 位整数解码顺序 :调整字元件的解码顺序,对于 Modicon PLC 及标准 PLC
设备,使用默认值即可。
16 位整数解码顺序 举例:0x0001
0―12 表示字元件高低字节不颠倒(默认值) 表示 1
1―21 表示字元件高低字节颠倒 表示 256
32 位整数解码顺序 :调整双字元件的解码顺序,对于 Modicon PLC,请设置为
“2-3412”顺序解码。
32 位整数解码顺序 举例:0x0000 0001
0―1234 表示双字元件不做处理直接解码(默认值) 表示 1
1―2143 表示双字元件高低字不颠倒,但字内高低字节颠倒表示 256
2—3412 表示双字元件高低字颠倒,但字内高低字节不颠倒表示 65536
3—4321 表示双字元件内 4 个字节全部颠倒 表示 1677 7216
回复内容:
对: 请叫我王老湿 肯定要有相应寄存器地址,要不然你怎么知道数值对应的寄存... 内容的回复!
-------------------------
我的附件就是仪表的通信协议,里面有地址,帖子我也更新了,最后一张图片,比如显示A相电压,我知道地址是57,58。但是不知道MCGS里面如何设置
回复内容:
对: SPweak 你需要查一下表的电流,电压的MODBUS协议,寄存器地... 内容的回复!
-------------------------
但是我增加通道,比如4区,对应的功能码就是03,也就是读,但是增加通道比如是要读寄存器57,58。换算成10进制就应该是87,88。MCGS里面要增加一位,那我要读的寄存器地址就应该是88,89。关键问题就在这里,我每次增加的通道是一个,地址也是一个地址,他的A相电压的数据又是2个寄存,我就不知道该怎么来读取这个数据了。