返回
TIA Portal 实战:绝对定位(MoveAbsolute)与同步追剪(Flying Shear)
0. 工程设定(建议)

CPU:S7-1500(或 S7-1200),运动控制已授权

轴对象:TO_Axis(从轴/刀架);TO_ExternalEncoder 或传送轴 TO_Axis 作为主轴(Master)

驱动:V90/ S210 / G120(脉冲/Profidrive/TO 皆可)

时间基准:ms;位置单位:mm 或脉冲,保持“主从一致”的单位换算

1. 变量与 HMI 规划
1.1 结构体(推荐放在全局 DB)
TYPE ST_Shear :
STRUCT
  (* 运行参数 *)
  PosStandby : LREAL;   // 待机位
  PosEntry   : LREAL;   // 进同步起点
  PosReturn  : LREAL;   // 退回位
  Vel        : LREAL;   // 绝对定位速度
  Acc        : LREAL;   // 加速度
  Dec        : LREAL;   // 减速度
  CutLen     : LREAL;   // 目标切长(由编码器累计或光电触发)
  PhaseShift : LREAL;   // 追剪相位微调(mm/脉冲)

  (* HMI 命令量 —— 瞬时脉冲 *)
  CmdPower   : BOOL;    // 伺服上电
  CmdHome    : BOOL;    // 回零
  CmdReset   : BOOL;    // 解除报警(主轴的“解除报警位”)
  CmdMoveStd : BOOL;    // 去待机位
  CmdRun     : BOOL;    // 启动节拍
  CmdStop    : BOOL;    // 正常停止

  (* 状态反馈 *)
  Busy       : BOOL;
  Done       : BOOL;
  Error      : BOOL;
  ErrorID    : WORD;

  (* 实时量 *)
  MasterPos  : LREAL;
  SlavePos   : LREAL;
END_STRUCT
END_TYPE


HMI 标签直接绑定该 DB 成员:数值框绑定参数;按钮写入 Cmd*(瞬时写1);指示灯绑定 Busy/Done/Error;曲线绑定 SlavePos/MasterPos。

2. 绝对定位(MoveAbsolute)SOP

指令块(PLCopen on TIA)

MC_Power → MC_Home → MC_MoveAbsolute

报警复位:MC_Reset(即你视频里说的“主轴的解除报警位”)

梯形/语句表要点

MC_Power(Axis := Axis_Slave, Enable := TRUE) 成功后再允许后续动作

回零 MC_Home(有原点信号或编码器零位;无原点时可用 MC_SetPosition 置零)

MC_MoveAbsolute(Axis := Axis_Slave, Position := PosStandby, Velocity := Vel, Acceleration := Acc, Deceleration := Dec)

任何错误置位 MC_Reset(HMI 按钮→PLC 上升沿→调用一次)

示例调用(ST)

// 伺服上电
FB_Power( Axis:=Axis_Slave, Enable:=Shear.CmdPower, Status=>, Busy=>, Error=>Shear.Error, ErrorID=>Shear.ErrorID );

// 报警复位(上升沿使用)
FB_Reset( Axis:=Axis_Slave, Execute:=Edge(Shear.CmdReset), Done=>, Busy=>, Error=>, ErrorID=> );

// 回零
FB_Home( Axis:=Axis_Slave, Execute:=Edge(Shear.CmdHome), Position:=0.0, Done=>, Busy=>, Error=>, ErrorID=> );

// 去待机位
FB_MAbs( Axis:=Axis_Slave, Execute:=Edge(Shear.CmdMoveStd),
         Position:=Shear.PosStandby, Velocity:=Shear.Vel, Acceleration:=Shear.Acc, Deceleration:=Shear.Dec,
         Done=>, Busy=>, Error=>, ErrorID=> );


其中 Edge(x) 表示上升沿脉冲整形(可用 R_TRIG)。

3. 同步追剪实现(两条常用路径)
3.1 电子齿轮法(GearIn / GearInPos)

进入同步:MC_GearInPos(Slave:=Axis_Slave, Master:=Axis_Master, RatioNumerator:=1.0, RatioDenominator:=1.0, MasterSyncPosition:=Mpos, SlaveSyncPosition:=Spos, Acceleration:=Acc, Deceleration:=Dec, Phasing:=Shear.PhaseShift)

