汇川Easy 301与MCGS通过Modbus RTU(485)实现浮点数双向交互的工程实践

张开发
2026/4/6 2:05:49 15 分钟阅读

分享文章

汇川Easy 301与MCGS通过Modbus RTU(485)实现浮点数双向交互的工程实践
1. 项目背景与设备选型在工业自动化领域汇川Easy 301 PLC和MCGS触摸屏的组合非常常见。我最近在一个恒压供水项目中就用到了这套方案需要实时显示水压、流量等浮点数参数。Modbus RTU协议通过485接口传输数据成本低、抗干扰强特别适合这种中小型控制系统。这里先说说设备选型的考虑汇川Easy 301支持标准的Modbus RTU协议自带485接口COM2口性价比高MCGS触摸屏国内占有率很高内置Modbus驱动支持浮点数高低位转换通讯线缆建议用双绞屏蔽线终端要接120Ω电阻这个后面会详细讲实际接线时要注意PLC的485接口A/B-要和触摸屏对应一定要接好地线我遇到过因为接地不良导致数据跳变的情况最远通讯距离理论上1200米但实际超过200米就要考虑加中继器2. MCGS触摸屏配置详解2.1 变量建立与界面设计打开MCGS组态软件首先要在实时数据库里建立变量。以水压和流量为例变量名WaterPressure水压类型数值型浮点数地址4DF0001对应PLC的D0寄存器特别注意MCGS的变量地址格式是4DF寄存器地址。比如要读取D2寄存器地址就填4DF0003因为D2的Modbus地址是0002需要加1。界面设计有个实用技巧在输入框属性里勾选数值输入这样就能直接在触摸屏上修改PLC的数值。我在项目里做了个简单的PID参数调整界面调试时特别方便。2.2 通讯参数设置关键点进入设备窗口添加通用Modbus RTU设备时要注意串口号选COM2COM1是232接口波特率默认9600但建议和PLC保持一致数据位8位停止位1位无校验N,8,1超时时间设为300ms比较稳妥太短容易丢包遇到过最坑的问题是有些型号的MCGS屏默认带奇偶校验而汇川PLC默认无校验两边不对应就会通讯失败。建议先用串口调试助手测试通后再配置。3. PLC端的关键配置3.1 Modbus从站设置在汇川AutoShop编程软件中打开PLC参数→通讯设置选择COM2口协议选Modbus-RTU从站波特率、数据位等参数要和触摸屏完全一致站号建议设为1默认值实测经验如果PLC之前用过其他协议最好先执行一次通讯初始化指令。我有次调试半天没反应最后发现是之前的CAN通讯配置没清除干净。3.2 寄存器映射技巧浮点数在PLC中占用两个连续的D寄存器。比如D0浮点数的前16位D1浮点数的后16位但Modbus协议传输时可能会高低位颠倒这就是为什么要在MCGS里做转换。具体到编程MOV K100 D0 // 给D0赋值 MOV K200 D1 // 给D1赋值这样在MCGS端读取时就能得到一个完整的浮点数。4. 高低位转换的实战解决方案4.1 为什么需要转换Modbus协议规定浮点数按高位在前传输但不同设备对高低位的理解可能不同。我在调试时就发现汇川PLC的D0对应Modbus的40001寄存器但MCGS默认认为40001是低16位导致读取的值完全不对4.2 MCGS中的设置方法在变量连接的设备通道设置里找到对应的浮点数变量将通道类型从0-1234改为2-4321这表示把两个寄存器的顺序交换同时每个寄存器内也高低位交换避坑指南有些老版本MCGS没有这个选项需要手动写脚本转换。建议用最新的MCGS Pro软件直接勾选就行。5. 调试技巧与常见问题排查5.1 通讯测试三步法物理层检查用万用表量A/B线间电压正常约2V确认终端电阻已接两端各120Ω数据层检查用Modbus Poll软件测试PLC是否响应监控MCGS的通讯状态指示灯应用层检查先在PLC里写固定值比如让D03.14看MCGS是否能正确显示5.2 典型故障处理现象1通讯时断时续检查接线是否松动降低波特率试试比如从19200降到9600现象2数据值完全不对确认高低位转换设置正确检查寄存器地址偏移量PLC的D0对应40001现象3触摸屏显示通讯超时检查站号是否匹配确认没有多个主站同时访问最近一次现场调试时发现通讯距离超过300米后数据不稳定。后来在中间加了485中继器问题立刻解决。所以长距离通讯一定要提前规划好网络拓扑。

更多文章