4. Alarm 相关 SxFy 命令:S5F1 ~ S5F4

在 SECS/GEM 协议中,Alarm(报警)管理是设备与主机之间进行异常状态通知与控制的核心机制。本章节将详细解析与 Alarm 处理直接相关的四条标准 SECS-II 消息:S5F1(Alarm Report Send)、S5F2(Alarm Report Acknowledge)、S5F3(Enable/Disable Alarm)以及 S5F4(Enable/Disable Alarm Acknowledge)。理解这些命令的格式、交互流程及工程应用场景,是实现设备报警功能的基础。

核心要点: Alarm 相关命令均属于 Stream 5(报警流),其交互模式遵循 SECS/GEM 的“请求-应答”机制。S5F1/S5F2 用于报警状态的上报与确认,S5F3/S5F4 用于主机对设备报警功能的使能/禁用控制。

4.1 S5F1:Alarm Report Send(报警报告发送)

S5F1 是设备主动向主机发送报警报告的命令。当设备检测到某个报警条件成立(如温度超限、压力异常、门互锁触发)时,设备会立即向主机发送此消息,通知主机报警的发生或清除。

4.1.1 消息格式

S5F1 的消息体(Data Message)格式固定,采用 L(List) 结构,包含两个主要数据项:

数据项 格式 描述
ALID U2 / U4 报警 ID,唯一标识一个报警类型(如 101 表示“冷却水流量低”)
ALST B[1] 报警状态:0x00 = 报警清除(Alarm Clear),0x01 = 报警发生(Alarm Set)
ALTX A (可选)报警文本描述,用于向操作员显示报警原因

标准消息结构示例(SML 格式):

S5F1
<L [2]
  <U2 101>        // ALID: 冷却水流量低报警
  <B 0x01>        // ALST: 报警发生 (Set)
>
.

当报警清除时,设备发送相同的 ALID,但 ALST 设置为 0x00:

S5F1
<L [2]
  <U2 101>        // ALID: 冷却水流量低报警
  <B 0x00>        // ALST: 报警清除 (Clear)
>
.

4.1.2 工程案例:设备温度超限报警上报

在刻蚀设备中,腔室温度必须严格控制在 ±0.5°C 范围内。当温度传感器检测到温度超过设定阈值时,设备软件需执行以下步骤:

  1. 检测报警条件: 实时监控温度值,判断是否超过 Alarm Set 阈值(如 65°C)。
  2. 设置报警状态: 在设备内部状态机中将该报警 ID 标记为“Set”。
  3. 发送 S5F1: 构造包含 ALID=201、ALST=0x01 的消息,发送给主机。
  4. 等待主机确认: 主机收到后必须回复 S5F2。
  5. 记录日志: 将报警发生的时间、ID、状态写入设备日志文件。
工程提示: 设备在发送 S5F1 后,若在超时时间(通常为 T3 超时,默认 45 秒)内未收到主机的 S5F2 确认,应触发通信超时处理逻辑,并考虑重发报警消息。重发次数建议不超过 3 次,避免网络拥塞。

4.2 S5F2:Alarm Report Acknowledge(报警报告确认)

S5F2 是主机对设备发送的 S5F1 消息的应答命令。主机收到报警报告后,必须回复此消息以告知设备已收到报警信息。S5F2 的消息体通常为空(<B 0x00>),表示确认成功。

4.2.1 消息格式

数据项 格式 描述
ACKC5 B[1] 确认码:0x00 = 接受(Acknowledge),非 0x00 = 错误(Error)

标准应答示例:

S5F2
<B 0x00>        // ACKC5: 确认成功
.

4.2.2 交互流程

下图展示了设备与主机之间 Alarm 上报与确认的完整交互流程:

S5F1 / S5F2 报警上报与确认交互流程 设备 (Equipment) 主机 (Host) S5F1 (ALID=101, ALST=0x01) S5F2 (ACKC5=0x00) 工程注意事项 1. 设备必须在发送 S5F1 后等待 S5F2,超时未收到需重发。 2. 主机若回复非 0x00 的 ACKC5,设备应记录错误并尝试重发。 3. 报警清除(ALST=0x00)同样需要主机确认。

4.3 S5F3:Enable/Disable Alarm(使能/禁用报警)

