查看: 2|回复: 0

Modbus地址

[复制链接]

14

主题

0

回帖

54

积分

管理员

积分
54
发表于 3 小时前 | 显示全部楼层 |阅读模式
功能码:

01 线圈,输出寄存器,设计上是可读可写 ,但是有些人也用来做只读,或只写
     经常用来做继电器控制,开关控制,或代码里面的开关机,配置的功能开关 对应写用05或15功能码
02 离散输入,经常用来做设备的告警,状态
03 保持寄存器,可读可写,经常用来做设备的控制保存位置,设置保存位置 对应写用06或16功能码
04 输入寄存器,只读,经常用来做数据采样,比如电表的电压,电流;空调的温度读取等等

05功能码,写一个继电器(离散输出)
15功能码,写多个离散输出
06 写一个保持寄存器
16 写多个保持寄存器

寄存器地址分pld地址和真实地址
比如,4x;3x;1x;2想分别表示保持寄存器,输入寄存器,线圈,离散输入;是不是和功能码有点混乱 。。。。
4x00001 表示 保持寄存器的地址0;
3x00001 表示 输入寄存器的地址0;


看到49999; 他有几种可能:
1:寄存器地址是49999;
2:49998, -1 (因为有些人理解错了,-1了)
3:9998; 4表示类型
4:0x9999, 后面用了16进制
5:0x49999, 这个不可能,因为超过了0xffff; 不过还是要保留这种思路,看具体的地址是多少

如果判断是哪一种
第一看后续的地址9之后是不是a,看看是不是十六进制
2)看看全文,他的地址是用plc加前缀还是没有
3)读取一个有把握的数据,看卡偏移,比如电压,频率,自己核对他会不会主动-1了



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部