1. 项目概述:三菱FX5U轴定位与Modbus通信集成方案
在工业自动化领域,精确的轴定位与可靠的设备通信是两大核心需求。最近我完成了一个典型项目,使用三菱FX5U PLC同时实现伺服轴的精确定位和通过Modbus RTU协议与测微计的数据交互。这个方案完美解决了生产线上既要控制机械臂运动轨迹,又要实时采集检测数据的双重需求。
FX5U作为三菱电机的中高端小型PLC,内置脉冲输出和高速计数器功能,特别适合需要运动控制的场景。而它自带的RS-485接口和Modbus协议支持,又为设备联网提供了便利。项目中我们通过PLC的Y0-Y3输出脉冲控制伺服电机,同时用内置的RS-485接口与Mitutoyo测微计建立Modbus通信,实现了运动控制与数据采集的无缝集成。
2. 硬件配置与系统架构
2.1 核心设备选型
PLC主机:三菱FX5U-32MT/ES,这款PLC具有32点I/O(16入/16出),其中晶体管输出型可提供最高200kHz的脉冲频率,完全满足大多数伺服驱动器的需求。选择带ES后缀的型号是因为它内置了RS-485接口,省去了额外配置通信模块的麻烦。
伺服系统:搭配三菱MR-JE-20A伺服驱动器和HG-KR20伺服电机。这套组合性价比高,支持位置、速度和转矩三种控制模式。我们采用位置控制模式,通过PLC发送脉冲+方向信号来指挥电机运动。
测微设备:Mitutoyo的ABSOLUTE Digimatic系列测微计,型号ID-H0530。这款测微计支持Modbus RTU协议,测量范围0-30mm,分辨率0.001mm,通过RS-485接口输出数据。
HMI:威纶通MT8071iE触摸屏,7英寸宽屏,支持与FX5U的以太网通信。在屏上我们设计了参数设置界面和实时数据显示区域,方便操作人员监控系统状态。
2.2 电气接线要点
伺服驱动器的接线需要特别注意:
- 脉冲信号(PULS+/-)接PLC的Y0和COM0
- 方向信号(SIGN+/-)接Y1和COM1
- 伺服准备好(SRV-RDY)信号接X0
- 定位完成(P-OT/N-OT)信号接X1/X2
测微计的RS-485接线:
- 测微计的S+接PLC的SDA
- 测微计的S-接PLC的SDB
- 两端都需要接入120Ω终端电阻
重要提示:RS-485通信必须采用双绞屏蔽线,屏蔽层单端接地。我们在调试初期曾因接地不当导致通信不稳定,后来改为在PLC端接地后问题解决。
3. 软件环境搭建
3.1 GX Works3项目配置
新建项目时选择FX5U CPU型号后,需要特别关注两个参数设置:
- 在"PLC参数"→"I/O分配设置"中,确认X/Y的地址分配与实际接线一致
- 在"PLC参数"→"内置RS-485设置"中:
- 通信方式选择"Modbus RTU主站"
- 波特率设为9600(与测微计匹配)
- 数据位8位,停止位1位,无校验
- 站号设置为1(PLC作为主站)
3.2 轴定位参数设置
通过"导航窗口"→"参数"→"FX5UCPU"→"定位"进入轴参数设置界面:
- 脉冲输出模式:选择"脉冲+方向"
- 单位系统:设置为"毫米",通过电子齿轮比将脉冲数换算为实际位移
- 机械行程10mm对应伺服电机转1圈(10000脉冲)
- 因此电子齿轮比设为10000脉冲/10mm=1000脉冲/mm
- 原点返回速度:设置低速10mm/s,高速50mm/s
- 最大速度:限制为100mm/s
4. PLC程序设计与实现
4.1 地址规划策略
采用分层地址规划方案,便于后期维护:
轴控制区(D100-D199)
- D100-D109:轴1参数(目标位置、速度等)
- D110-D119:轴2参数(预留扩展)
- D120-D129:轴状态监控
Modbus通信区(D200-D299)
- D200-D209:通信参数设置
- D210-D219:测微计1数据
- D220-D229:测微计2数据(预留)
HMI交互区(D300-D399)
- D300-D309:手动操作参数
- D310-D319:自动模式参数
4.2 轴定位核心程序
st复制// 轴初始化程序
MOV K1000 D100 // 默认目标位置1000mm
MOV K50 D101 // 默认速度50mm/s
MOV K10 D102 // 加速度时间10ms
MOV K10 D103 // 减速度时间10ms
// 原点回归程序
DSZR K1 K1 Y0 // 轴1原点回归,近点信号X1,DOG信号X2
// Y0为脉冲输出,Y1为方向信号
// 相对定位运动
DRVI D100 D101 Y0 Y1 // 以D101速度移动D100距离
程序说明:
- 先设置默认运动参数,这些值可通过HMI修改
- DSZR指令执行原点回归,确保每次上电后位置基准一致
- DRVI指令执行相对定位,实际项目中通常会配合限位开关检测
4.3 Modbus通信程序
st复制// Modbus初始化
MOV H0 D200 // 控制代码
MOV K9600 D201 // 波特率9600
MOV K8 D202 // 数据位8
MOV K1 D203 // 停止位1
MOV K0 D204 // 无校验
// 定时读取测微计数据
MODRD K1 H4000 K1 D210 // 读取站号1的H4000寄存器到D210
调试技巧:
- 在首次通信前,先通过GX Works3的"在线"→"调试"→"串行通信测试"功能验证物理连接
- 使用MODRD指令时,注意测微计的寄存器地址可能需要偏移(如H4000对应Modbus地址0000)
- 建议添加通信超时检测,当D210长时间不更新时触发报警
5. 威纶通HMI界面设计
5.1 主监控界面
包含以下关键元素:
- 轴位置实时显示:绑定D120寄存器,显示当前绝对位置
- 测微计数值显示:绑定D210寄存器,显示测量值
- 运动控制按钮:启动/停止/急停
- 参数设置输入框:目标位置(D100)、速度(D101)等
5.2 报警管理界面
我们设计了分级报警系统:
- 一级报警(红色):伺服故障、超限位等
- 二级报警(黄色):通信超时、参数越界等
- 每个报警都记录发生时间和当前状态
6. 调试经验与问题解决
6.1 轴定位常见问题
问题1:电机不运动
- 检查伺服驱动器显示状态,确认无报警
- 用万用表测量PLC的Y0输出,脉冲信号是否正常
- 确认伺服使能信号已接通
问题2:定位精度不足
- 检查电子齿轮比设置是否正确
- 确认机械传动系统无背隙
- 适当降低最高速度,提高加减速时间
6.2 Modbus通信故障排查
通信失败排查步骤:
- 确认波特率、数据格式与测微计一致
- 检查RS-485接线极性是否正确
- 使用USB转RS-485适配器连接测微计,用Modbus调试软件测试
- 在PLC程序中添加通信状态监控(D207为通信错误代码)
典型错误代码:
- 0x01:非法功能码
- 0x02:非法数据地址
- 0x03:非法数据值
7. 系统优化建议
-
运动平滑性优化:
- 在速度变化大的地方插入中间点
- 使用S型加减速曲线(FX5U支持)
- 示例代码:
st复制MOV K2 D105 // 设置S型加减速模式 MOV K20 D106 // S型曲线时间20ms
-
通信可靠性增强:
- 添加数据校验机制(如CRC校验)
- 实现通信中断自动重连
- 关键数据采用双寄存器备份
-
安全功能扩展:
- 增加软件限位保护(比较当前位置与限位值)
- 急停信号硬件回路与软件检测双重保护
- 运动前增加安全条件互锁检查
这个项目从开始调试到最终稳定运行历时两周,期间遇到了伺服参数匹配、Modbus地址映射等多个技术难点。通过仔细查阅三菱和Mitutoyo的技术手册,最终都得到了完美解决。现在系统已经连续运行三个月无故障,定位精度保持在±0.02mm以内,测微计数据采集周期稳定在100ms。