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)。理解这些命令的格式、交互流程及工程应用场景,是实现设备报警功能的基础。
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 范围内。当温度传感器检测到温度超过设定阈值时,设备软件需执行以下步骤:
- 检测报警条件: 实时监控温度值,判断是否超过 Alarm Set 阈值(如 65°C)。
- 设置报警状态: 在设备内部状态机中将该报警 ID 标记为“Set”。
- 发送 S5F1: 构造包含 ALID=201、ALST=0x01 的消息,发送给主机。
- 等待主机确认: 主机收到后必须回复 S5F2。
- 记录日志: 将报警发生的时间、ID、状态写入设备日志文件。
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 上报与确认的完整交互流程:
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 或配置文件)。
- 安全考虑: 关键安全报警(如门互锁、紧急停止)不应允许被禁用,设备固件应强制这些报警始终为使能状态。
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 的联动过程:
- 主机发送 S5F3: 主机希望禁用报警 ID=101(冷却水流量低),发送 S5F3 给设备。
- 设备处理 S5F3: 设备检查 ALID=101 是否为安全报警,确认可以禁用后,更新报警掩码表,将 ALID=101 标记为禁用。
- 设备回复 S5F4: 设备发送 S5F4 (ACKC5=0x00) 给主机,表示操作成功。
- 报警条件触发: 一段时间后,冷却水流量确实变低,设备检测到报警条件。
- 设备检查掩码: 设备查询报警掩码表,发现 ALID=101 已被禁用。
- 设备不发送 S5F1: 由于报警被禁用,设备不会向主机发送 S5F1,报警被静默处理。
- 主机重新使能: 主机后续发送 S5F3 (ALED=0x01) 重新使能该报警。
- 设备回复 S5F4: 设备更新掩码表,回复成功。
- 报警正常上报: 若此时报警条件仍然存在,设备将立即发送 S5F1 上报报警。