S7-200 没有自带 SFC 顺序功能图指令,工程通用两种方案:
步标志位 + 跳转
移位寄存器 SRS/SHRB 步进方案
控制需求通用模板:原点→上料→加工→下料→等待,循环自动运行;支持手动、自动切换、暂停、急停、复位。
基础变量规划(先定义,规范程序)
plaintext
I0.0 自动启动按钮(上升沿) I0.1 自动暂停 I0.2 急停(常闭) I0.3 复位按钮 I0.4 原点到位传感器 M0.0 自动模式标志 M0.1 步1:等待原点 M0.2 步2:上料 M0.3 步3:加工 M0.4 步4:下料 M0.5 循环完成标志 T37 加工定时 Q0.0 上料气缸 Q0.1 加工输出 Q0.2 下料气缸
方案一:步标志法
原理:同一时间只激活一个步;本步条件完成,复位当前步,置位下一步适合绝大多数设备:单机工作站、压机、搬运机构、简易流水线。
完整梯形图逻辑语句(STL 格式,可直接录入 S7-200)
plaintext
//1. 急停全局处理(最高优先级) LD I0.2 NOT R M0.0, 10 //急停复位所有自动步 //2. 复位功能 LD I0.3 EU R M0.1,10 //3. 自动启动,必须在原点才能启动 LD M0.0 A I0.4 A I0.0 EU S M0.1,1 //进入步1 等待原点 // ==========步1 M0.1:原点等待 ========== LD M0.1 A I0.4 //原点满足 EU R M0.1,1 S M0.2,1 //切换步2 // ==========步2 M0.2:上料 ========== LD M0.2 = Q0.0 //上料气缸输出 TON T37, +50 //上料延时5s LD T37 EU R M0.2,1 S M0.3,1 //切换步3 // ==========步3 M0.3:加工 ========== LD M0.3 = Q0.1 TON T38, +80 //加工8s LD T38 EU R M0.3,1 S M0.4,1 //切换步4 // ==========步4 M0.4:下料 ========== LD M0.4 = Q0.2 TON T39, +40 LD T39 EU R M0.4,1 S M0.1,1 //回到第一步,循环
关键扩展:暂停功能增加
plaintext
LD I0.1 EU A M0.0 NOT R M0.1,10
思路:暂停触发时复位所有步;恢复启动需要重新触发启动按钮。
✅优点
哪一步卡住一眼就能从状态表监控 M0.x 看到;
新增工序只需要插入一段步逻辑;
电工极易看懂,调试故障方便。
❌缺点
步骤非常多(>15 步)时代码偏长,可以改用移位寄存器方案。
方案二:SHRB 移位寄存器步进(流水线多工序首选)
S7-200 专属指令 SHRB 移位寄存器,用一组连续 M 点充当工序步。格式:SHRB DATA, S_BIT, N
示例:DATA:移位输入信号S_BIT:起始位 M0.1N:总步数 4
plaintext
//原点条件作为移位触发信号 LD I0.4 EU SHRB I0.0, M0.1, +4
M0.1 = 步 1、M0.2 = 步 2、M0.3 = 步 3、M0.4 = 步 4每完成一道工序产生一个上升沿,自动向后移位。
✅优点
多工序循环代码简洁
❌缺点
故障定位不如步标志直观;新手容易移位时序错乱。
三、标准编程强制规范(避坑重点)
优先级顺序:急停 > 复位 > 暂停 > 自动运行
所有气缸 / 输出 只在对应步内输出,不要多处重复线圈
工序切换条件建议使用 上升沿 EU,防止持续条件造成连续跳步
自动程序和手动程序互锁
plaintext
LD M0.0 R V10.0,20 //自动模式复位手动标志
每一步建议增加超时报警,防止传感器损坏设备卡死举例:步 2 上料增加 T40 10s 超时,超时置位报警 M1.0
四、常见故障
程序一步直接跳到最后:缺少 EU 上升沿,条件持续导通
无法循环:最后一步没有置位第一步标志位
急停之后无法再次启动:急停解除后需要复位 + 重新触发启动
同时多个 M0.x 步同时接通:置位 S 和复位 R 逻辑顺序错误
五、给你一套通用结构模板
plaintext
【全局安全区】急停、复位、手自动互锁 【自动启动条件判断】原点+启动按钮 【步1逻辑】完成条件→切步 【步2逻辑】完成条件→切步 【步3逻辑】完成条件→切步 【最后一步】完成 → 返回第一步实现循环 【各步驱动对应输出负载】。

