三菱 PLC(以 FX5U 为例)与 Modbus 设备(如传感器、变频器、仪表)的通信可通过内置 Modbus RTU 功能或扩展模块实现。以下是一个典型实例:用 FX5U PLC 通过 Modbus RTU(RS485)读取温湿度传感器数据,并控制变频器启停,包含硬件接线、参数设置、程序编写及调试方法。
一、硬件准备与接线
1. 设备清单
2. 接线方式(RS485 总线)
接线示意图:
plaintext
FX5U PLC 温湿度传感器 变频器 A ------------ A ------------ A B ------------ B ------------ B SG ----------- SG ----------- SG (24V)---------(VCC) (独立供电)
二、PLC 参数设置(GX Works3)
1. 启用 Modbus RTU 主站功能
2. 从机参数匹配
三、程序编写(Modbus 通信指令)
FX5U 通过MODBUS_RTU
指令库实现通信,需在程序中调用 “读寄存器” 和 “写寄存器” 指令。
1. 读取温湿度传感器数据(从机地址 1)
plaintext
// 读取温湿度(上升沿触发,M0为启动信号) LD PLS M0 // 触发读指令 MOV K1 D100 // D100=从机地址1 MOV H03 D101 // D101=功能码03(读寄存器) MOV H0000 D102 // D102=起始地址0x0000 MOV K2 D103 // D103=读取寄存器数量2(温度+湿度) MOV D200 D104 // D104=接收数据存储首地址(D200=温度高8位,D201=温度低8位,D202=湿度高8位,D203=湿度低8位) CALL "MODBUS_RTU" // 调用Modbus指令 // 指令参数:D100=从机地址,D101=功能码,D102=起始地址,D103=数量,D104=接收区,D105=状态码(0=成功) LD D105=K0 // 通信成功 MOV D200 D300 // 存储温度数据(D300=温度,浮点型转换) MOV D202 D302 // 存储湿度数据(D302=湿度,浮点型转换)
2. 控制变频器(从机地址 2)
plaintext
// 变频器启动(M1为启动按钮) LD M1 MOV K2 D110 // D110=从机地址2 MOV H06 D111 // D111=功能码06(写单个寄存器) MOV H0000 D112 // D112=控制寄存器地址0x0000 MOV K1 D113 // D113=写入值1(启动) CALL "MODBUS_RTU" LD D115=K0 // 写入成功 SET M10 // 启动成功标志 // 设置频率为50Hz(M2为频率设置按钮) LD M2 MOV K2 D120 // D120=从机地址2 MOV H06 D121 // D121=功能码06 MOV H0001 D122 // D122=频率寄存器地址0x0001 MOV K500 D123 // D123=500(对应50.0Hz) CALL "MODBUS_RTU" LD D125=K0 // 写入成功 SET M11 // 频率设置成功标志
3. 数据转换(浮点型处理)
温湿度传感器返回的是 32 位浮点型数据(如温度 25.5℃对应十六进制41C80000
),需通过FLT
指令转换:
plaintex
// 温度转换(D200=高16位,D201=低16位 → D300=浮点型温度) FLT D200 D300 // 将32位整数转换为浮点数(FX5U支持32位操作) // 湿度转换同理 FLT D202 D302
四、调试与故障排查
1. 通信状态监控
2. 常见问题解决
五、总结
三菱 PLC 与 Modbus 设备通信的核心是:参数匹配(波特率、地址、格式)+ 正确调用指令(读 / 写寄存器)+ 抗干扰设计。本例通过 FX5U 读取传感器数据并控制变频器,可扩展到其他 Modbus 设备(如阀门、仪表),只需修改从机地址、寄存器地址和数据处理逻辑即可。实际应用中,建议先通过 Modbus 调试工具(如 “Modbus Poll”)验证从机通信正常,再编写 PLC 程序,提高调试效率。