登录
首页 人机界面 人机界面
回帖 发帖
正文

主题:触摸屏modbus rtu通讯地址问题

点击:1962 回复:4

触摸屏modbus rtu通讯,变频器的地址要转换成10进制数值再加40001,但是最后10进制的数值只要加1就行了。想不明白最后为啥只加1???
最后修改:2021/7/11 23:23:02
21-07-11 22:54

引用 juyongjin2005 在 2021/7/11 22:54:45 发言【内容省略】

前面的0、1、3、4代表寄存器的类型,你这款触摸屏里填写的是寄存器实际地址+1,也算是寄存器编号!
21-07-11 23:27
首先从modbus协议说起,40001前面那个4表示保持寄存器(可读写)类型,类型固定不变,后面十进制表示编号.40001是一种定义,编号从1开始.在内部实现读取是用功能码3,编号从0十六进制开始,即40001对应0.
现在谁用它通讯,都要遵守它的格式.各个人表达不同,但必须殊途同归.
变频器列出的可能是保持寄存器(4)编号16进制内部(实际通讯数值)格式,转40001格式,需要在前面放个4,后面用十进制.转换成40xxx的格式,才是官方发布的格式,才能在书面和别人交流.
当触摸屏得到它的格式列表,它就要在自己的格式里解释它.首先,你选择是保持寄存器(4),就已经确定最前面的那个4了,然后它按编号从1开始,所以对应编号从0开始的需要加1.这样也是40xxx了.
最后二者对应起来了.这才能正常通讯了.
21-07-12 08:16
modbus协议中00001 至 09999 是离散量输出;10001 至 19999 是离散量输入;30001 至 39999 是输入寄存器;40001 至 49999 是保持寄存器;比如你变频器的寄存器地址是0,那么它在MDOBUS协议中的地址就变马40001+0变成40001;这个是协议规定的必须这样用
21-07-12 11:34
感谢三位的解答,困惑的问题终于解决了
21-07-12 12:16

工控新闻

更多新闻资讯