3. 联锁与顺控的工艺建模

在S7-1500联锁与顺控工程中,真正决定程序质量的往往不是梯形图写得多熟练,而是工艺需求是否被准确、完整地转化为可编程的控制规格。工艺流程图(P&ID)、因果矩阵(Cause & Effect Matrix)、状态图(State Diagram)和控制需求规格(Control Requirement Specification,CRS)是这条转化链上的四个关键载体。它们不是四份互相独立的文档,而是同一套工艺知识在不同抽象层级上的表达:P&ID回答“有哪些设备、怎么连接”,因果矩阵回答“什么条件触发什么动作”,状态图回答“顺序如何推进、何时允许切换”,控制需求规格则回答“PLC里到底要写哪些位、哪些定时器、哪些互锁和哪些报警”。

一、从P&ID提取可编程对象

拿到一张工艺流程图,第一步不是急着画程序,而是把图上的工艺对象翻译成PLC可寻址的变量。以典型的“反应釜进料—搅拌—加热—出料”单元为例,P&ID上会出现:进料切断阀XV101、搅拌电机M101、夹套加热蒸汽调节阀TV101、釜内温度TT101、釜内压力PT101、液位LT101、出料阀XV102。每个对象都要明确三件事:它的命令源(谁让它动作)、它的反馈源(它是否真的动作了)、它的参与联锁(哪些异常必须让它回到安全位)。例如XV101的命令位是Q0.0,开反馈是I0.0,关反馈是I0.1;M101的命令是Q0.1,运行反馈是I0.2,过载是I0.3。这一步的产出是一张“工艺对象—PLC变量—安全位”对照表,它是后续所有建模工作的基础。

二、因果矩阵:把联锁关系结构化

因果矩阵是联锁建模最有效的工具。它的行是“原因”(Cause),列是“结果”(Effect),交叉点填写动作类型:S表示置位、R表示复位、T表示延时动作、A表示报警。以反应釜为例,原因包括:TT101超温(≥85℃)、PT101超压(≥0.6MPa)、LT101超高(≥90%)、M101过载、急停按钮按下。结果包括:关闭XV101、停止M101、关闭TV101、打开XV102、触发声光报警。矩阵中TT101超温对应“关闭TV101(S)”“停止M101(T,3s)”“报警(A)”;PT101超压对应“关闭XV101(S)”“关闭TV101(S)”“打开XV102(S)”“报警(A)”。这张矩阵直接决定了程序中联锁网络的输入输出关系,也避免了“想到哪写到哪”的遗漏。

工艺建模四层转化链:P&ID → 因果矩阵 → 状态图 → 控制需求规格 ① 工艺流程图 P&ID XV101 进料切断阀 M101 搅拌电机 TV101 蒸汽调节阀 TT101 温度变送器 PT101 压力变送器 LT101 液位变送器 XV102 出料阀 提取 ② 因果矩阵 C&E 原因 → 结果 TT101≥85℃ → 关TV101(S) PT101≥0.6MPa → 关XV101(S) LT101≥90% → 停M101(T,3s) M101过载 → 报警(A) 急停按下 → 全关(S) 编排 ③ 状态图 SFC 空闲 进料 搅拌 加热 出料 细化 ④ 控制需求规格 变量表 / DB块 联锁逻辑表 步序动作表 定时器参数 报警阈值 HMI画面清单 控制需求规格(CRS)核心字段示例 变量名 地址 类型 安全位 联锁条件 报警 XV101_Cmd Q0.0 Bool 关 PT101≥0.6MPa — M101_Cmd Q0.1 Bool 停 LT101≥90% / I0.3 过载报警 TV101_Cmd QW64 Int 0% TT101≥85℃ 超温报警 XV102_Cmd Q0.2 Bool 开 PT101≥0.6MPa — TT101_PV IW96 Int — — 高限85℃

三、状态图:定义顺序推进的合法路径

因果矩阵解决的是“异常时怎么停”,状态图解决的是“正常时怎么走”。反应釜的顺控通常划分为空闲、进料、搅拌、加热、出料五个状态。每个状态需要明确四个要素:进入条件、执行动作、转移条件、异常退出。例如“进料”状态的进入条件是“空闲且无联锁报警”,执行动作是“打开XV101”,转移条件是“LT101≥70%”,异常退出是“PT101超压则立即关闭XV101并回到空闲”。状态图的价值在于把“什么时候允许进入下一步”变成可检查的条件表达式,而不是靠操作员凭经验判断。在S7-1500中,状态图可以直接映射为GRAPH顺控器,每个状态对应一个步,转移条件对应转换条件,异常退出对应监控条件。

