4. 切换过程的状态划分与顺序控制设计

批次切换不是一次“按按钮换配方”的动作,而是一段有明确阶段、有先后约束、有完成判据的过程。要把这段过程交给PLC自动执行,第一步不是写程序,而是把连续的生产切换拆成若干状态:每个状态有稳定的工艺含义、明确的进入条件、可观测的完成条件和可判定的异常出口。状态划分清楚之后,顺序控制(SFC)才有可靠的骨架。

一、状态划分的原则与本节对象

以一条典型的液体食品灌装线为例:上一批次为含乳饮料(含过敏原、易残留),下一批次为清汁类饮品。切换过程可划分为六个基本状态:排空(把上一批次物料从罐体、管道、灌装阀中排出)、清洗(CIP碱洗/酸洗/水洗,去除残留物)、消毒(热水或消毒液循环,降低微生物负荷)、预充(用新批次物料置换管道内清洗水)、配方切换(下载并校验新批次配方参数)、首件确认(取样检验并放行)。

划分状态时遵循三条原则:一是每个状态必须有可测量的完成判据,例如排空以“流量低于阈值且泵出口压力下降”判定,清洗以“回液电导率连续N秒低于设定值且累计时间达标”判定;二是状态之间不允许隐含并行,若确实需要并行(如两台灌装机分别清洗),应拆成并行分支而不是塞进同一状态;三是异常出口独立于正常出口,超时、传感器故障、检验不合格都应能跳出正常序列,进入报警或保持状态。

二、状态转移图与SFC结构

下图给出该切换过程的状态转移关系。实线为正常转移,虚线为异常转移;每个状态框内标注了关键完成判据,转移箭头旁标注触发条件。

初始步 待切换指令 S1 排空 流量<0.5 m³/h 且泵压下降 S2 清洗 回液电导率达标 且累计时间≥15 min S3 消毒 回液温度≥85℃ 保持≥10 min S4 预充 出口浓度≥设定值 且置换量达标 S5 配方切换 配方校验通过 参数写入PLC S6 首件确认 检验合格 人工放行 切换完成 进入生产步 记录批次号 排空完成 清洗合格 消毒达标 预充完成 配方就绪 放行 超时/流量异常 电导率超时 温度不达标 报警保持状态 人工复位后重入 检验不合格 正常转移 异常转移 注:S1~S6为顺序步,异常出口统一汇入报警保持状态

在SFC实现上,每个状态对应一个步(Step),步内执行的动作(如开阀、启泵、计时)用动作块描述,步与步之间的转移条件用布尔表达式编写。以S2清洗为例,其转移条件可写为:回液电导率 < 5 μS/cm AND 清洗计时 ≥ 900 s AND 无清洗故障。SFC的优势在于:步是互斥的,同一时刻只有一个步处于活动状态,天然避免了“排空未完成就开始清洗”这类顺序错误。

三、状态超时与异常处理

每个状态都必须配置超时监控。超时值不是拍脑袋定的,而应基于工艺验证数据设定并留出合理裕量。例如S2清洗正常耗时约12 min,超时值可设为20 min;S3消毒正常保持10 min,超时值设为18 min。超时后不应直接跳步,而应转入报警保持状态,等待操作员判断是继续等待、手动干预还是中止切换。

异常处理要区分三类:可恢复异常(如电导率短暂波动,可延时确认后继续)、需人工干预异常(如阀门反馈故障、检验不合格,必须停机处理)、安全类异常(如消毒温度失控、管道超压,立即切断并报警)。在SFC中,前两类通过转移条件中的故障位触发跳转,第三类则通过独立的安全联锁回路实现,不依赖SFC的正常扫描。

常见设计缺陷:把超时判断写在步的动作里而不是转移条件里,导致超时后步仍在执行动作;或异常出口直接跳回初始步,丢失了已完成的清洗记录。正确做法是异常时保持当前步的输出安全状态,并锁存故障原因供追溯。

四、顺序控制逻辑的实现要点

以西门子S7-1500的GRAPH或三菱的SFC为例,实现时注意以下几点:步的激活用SET置位、用转移条件AND后置位下一步并复位当前步;步内动作分为非保持型(步活动时执行,步退出即停止,如开泵)和保持型(如已完成的累计时间需锁存);每个步设置一个StepTimer,超时位参与转移条件判断。

配方切换步(S5)需要特别处理:配方数据从MES或HMI下载后,必须做完整性校验——检查配方号与工单一致、关键参数在允许范围内、校验和正确。校验不通过则停留在S5并报警,绝不能带着错误配方进入预充。首件确认步(S6)则应设计为人工确认节点:系统给出取样提示,检验结果录入后由操作员按下放行按钮,SFC才允许转移到完成步,这样既满足质量追溯要求,也避免自动放行带来的风险。

最后,整个切换过程应记录每个状态的进入时间、退出时间、持续时长和异常事件,形成切换履历。这份履历既是批次追溯的一部分,也是后续优化切换时长(如缩短清洗时间)的数据基础。状态划分得越清晰、转移条件写得越明确,切换过程就越可控、越可复现。