有一块测频模块,他是modbus-rtu模式,1起始,8位,无校验,1停止,地址是1,ch6的地址是40005。
用这个程序读取后,d1070一直显示K1,d1071一直显示K132,同时M1140亮,哪里错了?
有一块测频模块,他是modbus-rtu模式,1起始,8位,无校验,1停止,地址是1,ch6的地址是40005。
用这个程序读取后,d1070一直显示K1,d1071一直显示K132,同时M1140亮,哪里错了?
是不是标准的MODBUS
估计是通讯不上
回复内容:
对: ac米兰 是不是标准的MODBUS估计是通讯不上 内容的回复!
说明书上就是这些,就是modbus-rtu
你可以找个触摸屏和仪表通讯试试就知道了
回复内容:
对: ac米兰 你可以找个触摸屏和仪表通讯试试就知道了 内容的回复!
额。。。什意思。。。?我编的这个程序有什么问题吗
论坛里太没人气了,都没人回答问题啊。。。
你是把40005直接转成十六进制的9C45了,问题是在MODBUS里40005其实表示的是保持型寄存器(4区)的第6个寄存器,所以你把地址换成H05估计就可以了,十六进制也是从0开始编码的。
另外,D1070-D1089放的是回传数据,是指完整的MODBUS数据帧内容,包含站号、功能码、资料长度、资料内容及校验码的,所以D1070放的是站号,真正有效的数据在D1073的下8位和D1074的下8位,按十六进制H的数据监控格式,你把这两个字拼在一起就是你要的数据了。
D1129设K200,怎么设了个0?
回复内容:
对: 公孙小天 你是把40005直接转成十六进制的9C45了,问题是在... 内容的回复!
好的,我试试,非常感谢啦~!
回复内容:
对: 公孙小天 另外,D1070-D1089放的是回传数据,是指完整的... 内容的回复!
另外用什么方法把下8位拼成16进制。。。?
回复内容:
对: 公孙小天 另外,D1070-D1089放的是回传数据,是指完整的... 内容的回复!
数据都存在下8位是RTU只用下8位还是因为M1161(8位16位切换)的原因?
回复内容:
对: 公孙小天 另外,D1070-D1089放的是回传数据,是指完整的... 内容的回复!
查了下,应该是用SMOV指令,谢谢啦
回复内容:
对: 公孙小天 另外,D1070-D1089放的是回传数据,是指完整的... 内容的回复!
刚刚试了一下,M1140总是亮的,不知道为什么啊?地址H05 D1129 K200,也是不行啊,一直显示M1140数据回传错误。
按上面的程序再试一下,另外你这个测屏模块的波特率是多少?
回复内容:
对: 公孙小天 按上面的程序再试一下,另外你这个测屏模块的波特率是多少? 内容的回复!
波特率式9600,站号1。这个程序为什么只把D1073移到D100?