3. SFC顺序控制实现反应釜进料与搅拌
SFC顺序控制的对象与步序设计
反应釜进料与搅拌的顺序控制,核心是把“阀门开到位、搅拌电机运行、定时到达”这些现场状态,组织成一条可验证的步序链。本例使用PCS 7的SFC编辑器,在AS站中创建一个顺序功能图,控制对象为:进料阀XV101(开/关)、搅拌电机M101(启/停)、搅拌定时器T101(设定值30 s)。
SFC的步序采用“步+转换条件”结构:每个步执行一个动作,转换条件满足后进入下一步。本例定义4个步:STEP1开进料阀、STEP2启动搅拌电机、STEP3定时搅拌、STEP4停止搅拌并关阀。转换条件直接引用CFC中已组态的电机运行反馈、阀门开到位反馈和定时器完成位。
SFC组态与步序实现
在SIMATIC Manager中打开AS站的SFC编辑器,新建一个SFC类型为“顺序控制”。按以下顺序组态:
- 在SFC中依次插入4个步(Step),分别命名为
STEP1至STEP4。 - 每个步的“动作”栏中填写对应的CFC块输出赋值。例如
STEP1的动作写为XV101_CMD := TRUE,STEP2写为M101_CMD := TRUE,STEP3写为T101_EN := TRUE,STEP4写为M101_CMD := FALSE; XV101_CMD := FALSE。 - 在步与步之间的转换条件中,引用CFC中已组态的反馈信号。转换条件T1写为
XV101_OPEN_FB = TRUE,T2写为M101_RUN_FB = TRUE,T3写为T101_DONE = TRUE。 - 设置SFC的启动方式为“手动启动”,并勾选“步序监视”以便在线观察当前步。
关键点:SFC中的动作输出必须与CFC中已定义的变量名一致。如果CFC中电机启停回路使用的是M101_Start和M101_Stop两个脉冲变量,则SFC动作应改为调用对应的置位/复位逻辑,而不是直接写M101_CMD。本例假设CFC中已封装了M101_CMD作为电机启动命令位。
测试步序切换条件
使用PLCSIM进行仿真测试,按以下方法验证步序切换:
- 启动SFC后,观察当前步是否为
STEP1,同时XV101_CMD应为TRUE。 - 在PLCSIM中强制
XV101_OPEN_FB = TRUE,观察SFC是否从STEP1切换到STEP2,且M101_CMD变为TRUE。 - 强制
M101_RUN_FB = TRUE,观察是否进入STEP3,且T101_EN为TRUE。 - 等待30 s或强制
T101_DONE = TRUE,观察是否进入STEP4,且M101_CMD和XV101_CMD均变为FALSE。
如果步序卡在某一步不切换,优先检查转换条件中引用的反馈位是否在CFC中正确连接到了实际I/O,以及PLCSIM中该位是否被强制为TRUE。SFC的转换条件只在当前步激活期间被扫描,因此反馈位必须在当前步执行期间保持为TRUE。
SFC动作中不要使用沿触发指令(如上升沿),因为SFC步可能持续多个扫描周期。如果需要脉冲输出,应在CFC中单独组态脉冲逻辑,SFC只负责置位/复位命令位。
步序切换验证清单
| 检查项 | 预期结果 | 判断依据 |
|---|---|---|
| STEP1激活时XV101_CMD | TRUE | SFC在线监视中STEP1高亮,变量表监视XV101_CMD=TRUE |
| T1条件满足后步切换 | STEP1→STEP2 | 强制XV101_OPEN_FB=TRUE后,当前步变为STEP2 |
| STEP2激活时M101_CMD | TRUE | 变量表监视M101_CMD=TRUE |
| T2条件满足后步切换 | STEP2→STEP3 | 强制M101_RUN_FB=TRUE后,当前步变为STEP3 |
| STEP3激活时T101_EN | TRUE | 变量表监视T101_EN=TRUE,定时器开始计时 |
| T3条件满足后步切换 | STEP3→STEP4 | 定时完成或强制T101_DONE=TRUE后,当前步变为STEP4 |
| STEP4激活时输出复位 | M101_CMD=FALSE, XV101_CMD=FALSE | 变量表监视两个命令位均为FALSE |