4. S5F1消息详解:Alarm Report Send (S5F1) 消息结构、功能与使用场景

S5F1(Alarm Report Send)是SECS/GEM协议中用于主动上报报警信息的核心消息。当设备检测到报警条件成立(报警被设置)或报警条件解除(报警被清除)时,设备端(Equipment)主动向主机(Host)发送此消息。它是实现报警通知机制的基础,也是主机获知设备状态变化的第一手信息来源。

4.1 消息功能概述

S5F1的主要功能可以归纳为以下三点:

  • 报警设置通知:当设备发生异常或达到预设报警条件时,设备主动向主机报告报警已激活(Alarm Set)。
  • 报警清除通知:当异常消失或报警条件被手动/自动复位时,设备主动向主机报告报警已清除(Alarm Clear)。
  • 状态同步触发:主机收到S5F1后,通常会回复S5F2(Alarm Report Acknowledge),并可能进一步查询设备详细状态,实现报警状态的同步。
关键概念: S5F1是“推”模式(Event-Driven)的典型代表。设备无需主机轮询,一旦报警状态发生变化,立即主动上报,保证了报警信息的实时性。

4.2 消息结构详解

S5F1的消息体(Data Message)结构相对简洁,主要由一个包含两个元素的List构成。其标准格式如下:

偏移 格式 名称 描述
0 U2 / U4 ALID (Alarm ID) 报警ID,用于唯一标识一个报警。通常由设备供应商定义。
1 B[1] ALST (Alarm Status) 报警状态。0x00 表示报警已清除(Clear);0x01 表示报警已设置(Set)。

消息结构在SECS-II编码中的具体表示如下:

# S5F1 消息体结构 (SECS-II 表示)
<L [2]
    <U2 101>       # ALID: 报警ID,例如 101
    <B 0x01>       # ALST: 报警状态,0x01 表示 Set
>
字段解析:
  • ALID (Alarm ID):取值范围通常为 1 到 65535(U2)或更大(U4)。每个ALID在设备内部必须唯一,并与特定的报警条件(如温度过高、压力过低、门互锁打开等)绑定。
  • ALST (Alarm Status):一个单字节的布尔型字段。0x00 代表“清除”,0x01 代表“设置”。这是主机判断报警是发生还是恢复的唯一依据。

4.3 消息交互流程

S5F1的交互遵循标准的“请求-应答”模式。设备发送S5F1后,主机必须在规定时间内回复S5F2(Alarm Report Acknowledge),否则设备会认为通信超时并可能采取重发或错误处理措施。

S5F1 消息交互序列图 设备 (Equipment) 主机 (Host) S5F1 (ALID, ALST) S5F2 (ACKC5) 交互说明 1. 设备检测到报警条件变化,主动发送S5F1。 2. 主机收到后,必须回复S5F2确认(ACKC5 = 0)。

4.4 使用场景分析

S5F1在半导体制造设备中应用广泛,几乎涵盖了所有需要实时状态反馈的场景。以下列举几个典型场景:

场景 ALID 示例 ALST = Set (0x01) ALST = Clear (0x00)
工艺参数超限 101 (温度过高) 腔体温度超过设定阈值,设备报警。 温度回落至安全范围,报警自动清除。
安全互锁触发 202 (门互锁打开) 设备维护门被打开,设备停止运行并报警。 维护门关闭并复位,报警清除。
物料耗尽 305 (冷却水流量低) 冷却水流量低于下限,设备发出预警。 更换过滤器或恢复供水后,流量正常,报警清除。
硬件故障 410 (机械手臂位置错误) 机械手臂在搬运过程中发生位置偏移,设备报错。 操作员手动复位或故障排除后,报警清除。
开发注意事项:
  • ALID 唯一性:设备供应商必须保证所有ALID在设备范围内唯一,避免与GEM标准保留的ID(如0)冲突。
  • 状态机一致性:设备内部维护的报警状态必须与通过S5F1上报的状态严格一致。例如,如果设备内部认为报警已清除,则必须发送ALST=0x00的S5F1。
  • 重发机制:如果设备发送S5F1后未收到S5F2确认,应根据通信超时时间(T3)进行重发,重发次数通常由设备配置决定。

4.5 消息结构对比:S5F1 vs S6F11

初学者容易混淆S5F1(报警上报)和S6F11(事件上报)。虽然两者都是设备主动上报,但用途和结构有本质区别:

对比项 S5F1 (Alarm Report Send) S6F11 (Event Report Send)
主要用途 报告设备报警状态(设置/清除) 报告设备事件(如晶圆开始处理、处理完成)
触发条件 报警条件成立或解除 预定义的事件发生
消息体核心 ALID + ALST DATAID + CEID + 报告数据
主机应答 S5F2 (ACKC5) S6F12 (ACKC6)
状态持久性 报警状态具有持久性,直到被清除 事件是瞬时的,发生后即结束
S5F1 与 S6F11 结构对比 S5F1 消息体 L [2] U2: ALID B: ALST 报警ID + 状态 S6F11 消息体 L [3] U4: DATAID U2: CEID L: RPT 数据ID + 事件ID + 报告数据 vs

4.6 常见问题与避坑指南

  • ALST 值错误:部分开发人员误将ALST的0x00和0x01含义搞反,导致主机将报警清除误判为报警设置。务必遵循标准定义:0x00 = Clear,0x01 = Set。
  • ALID 重复使用:同一个ALID不能同时代表两个不同的报警条件。例如,不能将ALID=101既用于“温度过高”又用于“压力过低”。
  • 忽略S5F2应答:主机端必须实现S5F2的回复逻辑。如果主机不回复,设备会持续重发S5F1,造成网络拥塞和日志泛滥。
  • 报警清除时机:设备应在报警条件完全解除且设备状态稳定后再发送ALST=0x00的S5F1,避免因状态抖动导致频繁的Set/Clear切换。