2. 大型设备联锁与顺控需求分析
在大型设备联锁与顺控工程中,需求分析不是“把工艺描述抄一遍”,而是把分散在工艺流程图(P&ID)、因果图(Cause & Effect Matrix)、SIS 与 DCS 分工文件中的信息,翻译成 ControlLogix 可实现的联锁逻辑与顺控步序,并形成一条可追溯的需求链。需求链的起点是工艺危害与操作目标,终点是控制器中的具体标签、条件表达式和动作输出。中间任何一环缺失,都会导致后期编程、测试和验收时反复返工。
一、三类输入文件各自回答什么问题
P&ID 回答“有哪些设备、仪表、阀门和管线,它们如何连接”。因果图回答“哪个原因触发哪个结果,是联锁停车、报警还是联锁允许”。SIS 与 DCS 分工文件回答“哪些逻辑由安全仪表系统执行,哪些由过程控制系统执行,两者之间如何交接”。三者缺一不可:只看 P&ID 会漏掉动作优先级,只看因果图会不清楚现场仪表位号与信号类型,只看分工文件则无法还原工艺连接关系。
以一台大型压缩机组为例,P&ID 上可以看到入口分离器液位变送器 LT-1201、出口温度变送器 TE-1205、润滑油压力开关 PS-1301、机组运行信号、入口切断阀 XV-1201 和旁路阀 XV-1202。因果图则规定:LT-1201 高高(HH)触发机组停车并关闭 XV-1201;TE-1205 高高触发机组停车;PS-1301 低低触发机组停车并启动辅助油泵。分工文件进一步说明:机组停车联锁由 SIS 执行,辅助油泵启动由 DCS 执行,SIS 通过硬线或安全通信向 DCS 发送“机组停车”状态。
二、从因果图提取联锁逻辑
因果图通常以矩阵形式出现,行是原因,列是结果。提取时不能只抄“X”标记,而要明确四件事:触发条件、延时、复位方式和动作输出。例如 LT-1201 HH 的触发条件应写成“液位 ≥ 90% 且持续 2 s”,而不是“液位高”。延时用于抑制液位波动引起的误停车,复位方式要区分手动复位和自动复位:停车联锁一般要求手动复位,报警可以自动复位。
在 ControlLogix 中,联锁逻辑通常用 AOI 或安全任务中的梯形图/功能块实现。以 LT-1201 HH 为例,需求清单中应记录:输入标签 LT1201_PV、比较阈值 90.0、延时 TON_2s、输出标签 TRIP_GROUP1、复位按钮 HS1201_RESET。这样编程人员不需要再猜,测试人员也能直接按清单逐条验证。
三、从工艺流程图提取顺控步序
顺控步序描述设备从一种状态过渡到另一种状态的有序动作。P&ID 上的阀门、泵、风机和加热器是步序中的执行对象,管线上的流量、压力和温度是步序转换条件。以压缩机组启动顺控为例,典型步序为:确认润滑油压力正常 → 启动辅助油泵 → 打开入口阀 XV-1201 → 启动主电机 → 确认机组运行 → 关闭旁路阀 XV-1202。每一步都有进入条件、动作输出和完成条件,不能只写“启动机组”。
步序提取时要注意动作之间的互锁关系。例如“打开入口阀”之前必须确认润滑油压力正常,否则不允许开阀;“启动主电机”之前必须确认入口阀已全开。这些互锁条件在 P&ID 上表现为仪表信号,在因果图上可能表现为“允许”列,在顺控需求中则成为步转换条件。
四、SIS 与 DCS 分工对需求清单的影响
SIS 与 DCS 分工决定了同一条工艺联锁在控制器中的落点。安全联锁必须放在 SIS 安全任务中,满足 SIL 等级要求;过程联锁和顺控步序通常放在 DCS 或 ControlLogix 标准任务中。两者之间的交接信号必须明确:是硬线 DO/DI,还是安全通信(如 EtherNet/IP CIP Safety)。交接信号也要进入需求清单,标注方向、类型和失效安全状态。
例如“机组停车”由 SIS 输出到 DCS,DCS 收到后启动辅助油泵。需求清单中应记录:信号名 SIS_TRIP_TO_DCS、方向 SIS→DCS、类型硬线 DI、失效状态“断开即停车”、DCS 侧动作“启动辅助油泵并报警”。如果这条交接信号没有定义失效状态,现场断线时 DCS 可能误判为正常,导致油泵不启动。
五、形成可追溯需求清单的字段设计
可追溯需求清单不是简单的表格,而是每条需求都能反向追溯到来源文件、正向追溯到程序标签和测试用例。建议每条需求至少包含以下字段:需求 ID、来源文件及行号、需求类型(联锁/顺控/报警/允许)、触发条件、延时、动作输出、复位方式、SIS/DCS 归属、程序标签、测试用例编号、验证状态。字段不必多,但必须能支撑“设计—编程—测试—验收”闭环。
下面给出一份可直接参考的联锁需求清单示例,参数为教学假设值,实际工程应以因果图和工艺包为准:
| 需求 ID | 来源 | 触发条件 | 延时 | 动作输出 | 复位 | 归属 | 程序标签 |
|---|---|---|---|---|---|---|---|
| IL-001 | C&E 第3行 | LT1201_PV ≥ 90% | 2 s | TRIP_GROUP1=1,XV1201_CMD=0 | 手动 | SIS | LT1201_HH_TRIP |
| IL-002 | C&E 第5行 | TE1205_PV ≥ 135 ℃ | 3 s | TRIP_GROUP1=1 | 手动 | SIS | TE1205_HH_TRIP |
| IL-003 | C&E 第7行 | PS1301=0(油压低) | 1 s | TRIP_GROUP1=1,启动辅助油泵 | 手动 | SIS→DCS | PS1301_LL_TRIP |
| SQ-001 | P&ID 启动顺控 | 润滑油压力正常 | — | 启动辅助油泵 | 自动 | DCS | SEQ_STEP1 |
| SQ-002 | P&ID 启动顺控 | 辅助油泵运行且油压正常 | 5 s | 打开 XV-1201 | 自动 | DCS | SEQ_STEP2 |
六、常见遗漏与检查要点
需求分析阶段最容易遗漏的是“允许条件”和“步超时”。允许条件不触发停车,但会阻止顺控进入下一步,例如入口阀未全开时不允许启动主电机。步超时用于检测阀门卡涩或泵未启动,例如“打开 XV-1201 后 10 s 内未收到全开反馈,则顺控暂停并报警”。这两类需求在因果图上可能没有独立行,但在顺控步序中必须明确。
另一个常见问题是同一原因在不同文件中描述不一致。例如 P&ID 上 LT-1201 量程为 0~100%,因果图写“液位高”,分工文件写“液位高高”。需求分析时必须统一为可量化的阈值和单位,并在清单中记录量程和工程单位。只有把“高”变成“≥ 90%”,程序才能比较,测试才能复现。
最后,需求清单完成后应组织一次跨专业评审:工艺确认触发条件和阈值,安全确认 SIL 等级和复位方式,仪表确认信号类型和量程,控制确认标签命名和任务归属。评审通过后的清单作为编程和测试的基线,任何变更都要走变更记录,确保需求链始终可追溯。