返回主站|会员中心|保存桌面

西门子PLC服务商    

PLC、变频器、电机,触摸屏,低压

联系方式
  • 联系人:方经理
  • 电话:13073017555
  • 邮件:gzws26@126.com
新闻分类
  • 暂无分类
首页 > 新闻中心 > 西门子 PLC 程序优化,有哪些方法可以提高冲床离合器的控制精度!
新闻中心
西门子 PLC 程序优化,有哪些方法可以提高冲床离合器的控制精度!
发布时间:2026-08-08        浏览次数:1        返回列表

冲床核心矛盾:转速越高,同样电磁阀 / 气路 / 制动器机械滞后时间,对应的曲轴滑行角度越大。西门子主流:S7‑1200 / S7‑1500;编码器用高速计数工艺对象,禁止普通 DI 做脉冲计数;离合器制动器电磁阀必须晶体管输出或 SSR,严禁继电器 DO。控制目标:滑块每次停止角度离散度变小,高速冲次下位置不飘。

硬件前提:

  1. 曲轴增量编码器接入 PLC 高速计数通道;S7‑1200 用工艺对象High‑speed counter;S7‑1500 可以用 TM 计数模块。

  2. 离合器、制动器电磁阀:晶体管输出,电磁阀线圈增加 RC 吸收或续流二极管,抑制浪涌干扰编码器。

  3. 安全门、急停走安全回路 / F‑PLC,不能完全依赖普通 PLC 程序停机。

一、OB 组织块架构优化

❌错误:把曲轴角度判停、离合制动输出放在 OB1 主循环。OB1 循环周期抖动,高速时一次 OB1 抖动,曲轴就转过很大角度,停止位置离散。

✅推荐架构

  1. 使用循环中断 OB(Cyclic Interrupt),周期 0.5ms~1ms

    • 将:高速计数值读取、角度换算、实时转速计算、制动判停逻辑、离合器 / 制动器输出刷新全部放在这个固定周期 OB。

    • 中断优先级调高;循环 OB 内部禁止 HMI 读写、日志、字符串处理、大运算,防止中断本身被拉长抖动。

  2. OB1 主循环:只处理模式选择、报警、HMI 交互、设备逻辑,不做角度判停和制动输出

  3. 安全逻辑:急停、安全门优先使用安全 OB/F‑CPU,不要依赖普通循环中断。

注意:高速计数工艺对象本身硬件计数;循环 OB 只读取已经硬件计数好的计数值,不要软件数脉冲。

二、信号处理:角度、转速计算与信号容错

  1. 高速计数器脉冲换算成曲轴角度(0‑360° 环形),做环形边界处理,防止 0/360 度溢出。

  2. 在 1ms 循环中断内计算实时曲轴转速,转速是动态补偿的基础。

  3. 编码器故障诊断(放在循环 OB)

    • 转速突变异常跳变、角度不跟随,判定编码器故障,立刻切断离合器,安全停机。

    • 脉冲丢失、信号抖动直接报警停机。

变量示例:

  • rCrankAngle:曲轴角度 Real 0~360.0

  • rCrankSpeedRPM:实时转速 Real

  • nHSC_Pulse:高速计数器计数值 DINT

三、离合制动器时序与动态提前制动补偿(核心软件算法)

物理现象:PLC 输出 DO → 电磁阀动作 → 气路充放气 → 制动器摩擦片建立制动力,存在固定系统滞后(几十 ms,由现场实测标定)。

同样 40ms 滞后:低速转过很小角度;高冲次下会转过十几度,只写固定制动提前角,高速必然过冲。

动态提前触发角度公式(STL/SCL)

scl

//系统总滞后时间:PLC输出到制动器有效扭矩,现场实测标定,单位ms
SystemLag_ms := 40.0;
//计算滞后时间内曲轴会转过多少角度
Lag_Angle := rCrankSpeedRPM * SystemLag_ms / 60000.0 * 360.0;
//限制补偿上下限,低速防止补偿过大
Lag_Angle := LIMIT(0.0, Lag_Angle,30.0);
//实际触发制动角度
Trigger_Angle := TargetStop_Angle - Lag_Angle;

在 1ms 循环中断中判断:

scl

IF (rCrankAngle >= Trigger_Angle) AND (StopTriggered = FALSE) THEN
    Clutch_Out := FALSE;    //断开离合器
    StopTriggered := TRUE;
