1. 项目背景与系统选型
三菱FX5U系列PLC在工业自动化领域一直占据重要地位,特别是在中小型设备控制系统中。作为FX系列的最新一代产品,FX5U在性能上有了显著提升,CPU处理速度达到以往机型的10倍,内置以太网端口支持SLMP协议,这使得它成为伺服机器人系统的理想控制核心。
我最近完成的一个项目正是基于FX5U的伺服控制系统开发,搭配三菱MR-JE系列伺服驱动器和威纶通HMI触摸屏。这个组合在成本控制和性能表现上达到了很好的平衡——FX5U本体价格约3000-5000元,MR-JE伺服每轴2000-4000元,威纶通7寸屏约2000元,整套系统成本可以控制在2万元以内,却能够实现0.1mm级别的定位精度。
选择这个方案主要基于以下几点考虑:
- 硬件兼容性:三菱自家的PLC、伺服和HMI之间有成熟的通信协议,减少集成难度
- 开发效率:GX Works3编程环境对运动控制指令有良好支持
- 维护成本:三菱产品在国内有完善的售后网络
- 扩展性:FX5U最多可扩展16个特殊模块,满足未来需求
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件配置与网络搭建
2.1 核心硬件清单
- 控制器:三菱FX5U-32MT/ES(32点,晶体管输出)
- 伺服系统:MR-JE-200A驱动器+HF-KN73J-S100电机(750W)
- HMI:威纶通MT8071iE(7寸以太网型)
- 交换机:普通工业级5口交换机
- 电源:明纬S-350-24(24V/14.6A)
2.2 网络连接拓扑
典型的连接方式如下:
code复制[FX5U内置以太网口] ←→ [工业交换机] ←→ [威纶通HMI]
↑
[MR-JE伺服驱动器(通过RJ45)]
关键配置步骤:
-
FX5U网络设置:
- IP地址:192.168.1.10(建议)
- 子网掩码:255.255.255.0
- 端口号:4999(默认SLMP端口)
-
威纶通HMI设置:
- 在EasyBuilder Pro中新建工程
- 设备列表添加"MITSUBISHI FX5U Ethernet"
- 设置IP为同一网段(如192.168.1.20)
- 通信参数与PLC保持一致
-
伺服驱动器设置:
- 使用MR Configurator2软件配置
- 设置站号(通常从1开始)
- 通信速度:115200bps(默认)
- 注意终端电阻设置(最后一个节点需启用)
实际调试中发现,网络延迟可能导致伺服响应异常。建议:
- 使用带IGMP Snooping功能的交换机
- 通信周期不要设置过快(推荐20ms以上)
- 在GX Works3中启用"通信错误重试"功能
3. 运动控制程序开发
3.1 基本运动指令配置
FX5U通过内置的定位指令控制伺服系统,常用指令包括:
- DSFRP:原点回归
- DVIT:中断定位
- PLSV:可变速度驱动
- DRVI:相对定位
- DRVA:绝对定位
典型原点回归程序示例:
st复制// 原点回归程序
M8002 // 初始脉冲
MOV K100 D100 // 设置回归速度100mm/s
MOV K10 D101 // 爬行速度10mm/s
MOV K0 D102 // 原点信号使用DOG输入
DSFRP K1 D100 Y0 Y4 // 执行原点回归
3.2 多轴联动控制
对于需要协调运动的场景,可以使用以下方法:
- 启动同步:
st复制// 轴1和轴2同步启动
MOV K500 D200 // 设置目标位置
MOV K100 D201 // 设置速度
SET M100 // 启动标志
- 使用CMP指令检查完成状态:
st复制CMP M102 M103 // 比较两轴完成信号
AND M8029 // 定位完成标志
OUT Y10 // 联动完成输出
3.3 异常处理机制
完善的错误处理应包括:
- 伺服报警监测:
st复制MOV U0\G44 D300 // 读取伺服报警代码
CMP D300 K0 // 检查是否为0
= M50 // 非0时触发报警
- 超时检测:
st复制T0 K500 // 设置500ms定时器
LD M8000 // 运行监控
AND M50 // 报警条件
OUT T0 // 启动定时器
LD T0 // 超时触发
SET M100 // 紧急停止标志
4. HMI界面设计与功能实现
4.1 基本画面规划
威纶通HMI通常需要设计以下画面:
- 首页:系统状态概览
- 手动操作:各轴点动控制
- 自动运行:程序选择与启动
- 参数设置:速度、加速度等
- 报警历史:故障记录查询
4.2 关键元件配置
-
数值显示元件:
- 地址类型选择"MITSUBISHI FX5U"
- 寄存器地址填写如"D100"(直接对应PLC数据寄存器)
- 格式设置为有符号/无符号十进制
-
按钮控制:
- 位地址设置为"M100"等辅助继电器
- 操作模式选择"置位"或"瞬间"
-
趋势图:
- 添加需要监控的寄存器(如D200-D203)
- 采样间隔建议100-500ms
4.3 常见问题解决
-
通信延迟:
- 检查交换机是否支持全双工
- 降低HMI刷新频率(建议不低于200ms)
- 关闭不必要的后台通信
-
触摸屏卡顿:
- 减少单页面元件数量(控制在50个以内)
- 避免使用高分辨率图片
- 定期清理历史数据记录
-
变量无反应:
- 确认PLC中该地址是否被正确写入
- 检查HMI地址映射是否正确
- 查看通信干扰(可尝试屏蔽线接地)
5. 系统调试与优化技巧
5.1 伺服参数整定
MR-JE系列伺服的关键参数:
- PA01:控制模式(位置/速度/转矩)
- PA06:位置环增益(通常20-50)
- PA07:速度环增益(通常100-200)
- PA08:速度积分时间常数(通常20-50ms)
调试步骤:
- 先设置较低增益值
- 逐步提高直到出现振动
- 回调至振动消失的80%值
- 测试阶跃响应,调整积分时间
5.2 机械系统匹配
常见问题及解决方案:
-
定位过冲:
- 降低PA06增益值
- 增加加减速时间
- 检查机械背隙(应小于0.05mm)
-
低速抖动:
- 启用PA14(抗振滤波)
- 检查导轨平行度
- 适当提高PA07增益
-
停止时偏移:
- 调整PA09(转矩补偿)
- 检查机械刚性
- 考虑增加制动器
5.3 性能测试方法
-
重复定位精度测试:
- 选择3个典型位置点
- 每个点往返运行10次
- 使用百分表测量偏差(应<0.02mm)
-
动态响应测试:
- 设置不同速度档位(20%/50%/100%)
- 记录实际位置曲线
- 观察跟随误差(应<5个脉冲)
-
长时间运行测试:
- 连续运行8小时
- 监测电机温升(应<65℃)
- 检查机械部件松动情况
6. 进阶功能实现
6.1 与上位机通信
通过FX5U内置以太网口实现:
- Python通信示例:
python复制import socket
plc_ip = '192.168.1.10'
plc_port = 4999
# 读取D100寄存器
cmd = b'\x50\x00\x00\xFF\xFF\x03\x00\x0C\x00\x00\x00\x01\x04\x00\x00\xD1\x00\x00\x00'
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((plc_ip, plc_port))
sock.send(cmd)
data = sock.recv(1024)
print(int.from_bytes(data[11:15], byteorder='little'))
sock.close()
- 通信协议要点:
- 使用SLMP(三菱协议)
- 数据为二进制格式
- 注意字节顺序(FX5U为小端)
6.2 配方功能实现
利用FX5U的文件寄存器:
-
在GX Works3中:
- 设置文件寄存器大小(参数→PLC参数→文件设置)
- 定义配方数据结构(如D1000-D1999)
-
HMI操作:
- 创建配方选择下拉框
- 设置"写入PLC"按钮
- 关联到对应寄存器区域
6.3 安全功能配置
-
硬件安全:
- 启用STO(安全转矩关闭)功能
- 配置急停回路(双通道)
- 设置安全速度限制
-
软件保护:
- 设置操作权限密码
- 记录关键参数修改日志
- 实现软件互锁逻辑
7. 维护与故障排除
7.1 日常维护要点
-
电气部分:
- 每月检查接线端子紧固度
- 定期清理散热风扇
- 检查电缆绝缘状况
-
机械部分:
- 每周润滑导轨和丝杠
- 检查皮带张紧力
- 监测联轴器对中情况
-
系统备份:
- 定期导出PLC程序
- 保存HMI工程文件
- 记录伺服参数表
7.2 常见故障处理
-
伺服报警AL24(过载):
- 检查机械卡阻
- 测量电机电流
- 调整PA11(过载保护等级)
-
PLC错误CODE 4101:
- 通信超时导致
- 检查网络连接
- 重新插拔通信线
-
HMI显示异常:
- 重启触摸屏
- 检查IP地址冲突
- 更新固件版本
7.3 诊断工具使用
-
GX Works3诊断:
- 在线→诊断→PLC诊断
- 查看错误代码详情
- 利用跟踪功能捕捉异常
-
伺服调试软件:
- MR Configurator2的示波器功能
- 实时监测速度/位置曲线
- 保存参数对比报告
-
网络分析:
- Wireshark抓包分析
- 过滤SLMP协议数据
- 检查通信时序
