1. 项目背景与核心需求
工业自动化领域中,PLC与变频器的通讯集成是最基础也最关键的环节。三菱FX3G/3U系列作为日系PLC的经典机型,与台达VFD-E变频器的组合在纺织、包装、输送线等场景非常普遍。但两种设备分别采用不同的通讯协议(三菱专用协议与Modbus RTU),要实现稳定可靠的通讯需要解决三大核心问题:
- 协议转换:FX3G/3U原生不支持Modbus协议,需要通过扩展模块或编程实现协议转换
- 参数映射:变频器的频率、电流等参数需要正确映射到PLC寄存器地址
- 异常处理:工业现场电磁干扰大,需建立完善的通讯故障恢复机制
我曾在一个食品包装产线改造项目中,需要实时调节12台台达VFD-E变频器的转速。最初采用模拟量控制存在信号衰减问题,最终通过RTU通讯方案实现稳定控制。下面分享具体实现过程。
2. 硬件配置与接线规范
2.1 设备选型清单
- 主控设备:三菱FX3U-32MT/ES-A(基本单元)
- 通讯模块:FX3U-485ADP-MB(Modbus RTU主站适配器)
- 变频器:台达VFD007E21A(0.75kW)6台,VFD015E21A(1.5kW)6台
- 通讯电缆:Belden 9842双绞屏蔽线(带阻抗匹配)
2.2 硬件连接要点
-
接线方式:采用RS485两线制接线(DA/DB)
- FX3U-485ADP-MB的SDA接所有变频器的S+
- FX3U-485ADP-MB的SDB接所有变频器的S-
- 两端需接入120Ω终端电阻
-
地址分配:
plaintext复制
变频器站号:1#-6#(0.75kW)地址1-6 7#-12#(1.5kW)地址7-12 -
接地规范:
- 屏蔽层单端接地(PLC侧)
- 接地电阻要求<4Ω
- 避免与动力线平行走线(最小间距30cm)
关键提示:台达VFD-E系列默认通讯参数为9600bps/8N1,需先在变频器面板修改为与PLC一致的19200bps(参数P00.15)
3. PLC程序开发详解
3.1 通讯初始化设置
在GX Works2中配置ADP模块参数:
structured复制MOV H0C81 D8120 // 设置通讯格式:19200bps/8N1/无校验
MOV K1 D8121 // 设置通讯超时为100ms
3.2 Modbus功能码实现
以读取1#变频器输出频率(Modbus地址0x2102)为例:
structured复制LD M8000 // 常ON触点
MOV K1 D100 // 从站地址=1
MOV H2102 D101 // 寄存器地址
MOV K1 D102 // 读取长度
MOV K3 D103 // 功能码=03(读保持寄存器)
RS D100 K8 D200 K4 // 发送接收指令
3.3 数据转换处理
台达变频器返回的数据为16位有符号整数(单位0.01Hz):
structured复制LD M8029 // 通讯完成标志
DIV D200 K100 D210 // 实际频率=原始值/100
4. 变频器关键参数配置
4.1 必须修改的参数
| 参数代码 | 名称 | 设定值 | 说明 |
|---|---|---|---|
| P00.14 | 通讯地址 | 1-12 | 对应PLC分配的站号 |
| P00.15 | 通讯波特率 | 5 | 19200bps |
| P00.16 | 通讯协议 | 1 | Modbus RTU模式 |
| P00.17 | 通讯应答延迟 | 20 | 单位ms(建议值) |
| P01.00 | 频率指令来源 | 3 | 通讯给定 |
4.2 安全相关参数
plaintext复制P06.02=2 // 通讯异常时自由停车
P06.03=5 // 通讯超时判定时间5s
P10.12=1 // 启用Modbus CRC校验
5. 现场调试问题实录
5.1 典型故障排查表
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| PLC报错代码6705 | 从站无响应 | 检查终端电阻/站号设置 |
| 数据波动大 | 接地不良/屏蔽层破损 | 重新处理接地,更换电缆 |
| 偶尔通讯中断 | 波特率不匹配 | 确认所有设备波特率一致 |
| 写指令不生效 | 变频器处于运行状态 | 先停机再写入参数 |
5.2 抗干扰优化措施
-
在PLC程序增加心跳检测机制:
structured复制// 每5秒检测一次通讯状态 LD M8013 // 1s时钟脉冲 OUT C0 K5 // 5次计数 LD C0 MOV K2 D100 // 功能码02(读输入状态) RS D100 K8 D300 K1 -
数据校验策略:
- 重要参数采用"读取-回写-验证"三步操作
- 关键指令(如启动/停止)增加重试机制
6. 性能优化建议
-
通讯效率提升:
- 使用批量读取指令(一次读取多个参数)
- 将频繁访问的参数映射到PLC的D寄存器缓存区
-
典型批量读取示例(监控3个关键参数):
structured复制MOV K1 D100 // 从站地址
MOV H2100 D101 // 起始地址(输出频率)
MOV K3 D102 // 读取3个寄存器
MOV K3 D103 // 功能码03
RS D100 K8 D200 K6 // 读取结果存入D200-D205
- 实际项目中的参数分配方案:
- D200:输出频率(0.01Hz)
- D202:输出电流(0.01A)
- D204:DC母线电压(0.1V)
这套系统在食品包装线上连续运行2年多,通讯成功率保持在99.98%以上。最关键的体会是:工业通讯不能只关注协议实现,必须结合现场环境做完整的抗干扰设计。比如我们后来在所有变频器通讯端口增加了磁环滤波器,通讯稳定性得到进一步提升。