leefloyd
有一块测频模块,他是modbus-rtu模式,1起始,8位,无校验,1停止,地址是1,ch6的地址是40005。
用这个程序读取后,d1070一直显示K1,d1071一直显示K132,同时M1140亮,哪里错了?
楼主最近还看过
ac米兰
是不是标准的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进制。。。?
内羊尔
数据都存在下8位是RTU只用下8位还是因为M1161(8位16位切换)的原因?
查了下,应该是用SMOV指令,谢谢啦
刚刚试了一下,M1140总是亮的,不知道为什么啊?地址H05 D1129 K200,也是不行啊,一直显示M1140数据回传错误。
按上面的程序再试一下,另外你这个测屏模块的波特率是多少?
对: 公孙小天 按上面的程序再试一下,另外你这个测屏模块的波特率是多少? 内容的回复!
波特率式9600,站号1。这个程序为什么只把D1073移到D100?
DMOV指令是双字传送
试了一下,依然是M1140错误。。。。他的说明书http://www.docin.com/p-118640417.html
你在帮忙看下吧,谢谢
你看一下手册中K8514支持的功能码,不支持03,只支持04的,台达的MODRD指令是使用功能码03的,你换用MODRW再试吧
zhixian6
学习下,非常感谢 感谢
对: 公孙小天 你看一下手册中K8514支持的功能码,不支持03,只支... 内容的回复!
麻烦给看看这个帖子:http://bbs.gongkong.com/d/201409/576606_1.shtml