S88 批次控制编程规范

ISA-88 / IEC 61512 — 批次过程控制的国际标准详解

目录

  1. S88 标准概述
  2. 标准发展历史
  3. 物理模型(Physical Model)
  4. 过程模型(Procedural Model)
  5. 工艺模型(Process Model)
  6. 配方管理(Recipe Management)
  7. 状态机模型(State Machine)
  8. 编程原则与最佳实践
  9. 命名规范
  10. 模块化设计
  11. 实施指南
  12. 标准优势与适用场景

1. S88 标准概述

S88(正式名称为 ISA-88ANSI/ISA-88)是由国际自动化学会(ISA)制定的批次控制标准。 该标准的国际对应版本为 IEC 61512。S88 定义了批次制造过程中的术语、模型和数据结构, 旨在提供一套统一的框架来设计、实施和管理批次控制系统。

核心目标:将"做什么"(配方/工艺)与"用什么做"(设备)分离,实现灵活、可复用、可维护的批次控制系统。

标准的核心理念

标准组成部分

部分 编号 内容
第1部分 ISA-88.01 模型与术语(Models and Terminology)
第2部分 ISA-88.02 数据结构与配方管理语言指南
第3部分 ISA-88.03 通用与站点配方模型
第4部分 ISA-88.04 批次生产记录
第5部分 ISA-88.05 实施模型与术语

2. 标准发展历史

年份 事件
1988 ISA SP88 委员会成立,开始制定批次控制标准
1995 ISA-88.01 正式发布(模型与术语)
1997 IEC 采纳为 IEC 61512-1
2001 ISA-88.02 发布(数据结构与语言指南)
2003 ISA-88.03 发布(通用与站点配方)
2006 ISA-88.04 发布(批次生产记录)
2010 ISA-88.01 修订版发布
2012 ISA-88.05 发布(实施模型)

3. 物理模型(Physical Model)

物理模型定义了批次制造设施中的设备层次结构。它描述了实际物理设备的组织方式, 从整个企业层面一直细化到最底层的控制模块。

┌─────────────────────────────────────┐
│ Enterprise(企业) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Site(工厂) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Area(区域) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Process Cell(过程单元) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Unit(单元) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Equipment Module(设备模块) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Control Module(控制模块) │
└─────────────────────────────────────┘

各层级详细说明

Enterprise(企业)

最高层级,代表整个企业组织。一个企业可包含多个生产工厂。

Site(工厂/站点)

物理上或逻辑上独立的生产设施,通常对应一个工厂。

Area(区域)

工厂内的一个生产区域,通常包含一组相关的过程单元。

Process Cell(过程单元)

能够独立完成一个批次生产的最小设备集合。过程单元包含完成一个或多个批次所需的所有单元、设备模块和控制模块。 这是批次控制的关键边界。

Unit(单元)核心

过程单元中能执行主要加工活动的设备集合。例如:反应釜、混合罐、发酵罐等。 一个单元在同一时刻只能处理一个批次(或批次的一部分)。

关键规则:一个 Unit 在任何时刻只能被分配给一个批次,这是保证批次完整性的基本约束。

Equipment Module(设备模块)核心

能够执行有限数量特定加工活动的设备组合。设备模块可以是 Unit 的一部分,也可以独立存在。 例如:加热系统、搅拌系统、进料系统等。

Control Module(控制模块)核心

物理模型的最底层,通常对应单个设备或一组紧密相关的设备。 例如:一个调节阀及其反馈、一个电机及其变频器、一个温度传感器等。

4. 过程模型(Procedural Model)

过程模型(也称程序模型)定义了批次生产中执行动作的层次结构。 它描述了"如何做"——即控制设备执行生产任务的逻辑步骤。

┌─────────────────────────────────────┐
│ Procedure(程序) │ ← 对应 Process Cell
└──────────────────┬──────────────────┘
│ 包含 1..n
┌──────────────────▼──────────────────┐
│ Unit Procedure(单元程序) │ ← 对应 Unit
└──────────────────┬──────────────────┘
│ 包含 1..n
┌──────────────────▼──────────────────┐
│ Operation(操作) │ ← 对应 Unit
└──────────────────┬──────────────────┘
│ 包含 1..n
┌──────────────────▼──────────────────┐
│ Phase(阶段) │ ← 对应 EM / Unit
└─────────────────────────────────────┘

