1. Modbus通信基础与硬件接线
1.1 Modbus协议家族概览
Modbus作为工业领域最常用的通信协议之一,主要分为三种传输模式:RTU、ASCII和TCP。RTU模式采用二进制编码,通信效率最高,是现场设备最常用的形式;ASCII模式所有数据以十六进制ASCII字符传输,便于调试但效率较低;TCP模式则基于以太网,适合设备间通过网线连接的应用场景。
在电气特性上,Modbus RTU通常采用RS-485物理层(少数场合用RS-232),需要特别注意:
- 终端电阻:通信线两端需接120Ω电阻匹配阻抗
- 极性要求:A/B线不能接反,否则无法通信
- 接地处理:屏蔽层单端接地,避免地环路干扰
1.2 典型接线方案实操
以最常用的RS-485接线为例,我们需要准备:
- 两芯屏蔽双绞线(AWG18-22)
- 终端电阻(120Ω 1/4W)
- 接线端子或DB9连接器
具体接线步骤:
- 确认设备A和B的RS-485接口定义(通常标注为A+/B-或D+/D-)
- 将设备A的A+与设备B的A+相连,A-与A-相连
- 在最远两端设备的A+与A-之间并联终端电阻
- 屏蔽层仅在一端接地(通常选择主机端)
关键提示:实际接线前务必断电操作,接好后用万用表检查线路通断和绝缘。我曾遇到过因线缆内部断裂导致的间歇性通信故障,排查了整整两天才发现是劣质线缆问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Modbus协议深度解析
2.1 协议帧结构拆解
一个标准的Modbus RTU帧包含:
- 设备地址(1字节):0-247,0为广播地址
- 功能码(1字节):决定操作类型(读/写)
- 数据区(N字节):具体操作参数
- CRC校验(2字节):确保数据完整性
以读取保持寄存器(功能码03H)为例:
code复制[设备地址][03H][起始地址高][起始地址低][寄存器数高][寄存器数低][CRC低][CRC高]
2.2 功能码实战指南
常用功能码包括:
- 01H:读线圈状态
- 02H:读离散输入
- 03H:读保持寄存器
- 04H:读输入寄存器
- 05H:写单个线圈
- 06H:写单个寄存器
- 10H:写多个寄存器
特殊注意事项:
- 保持寄存器与输入寄存器的区别在于前者可读写
- 写多个寄存器时要
