实战:从零搭建Modbus RTU主从站通讯
2026/7/15 20:53:32 网站建设 项目流程

1. Modbus RTU通讯基础认知

第一次接触Modbus RTU时,我盯着设备说明书里的"9600-8-N-1"参数发懵。后来才明白,这串数字就像设备的"方言密码"——9600波特率、8位数据位、无校验、1位停止位。工业现场最常见的通讯协议之一,用RS485接口时最远传输距离能达到1.2公里,比蓝牙的10米强了不止一星半点。

Modbus协议家族有三个兄弟:RTU、ASCII和TCP。RTU用二进制直接传输,效率最高;ASCII码像电报机一样把数据转成字符;TCP则是给网络设备用的。三菱FX3U这类PLC最常用的就是RTU模式,因为它的报文紧凑,同样带宽下能传更多数据。实测在9600波特率下,RTU报文传输速度比ASCII快3倍以上。

2. 硬件连接实战

去年给工厂改造时,我用FX3U-32MT PLC搭配485ADP-MB模块搭建从站。接线时踩过坑——RS485必须用双绞线,A/B线绝对不能接反。有次偷懒用了普通电线,通讯时不时丢包,后来换了带屏蔽的双绞线立刻稳定。接线口诀:"A对A,B对B,地线不要忘",就像接网线一样简单。

硬件清单要备齐:

  • 主站设备:带串口的电脑+USB转485转换器(推荐用FTDI芯片的)
  • 从站设备:FX3U PLC + 485BD或485ADP-MB模块
  • 线材:RVSP 2×1.0mm²屏蔽双绞线
  • 终端电阻:线路超过50米时要在两端接120Ω电阻

3. PLC从站配置详解

给FX3U配置Modbus从站就像给手机设WiFi。关键三个特殊寄存器:

  1. D8420设通讯格式:MOV H1087 D8420 (9600bps/8位/偶校验)
  2. D8421设协议模式:MOV H11 D8421 (Modbus RTU从站)
  3. D8434设站号:MOV K1 D8434 (站地址设为1)

最容易被忽略的是触发位M8411,配置完必须用脉冲指令触发:SET M8411。有次调试两小时不通,最后发现忘了这个"保存按钮"。建议用GX Works2的监视功能,直接查看这些寄存器的十六进制值是否写入成功。

4. 报文构造与解析

Modbus RTU报文就像快递包裹:

  • 地址码:快递单号(从站地址)
  • 功能码:寄件类型(01读线圈/03读寄存器)
  • 数据区:包裹内容
  • CRC校验:防拆封贴纸

读M0-M15的报文示例:

01 01 00 00 00 10 3D C6
  • 01:从站地址
  • 01:读线圈功能码
  • 00 00:起始地址M0
  • 00 10:读取16个位
  • 3D C6:CRC校验

用串口助手发送时,记得勾选"16进制发送"和"CRC校验"。收到回复可能是:

01 01 02 FF 00 B8 44

这里的"FF 00"表示M0-M7全ON,M8-M15全OFF。注意PLC的位地址是8位一组打包返回的。

5. 功能码实战技巧

最常用的五个功能码:

  1. 01H读线圈:监控X/Y/M状态
  2. 02H读离散输入:专读X输入点
  3. 03H读保持寄存器:读D寄存器
  4. 05H写单线圈:控制Y/M点
  5. 10H写多寄存器:批量写D值

重点注意:

  • 读线圈数量别超2000个(250字节)
  • 写寄存器时注意字节序:三菱是高字节在前
  • 功能码出错时会返回异常码(原功能码+0x80)

6. 错误排查手册

常见故障现象及对策:

  1. 通讯超时:

    • 检查接线(A/B线是否反接)
    • 确认波特率/校验位设置
    • 测量RS485电压(A-B应有2-6V差分电压)
  2. CRC校验错误:

    • 检查终端电阻(长距离需120Ω)
    • 避免与变频器共用电源
    • 用示波器看信号波形是否畸变
  3. 从站无响应:

    • 确认PLC已切RUN模式
    • 检查M8411是否触发
    • 用串口监听工具确认主站是否发出报文

有个快速测试技巧:先用电脑接PLC,用串口调试助手手动发报文,排除硬件问题后再对接主站设备。曾经有台设备死活不通,最后发现是供应商给的协议文档里寄存器地址偏移量写错了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询