各层级详细说明

Procedure(程序)

最高层级的过程控制实体,定义了完成一个批次所需的全部策略。 一个 Procedure 由有序的 Unit Procedure 组成,可能涉及多个 Unit 之间的协调。

Unit Procedure(单元程序)

在一个特定 Unit 上执行的连续加工步骤的集合。 一个 Unit Procedure 由一个或多个 Operation 按照定义的顺序组成。

Operation(操作)

在一个 Unit 上执行的一组相关的 Phase 的有序集合,通常代表一个独立的加工阶段。 例如:"充填操作"、"加热操作"、"反应操作"等。

Phase(阶段)最底层可编程实体

过程模型中最小的可编程控制元素。Phase 是面向设备的最小独立控制动作, 直接操作设备模块和控制模块来完成具体任务。

Phase 是 S88 编程的核心单元。每个 Phase 实现一个独立的、可复用的控制功能, 如"加料"、"升温"、"搅拌"、"排放"等。Phase 内部实现状态机逻辑。

过程模型与物理模型的对应关系

过程模型层级 对应物理模型层级 说明
Procedure Process Cell 整个批次流程,可能跨多个 Unit
Unit Procedure Unit 在一个 Unit 上的连续操作
Operation Unit Unit 上的一个主要加工步骤
Phase Unit / Equipment Module 最小控制动作,操作设备模块

5. 工艺模型(Process Model)

工艺模型描述的是生产一个产品所需的化学或物理变化过程, 独立于具体设备和控制方式。它回答"要发生什么"的问题。

┌─────────────────────────────────────┐
│ Process(工艺) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Process Stage(工艺阶段) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Process Operation(工艺操作) │
└──────────────────┬──────────────────┘

┌──────────────────▼──────────────────┐
│ Process Action(工艺动作) │
└─────────────────────────────────────┘

工艺模型与过程模型的区别

对比维度 工艺模型(Process Model) 过程模型(Procedural Model)
关注点 化学/物理变化 控制逻辑和步骤
是否依赖设备 否,独立于设备 是,绑定到物理设备
描述内容 "要发生什么变化" "如何控制设备来实现变化"
示例 "将物料加热至80°C" "打开蒸汽阀,PID控制至80°C"

6. 配方管理(Recipe Management)

配方是 S88 中连接工艺需求与设备控制的桥梁。S88 定义了四种配方类型, 从通用到具体逐步细化。

配方层次

配方类型 英文名 范围 说明
通用配方 General Recipe 企业级 独立于设备,定义产品生产的通用需求
站点配方 Site Recipe 工厂级 针对特定工厂条件调整的配方
主配方 Master Recipe 过程单元级 针对特定过程单元的详细生产配方
控制配方 Control Recipe 批次级 为一个具体批次生成的配方实例

配方的组成要素

配方的 Procedure 部分不应包含设备特定的控制细节,而应通过参数化的方式引用 Phase, 由 Phase 内部实现具体的设备控制逻辑。

7. 状态机模型(State Machine)

S88 定义了一套标准的状态机模型,用于描述批次控制实体(特别是 Phase)的执行状态和状态转换。 这是 S88 编程中最核心的实现机制。

标准状态定义

状态 英文 类型 说明
空闲 Idle 静止态 初始状态,等待启动命令
运行中 Running 执行态 正在执行主要功能
完成 Complete 静止态 正常执行完毕
暂停中 Pausing 过渡态 正在执行暂停逻辑
已暂停 Paused 静止态 暂停完成,等待恢复
保持中 Holding 过渡态 正在执行保持逻辑(异常导致)
已保持 Held 静止态 保持完成,等待重启
重启中 Restarting 过渡态 从保持状态恢复
停止中 Stopping 过渡态 正在执行正常停止逻辑
已停止 Stopped 静止态 正常停止完毕
中止中 Aborting 过渡态 正在执行紧急中止逻辑
已中止 Aborted 静止态 紧急中止完毕