END_IF;

//离合器断开后,等待泄压延时,再上制动器,避免同时动作
IF StopTriggered THEN
    IF TON_Brake.DONE THEN
        Brake_Out := TRUE;
    END_IF;
END_IF;

⚠关键点:离合器先断开,等待气路泄压延时(5‑20ms 现场标定),再投入制动器。不能离合断开和抱闸同时输出,否则摩擦片强行对撞,磨损大,停止位置离散。

注意:不要用普通 TON 做毫秒级延时放在 OB1;毫秒级计时放在循环中断内,做软件计时,避免 OB1 周期带来计时误差

制动器释放逻辑:滑块完全静止后,延时再松开制动器,防止滑块重力漂移,不要角度一到达就松闸。

四、控制逻辑使用状态机,替代大量 S/R 置位复位

冲床模式:待机、离合器吸合运行、制动触发、停止完成。用 SCL 编写状态机,nStPressState作为状态变量:

  • 0:IDLE 待机

  • 1:离合器吸合运行

  • 2:制动触发

  • 3:已经停止完成

✅好处:

  1. 避免多处网络同时置位复位离合器输出,条件竞争;

  2. 单次冲压、连续冲压、点动模式逻辑清晰;

  3. 故障时状态机统一跳转至安全停机状态。

点动模式转速低,动态补偿角度可以做系数衰减,防止提前刹车。

五、报警与数据快照,方便排查精度问题

在循环中断里,制动触发瞬间保存快照变量,上传 HMI:

  • 触发制动时刻:曲轴角度、实时转速、计算得到的补偿角度

  • 滑块最终实际停止角度

HMI 显示:目标停止角度 VS 实际停止角度。

  • 每次偏差是固定偏移:系统滞后时间参数需要微调;

  • 每次停止忽大忽小离散波动:属于硬件层面(电磁阀响应离散、气压波动、摩擦片不稳定、编码器干扰),程序补偿无法完全消除。

报警条件:

  1. 发出制动信号后曲轴滑行角度超过阈值 → 报警:制动器制动力不足、气路异常;

  2. 连续多次停止误差超限 → 提醒摩擦片磨损维护;

  3. 编码器转速 / 角度异常跳变 → 编码器故障,安全停机。

六、输出侧优化

  1. 离合器、制动器 DO 输出做输出反馈比对:把过程映像输出和模块通道反馈回读做比较,输出指令和实际通道不一致,报输出故障。

  2. 离合器、制动器输出标签只在 1ms 循环中断内刷新,OB1、其他 FC/FB 禁止改写这两个输出,防止多地方改写造成输出抖动。

  3. 电磁阀线圈必须增加浪涌吸收,避免干扰编码器脉冲。

七、现场标定调试步骤

  1. 低速试冲,记录:PLC 输出制动信号到滑块停止,曲轴实际滑行角度,得到初始SystemLag_ms

  2. 逐步提高冲次转速,观察停止位置:

    • 总是过冲:增大SystemLag_ms,更早触发制动;

    • 总是提前停下没到目标位置:减小SystemLag_ms

  3. 将系统滞后时间参数放到 HMI 可调整,不用下载程序。

  4. 如果高速下停止位置随机离散,不是固定偏移:优先排查机械、气源压力、电磁阀、制动器间隙,程序补偿解决不了硬件离散。

八、常见错误汇总

  1. 角度判停放在 OB1 主循环,OB1 周期抖动,高速位置飘。✅移到 1ms 循环中断 OB。

  2. 使用固定提前制动角度,不随转速变化。✅引入转速动态补偿。

  3. 离合器、制动器同时输出,没有泄压间隔。✅增加离合器断开到制动器上闸的时间差。

  4. 毫秒级延时使用普通 TON,TON 受 OB1 周期影响计时不准。✅循环中断内软件计时。

  5. 多处网络 S/R 置位离合器,条件竞争。✅改用状态机。

  6. 使用普通 DI 做脉冲计数,丢脉冲。✅使用 PLC 高速计数工艺对象。

重要提醒:软件补偿只能弥补系统固定滞后;摩擦片磨损、气压波动、电磁阀响应离散这类硬件波动,程序不能无限补偿,设备两端必须保留硬件限位保护

收缩
  • QQ咨询

  • 电话咨询

  • 13073017555
  • 添加微信客服