1. 项目背景与核心需求
去年接手了一个纺织车间的自动化改造项目,需要实现对四台变频器的集中控制。客户指定使用三菱FX3U PLC作为主控,通过Modbus RTU协议与变频器通讯。这个方案最吸引人的地方在于,它完美解决了传统硬接线控制方式布线复杂、故障排查困难的问题。
整个系统架构中,FX3U PLC通过RS485总线连接四台变频器(实际测试最远距离达到120米),同时配有人机界面(HMI)用于参数设置和状态监控。相比传统的模拟量控制,这种通讯方式不仅节省了PLC的I/O点数,还能实时获取变频器的运行频率、电流、故障代码等完整状态信息。
2. 硬件配置详解
2.1 核心设备选型
主控PLC选用FX3U-48MT/ES-A,这是三菱电机FX3U系列中的经典机型,自带24点输入/24点晶体管输出。特别重要的是它内置了RS422/485通讯口,无需额外添加通讯模块就能实现Modbus RTU主站功能。
变频器方面,我们测试了三款主流品牌:
- 三菱FR-D700系列(与PLC同品牌,兼容性最佳)
- 台达VFD-M系列(性价比突出)
- 西门子MM420(稳定性好)
最终选择台达VFD-M,主要考虑三点:
- 支持标准Modbus RTU协议(功能码03/06/16)
- 单台价格比三菱低30%
- 实际测试响应速度在100ms以内
2.2 通讯网络搭建
RS485总线采用手拉手连接方式,注意三个关键细节:
- 终端电阻:在总线最远端的变频器上启用120Ω终端电阻
- 线缆选择:使用带屏蔽层的双绞线(AWG18)
- 接地处理:屏蔽层单端接地(接在PLC端)
硬件连接示意图:
code复制[FX3U PLC]---RS485+---[变频器1]---[变频器2]---[变频器3]---[变频器4]
---RS485- (最远端启用终端电阻)
3. PLC程序开发
3.1 通讯参数设置
在GX Works2中配置串口参数:
- 波特率:19200(经验值,兼顾速度和稳定性)
- 数据位:7位
- 停止位:1位
- 校验方式:偶校验
- 站号设置:变频器1~4分别设为1~4
关键指令说明:
ladder复制MOV H0C96 D8120 // 设置通讯格式:19200,7,E,1
MOV K1 D100 // 变频器1的站号
3.2 功能块设计
设计了一个通用的变频器控制功能块,包含以下功能:
- 启动/停止控制(写入寄存器0x2000)
- 频率设定(写入寄存器0x2001)
- 运行状态读取(读取寄存器0x2100)
- 故障代码读取(读取寄存器0x2101)
典型读写程序示例:
ladder复制// 写入运行命令
MOV K1 D0 // 站号
MOV H2000 D1 // 寄存器地址
MOV K1 D2 // 运行命令(1=启动)
CALL P_RTUWrite // 调用写指令功能块
// 读取运行频率
MOV K1 D0 // 站号
MOV H2100 D1 // 寄存器地址
CALL P_RTURead // 调用读指令功能块
MOV D10 D100 // 频率值存入D100
4. 触摸屏界面设计
4.1 主控界面布局
使用威纶通TK6071IQ触摸屏,主要界面元素:
- 变频器选择选项卡(1~4号)
- 启动/停止按钮组
- 频率设定滑块(0-50Hz)
- 实时监控区域(电流、电压、温度)
- 故障报警指示灯
4.2 关键功能实现
频率设定逻辑:
- 触摸屏将设定值写入PLC的D200~D203(对应4台变频器)
- PLC通过定时中断(每500ms)将D200值写入变频器
- 读取实际频率显示在触摸屏上
报警处理方案:
ladder复制// 在PLC中处理故障代码
LD M8000 // 常ON触点
CALL P_ReadFault // 读取故障代码
MOV D50 K4M100 // 将故障代码分解到M100-M115
5. 调试经验与问题排查
5.1 典型故障处理
-
通讯超时问题:
- 现象:PLC报错代码6401
- 排查:用示波器检查RS485信号质量
- 解决:调整终端电阻阻值(实测最佳为110Ω)
-
频率设定不生效:
- 现象:触摸屏显示值变化但电机转速不变
- 排查:检查变频器参数P00.17(通讯控制权限)
- 解决:设为1(允许通讯控制)
5.2 性能优化技巧
-
轮询周期设置:
- 重要参数(如运行状态):500ms
- 次要参数(如温度):5s
- 采用分时读取策略减轻总线负荷
-
数据校验增强:
ladder复制// 在接收数据处理中加入CRC重验算
CALL P_CRC16 D100 K8 D200 // 对接收数据计算CRC
CMP D200 D208 // 比较计算值与接收值
6. 系统扩展与进阶应用
6.1 多PLC组网方案
当控制超过8台变频器时,建议采用:
- FX3U-485BD模块扩展通讯口
- 分网段控制(每网段不超过32个节点)
- 增加RS485中继器延长通讯距离
6.2 与上位机集成
通过PLC的编程口实现:
- 开发C#监控程序,使用MX Component控件
- 实时数据库(如SQLite)存储运行数据
- 生成日报表(运行时长、能耗统计)
配置示例代码:
csharp复制var plc = new ActMLFX3U();
plc.Open("COM3,19200,7,E,1");
int freq = plc.GetDevice("D100");
这个项目从硬件选型到软件调试总共耗时3周,最耗时的部分是通讯稳定性调试。实际运行半年后统计,相比原来的继电器控制方案,故障率降低了70%,维护工时节省了60%。对于需要控制多台变频器的场合,Modbus RTU通讯方案确实能带来显著的性价比提升。