标准命令

命令 英文 触发条件 状态转换
启动 Start 操作员或上级程序 Idle → Running
暂停 Pause 操作员 Running → Pausing → Paused
恢复 Resume 操作员 Paused → Running
保持 Hold 异常条件或操作员 Running → Holding → Held
重启 Restart 操作员(异常排除后) Held → Restarting → Running
停止 Stop 操作员或正常结束 Any → Stopping → Stopped
中止 Abort 紧急条件 Any → Aborting → Aborted
复位 Reset 操作员 Complete/Stopped/Aborted → Idle
状态转换示意图:

[Idle] --Start--> [Running] --完成--> [Complete]
  ↑ Reset           |                ↓ Reset
  |              ├--Pause--> [Pausing] --> [Paused] --Resume--> [Running]
  |              ├--Hold---> [Holding] --> [Held] --Restart-> [Restarting] --> [Running]
  |              ├--Stop---> [Stopping] --> [Stopped] ──────┐
[Idle] <──────── Reset ─────────────────────────────────────────┘
  ↑              └--Abort--> [Aborting] --> [Aborted] ──Reset──> [Idle]
Pause vs Hold 的区别:
Pause — 由操作员主动触发的正常暂停(如等待确认),恢复后从断点继续
Hold — 由异常条件或操作员触发的保护性停止,通常需要处理异常后才能重启

8. 编程原则与最佳实践

8.1 Phase 编程规范

Phase 是 S88 编程的最小可执行单元,其编程质量直接决定整个系统的可靠性和可维护性。

Phase 的基本结构

每个 Phase 程序应包含以下组成部分:
1. 状态机框架 — 实现标准 S88 状态转换
2. 参数接口 — 定义输入参数(来自配方)和输出报告
3. Running 逻辑 — 核心控制算法
4. Holding 逻辑 — 异常保护动作
5. Stopping/Aborting 逻辑 — 安全停止动作
6. 完成条件 — 定义正常完成的判断逻辑

Phase 编程准则

8.2 设备模块编程规范

8.3 控制模块编程规范

8.4 异常处理规范

异常级别 处理方式 示例
警告 记录日志,继续运行 参数接近上限
轻微故障 触发 Hold,等待人工处理 传感器读数异常
严重故障 触发 Stop,安全停止 设备故障
紧急情况 触发 Abort,立即安全动作 安全相关故障

9. 命名规范

统一的命名规范是 S88 系统可维护性的基础。以下是推荐的命名策略:

设备层命名

层级 命名格式 示例
Process Cell PC_[名称] PC_Mixing, PC_Reactor
Unit [区域][类型][编号] MX101, RX201
Equipment Module EM_[功能]_[编号] EM_Agitator_01, EM_Heater_01
Control Module CM_[类型]_[编号] CM_Valve_101, CM_Motor_201

过程层命名

层级 命名格式 示例
Procedure PROC_[产品/工艺] PROC_ProductA
Unit Procedure UP_[功能描述] UP_Mixing, UP_Reaction
Operation OP_[动作描述] OP_Charge, OP_Heat
Phase PH_[动作] PH_Add, PH_Agitate, PH_Transfer

参数命名

参数类型 前缀 示例
设定值(Setpoint) SP_ SP_Temperature, SP_FlowRate
实际值(Process Value) PV_ PV_Temperature, PV_Level
报告值(Report) RPT_ RPT_ActualAmount, RPT_Duration
配置参数 CFG_ CFG_Timeout, CFG_MaxRetry

10. 模块化设计

10.1 设计原则

10.2 模块化层次对应

类比面向对象编程:
Phase ≈ 方法(Method)— 执行一个具体功能
Equipment Module ≈ 类(Class)— 封装数据和行为
Control Module ≈ 属性/接口(Property/Interface)— 提供基础能力
配方 ≈ 配置文件(Config)— 参数化驱动行为
Unit ≈ 对象实例(Instance)— 运行时的具体实体

10.3 接口设计规范

模块间通信应遵循以下原则:

