实战:从零搭建Modbus RTU主从站通讯 📅 2026/7/15 20:53:34 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对AB对B地线不要忘就像接网线一样简单。硬件清单要备齐主站设备带串口的电脑USB转485转换器推荐用FTDI芯片的从站设备FX3U PLC 485BD或485ADP-MB模块线材RVSP 2×1.0mm²屏蔽双绞线终端电阻线路超过50米时要在两端接120Ω电阻3. PLC从站配置详解给FX3U配置Modbus从站就像给手机设WiFi。关键三个特殊寄存器D8420设通讯格式MOV H1087 D8420 9600bps/8位/偶校验D8421设协议模式MOV H11 D8421 Modbus RTU从站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 C601从站地址01读线圈功能码00 00起始地址M000 10读取16个位3D C6CRC校验用串口助手发送时记得勾选16进制发送和CRC校验。收到回复可能是01 01 02 FF 00 B8 44这里的FF 00表示M0-M7全ONM8-M15全OFF。注意PLC的位地址是8位一组打包返回的。5. 功能码实战技巧最常用的五个功能码01H读线圈监控X/Y/M状态02H读离散输入专读X输入点03H读保持寄存器读D寄存器05H写单线圈控制Y/M点10H写多寄存器批量写D值重点注意读线圈数量别超2000个250字节写寄存器时注意字节序三菱是高字节在前功能码出错时会返回异常码原功能码0x806. 错误排查手册常见故障现象及对策通讯超时检查接线A/B线是否反接确认波特率/校验位设置测量RS485电压A-B应有2-6V差分电压CRC校验错误检查终端电阻长距离需120Ω避免与变频器共用电源用示波器看信号波形是否畸变从站无响应确认PLC已切RUN模式检查M8411是否触发用串口监听工具确认主站是否发出报文有个快速测试技巧先用电脑接PLC用串口调试助手手动发报文排除硬件问题后再对接主站设备。曾经有台设备死活不通最后发现是供应商给的协议文档里寄存器地址偏移量写错了。