Modbus协议之所以能成为工业领域的“普通话”,秘诀在于它用了一种非常直观的方式来管理数据——把不同性质的数据分门别类地放在四个“抽屉”里。无论设备来自哪个品牌,只要遵循这个规则,它们就能进行数据交流。
核心心法:两个维度,四个抽屉
1. 开关量和数值量
2. 读写权限
两两组合,就是经典的四个“抽屉”:
| | | | |
| | | | 控电机启停、指示灯 |
| | | | 读取按钮状态、限位开关、故障信号 |
| | | | |
| | | | |
3. 四个抽屉的“打开方式”
线圈寄存器(0区):指令开关
用于发送开关指令(如启停电机),写入1为开,0为关。
类比:手机远程控制智能插座。
离散输入寄存器(1区):状态感知
只读,反映外部开关状态(如急停按钮是否按下)。
优势:只读设计确保关键信号不被误改。
输入寄存器(3区):数据仪表
只读,采集实时模拟量(如温度、压力)。
类比:车速表显示数据,只供观察。
保持寄存器(4区):配置大脑
可读写,存储参数与设定值(如频率、目标温度)。
扩展:单个寄存器为16位,32位浮点数需组合2个连续寄存器。
4. 绝对地址和相对地址
很多人容易把“绝对地址”和“相对地址”搞混,其实只要记住一句话:一个是给人看,一个是给机器用的。
通常写成5位数字,第一位指明哪个区(如 4 表示保持寄存器),后四位是格子编号(如 0001 表示第1格)。比如 40001 就是“4号抽屉第1格”,30001 就是“3号抽屉第1格”。
| | |
|---|
| 00002 | | 1 |
| 10001 | | 0 |
| 30001 | | 0 |
| 40010 | | 9 |
总结
Modbus的四个寄存器区,本质上就是四类分工明确的“数据抽屉”,地址区号一确定,功能就明确。
要下命令(启停、开关)→ 操作 0区线圈,写1开、写0关。
要看状态(按钮是否按下、故障是否触发)→ 读 1区离散输入,只读更安全。
要采数据(温度、压力、流量)→ 读 3区输入寄存器,实时监控过程量。
要调参数(目标值、运行频率)→ 读/写 4区保持寄存器,既能看也能改。