11. 实施指南

11.1 实施步骤

  1. 工艺分析 — 理解生产工艺,绘制工艺流程图
  2. 物理模型建立 — 识别和定义设备层次结构
  3. 过程模型设计 — 将工艺分解为 Procedure → Phase 的层次
  4. Phase 识别 — 确定所需的所有 Phase 类型
  5. 设备模块定义 — 确定设备模块的能力和接口
  6. 控制模块开发 — 实现底层设备控制
  7. Phase 编程 — 实现每个 Phase 的状态机逻辑
  8. 配方开发 — 建立配方体系,定义参数
  9. 集成测试 — 单元测试 → 集成测试 → 系统验证
  10. 验证确认 — 按照 GAMP 等规范进行 IQ/OQ/PQ

11.2 Phase 实现模板

Phase 标准实现结构(伪代码):
// Phase: PH_Add(加料阶段)
// 输入参数: SP_TargetAmount, SP_FlowRate, CFG_Timeout
// 输出报告: RPT_ActualAmount, RPT_Duration

CASE CurrentState OF

  STATE_IDLE:
    // 等待 Start 命令
    IF CMD_Start THEN
      Initialize();
      CurrentState := STATE_RUNNING;
    END_IF;

  STATE_RUNNING:
    // 执行主逻辑
    OpenValve(SP_FlowRate);
    IF PV_Amount >= SP_TargetAmount THEN
      CloseValve();
      RPT_ActualAmount := PV_Amount;
      CurrentState := STATE_COMPLETE;
    END_IF;
    // 超时检查
    IF ElapsedTime > CFG_Timeout THEN
      CurrentState := STATE_HOLDING;
    END_IF;

  STATE_HOLDING:
    // 保护动作:关闭阀门
    CloseValve();
    CurrentState := STATE_HELD;

  STATE_HELD:
    // 等待操作员处理
    IF CMD_Restart THEN
      CurrentState := STATE_RESTARTING;
    END_IF;

  STATE_RESTARTING:
    // 恢复逻辑
    ResetTimers();
    CurrentState := STATE_RUNNING;

  STATE_STOPPING:
    // 正常停止
    CloseValve();
    RPT_ActualAmount := PV_Amount;
    CurrentState := STATE_STOPPED;

  STATE_ABORTING:
    // 紧急停止
    CloseValve();
    EmergencyActions();
    CurrentState := STATE_ABORTED;

  STATE_COMPLETE, STATE_STOPPED, STATE_ABORTED:
    IF CMD_Reset THEN
      ResetAll();
      CurrentState := STATE_IDLE;
    END_IF;

END_CASE;

// 全局命令监测(优先级高于状态逻辑)
IF CMD_Stop THEN CurrentState := STATE_STOPPING; END_IF;
IF CMD_Abort THEN CurrentState := STATE_ABORTING; END_IF;
IF CMD_Hold AND CurrentState = STATE_RUNNING THEN CurrentState := STATE_HOLDING; END_IF;
IF CMD_Pause AND CurrentState = STATE_RUNNING THEN CurrentState := STATE_PAUSING; END_IF;

11.3 常见实施平台

平台 厂商 S88 支持特性
DeltaV Batch Emerson 原生 S88 支持,内建状态机和配方管理
FactoryTalk Batch Rockwell PhaseManager, 配方编辑器
WinCC / PCS 7 BATCH Siemens ISA-88 配方管理, SFC 编程
Wonderware InBatch AVEVA 批次执行引擎,配方管理
Ignition Inductive Automation SFC 模块,可自定义 S88 框架

12. 标准优势与适用场景

采用 S88 的优势

适用行业

行业 典型应用
制药 原料药合成、制剂生产、生物制品
食品饮料 配料混合、发酵、灌装
精细化工 反应釜控制、配方生产
日化 洗涤剂、化妆品配料生产
半导体 晶圆清洗、化学处理
生物技术 细胞培养、发酵、纯化
S88 主要针对批次(Batch)生产过程设计。对于连续过程,可参考 ISA-106 标准; 对于离散制造,可参考 ISA-95 标准。三者可以结合使用。