1. 项目概述
三菱Fx3u作为工业自动化领域广泛使用的PLC控制器,其MODBUS RTU从站功能的实现一直是工控开发者关注的焦点。这个项目展示了如何在Fx3u上实现支持H03(读取保持寄存器)和H10(预置多个寄存器)功能码的MODBUS RTU从站程序,特别针对485通信场景进行了优化。
我在实际工业现场调试中发现,很多工程师在使用Fx3u作为MODBUS从站时,经常遇到字节顺序错乱、功能码支持不全的问题。这个经过实战检验的方案,不仅解决了这些痛点,还通过详尽的注释和字节交换处理,让二次开发变得更容易。
2. 硬件准备与环境搭建
2.1 硬件配置要求
要实现这个MODBUS RTU从站方案,你需要准备以下硬件:
- 三菱Fx3u系列PLC(建议使用Fx3u-32MT及以上型号)
- Fx3u-485-BD通信扩展板(这是实现485通信的关键)
- 终端电阻(120Ω,用于长距离通信时阻抗匹配)
- 标准的MODBUS RTU主站设备(如威纶通HMI、MCGS触摸屏等)
注意:Fx3u-485-BD板的接线端子定义与常规485设备不同,A/B端子对应的是SDA/RDA和SDB/RDB,实际接线时需要特别注意。
2.2 通信参数设置
MODBUS RTU通信需要主从站参数完全匹配。在Fx3u侧需要通过程序设置以下参数:
- 波特率:常用9600/19200/38400(需与主站一致)
- 数据位:8位(MODBUS标准)
- 停止位:1位或2位(多数设备用1位)
- 校验方式:无校验/偶校验/奇校验(必须与主站相同)
ladder复制// 三菱梯形图示例 - 通信参数初始化
MOV K9600 D8120 // 设置波特率为9600
MOV K1 D8121 // 设置数据格式:8N1
3. 程序架构设计
3.1 内存区域规划
MODBUS协议需要明确定义数据映射区域。在Fx3u中,我们使用以下寄存器分配:
| MODBUS功能 | Fx3u寄存器 | 地址范围 | 用途说明 |
|---|---|---|---|
| H03读取 | D1000-D1499 | 0x0000-0x01F3 |
