1. 课程导入
在流程工业、制药、食品饮料、精细化工以及半导体制造等领域,生产往往不是以“单件”为单位,而是以批次(Batch)为单位组织。一个批次可能是一釜反应、一罐发酵、一批混合或一轮清洗。批次控制的核心任务,是在正确的时间、以正确的顺序、把正确的物料和参数施加到设备上,并保证整个过程可追溯、可复现、可恢复。与连续控制不同,批次控制天然带有离散状态和顺序逻辑:它关心“现在处于哪一步”“下一步该做什么”“异常时如何回到安全状态”。这正是本课程要解决的核心问题。
一、什么是批次控制:从“配方”到“状态机”
批次控制通常遵循 ISA-88(IEC 61512)标准的分层模型:企业—现场—过程单元—设备模块—控制模块。其中,配方(Recipe)描述“做什么”,设备(Equipment)描述“用什么做”,批次执行(Batch Execution)描述“怎么按顺序做”。一个批次从创建到完成,会经历空闲、就绪、运行、暂停、保持、中止、完成等状态。控制系统的本质,就是一台被工程化约束的状态机。
理解批次控制,需要抓住三个关键词:顺序、状态、恢复。顺序决定步骤推进;状态决定当前允许的动作;恢复决定异常后能否安全继续或优雅终止。很多现场事故并非因为控制算法复杂,而是因为状态迁移条件不严谨、异常分支未覆盖、恢复策略缺失。
核心认知:批次控制不是“把连续PID换成开关阀”,而是以状态和顺序为中心的控制范式。状态管理做得好,异常恢复才有基础;状态管理混乱,任何恢复策略都只是补丁。
二、课程整体框架与学习路径
本课程共30章,围绕“概念—建模—实现—异常—恢复—复盘”的主线展开。整体可分为五个阶段:
- 基础认知(第1—5章):批次控制概念、ISA-88模型、状态机基础、配方与设备模型、状态迁移条件。
- 状态管理(第6—12章):状态定义、状态表设计、步序控制、并行分支、同步与互锁、保持与暂停、状态持久化。
- 异常处理(第13—20章):异常分类、报警分级、故障检测、超时与偏差、异常分支设计、安全状态、人工干预。
- 恢复策略(第21—27章):断点续行、回退、重试、废弃重做、批次追溯、数据一致性、恢复验证。
- 综合实战(第28—30章):典型案例复盘、常见误区、工程落地清单与持续改进。
学习路径建议:先建立状态机思维,再掌握状态表与迁移条件,最后进入异常与恢复。不要跳过状态建模直接写恢复逻辑,否则会在复杂分支中迷失。
三、核心原理:状态、迁移与恢复三要素
批次控制的状态管理可以抽象为三元组:状态集合 S、迁移条件 T、动作 A。当系统处于状态 s 时,只有满足迁移条件 t,才允许执行动作 a 并进入下一状态 s'。异常恢复的本质,是在迁移条件不满足或动作失败时,决定是重试、回退、跳过还是终止。
下面是一段简化的状态迁移伪代码,用于说明“状态—条件—动作”的绑定关系:
state = IDLE
while batch_running:
if state == IDLE and recipe_loaded:
state = READY
elif state == READY and start_cmd:
state = RUNNING
execute_step(1)
elif state == RUNNING and step_done:
if next_step_exists:
execute_step(next_step)
else:
state = COMPLETE
elif state == RUNNING and fault_detected:
state = HOLD
save_context()
elif state == HOLD and recover_cmd == "resume":
state = RUNNING
restore_context()
elif state == HOLD and recover_cmd == "abort":
state = ABORTED
safe_shutdown()
这段代码虽然简化,但揭示了关键点:保存上下文和恢复上下文是异常恢复的核心动作。没有上下文持久化,恢复就无从谈起。
四、典型场景:反应釜批次异常恢复
假设某反应釜批次包含“投料—升温—保温—冷却—出料”五个步骤。在保温阶段,温度传感器出现短时跳变,触发偏差报警。此时系统进入 HOLD 状态,关闭加热,保持搅拌,记录当前步骤、已保温时间、温度曲线和阀门状态。操作员确认传感器正常后,选择“继续”,系统从保温步骤的断点恢复,而不是从投料重新开始。若确认物料已异常,则选择“终止”,系统执行安全冷却和废气处理,并将批次标记为“废弃”。
工程提示:恢复策略必须在设计阶段就与工艺工程师共同确定。哪些步骤可续、哪些必须回退、哪些只能终止,不能由程序员单独决定。
五、常见误区与复盘清单
| 误区 | 后果 | 改进方向 |
|---|---|---|
| 只画正常流程,不画异常分支 | 异常时无状态可去,系统卡死 | 每个步骤都定义异常出口 |
| 状态迁移条件过于宽松 | 误触发、跳步、重复执行 | 条件加互锁与确认 |
| 恢复时未保存上下文 | 无法断点续行,只能重做 | 持久化步骤号、计时、参数 |
| 报警与状态脱节 | 操作员不知道当前处于什么状态 | 报警绑定状态与步骤 |
| 恢复后未做一致性校验 | 数据与现场不一致,追溯失效 | 恢复前校验设备与配方 |
复盘重点:每一次异常恢复后,都应记录“异常原因—当前状态—恢复动作—结果—是否可复现”。这些记录是优化状态表和恢复策略的第一手材料。