等速区:保持 1:1

退出同步:MC_GearOut

优点:实现简单;适用:直线滑台随输送线“同速移动→完成切刀→退出→回位”

3.2 电子凸轮法(CamIn + CamTable)

预先建立凸轮表:角度(主轴位置) → 从轴位移,包含加速—等速—减速—回位四段

进入同步:MC_CamTableSelect → MC_CamIn

退出:MC_CamOut

优点:轨迹可塑性强;适用:旋转刀/圆盘刀等需要精确相位与运动学约束的场景

两种方法都可配合 PhaseShift 在线修相位;长度变化时可等比例缩放或切换不同 Cam 表。

4. 追剪节拍(状态机模板)
CASE State OF
  INIT:
    IF PowerOK THEN State := HOME; END_IF;

  HOME:
    // FB_Home.Done → READY
    ...

  READY:
    // 去待机
    // FB_MAbs to PosStandby
    IF Done THEN State := WAIT_TRIG; END_IF;

  WAIT_TRIG:
    // 光电/长度累计 >= CutLen
    IF Trigger THEN State := PREPOS; END_IF;

  PREPOS:
    // 可选:靠近同步窗口
    IF Done THEN State := SYNC_IN; END_IF;

  SYNC_IN:
    // GearInPos 或 CamIn
    IF SyncOK THEN State := CUT; END_IF;

  CUT:
    // 等速区内完成切割
    IF CutComplete THEN State := SYNC_OUT; END_IF;

  SYNC_OUT:
    // GearOut/CamOut
    IF OutOK THEN State := RETURN; END_IF;

  RETURN:
    // MoveAbs 回 PosReturn
    IF Done THEN State := WAIT_TRIG; END_IF;
END_CASE;


进入同步的允许条件(必须全部满足)
急停未触发 & 门禁关闭 & 两轴已 Power On & 无 Error & 从轴在允许区 & 主轴速度>最小值

5. 参数快速校核(线性滑台示例)

主线速度 Vm(m/s),同步区长度 Ls(m),进入同步时间 t_in

从轴需要的最小加速度:a_req = (Vm - v0) / t_in(v0≈0)

条件:a_req ≤ a_max(驱动/机械可达),否则加长 Ls或降低 Vm

等速同步时间:t_sync = Ls / Vm,必须覆盖刀具接触+安全余量

6. 常见问题与对策
现象 可能原因 快速处理
GearInPos 报错 未到同步窗口/主从未 Power 增加“同步允许”判断;检查使能
刀点偏前/偏后 相位参考或极性不一致 调整 PhaseShift;确认主从方向
追不上/来不及退 同步区过短或加速度不足 降速、放宽曲线(S 曲线)、延长 Ls
误切/抖动 光电抖动/长度计噪声 输入去抖;用长度计替代单点触发
Reset 无效 HMI 为保持型/无上升沿 HMI 用瞬时写1;PLC 用 R_TRIG
7. HMI 页面建议

参数页:PosStandby/Entry/Return, Vel/Acc/Dec, CutLen, PhaseShift

运行页:CmdPower/CmdHome/CmdReset/CmdMoveStd/CmdRun/CmdStop + Busy/Done/Error 指示

曲线页:MasterPos/SlavePos/速度;新增“追剪计数、最近一次 ErrorID”

8. 安全与调试顺序

只做绝对定位,把“待机/回位”3个点跑稳;

低速验证“进同步→切→退同步→回位”完整节拍;

再逐步提高 Vm,同时监控驱动峰值电流与温升;

故障一律 MC_Reset 后回到 READY,避免跨态复位。



可下载文件

主逻辑 ST 模板(含状态机与 MC_* 调用):
TIA_FlyingShear_ST_Example.st

电子凸轮表示例(主轴 0–360° → 从轴位移 mm,可导入 Cam Editor):
TIA_CamTable_FlyingShear_deg_mm.csv

HMI 变量清单(通用)(按此绑定 WinCC 标签即可):
TIA_HMI_TagList_Generic.csv

使用说明/导入步骤:
README_TIA_FlyingShear.txt

下载资料前请先绑定手机号码