## 1. 项目概述:当西门子S7-1200遇上伺服绝对定位

去年在自动化产线升级项目中,第一次用S7-1200 PLC控制伺服电机做绝对定位时,我经历了从参数配置错误导致电机狂转到最终实现±0.1mm定位精度的完整过程。这个看似基础的功能,实际藏着运动控制中最重要的几个技术要点:电子齿轮比计算、原点回归模式选择、绝对坐标系的建立与保持。本文将用真实项目案例,拆解每个环节的配置逻辑和避坑要点。

## 2. 硬件组态与基础配置

### 2.1 伺服系统选型要点
- 电机型号:台达ASDA-B3系列(额定转速3000rpm,17bit编码器)
- 驱动器参数:刚性等级设为8,速度环带宽调整至50Hz
- 机械传动:20mm导程滚珠丝杠,减速比1:1

> 关键细节:务必确认编码器分辨率(本例为131072脉冲/转),这个参数直接影响后续电子齿轮比计算

### 2.2 PLC硬件配置步骤
1. 在TIA Portal V17中新建项目
2. 添加S7-1214C DC/DC/DC型号CPU
3. 插入TM Pulse 2模块(6ES7221-3BD30-0XB0)到右侧第一个槽位
4. 配置脉冲输出为PTO模式,设置输出类型为"差分信号"

```st
// 硬件标识符配置示例
HW_IO := "TM Pulse 2_1";  // 模块硬件ID
AxisNo := 1;             // 轴编号

3. 绝对定位核心参数解析

3.1 电子齿轮比计算(关键!)

实际机械移动量 = (电机旋转圈数 × 丝杠导程) / 减速比
PLC发送脉冲数 = 电机旋转圈数 × 编码器分辨率

因此电子齿轮比应为:

分子 = 131072(编码器分辨率)  
分母 = 20(丝杠导程mm) × 1000(转μm) = 20000  
→ 简化后 = 8192/1250

血泪教训:曾经分母误设为2000(少算一个零),导致实际移动距离是设定值的10倍,电机瞬间超程报警

3.2 绝对坐标系建立流程

  1. 执行原点回归(模式3:限位开关+Z相脉冲)
  2. 通过MC_HOME指令将当前位置设为坐标零点
  3. 断电保持需设置:
    • 在OB100中调用"MC_Power"使能轴
    • 勾选"Restore position after POWER ON"
// 原点回归指令示例
MC_Home(
    Axis := AxisRef, 
    Position := 0.0, 
    Mode := 3, 
    Execute := TRUE);

4. 运动控制程序编写

4.1 FB284功能块配置

  1. 在OB1中实例化"MC_Power"、"MC_MoveAbsolute"
  2. 参数配置要点:
    • Position参数单位需与电子齿轮比匹配(本例为μm)
    • Velocity设置不超过电机额定转速换算值:
      3000rpm = 50r/s  
      50 × 20mm = 1000mm/s → 即1000000μm/s
      

4.2 绝对定位运动时序

// 完整运动流程
MC_Power(Enable := TRUE);  // 轴使能
WAIT 500ms;                // 稳定等待
MC_Home(...);              // 回原点 
MC_MoveAbsolute(
    Position := 150000.0,  // 150mm处
    Velocity := 500000.0); // 500mm/s

5. 经典翻车案例与解决方案

5.1 案例1:位置突然跳变

现象:每次上电后坐标值随机偏移
原因:未配置编码器电池导致多圈数据丢失
解决步骤:

  1. 安装ER6编码器电池(3.6V锂亚电池)
  2. 在驱动器参数中启用"ABS位置保存"功能
  3. 重新执行原点校准

5.2 案例2:定位终点抖动

现象:到达目标位置后持续±5个脉冲波动
排查过程:

  1. 检查机械背隙(实测0.08mm在允许范围)
  2. 调整驱动器参数:
    • 位置环增益从35提升至50
    • 速度环积分时间从20ms改为15ms
  3. 在PLC程序增加到位判断延时:
    IF NOT AxisRef.Status.InMotion THEN
        Timer_Delay(IN := TRUE, PT := T#200ms);
    END_IF;
    

6. 进阶调试技巧

6.1 Trace功能实战

通过TIA Portal的Trace捕获运动曲线:

  1. 添加监控变量:ActualPosition、ActualVelocity
  2. 设置触发条件:Velocity > 100000
  3. 典型异常曲线分析:
    • 过冲波形 → 降低加速度参数
    • 台阶状速度曲线 → 检查电子齿轮比

6.2 动态参数调整

在运行中修改运动参数的方法:

// 通过HMI输入新参数
MC_WriteParameter(
    Axis := AxisRef,
    Parameter := 30,  // 加速度参数ID
    Value := REAL_TO_LREAL(HMI_Accel));

调试中发现:当定位距离超过500mm时,将加速度从0.3m/s²分级提升至0.5m/s²可缩短25%周期时间,但需同步提高刚性等级防止振动。```

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