1. 硬件准备与系统架构
作为工业自动化领域的经典组合,三菱FX1N PLC与E700变频器的通讯方案在各类设备控制中应用广泛。这套系统的核心在于通过RS485总线实现PLC对变频器的精确控制,我们先从硬件组成开始拆解。
1.1 核心硬件选型解析
FX1N-485BD通讯板是整个系统的通讯枢纽,这块扩展板卡通过PLC的扩展槽直接安装,提供标准的RS485接口。与普通RS232接口相比,RS485的最大优势在于:
- 支持多点通信(最多32个节点)
- 通信距离可达1200米(波特率9600bps时)
- 抗干扰能力强,适合工业环境
E700变频器是三菱FR-E700系列中的基础型号,支持Modbus RTU协议。其通讯特性包括:
- 内置RS485接口,无需额外配件
- 支持最大19.2kbps的通信速率
- 提供完善的参数读写功能
1.2 系统接线规范与注意事项
正确的接线是通讯稳定的基础,这里有几个关键细节需要注意:
PLC侧接线:
- 将485BD板的SDA(发送数据正极)连接到变频器的RDA
- 将SDB(发送数据负极)连接到RDB
- 务必在总线末端并联终端电阻(通常为110Ω)
重要提示:接线时一定要断电操作,错误的接线可能导致通讯板或变频器接口损坏。我曾遇到过因带电接线导致485芯片烧毁的案例,损失了整整一天的调试时间。
线材选择建议:
- 使用双绞屏蔽线(如AWG22规格)
- 屏蔽层单端接地(通常在PLC侧)
- 避免与动力线平行走线,交叉时保持直角
2. 变频器参数配置详解
2.1 基础参数设置
要让E700变频器响应PLC的Modbus指令,必须正确设置以下核心参数:
| 参数号 | 参数名称 | 设定值 | 功能说明 |
|---|---|---|---|
| Pr.79 | 运行模式 | 2 | 外部/PU组合模式2 |
| Pr.117 | 站号 | 1 | 设备网络标识 |
| Pr.118 | 通信速率 | 3 | 对应9600bps |
| Pr.119 | 停止位 | 1 | 2位停止位 |
| Pr.120 | 奇偶校验 | 2 | 无校验 |
| Pr.121 | 通信等待时间 | 9999 | 无超时检测 |
| Pr.122 | 通信重试次数 | 0 | 不重试 |
| Pr.123 | 通信校验时间 | 0 | 不检测 |
参数设置的实操技巧:
- 先按MODE键进入参数设定模式
- 用旋钮选择参数编号
- 按SET键进入值设定
- 旋转旋钮调整数值
- 长按SET键3秒保存
2.2 参数设置常见问题排查
在实际调试中,经常会遇到以下问题:
问题1:参数无法修改
- 检查Pr.77是否设为0(允许参数写入)
- 确认操作面板处于STOP状态
问题2:通讯不稳定
- 验证终端电阻是否安装
- 检查Pr.118/119/120是否与PLC设置一致
- 测量线路阻抗(正常应≈60Ω)
问题3:变频器无响应
- 确认站号(Pr.117)唯一
- 检查接线极性是否正确
- 用示波器观察信号波形
3. PLC程序设计实战
3.1 通讯初始化设置
在GX Works2中,我们需要先建立通讯基础环境:
ladder复制LD M8000 // PLC运行常ON触点
MOV K1 D10 // 站号=1
MOV K9600 D11 // 波特率9600
MOV K2 D12 // 停止位2位
MOV K8 D13 // 数据位8位,无校验
这段代码解释:
- M8000是PLC的运行监视继电器
- D10-D13作为通讯参数存储区
- 波特率计算:9600对应K9600(十进制)
3.2 控制指令实现
正反转控制逻辑:
ladder复制// 正转控制
LD X0 // 正转按钮
MOV K100 D20 // 频率设定值(100Hz)
MOV K1 D21 // 正转指令代码
CALL P100 // 调用通讯子程序
// 反转控制
LD X1 // 反转按钮
MOV K100 D20 // 频率设定值
MOV K2 D21 // 反转指令代码
CALL P100
// 停止控制
LD X2 // 停止按钮
MOV K0 D21 // 停止指令代码
CALL P100
关键寄存器说明:
- D20:频率设定(单位0.01Hz,K100=1.00Hz)
- D21:控制命令(1=正转,2=反转,0=停止)
3.3 数据读取功能
ladder复制// 读取运行频率
LD X3 // 频率读取按钮
MOV K4 D22 // 频率读取命令
CALL P100
// 读取运行状态
LD X4 // 状态读取按钮
MOV K5 D22 // 状态读取命令
CALL P100
数据解析方法:
- 返回的频率值存储在D50(需在P100子程序中处理)
- 状态字各位含义:
- bit0:运行中
- bit1:正转中
- bit2:反转中
- bit3:故障状态
4. 通讯协议深度解析
4.1 Modbus RTU帧结构
E700变频器使用的Modbus RTU协议帧格式如下:
写入命令示例(正转控制):
code复制[站号][功能码][起始地址H][起始地址L][数据量H][数据量L][数据...][CRC-L][CRC-H]
01 06 00 20 00 01 00 01 01 CRC
读取命令示例(频率读取):
code复制[站号][功能码][起始地址H][起始地址L][数据量H][数据量L][CRC-L][CRC-H]
01 03 00 20 00 01 CRC
关键地址说明:
- 0000H:运行指令(写入)
- 0001H:频率设定(写入)
- 0020H:运行状态(读取)
- 0021H:输出频率(读取)
4.2 CRC校验计算
CRC校验是保证数据完整性的关键,三菱PLC内置CRC计算功能,但了解算法有助于调试:
python复制# Python实现的CRC16计算
def crc16(data: bytes):
crc = 0xFFFF
for byte in data:
crc ^= byte
for _ in range(8):
if crc & 0x0001:
crc >>= 1
crc ^= 0xA001
else:
crc >>= 1
return crc.to_bytes(2, 'little')
实际调试中发现,当通讯异常时,可以:
- 用串口监视器抓取原始数据
- 手动计算CRC比对
- 排查字节顺序问题
5. 触摸屏界面设计
5.1 基本控制界面
在GT Designer3中创建以下元素:
- 正转/反转/停止按钮(位开关)
- 频率设定输入框(字元件)
- 运行频率显示(数值显示)
- 运行状态指示灯(位指示灯)
元件地址映射:
- 正转按钮:X0
- 频率设定:D20
- 运行频率:D50
- 运行状态:M100-M103
5.2 高级功能实现
频率曲线设定:
- 创建趋势图元件
- 设置采样周期(如500ms)
- 绑定D50作为数据源
报警历史记录:
- 添加报警定义表
- 配置触发条件(如M103=1)
- 设置报警文本("变频器故障")
6. 系统调试与优化
6.1 通讯故障排查流程
当系统无法正常通讯时,建议按以下步骤排查:
-
基础检查
- 确认PLC与变频器供电正常
- 检查接线是否正确牢固
- 验证终端电阻值(≈110Ω)
-
信号测试
- 用万用表测量SDA-SDB间电压(静止时应≈2V)
- 通讯时观察电压变化(应有明显波动)
-
软件诊断
- 在GX Works2中使用通讯监控功能
- 检查D8120(通讯错误代码)
6.2 性能优化建议
提升响应速度:
- 将Pr.121通讯等待时间设为10(10ms)
- 优化PLC扫描周期(减少无关逻辑)
增强稳定性:
- 在程序中添加重试机制(最多3次)
- 设置通讯超时报警(M8000计时器)
实际案例:
在某包装机项目中,通过以下调整将通讯成功率从92%提升到99.8%:
- 将波特率从19200降为9600
- 增加线路滤波器(磁环)
- 修改程序增加50ms指令间隔
7. 扩展应用与适配
7.1 多变频器控制系统
当需要控制多台变频器时:
- 设置不同站号(Pr.117)
- 在PLC程序中轮询各站
- 增加站号选择逻辑:
ladder复制// 站号选择
LD X10 // 1号机选择
MOV K1 D10
LD X11 // 2号机选择
MOV K2 D10
7.2 其他品牌变频器适配
对于支持Modbus RTU的其他品牌变频器,需要调整:
-
参数映射:
- 查阅目标变频器的Modbus地址表
- 修改PLC程序中的地址常量
-
协议差异:
- 注意字节顺序(大端/小端)
- 确认功能码是否一致
-
特殊功能:
- 某些品牌需要使能通讯控制
- 部分型号有特殊的校验要求
在最近的一个改造项目中,我们将这套系统成功应用到了西门子MM420变频器上,主要修改包括:
- 将运行指令地址改为2000H
- 调整频率设定值单位为0.1Hz
- 增加启动前使能命令
通过这样的标准化改造,使得不同品牌的变频器都能使用同一套控制逻辑,大大提高了系统的可维护性。
