1. 项目概述:两轴控制程序的价值与定位
三菱FX1N系列PLC在小型自动化设备领域已经活跃了近二十年,至今仍是许多设备制造商的首选控制器。这款仅有手掌大小的PLC之所以被称为"万金油",关键在于其恰到好处的I/O配置(24-60点)和稳定的性能表现,特别适合包装机、小型组装线、检测设备等场景。
这次要分享的两轴标准程序模板,是我在食品包装设备行业沉淀多年的实战结晶。不同于教科书式的示例程序,这个模板直接解决了实际项目中最常见的痛点:如何让两个伺服轴在有限的空间内高效协同工作,同时处理好原点回归、软限位、急停保护等工业现场必须考虑的安全机制。
提示:这套程序框架已经过20+台设备的实际验证,最大特点是参数化程度高——你只需要修改表格中的坐标参数和速度曲线,就能快速适配不同规格的机械结构。
2. 硬件配置与接线要点
2.1 典型硬件组成清单
- FX1N-40MT主机(晶体管输出型)
- MR-JE-10A伺服驱动器 ×2(配套200W伺服电机)
- 16点输入扩展模块(用于安全门、光电开关等信号)
- 24V开关电源(建议选择明纬品牌)
- 欧姆龙E3Z光电传感器(原点信号检测)
2.2 关键接线注意事项
伺服驱动器的脉冲控制采用"脉冲+方向"模式:
plaintext复制Y0 -> 脉冲+
Y1 -> 方向+
Y2 -> 脉冲-
Y3 -> 方向-
(对应第二轴使用Y4-Y7)
特别注意:FX1N的晶体管输出端必须串联2KΩ电阻,否则可能因电流过大损坏输出点。我在早期项目中就烧过三个输出点才找到这个坑。
原点传感器的NPN型接线方案:
plaintext复制棕色线 -> 24V+
蓝色线 -> 0V
黑色线 -> X0(第一轴原点)
3. 程序架构解析
3.1 主程序流程图
plaintext复制[初始化] -> [手动模式] -> [自动循环]
↑ ↓
└──[异常处理]←─┘
3.2 核心功能块划分
-
轴参数初始化(D100-D150)
- D100:第一轴最大速度(单位:Hz)
- D102:第一轴加速度时间(ms)
- D104:第一轴软限位正极限
- D106:第一轴软限位负极限
-
手动操作子程序(CALL P10)
- 包含点动、寸动、回零三种模式
- 通过M10-M12切换模式状态
-
自动流程控制(CALL P20)
- 使用SFC状态转移图实现
- 包含双轴插补运动算法
3.3 关键指令详解
PLSY指令(脉冲输出)
assembly复制PLSY D100 D102 Y0
- 第一个操作数:脉冲频率(决定速度)
- 第二个操作数:脉冲数量(决定位移)
- 第三个操作数:输出端口
ZRN指令(原点回归)
assembly复制ZRN K500 D104 X0 Y0
- K500:回归初始速度
- D104:回归高速段速度
- X0:原点信号输入
- Y0:脉冲输出端
4. 运动控制核心逻辑
4.1 双轴协同算法
采用最简单的直线插补算法:
plaintext复制运动距离比 = 轴1位移 / 轴2位移
速度比 = 轴1速度 / 轴2速度
通过DIV和MUL指令实时计算脉冲当量,确保两轴同时到达目标位置。
4.2 速度曲线生成
梯形速度曲线参数设置:
plaintext复制加速段脉冲数 = (最大速度²) / (2 × 加速度)
匀速段脉冲数 = 总脉冲数 - 2×加速段脉冲数
这些计算通过PLC的浮点运算指令实现,结果存入D200-D215寄存器组。
5. 安全防护机制
5.1 三级急停处理
- 硬线急停(直接切断伺服使能)
- 程序急停(立即停止脉冲输出)
- 软件限位(双重校验坐标范围)
5.2 异常代码表
| 错误代码 | 含义 | 处理方法 |
|---|---|---|
| E001 | 第一轴超限 | 检查软限位参数 |
| E002 | 第二轴超限 | 检查机械挡块位置 |
| E003 | 原点回归超时 | 调整回归速度参数 |
| E004 | 双轴不同步 | 重新校准机械传动系统 |
6. 参数化调试技巧
6.1 伺服增益调整
plaintext复制位置环增益 = 机械刚性系数 × 0.8
速度环增益 = 位置环增益 × 1.5
这些参数需要根据实际机械振动情况微调,建议先用小增益值试运行。
6.2 现场调试步骤
- 单独测试单轴运动
- 验证原点回归精度(重复定位±0.1mm)
- 空载测试双轴同步
- 带载测试负载影响
- 连续运行24小时稳定性测试
7. 常见问题解决方案
7.1 脉冲丢失问题
现象:轴运动时出现位置偏差
排查步骤:
- 检查PLC输出指示灯是否正常闪烁
- 用示波器测量脉冲波形完整性
- 确认伺服驱动器输入滤波参数(建议设为3μs)
7.2 原点回归抖动
优化方案:
- 在传感器触发后增加5ms延时
- 设置回归低速段(建议100Hz)
- 机械安装防反跳挡块
7.3 双轴不同步补偿
采用位置误差补偿算法:
plaintext复制补偿量 = (实际位置 - 理论位置) × 0.2
将补偿值实时叠加到下一个运动指令中。
这套程序框架最值得称道的地方在于其异常处理的完备性——去年有个客户设备突然出现位置偏移,正是依靠程序里的误差累计检测功能,提前一周预警了联轴器磨损故障。实际项目中,建议在自动流程中每完成一个周期就做一次位置校验,把偏差值记录到D9000以后的寄存器,方便后期做预防性维护分析。