四、控制需求规格:从图到程序的最后一公里

控制需求规格是前面三层建模的汇总输出,也是程序员直接使用的“施工图”。一份可执行的CRS至少应包含:变量表(变量名、绝对地址、数据类型、初值、安全位)、联锁逻辑表(原因、结果、动作类型、延时)、步序动作表(步号、状态名、动作输出、转移条件、超时监控)、定时器参数表(定时器编号、预设值、用途)、报警阈值表(报警位、触发条件、优先级、确认方式)。以反应釜为例,CRS中应明确写出:TT101高限报警值85℃、高高限联锁值90℃;PT101高限报警值0.5MPa、高高限联锁值0.6MPa;LT101进料停止值70%、高限报警值90%;M101过载后延时3s停止搅拌。这些数值不是凭空假设,而是来自工艺专业提供的设计条件,工程实施时必须逐条与工艺确认。

建模顺序建议:先完成P&ID对象提取和变量表,再填因果矩阵,然后画状态图,最后汇总为CRS。不要跳过因果矩阵直接写程序,否则联锁条件容易遗漏;也不要只画状态图不写CRS,否则步序中的定时器、报警阈值和异常退出条件会在编程时被随意决定。

五、转化过程中的常见陷阱

第一,把P&ID上的仪表位号直接当变量名。TT101是仪表位号,但PLC中需要区分TT101_PV(过程值)、TT101_HiAlm(高限报警位)、TT101_HiHiTrip(高高限联锁位),三者地址和用途完全不同。第二,因果矩阵只写“停”不写“怎么停”。同样是停止搅拌电机,过载时应立即断电,液位超高时应先停进料再延时停搅拌,急停时应同时切断所有输出。动作类型和延时必须写清楚。第三,状态图缺少异常退出路径。正常步序只覆盖了“一切正常”的情况,但联锁触发时从哪个状态退出、退出后回到哪里、是否需要人工复位,必须在状态图中明确。第四,CRS中的定时器参数没有来源。例如“搅拌3s后停止”中的3s是工艺要求的缓冲时间,还是编程人员随意填的?CRS中应标注参数来源和可调范围。

六、一个可复用的CRS片段示例

以下以反应釜超温联锁为例,给出CRS中联锁逻辑表的填写方式。该表可直接作为编程输入,也可作为调试时的核对依据。

序号 原因(Cause) 结果(Effect) 动作类型 延时 复位方式
IL-01 TT101 ≥ 85℃ TV101_Cmd = 0% 置位关阀 0s 自动(温度回落至80℃以下)
IL-02 TT101 ≥ 90℃ M101_Cmd = 0 延时停止 3s 手动复位
IL-03 TT101 ≥ 90℃ XV101_Cmd = 0 立即关闭 0s 手动复位
IL-04 TT101 ≥ 90℃ 报警位 TT101_HiHiAlm = 1 报警 0s 手动确认

这张表在S7-1500中的实现路径是:TT101_PV经FC105缩放为0~100℃的实数,与85.0和90.0比较得到两个布尔位;IL-01直接驱动TV101的模拟量输出为0;IL-02启动TON定时器,3s后复位M101_Cmd;IL-03和IL-04直接置位对应位。调试时,用信号发生器在TT101通道注入85℃和90℃对应的电流信号(4~20mA对应0~100℃,85℃对应17.6mA,90℃对应18.4mA),观察TV101输出是否归零、M101是否在3s后停止、报警位是否置位。只有这三项都符合CRS描述,才说明从工艺图到程序的转化是完整的。

注意:联锁复位方式必须区分“自动复位”和“手动复位”。超温报警通常允许自动复位,但高高限联锁停车后必须手动复位,且复位前应确认工艺条件已恢复正常。CRS中不写清楚复位方式,现场调试时容易出现“报警消失后设备自动重启”的危险情况。

总结来说,P&ID提供对象,因果矩阵提供联锁关系,状态图提供顺序逻辑,CRS提供可编程的完整规格。四者层层递进,缺一不可。在实际项目中,建议把CRS作为编程和调试的共同基准:程序员按CRS写程序,调试人员按CRS逐条验证,工艺人员按CRS确认需求是否被完整覆盖。只有这样,联锁与顺控工程才能从“凭经验写程序”转变为“按规格实现控制”。