1. 食品灌装线启停联锁控制

联锁对象与安全状态定义

灌装线启停联锁的核心不是“让三个设备都能启动”,而是明确谁允许谁动作以及急停后各执行机构停在什么状态。本例采用一台小型PLC(以常见的西门子S7-1200为参照,逻辑通用)控制三段对象:进瓶输送带电机M1、灌装阀电磁阀YV1、急停按钮SB0(常闭触点接入)。

先约定安全状态:急停按下时,M1接触器KM1失电、YV1失电关闭、系统进入“已急停”锁定态,且必须人工复位后才能重新启动。启动顺序上,灌装阀不允许在输送带未运行、或无瓶到位信号时单独打开,这是本节的联锁重点。

I/O分配与梯形图逻辑

输入输出分配如下表,急停采用常闭触点串入,符合失效安全原则:正常未按下时I0.0为1,按下后变为0。

地址对象类型说明
I0.0SB0 急停常闭输入未按下=1,按下=0
I0.1SB1 启动常开按钮上升沿启动
I0.2SB2 停止常闭按钮按下=0停止
I0.3B1 瓶到位光电常开有瓶=1
Q0.0KM1 输送带输出1=运行
Q0.1YV1 灌装阀输出1=打开灌装
M0.0系统运行标志内部位1=已启动
M0.1急停锁定标志内部位1=需复位

关键逻辑用梯形图思路表达为三段:第一段做启动自锁并受急停、停止约束;第二段做急停锁定置位;第三段做灌装阀的联锁输出。下面给出可直接对照的ST(结构化文本)实现,逻辑与梯形图等价:

// 段1:系统运行标志,急停未按下且未锁定才允许启动
IF "SB0急停" = 0 THEN
    "急停锁定" := 1;          // 急停按下,置锁定
END_IF;

IF "SB1启动" AND "SB0急停" AND NOT "急停锁定" THEN
    "系统运行" := 1;
END_IF;

IF ("SB2停止" = 0) OR ("SB0急停" = 0) THEN
    "系统运行" := 0;
END_IF;

// 段2:输送带随系统运行
"KM1输送带" := "系统运行";

// 段3:灌装阀联锁——输送带运行且有瓶到位才打开
"YV1灌装阀" := "系统运行" AND "KM1输送带" AND "B1瓶到位";

// 段4:急停复位(人工确认后按复位按钮,此处用停止按钮长按模拟复位)
IF "SB2停止" = 0 AND "SB0急停" = 1 THEN
    "急停锁定" := 0;
END_IF;
注意:急停锁定标志必须在急停按钮释放后、经人工复位动作才能清零,不能仅靠“急停松开”自动恢复运行,否则失去安全联锁意义。上例用停止按钮兼作复位仅为教学简化,实际工程应设独立复位按钮并做确认。

联锁关系与状态判读

下图把三个执行对象的允许条件、急停的强制切断路径以及锁定状态的保持关系画在一起,便于对照程序检查“哪一路没满足导致阀不开”或“急停后为何不能自恢复”。

灌装线启停联锁关系 SB0 急停 (I0.0) 常闭 · 未按=1 SB1 启动 (I0.1) 常开 · 上升沿 SB2 停止 (I0.2) 常闭 · 按下=0 B1 瓶到位 (I0.3) 有瓶=1 系统运行标志 M0.0 启动自锁 停止/急停清零 急停锁定 M0.1 急停=0 置位 人工复位清零 KM1 输送带 Q0.0 = 系统运行 YV1 灌装阀 Q0.1 运行 ∧ 输送 ∧ 有瓶 安全状态 KM1 失电 YV1 关闭 锁定待复位 实线=允许/驱动路径 虚线=急停强制切断与锁定路径

验证与判读要点

上电后按以下顺序验证,可覆盖联锁的主要分支:

  1. 未按启动时,Q0.0、Q0.1均为0,M0.0=0,M0.1=0。
  2. 按SB1启动,M0.0=1,Q0.0=1;此时若无瓶(I0.3=0),Q0.1应保持0,说明阀的联锁生效。
  3. 遮挡B1使I0.3=1,Q0.1应变为1,灌装阀打开。
  4. 运行中按下SB0急停,Q0.0、Q0.1应立即变0,M0.1=1;松开急停后系统不应自动恢复,Q0.0仍为0。
  5. 执行复位动作后M0.1=0,再按SB1才能重新启动,验证“锁定—复位—再启动”闭环。
若急停后Q0.1仍为1,优先检查程序中灌装阀输出是否直接引用了未受急停约束的中间位,或输出线圈被多处重复赋值导致最后一次赋值覆盖了安全逻辑。