1. 项目概述与硬件配置
在工业自动化控制系统中,PLC与变频器的通信是实现电机精准控制的关键环节。这次我们要实现的是三菱FX3U PLC通过485通信方式与台达VFD变频器的数据交互,同时配合昆仑通态触摸屏实现人机交互界面。
1.1 核心硬件组成
这套系统主要由三个核心硬件组成:
- 三菱FX3U PLC:作为系统主控制器,负责逻辑运算和指令下发
- FX3U-485BD通信扩展板:安装在PLC右侧,提供RS485通信接口
- 台达VFD-M系列变频器:接收控制指令并驱动电机运行
特别需要注意的是,FX3U-485BD板的安装有方向要求,必须将板卡上的"TOP"标记朝上安装。安装时需先关闭PLC电源,板卡插入后要用螺丝固定,确保连接可靠。
1.2 通信参数配置
通信采用Modbus RTU协议,具体参数设置如下:
- 波特率:19200bps(根据现场干扰情况可调整为9600bps)
- 数据位:8位
- 停止位:1位
- 校验方式:偶校验
- 站号设置:变频器默认站号为1,PLC作为主站
重要提示:所有设备的通信参数必须完全一致,否则会导致通信失败。建议先用调试软件测试通信线路是否通畅。
2. 通信协议与数据帧解析
2.1 Modbus RTU协议要点
Modbus RTU协议采用主从式通信架构,PLC作为主站,变频器作为从站。每个数据帧由以下部分组成:
- 从站地址(1字节)
- 功能码(1字节)
- 数据区(N字节)
- CRC校验(2字节)
2.2 台达变频器关键寄存器地址
台达变频器常用的Modbus寄存器地址如下表所示:
| 功能描述 | 寄存器地址 | 数据类型 | 读写属性 |
|---|---|---|---|
| 运行频率设定 | 0x2000 | 16位整数 | 读写 |
| 输出频率读取 | 0x2103 | 16位整数 | 只读 |
| 输出电流读取 | 0x2104 | 16位整数 | 只读 |
| 输出电压读取 | 0x2105 | 16位整数 | 只读 |
| 运行命令控制 | 0x2001 | 16位整数 | 读写 |
2.3 频率值换算方法
变频器频率值在通信时采用整数传输,实际频率与传输值的换算关系为:
- 设定频率范围:0.00Hz~400.00Hz
- 通信传输值 = 实际频率 × 100
例如:要设定50.00Hz,应发送数值5000(0x1388)
3. PLC程序开发详解
3.1 通信初始化设置
在PLC程序中,首先需要进行通信初始化设置:
ladder复制LD M8002 // 初始脉冲
MOV H0C96 D8120 // 设置通信格式:19200bps,8,E,1
MOV K1 D8121 // 设置通信超时为100ms
D8120的各位含义如下:
- b15-b12:固定为0
- b11-b10:00=无协议,01=RS232,10=RS485
- b9-b8:00=无校验,01=奇校验,10=偶校验
- b7:停止位(0=1位,1=2位)
- b6-b0:波特率设置(0C96h对应19200bps)
3.2 频率设定程序实现
频率设定功能的核心程序段:
ladder复制LD X0 // 频率设定启动按钮
ANI M0 // 防重复触发标志
MOV K5000 D100 // 设定频率50Hz(5000=50.00Hz)
CALL P10 // 调用频率设定子程序
SET M0 // 设置防重复标志
频率设定子程序P10:
ladder复制P10:
LD M8000 // 运行监视
MOV K1 D0 // 从站地址=1
MOV H06 D1 // 功能码06=写单个寄存器
MOV H2000 D2 // 寄存器地址2000=频率设定
MOV D100 D3 // 频率设定值
MOV K8 D10 // 发送数据长度=8字节
RS D0 K8 D100 K0 // 发送数据
RET
3.3 运行控制命令实现
正反转控制程序示例:
ladder复制LD X1 // 正转启动按钮
ANI M1
MOV H12 D200 // 正转命令=0x12
CALL P20 // 调用运行控制子程序
SET M1
LD X2 // 反转启动按钮
ANI M2
MOV H22 D200 // 反转命令=0x22
CALL P20
SET M2
LD X3 // 停止按钮
ANI M3
MOV H01 D200 // 停止命令=0x01
CALL P20
SET M3
运行控制子程序P20:
ladder复制P20:
LD M8000
MOV K1 D0 // 从站地址=1
MOV H06 D1 // 功能码06
MOV H2001 D2 // 寄存器地址2001=运行命令
MOV D200 D3 // 控制命令值
MOV K8 D10
RS D0 K8 D100 K0
RET
4. 触摸屏界面设计与实现
4.1 昆仑通态触摸屏配置要点
- 新建工程时选择正确的PLC型号(三菱FX3U)
- 通信参数设置与PLC保持一致:
- 接口类型:RS485
- 波特率:19200bps
- 数据位:8位
- 校验:偶校验
- 设备地址设置:0(对应PLC的D寄存器)
4.2 主要界面元素设计
-
频率设定输入框:
- 变量地址:D100(与PLC程序对应)
- 数据格式:32位有符号整数
- 显示格式:实际值/100,保留2位小数
-
运行状态指示灯:
- 正转运行:读取M10状态
- 反转运行:读取M11状态
- 故障状态:读取M12状态
-
实时数据显示:
- 输出频率:D101(单位:0.01Hz)
- 输出电流:D102(单位:0.1A)
- 输出电压:D103(单位:0.1V)
4.3 数据刷新机制
为保证数据显示的实时性,建议采用以下刷新策略:
- 按钮类元素:立即响应
- 状态指示灯:200ms刷新周期
- 模拟量数据显示:500ms刷新周期
- 历史数据记录:1s记录一次
5. 调试技巧与常见问题处理
5.1 通信故障排查步骤
-
检查物理连接:
- 确认485接线正确(A对A,B对B)
- 终端电阻是否匹配(长距离通信需加120Ω终端电阻)
-
验证通信参数:
- 使用串口调试工具直接测试变频器通信
- 确认PLC与触摸屏的通信参数一致
-
监控通信数据:
- 使用RS485监听器抓取通信报文
- 分析错误响应代码(常见错误码见下表)
5.2 常见错误代码及处理
| 错误代码 | 含义 | 解决方案 |
|---|---|---|
| 01 | 非法功能码 | 检查功能码是否支持 |
| 02 | 非法数据地址 | 检查寄存器地址是否正确 |
| 03 | 非法数据值 | 检查写入数据是否超出范围 |
| 04 | 从站设备故障 | 检查变频器状态 |
| 10 | 通信超时 | 检查线路或调整超时参数 |
5.3 抗干扰措施
- 通信线采用双绞屏蔽线,屏蔽层单端接地
- 避免与动力线平行走线,交叉时垂直通过
- 长距离通信时(超过50米)降低波特率至9600bps
- 在PLC和变频器侧加装信号隔离器
6. 系统优化建议
6.1 程序结构优化
- 将常用功能封装成功能块,提高代码复用率
- 添加通信重试机制,提高系统可靠性
- 实现参数掉电保存功能,防止数据丢失
6.2 安全保护措施
- 增加急停电路,硬件直接切断变频器电源
- 设置频率上下限保护(PLC和变频器双重保护)
- 实现故障连锁功能,异常时自动停机
6.3 扩展功能建议
- 增加运行时间统计功能
- 实现多段速控制功能
- 添加能耗统计界面
- 开发手机远程监控功能(需增加网关设备)
在实际项目中,我们发现通信成功率与接地质量密切相关。建议将PLC、变频器和触摸屏的接地端子统一连接到同一接地桩,接地电阻应小于4Ω。另外,在程序初始化阶段增加设备握手确认流程,可以提前发现通信问题。
