1. 项目概述
在工业自动化控制系统中,PLC与变频器的通讯联机是最基础也最常遇到的技术需求之一。今天要分享的是三菱FX3U系列PLC通过485ADP-MB扩展模块与英威腾GD系列变频器建立Modbus通讯的完整解决方案。这个方案已经在多个实际工业场景中稳定运行超过两年,包括造纸、食品加工等行业的生产线。
这个项目的核心目标是通过Modbus RTU协议实现三个关键功能:
- 远程控制变频器的启动/停止
- 实时设定电机运行频率
- 读取变频器当前输出频率
整套系统由以下几个硬件组成:
- 三菱FX3U系列PLC(本体)
- FX3U-485ADP-MB通讯扩展模块
- 英威腾GD系列变频器
- 昆仑通态TPC7062KD触摸屏(HMI)
- 备用方案:威纶通触摸屏程序
2. 硬件连接与配置
2.1 通讯物理连接
RS485通讯的物理连接看似简单,但实际项目中超过30%的通讯故障都源于接线错误。正确的接线方式如下:
- 使用双绞屏蔽线(推荐AWG18规格)
- 将485ADP-MB模块的A+端子与变频器的A+端子相连
- 将B-端子与变频器的B-端子相连
- 屏蔽层单端接地(通常在PLC侧接地)
重要提示:当通讯距离超过50米时,必须将485ADP-MB模块上的终端电阻拨码开关打到ON位置。我曾经在一个食品厂项目中因为忽略这个细节,导致通讯时断时续,排查了整整三天才发现问题。
2.2 变频器参数设置
英威腾GD变频器需要正确设置以下关键参数才能响应Modbus通讯:
| 参数代码 | 设定值 | 参数含义 |
|---|---|---|
| P00.01 | 1 | 指令源选择:通讯控制 |
| P14.03 | 1 | 站号设置为1(可修改) |
| P14.04 | 3 | 波特率9600bps |
| P14.05 | 2 | 校验方式:偶校验 |
| P14.06 | 1 | 停止位:1位 |
这些参数设置完成后,必须断电重启变频器才能生效。在实际调试中,建议先用变频器面板手动控制测试电机运行正常后,再切换到通讯控制模式。
3. PLC程序设计
3.1 通讯初始化
三菱FX3U的通讯参数通过特殊寄存器D8120进行设置。以下是标准的Modbus RTU通讯格式配置:
st复制MOV H0C87 D8120 // 通讯格式:9600/8/E/1
MOV K1 D8121 // 设置站号(主站通常设为1)
这里H0C87的每一位含义如下:
- 0:固定头
- C:波特率9600(二进制1100)
- 8:数据长度8位
- 7:校验方式偶校验+停止位1(二进制0111)
3.2 启停控制程序
控制变频器启动/停止的典型程序段如下:
st复制LD M0 // 启动按钮信号
MOV K6 D10 // 功能码06(写单寄存器)
MOV K40000 D11 // 变频器运行命令地址(40001-1)
MOV K1 D12 // 写入值1(正转运行)
RS D10 K6 // 发送6个字节数据
关键点说明:
- Modbus地址转换:变频器手册中的40001地址在程序中要写为40000,因为三菱PLC的地址是从0开始计算的
- 写入值1表示正转运行,2表示反转运行,0表示停止
- RS指令用于触发串口发送,K6表示发送6个字节
3.3 频率设定程序
设定运行频率的程序需要考虑数值转换问题:
st复制LD M1 // 频率设定使能
MOV K6 D20 // 功能码06
MOV K40001 D21 // 频率设定地址(40002-1)
MOV D100 D22 // 设定值(单位0.01Hz)
RS D20 K6 // 发送指令
这里D100中存储的是实际频率×100的值。例如要设定40.00Hz,需要先执行:
st复制MOV K4000 D100 // 40.00Hz × 100 = 4000
3.4 频率读取程序
读取变频器输出频率的程序相对复杂,需要处理数据接收和转换:
st复制LD M8000 // PLC运行常开触点
MOV K3 D30 // 功能码03(读保持寄存器)
MOV K2001 D31 // 变频器D311地址(十进制2001)
MOV K1 D32 // 读取1个寄存器
RS D30 K6 // 发送请求
// 数据接收处理
LD M8122 // 接收完成标志
MOV D100 D200 // 将接收数据存入D200
接收到的数据需要经过以下转换:
- D200中的十六进制值(如0FA0)转换为十进制(4000)
- 除以100得到实际频率值(40.00Hz)
4. 触摸屏配置
4.1 昆仑通态TPC7062KD配置
在昆仑通态触摸屏上,主要需要配置以下元素:
-
频率设定输入框:
- 变量关联:D100(32位整数)
- 缩放比例:实际值=显示值/100
- 范围限制:0~5000(对应0.00~50.00Hz)
-
运行频率显示框:
- 变量关联:D200(32位整数)
- 缩放比例:实际值=显示值/100
- 数值格式:##.## Hz
-
启停按钮:
- 启动按钮:置位M0
- 停止按钮:复位M0
4.2 威纶通触摸屏备用方案
作为备用方案,威纶通触摸屏通过宏指令实现了数据缓存和重发机制:
vb复制' 频率设定宏指令
If PLC_Comm_Status = 0 Then ' 通讯异常
Store_Value = Set_Frequency ' 缓存设定值
Else
Send_Command(Store_Value) ' 发送缓存值
End If
这种设计在通讯不稳定的场合特别有用,可以避免因短暂通讯中断导致的生产中断。
5. 调试技巧与故障排查
5.1 常见问题速查表
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯完全无响应 | 接线错误 | 检查A+/B-是否接反 |
| 能发送但无回复 | 站号不匹配 | 核对PLC和变频器站号 |
| 数据错误 | 校验方式不一致 | 检查双方校验位设置 |
| 偶尔通讯中断 | 终端电阻未启用 | 超过50米需启用终端电阻 |
| 频率显示异常 | 数据格式错误 | 检查数值转换程序 |
5.2 串口监听工具的使用
推荐使用Modbus Poll或Simply Modbus等工具进行通讯监控。典型的正常通讯数据流如下:
code复制发送:01 06 40 00 00 01 XX XX (启动命令)
接收:01 06 40 00 00 01 XX XX (正常响应)
如果发现发送后无响应,可以:
- 检查硬件接线
- 确认变频器已上电且参数设置正确
- 使用万用表测量485线路电压(A-B应有2-6V压差)
5.3 抗干扰措施
在工业现场,建议采取以下措施提高通讯稳定性:
- 使用屏蔽双绞线,屏蔽层单端接地
- 避免与动力线平行走线,交叉时保持90度角
- 在干扰严重的环境,可考虑增加485中继器
- 程序上实现超时重发机制(如3次重试)
6. 程序优化技巧
6.1 通讯超时处理
在PLC程序中添加以下超时检测逻辑:
st复制LD M8122 // 接收完成
RST T0 // 复位超时计时器
LD M8000 // PLC运行
OUT T0 K50 // 5秒超时计时器
LD T0 // 超时触发
OUT M100 // 通讯异常标志
6.2 数据校验增强
除了Modbus自带的CRC校验外,可以在应用层增加简单校验:
st复制// 发送前计算校验和
MOV D10 D50 // 复制发送缓冲区
ADD D11 D50
ADD D12 D50
MOV D50 D13 // 校验和存入最后字节
// 接收校验
ADD D100 D110
ADD D101 D110
SUB D102 D110 // 结果应为0
6.3 频率平滑过渡
避免频率突变导致机械冲击:
st复制LD M2 // 频率渐变使能
CMP D100 D200 // 比较设定值与当前值
<= // 如果设定值≤当前值
MOV D200 D210 // 直接使用设定值
> // 如果设定值>当前值
INC D200 // 每次增加1(0.01Hz)
这套系统在山东某造纸厂的实际应用中,实现了连续700天无故障运行的记录。关键就在于这些细节处理——正确的参数设置、可靠的硬件连接、完善的错误处理机制,以及针对工业现场环境的特殊优化。
