1. 项目概述
最近在车间完成了三菱FX3U PLC与E700系列变频器的Modbus RTU通讯项目,整个过程可谓是一波三折。这个方案主要用于生产线的电机调速控制,通过485BD通讯板实现PLC对多台变频器的集中控制。在实际调试过程中,遇到了不少坑,也积累了一些宝贵经验,今天就把这个项目的完整实现过程分享给大家。
这个系统主要由三部分组成:FX3U PLC作为主站、FR-E700变频器作为从站、MT6103IP触摸屏作为人机界面。通讯采用标准的Modbus RTU协议,物理层使用RS485接口。相比传统的模拟量控制方式,这种方案布线简单、抗干扰能力强,特别适合工业现场的多电机协同控制场景。
2. 硬件配置与接线
2.1 硬件选型说明
在这个项目中,我选择了以下硬件组合:
- PLC:三菱FX3U-32MT,基本单元带晶体管输出
- 通讯模块:FX3U-485BD板卡,安装在PLC右侧扩展口
- 变频器:FR-E740-0.75K-CHT(E700系列通用)
- 触摸屏:威纶通MT6103IP
选择485BD板卡而不是专用的通讯模块,主要出于成本考虑。对于单主站、多从站的Modbus RTU通讯,485BD完全能够满足需求,价格却只有专用模块的1/3左右。
2.2 关键接线细节
变频器PU口与485BD的接线必须严格按照以下规范:
code复制PU口 | 485BD
--------|-------
SDA(+) | RDA
SDB(-) | RDB
SG | SG(屏蔽地)
重要提示:必须使用双绞屏蔽线,屏蔽层单端接地(接在PLC侧)。我最初用普通线测试时,通讯误码率高达30%,换成屏蔽线后立即稳定。
终端电阻的设置是另一个容易忽略的关键点:
- 当网络末端只有一台变频器时,将其PU口的终端电阻开关拨到110Ω位置
- 多台变频器级联时,仅在最末端一台启用终端电阻
3. 通讯参数配置
3.1 PLC通讯设置
FX3U的串口通讯参数通过D8120寄存器配置,典型设置如下:
assembly复制MOV H0C96 D8120 // 波特率9600/8位数据/偶校验/1停止位
MOV K1 M8161 // 启用8位数据处理模式
这里有几个技术细节需要注意:
- H0C96这个值的计算方法是:波特率选择位(b0-b3)=6(9600)+数据长度(b4)=0(8位)+校验(b5-b7)=9(偶校验)
- M8161必须置1,否则无法正确处理Modbus协议中的8位数据
- 参数设置指令应该放在PLC的第一个扫描周期执行(用M8002触发)
3.2 变频器参数设置
FR-E700变频器需要设置以下参数:
code复制Pr.117 = 1 // 站号1
Pr.118 = 96 // 波特率9600
Pr.119 = 1 // 8位数据+偶校验
Pr.120 = 1 // 停止位1位
Pr.121 = 9999 // 通讯超时不检测
Pr.122 = 9999 // 通讯校验时间不检测
Pr.123 = 2 // 通讯协议选择Modbus RTU
Pr.124 = 0 // CR/LF无
Pr.549 = 0 // 协议选择0
实测发现:变频器参数修改后必须断电重启才能生效,这是很多新手容易忽略的地方。
4. 通讯程序设计
4.1 程序框架设计
采用定时中断驱动通讯架构,相比循环扫描方式更稳定:
assembly复制LD M8000
OUT T0 K50 // 50ms定时触发
LD T0
CALL P0 // 通讯子程序
这种设计有三大优势:
- 避免主程序扫描周期波动影响通讯时序
- 多台变频器轮询时不会出现"抢总线"现象
- 通讯超时更容易监控和处理
4.2 Modbus指令构造
以频率写入指令为例,完整的数据帧构造过程:
assembly复制// 写入50Hz(1000=5000×0.1)
MOV H05 D100 // 站号1
MOV H06 D101 // 功能码06写单寄存器
MOV H00 D102 // 地址高位2000H
MOV H20 D103 // 地址低位
MOV K1000 D104 // 设定值
CCD D100 K6 D110 // 生成CRC校验
RS D100 K8 D200 K6 // 发送8字节/接收6字节
关键点解析:
- 变频器寄存器地址2000H对应Modbus地址40001(需+1转换)
- 频率值1000表示50.00Hz(分辨率0.01Hz)
- CCD指令自动计算CRC校验,比手动计算可靠得多
4.3 数据接收处理
接收数据处理需要注意字节序问题:
assembly复制LD M8122 // 接收完成标志
MOV D201 D300 // 取返回数据
ROR D300 K8 // 高低字节交换
工业控制中常见的数据处理技巧:
- 使用ROR指令处理大小端问题
- 重要数据建议做超时判断(如1秒无响应报错)
- 关键参数应该做范围限制(如频率上限保护)
5. 触摸屏配置技巧
5.1 通讯端口设置
在线模拟与实际下载的端口配置差异:
- 在线模拟:选择COM5(PLC编程口虚拟端口)
- 实际硬件:根据MT6103IP实际接线选择COM1或COM2
威纶通触摸屏的串口参数必须与PLC完全一致:
code复制波特率:9600
数据位:8位
校验位:偶校验
停止位:1位
站号:0(触摸屏作为监视设备)
5.2 画面设计要点
频率设定画面的几个实用技巧:
- 数值输入元件直接关联D104寄存器
- 添加"写入确认"按钮,避免误操作
- 显示实际反馈值(D300寄存器)
- 设置上下限保护(如10-5000对应0.5-50Hz)
6. 调试问题全记录
6.1 典型故障排查表
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 通讯超时无响应 | 终端电阻未启用 | 末端设备启用110Ω终端电阻 |
| 数据校验错误 | 波特率设置不一致 | 检查PLC和变频器参数 |
| 偶发性通讯中断 | 未使用屏蔽线 | 更换双绞屏蔽线 |
| 能接收不能发送 | 接线极性反接 | 调换SDA/SDB线序 |
6.2 宝贵经验总结
-
接线规范:一定要用正规的RS485双绞线,我试过用普通线替代,结果通讯距离超过5米就开始丢包。
-
参数同步:所有设备的波特率、校验方式必须完全一致,差一点都不行。曾经因为一个变频器的Pr.119设成了0(无校验),折腾了半天。
-
接地处理:屏蔽层只能单端接地,如果两端都接地会形成地环路,反而引入干扰。
-
站号管理:建议在设备上贴标签注明站号,多个变频器时特别容易混淆。
-
调试工具:备一个USB转485转换器,用Modbus调试软件直接测试变频器,可以快速定位是PLC程序问题还是变频器设置问题。
7. 性能优化建议
经过实测,这个系统的通讯周期可以优化到100ms以内,对于大多数调速应用已经足够。如果需要更高性能,可以考虑以下方案:
- 提升波特率到19200(需同步修改所有设备参数)
- 采用轮询+状态触发混合机制
- 关键参数使用批量读取(功能码03)
- 优化PLC程序扫描周期
这套系统目前已经在车间稳定运行三个月,控制着7台输送带电机,频率调整响应及时,完全满足生产节拍要求。最大的收获是:工业通讯项目,细节决定成败,每一个参数、每一根接线都必须严格按照规范来。
