三菱FX3G PLC两轴控制程序开发与调试实战

1. 三菱FX3G两轴控制程序的核心价值解析

作为一名在工业自动化领域摸爬滚打多年的工程师,我深知三菱FX3G系列PLC在中小型设备控制中的江湖地位。这套XZ两轴标准程序之所以值得深入剖析,是因为它浓缩了运动控制中最经典的四种核心功能:点动(JOG)、回零(Home)、相对定位(Relative Positioning)和绝对定位(Absolute Positioning)。这就像厨师掌握了煎炒烹炸四种基本技法,就能应对大多数烹饪需求一样。

在实际产线中,我见过太多工程师对着设备干瞪眼——他们可能知道每个指令的用法,却不理解这些功能如何有机组合成一个完整的控制系统。这套程序最精妙之处在于,它展示了如何用最简洁的三菱指令搭建出稳定可靠的运动控制框架。以回零功能为例,看似简单的原点回归动作,实际上涉及到近点信号(DOG)的硬件接线、回零速度的参数设置、零点信号的捕捉逻辑等至少7个关键环节的协同工作。

2. 硬件配置与基础接线要点

2.1 最小系统构成清单

要让这套两轴程序跑起来,你需要准备以下硬件组件:

  • FX3G-40MT/ES-A主机(晶体管输出型)
  • 两个MR-JE-10A伺服驱动器(对应X/Z轴)
  • 两个HG-KN13J-S100伺服电机
  • 两个欧姆龙E6B2-CWZ6C编码器
  • 24V开关电源(建议用明纬NES-100-24)
  • 急停按钮和操作面板(至少包含启动/停止/点动按钮)

关键提示:FX3G的脉冲输出口Y0/Y1最大只能支持100kHz,若需要更高频率(如200kHz),必须升级到FX3U系列。这个坑我当年亲自踩过,买错PLC导致项目延期两周。

2.2 伺服驱动器的关键参数设置

以MR-JE系列为例,这些参数必须准确设置:

PA01=0001(控制模式选择位置控制) PA03=10000(电子齿轮分子) PA04=1(电子齿轮分母) PA05=2500(编码器分辨率,单位P/R) PD01=3(指令脉冲输入形式选择差分输入)

2.3 PLC与伺服接线示意图

X轴伺服驱动器的接线规范:

FX3G Y0 → 伺服PP(脉冲正) FX3G Y2 → 伺服NP(脉冲负) FX3G Y1 → 伺服SIGN(方向正) FX3G Y3 → 伺服SIGN-(方向负) 伺服ALM+ → FX3G X0(报警信号) 伺服DOG → FX3G X1(近点信号) 伺服Z相 → FX3G X2(零点信号)

3. 程序架构深度解析

3.1 功能块划分逻辑

这套标准程序采用模块化设计,主要包含以下功能块:

  • 轴参数初始化(D8145-D8148设置)
  • 手动点动控制(FNC158 DRVI指令)
  • 原点回归流程(FNC156 ZRN指令)
  • 相对定位运动(FNC158 DRVI)
  • 绝对定位运动(FNC159 DRVA)
  • 异常处理机制(M8049监控)

3.2 核心寄存器映射表

寄存器地址功能描述典型值
D8145Y0输出脉冲数低位实时变化
D8146Y0输出脉冲数高位实时变化
D8147Y1输出脉冲数低位实时变化
D8148Y1输出脉冲数高位实时变化
D100X轴目标位置(单位:脉冲)用户设定
D101Z轴目标位置(单位:脉冲)用户设定
D200X轴点动速度(Hz)5000-10000
D201Z轴点动速度(Hz)5000-10000

3.3 原点回归的完整流程

以X轴回零为例,标准流程包含五个阶段:

  1. 高速搜索阶段:以3000Hz速度向负方向运动
  2. 近点信号触发:碰到DOG信号后减速至500Hz
  3. 零点信号捕捉:检测到Z相信号时立即停止
  4. 位置清零:将D8145/D8146寄存器归零
  5. 退出状态:M8029置位表示完成

4. 关键指令实战详解

4.1 点动控制(JOG)实现代码

LD M100 // X轴正转点动按钮 FNC158 DRVI K5000 K0 Y0 Y2 // 5000Hz速度正转 LD M101 // X轴反转点动按钮 FNC158 DRVI K5000 K1 Y0 Y2 // 5000Hz速度反转

经验之谈:点动速度建议设置在5000-10000Hz(对应电机转速约30-60rpm),太低了效率低下,太高了不利于精密调整。实际调试时,我习惯先用2000Hz试机,确认方向正确后再提速。

4.2 绝对定位运动示例

LD M200 // 启动绝对定位 MOV K50000 D100 // 设置X轴目标位置50000脉冲 FNC159 DRVA D100 K10000 Y0 Y2 // 以10000Hz速度运动

4.3 相对定位的位移计算

假设要将X轴移动20mm,丝杆导程5mm,电子齿轮比10000:1:

所需脉冲数 = (位移/导程)×编码器分辨率×电子齿轮比 = (20/5)×2500×10000 = 100,000,000脉冲

这个计算结果需要拆分成高低字存入D100/D101:

D100 = 100000000 MOD 65536 = 34464 D101 = 100000000 / 65536 = 1525

5. 调试过程中的典型问题排查

5.1 电机不动作的检查清单

  1. 确认伺服驱动器显示"rEAdy"
  2. 检查PLC的Y0/Y1输出指示灯是否闪烁
  3. 用万用表测量PP/NP端子间应有5V脉冲信号
  4. 监控D8145值是否变化(若变化但电机不动,问题在伺服侧)
  5. 检查伺服电机的使能信号(SON)是否接通

5.2 定位精度异常的解决步骤

上周刚处理过一个典型案例:Z轴每次运动都比设定值少0.5mm。排查过程如下:

  1. 检查机械背隙:用百分表测量实际移动距离(发现确实少0.48mm)
  2. 核对电子齿轮比:发现PA03被误设为9999而非10000
  3. 验证编码器分辨率:确认是2500线/转
  4. 最终解决方案:在程序中对Z轴脉冲数补偿1%的偏移量

5.3 原点回归失败的常见原因

根据我的维修记录,回零失败TOP3原因:

  1. DOG信号未正确接入(占42%)
  2. Z相信号受干扰(占35%)
  3. 回零速度设置过高导致过冲(占18%)

建议的预防措施:

  • 给DOG信号线加磁环
  • Z相电缆采用双绞屏蔽线
  • 初始搜索速度不超过3000Hz

6. 程序优化与功能扩展

6.1 运动曲线的平滑处理

原始程序使用梯形加减速,在某些场合可能产生振动。可通过修改以下参数实现S曲线加减速:

D8348=100(加速时间,单位ms) D8349=100(减速时间,单位ms) D8343=2(加减速模式选择)

6.2 多段定位的实现技巧

通过指针变址实现配方功能:

MOV K0 Z0 // 配方编号 MOV D100Z D10 // 读取目标位置 MOV D200Z D20 // 读取运动速度

6.3 与触摸屏的交互设计

推荐在HMI上做这些界面元素:

  • 实时位置显示(绑定D8145/D8146)
  • 点动速度设置(绑定D200/D201)
  • 故障报警历史记录(读取M8049状态)
  • 手动/自动模式切换开关(控制M100-M199)

这套程序最精妙的地方在于,它用最基础的三菱指令搭建出了一个可扩展的框架。在我经手的包装机改造项目中,就是在这个基础上增加了位置补偿算法和振动抑制功能,最终将定位精度从±0.1mm提升到了±0.02mm。记住,好的程序不是写出来的,是在不断调试中磨出来的。