S5F3 是主机向设备发送的控制命令,用于使能(Enable)或禁用(Disable)指定的报警。设备收到此命令后,应根据命令内容修改内部报警掩码表,决定是否允许该报警上报。

4.3.1 消息格式

数据项 格式 描述
ALID U2 / U4 报警 ID,指定要操作的报警
ALED B[1] 使能/禁用标志:0x00 = 禁用(Disable),0x01 = 使能(Enable)

主机发送示例(禁用报警 101):

S5F3
<L [2]
  <U2 101>        // ALID: 冷却水流量低报警
  <B 0x00>        // ALED: 禁用
>
.

4.3.2 工程实现要点

  • 报警掩码表: 设备内部应维护一张报警掩码表(Alarm Mask Table),记录每个报警 ID 的使能状态。默认情况下,所有报警应为使能状态。
  • 状态持久化: 报警使能/禁用状态应在设备重启后保持,建议写入非易失性存储(如 EEPROM 或配置文件)。
  • 安全考虑: 关键安全报警(如门互锁、紧急停止)不应允许被禁用,设备固件应强制这些报警始终为使能状态。
安全警告: 在实现 S5F3 时,必须对 ALID 进行合法性校验。如果主机试图禁用关键安全报警,设备应回复 S5F4 并携带错误码,拒绝该操作。切勿盲目执行主机的禁用命令,以免造成设备损坏或人员伤害。

4.4 S5F4:Enable/Disable Alarm Acknowledge(使能/禁用报警确认)

S5F4 是设备对主机发送的 S5F3 命令的应答消息。设备根据 S5F3 中的 ALID 和 ALED 执行操作后,通过 S5F4 向主机报告操作结果。

4.4.1 消息格式

数据项 格式 描述
ACKC5 B[1] 确认码:0x00 = 成功,非 0x00 = 失败(如无效 ALID、不允许禁用等)

设备应答示例(成功):

S5F4
<B 0x00>        // ACKC5: 操作成功
.

设备应答示例(失败 - 无效 ALID):

S5F4
<B 0x01>        // ACKC5: 无效的报警 ID
.

4.5 命令对比与工程选型

下表总结了 S5F1 ~ S5F4 四条命令的发起方、方向及主要用途,便于工程师在开发时快速参考:

命令 发起方 方向 主要用途 必须应答
S5F1 设备 设备 → 主机 上报报警发生或清除 S5F2
S5F2 主机 主机 → 设备 确认收到报警报告 无(应答消息)
S5F3 主机 主机 → 设备 使能或禁用指定报警 S5F4
S5F4 设备 设备 → 主机 确认报警使能/禁用操作结果 无(应答消息)

4.6 综合工程案例:报警使能与上报联动

以下是一个完整的工程场景,展示了 S5F3/S5F4 与 S5F1/S5F2 的联动过程:

  1. 主机发送 S5F3: 主机希望禁用报警 ID=101(冷却水流量低),发送 S5F3 给设备。
  2. 设备处理 S5F3: 设备检查 ALID=101 是否为安全报警,确认可以禁用后,更新报警掩码表,将 ALID=101 标记为禁用。
  3. 设备回复 S5F4: 设备发送 S5F4 (ACKC5=0x00) 给主机,表示操作成功。
  4. 报警条件触发: 一段时间后,冷却水流量确实变低,设备检测到报警条件。
  5. 设备检查掩码: 设备查询报警掩码表,发现 ALID=101 已被禁用。
  6. 设备不发送 S5F1: 由于报警被禁用,设备不会向主机发送 S5F1,报警被静默处理。
  7. 主机重新使能: 主机后续发送 S5F3 (ALED=0x01) 重新使能该报警。
  8. 设备回复 S5F4: 设备更新掩码表,回复成功。
  9. 报警正常上报: 若此时报警条件仍然存在,设备将立即发送 S5F1 上报报警。
工程启示: 报警使能/禁用机制为主机提供了灵活的报警管理能力。在设备调试阶段,工程师可以临时禁用非关键报警以减少干扰;在生产阶段,主机可以根据工艺配方动态调整报警策略。但务必注意,安全相关报警应始终处于使能状态,且设备固件应具备强制保护逻辑。