1. FX3U与变频器RTU通讯系统概述
在工业自动化控制领域,PLC与变频器之间的稳定通讯是实现精准电机控制的关键。三菱FX3U系列PLC凭借其出色的性能和扩展能力,成为中小型自动化项目的首选控制器。通过加装485BD扩展板,FX3U可以轻松实现与多台变频器的Modbus RTU通讯,构建高效可靠的控制系统。
这个项目中,我们使用FX3U-32MT PLC作为主站,通过485BD扩展板与两台不同品牌的变频器建立通讯:一台是台达VFD-M系列,另一台是三菱FR-E700系列。这种混合品牌配置在实际项目中很常见,需要特别注意协议实现的细节差异。系统主要实现以下功能:
- 独立控制两台变频器的启停和正反转
- 实时设定和调整电机运行频率
- 监控变频器运行状态和参数
- 确保通讯数据的快速响应和准确传输
提示:在选择变频器时,务必确认其支持Modbus RTU协议。虽然大多数现代变频器都支持该协议,但不同品牌的寄存器地址和功能码实现可能存在差异。
2. 硬件配置与连接
2.1 硬件选型与准备
搭建系统前需要准备以下硬件设备:
- 三菱FX3U-32MT PLC(或其他FX3U系列型号)
- 三菱FX3U-485BD通讯扩展板
- 台达VFD-M变频器(本项目使用VFD022M21A)
- 三菱FR-E720变频器(0.4kW型号)
- RS485通讯电缆(建议使用双绞屏蔽线)
- 终端电阻(120Ω,用于长距离通讯)
硬件连接示意图如下:
code复制FX3U-32MT → FX3U-485BD → 台达VFD-M
↘ 三菱FR-E700
2.2 接线规范与注意事项
正确的接线是保证通讯稳定的基础。485BD扩展板的接线端子定义如下:
- SDA:信号线A(正极)
- SDB:信号线B(负极)
- RDA:接收端A
- RDB:接收端B
- SG:信号地
实际接线时需注意:
- 使用双绞屏蔽线,屏蔽层单端接地(通常在PLC端)
- 总线两端需接入120Ω终端电阻
- 避免与动力线平行走线,保持至少30cm距离
- 通讯距离超过50米时,建议增加485中继器
重要提示:台达和三菱变频器的485端子定义不同,接线前务必查阅手册。台达VFD-M的485+对应485BD的SDA,485-对应SDB。
3. 变频器参数设置
3.1 台达VFD-M参数配置
在通电状态下,通过变频器面板设置以下关键参数:
code复制P00.04 = 1 // 频率指令来源设为通讯
P00.05 = 1 // 运转指令来源设为通讯
P01.00 = 3 // 通讯地址(站号),设为3
P01.01 = 3 // 通讯速率9600bps
P01.02 = 0 // 通讯格式8N1
P01.03 = 2 // 通讯协议Modbus RTU
P01.04 = 0 // 通讯超时检测禁止
3.2 三菱FR-E700参数配置
三菱变频器参数设置略有不同:
code复制Pr.117 = 1 // 站号设为1
Pr.118 = 96 // 波特率9600bps
Pr.119 = 0 // 数据长度8位,无校验
Pr.120 = 1 // 通讯重试次数
Pr.121 = 9999 // 通讯校验时间不检测
Pr.122 = 9999 // 通讯等待时间不设定
Pr.123 = 2 // 通讯运行指令权
Pr.124 = 2 // 通讯速度指令权
Pr.549 = 0 // 协议选择Modbus RTU
4. PLC通讯程序设计
4.1 通讯初始化设置
在FX3U中,首先需要对485BD扩展板进行初始化设置。使用MOV指令设置特殊寄存器:
code复制MOV H0C96 D8120 // 通讯格式设置
// 位定义:
// b15-b12: 0-保留
// b11: 0-无校验,1-奇校验,2-偶校验
// b10: 0-1位停止位,1-2位停止位
// b9: 0-7位数据,1-8位数据
// b8: 0-无协议,1-专用协议
// b7-b0: 波特率(96对应9600bps)
4.2 变频器控制指令实现
4.2.1 正反转控制
控制台达VFD-M正反转的示例程序:
code复制LD X0 // 正转启动信号
MOV H0001 D0 // 正转指令代码
CALL P10 // 调用写入子程序
LD X1 // 反转启动信号
MOV H0002 D0 // 反转指令代码
CALL P10 // 调用写入子程序
LD X2 // 停止信号
MOV H0005 D0 // 停止指令代码
CALL P10 // 调用写入子程序
// 子程序P10:写入控制指令
P10:
MOV K3 D100 // 台达站号3
MOV K8192 D101 // 写入地址2000H
MOV D0 D102 // 控制指令
MOV K6 D103 // 数据长度
CALL P20 // 调用Modbus写入
RET
4.2.2 频率设定
设定三菱FR-E700频率的程序:
code复制LD X10 // 频率设定使能
MOV K50 D1 // 设定频率50.0Hz
MUL K10 D1 D2 // 转换为变频器单位
MOV K1 D100 // 三菱站号1
MOV K2 D101 // 写入地址0002H
MOV D2 D102 // 频率值
MOV K6 D103 // 数据长度
CALL P20 // 调用Modbus写入
4.3 数据监控程序
读取台达VFD-M输出频率的示例:
code复制LD M8002 // 初始脉冲
MOV K3 D100 // 台达站号3
MOV K8448 D101 // 读取地址2100H
MOV K2 D102 // 读取字数
MOV K6 D103 // 数据长度
CALL P30 // 调用Modbus读取
MOV D200 D3 // 存储读取值
DIV K100 D3 D4 // 转换为实际频率值
5. 通讯校验与错误处理
5.1 CRC校验实现
Modbus RTU协议使用CRC-16校验,FX3U可通过以下方式实现:
code复制// CRC计算子程序
// 输入:D500起始的发送数据,D510数据长度
// 输出:D520 CRC校验值
P40:
MOV HFFFF D520 // CRC初始值
FOR K0 D511 K0 (D510-1)
MOV D500(D511) D521 // 取数据字节
XOR D521 D520 // 异或运算
FOR K0 D512 K0 7
MOV D520 D522
AND H0001 D522 // 检查最低位
CMP= K0 D522
JMP P41
MOV D520 D522
SHR D522 // 右移1位
MOV D522 D520
XOR HA001 D520 // 异或多项式
JMP P42
P41:
MOV D520 D522
SHR D522 // 右移1位
MOV D522 D520
P42:
NEXT
NEXT
RET
5.2 通讯异常处理
完善的错误处理机制可提高系统可靠性:
code复制// 通讯超时监控
LD M8129 // 通讯错误标志
SET M100 // 系统报警
MOV K100 T0 // 设置重试延时
OUT T0
LD T0
RST M8129 // 清除错误标志
RST M100 // 复位报警
// 数据校验
CMP<> D200 D201 // 比较发送接收数据
SET M101 // 数据不一致报警
6. 系统调试与优化
6.1 常见问题排查
-
通讯无响应:
- 检查接线是否正确,特别是A/B线是否反接
- 确认所有设备波特率、数据格式一致
- 测量485线路电压,A-B应有2-6V差压
-
数据错误:
- 确认CRC校验程序正确
- 检查接地是否良好,排除干扰
- 尝试降低波特率测试
-
随机通讯中断:
- 增加终端电阻
- 缩短通讯距离或增加中继器
- 检查电源稳定性
6.2 性能优化建议
- 合理设置通讯轮询周期,关键参数快速刷新,次要参数慢速刷新
- 对重要控制指令采用"写-读-比较"方式确保执行成功
- 在PLC中建立数据缓冲区和变化检测机制,减少不必要通讯
- 使用状态机编程模式管理通讯流程,提高程序可读性
7. 扩展应用与进阶技巧
7.1 多变频器系统扩展
当需要控制更多变频器时,可采用以下方案:
- 增加485中继器扩展节点数量
- 采用分时复用策略,优化轮询顺序
- 对变频器分组管理,建立分级控制系统
7.2 与其他设备集成
FX3U的485BD扩展板还可连接:
- HMI人机界面
- 智能仪表(电表、温控器等)
- 其他品牌PLC
- 上位机监控系统
实现方案:
code复制// 多协议处理示例
LD M8000
CMP= K1 D300 // 判断设备类型
JMP P50 // 变频器协议
CMP= K2 D300
JMP P60 // 仪表协议
CMP= K3 D300
JMP P70 // HMI协议
P50:
// 变频器通讯处理
...
RET
P60:
// 仪表通讯处理
...
RET
通过这个FX3U与变频器的通讯系统实现,我们不仅掌握了Modbus RTU协议的应用技巧,还积累了混合品牌设备集成的宝贵经验。在实际项目中,建议先进行单台设备调试,确认通讯正常后再扩展至多台。同时保留详细的调试记录,这对后续维护和故障排查非常有帮助。