4. 常用 Stream/Function 详解:S1F1~S1F22(设备状态与通信)、S2F13~S2F17(设备常量与变量)
在 SECS/GEM 协议栈中,Stream 1(S1)和 Stream 2(S2)是最基础、最频繁交互的两个消息流。S1 负责设备状态查询、通信建立与保活;S2 则聚焦于设备参数(常量与变量)的读写与动态配置。本章将深入解析 S1F1~S1F22 与 S2F13~S2F17 的核心语义、报文结构及故障定位要点。
学习提示: 本章涉及的 S1F0~S1F22 是设备上线与心跳的“生命线”,S2F13~S2F17 则是设备参数调优的“控制面板”。掌握这些 SF 的日志特征,能快速定位 90% 的通信建立类故障。
4.1 S1F1~S1F22:设备状态与通信控制
S1 家族是设备与主机建立连接、交换状态信息的核心通道。下表汇总了最常用的 S1 消息对及其用途:
| Stream/Function | 方向 | 名称 | 核心用途 | 典型故障场景 |
|---|---|---|---|---|
| S1F1 | Host → Eqp | Are You There (R) | 主机探测设备是否在线 | 设备无响应 → 检查网络/通信状态 |
| S1F2 | Eqp → Host | On Line Data (D) | 设备回复在线状态及 MDLN/SOFTREV | 回复超时或数据格式错误 |
| S1F3 | Host → Eqp | Selected Equipment Status Request (R) | 请求指定的设备状态变量(SV) | SV ID 不存在或权限不足 |
| S1F4 | Eqp → Host | Selected Equipment Status Data (D) | 返回请求的 SV 值列表 | 返回数据长度与请求不匹配 |
| S1F13 | Host → Eqp | Establish Communications Request (R) | 主机发起通信建立请求 | 设备未就绪或协议版本不兼容 |
| S1F14 | Eqp → Host | Establish Communications Acknowledge (D) | 设备确认通信建立,返回通信状态 | COMMACK ≠ 0 → 拒绝建立 |
| S1F17 | Host → Eqp | Request ON-LINE (R) | 请求设备切换到 ONLINE 模式 | 设备处于 LOCAL/OFFLINE 拒绝切换 |
| S1F18 | Eqp → Host | ON-LINE Acknowledge (D) | 设备回复 ONLINE 切换结果 | ONLACK ≠ 0 → 切换失败 |
| S1F21 | Host → Eqp | Request OFF-LINE (R) | 请求设备切换到 OFFLINE 模式 | 设备拒绝离线(如正在处理晶圆) |
| S1F22 | Eqp → Host | OFF-LINE Acknowledge (D) | 设备回复 OFFLINE 切换结果 | OFLACK ≠ 0 → 切换失败 |
4.1.1 通信建立流程(S1F13/S1F14)
通信建立是设备与主机交互的“握手”阶段,其成功与否直接决定后续所有消息能否正常收发。典型流程如下:
- 主机发送 S1F13:携带设备 ID(MDLN)和软件版本号(SOFTREV)。
- 设备回复 S1F14:COMMACK 字段为 0 表示接受,非 0 表示拒绝(如协议版本不匹配、设备忙)。
- 建立成功:后续可进行 S1F1/S1F2 心跳及 S2 参数读写。
日志定位技巧: 若日志中频繁出现 S1F13 重发但无 S1F14 回复,优先检查 TCP 连接状态;若 S1F14 的 COMMACK = 1,则设备拒绝建立,需核对 MDLN/SOFTREV 是否匹配 GEM 配置文件。
4.1.2 在线/离线模式切换(S1F17/S1F18 & S1F21/S1F22)
设备支持三种操作模式:ONLINE(受主机控制)、LOCAL(本地控制)、OFFLINE(离线)。S1F17/S1F18 用于请求进入 ONLINE,S1F21/S1F22 用于请求进入 OFFLINE。
- S1F17 (Request ON-LINE):主机发送,设备回复 S1F18 携带 ONLACK 状态码。
- S1F21 (Request OFF-LINE):主机发送,设备回复 S1F22 携带 OFLACK 状态码。
- 常见故障:设备处于 LOCAL 模式时拒绝 ONLINE 请求;设备正在处理关键任务时拒绝 OFFLINE 请求。
避坑指南: 在日志中看到 S1F18 的 ONLACK = 2 表示“设备忙”,此时不应立即重试,应等待设备空闲后再发请求。频繁重试可能导致设备通信队列阻塞。
4.2 S2F13~S2F17:设备常量与变量
Stream 2 是设备参数配置与查询的核心。S2F13~S2F17 专门用于处理设备常量(EC, Equipment Constant)和状态变量(SV, Status Variable)的读写操作。
| Stream/Function | 方向 | 名称 | 核心用途 | 典型故障场景 |
|---|---|---|---|---|
| S2F13 | Host → Eqp | Equipment Constant Request (R) | 请求读取指定的 EC ID 列表 | EC ID 不存在或设备未初始化 |
| S2F14 | Eqp → Host | Equipment Constant Data (D) | 返回 EC 值列表 | 返回数据格式与 GEM 定义不符 |
| S2F15 | Host → Eqp | New Equipment Constant (R) | 写入/修改指定的 EC 值 | 写入值超出范围或权限不足 |
| S2F16 | Eqp → Host | New Equipment Constant Acknowledge (D) | 回复 EC 写入结果 | EAC ≠ 0 → 写入失败 |
| S2F17 | Host → Eqp | Request Variable (R) | 请求读取指定的 SV ID 列表 | SV ID 无效或设备未就绪 |
4.2.1 EC 读取与写入流程
设备常量(EC)是设备运行的可调参数,如温度阈值、速度限制等。S2F13/S2F14 用于读取,S2F15/S2F16 用于写入。
// 典型 S2F13 请求报文(读取 EC ID = 101, 102)
S2F13
<L [2]
<U4 101>
<U4 102>
> .
// 典型 S2F14 回复报文
S2F14
<L [2]
<L [2]
<U4 101>
<F8 25.5>
>
<L [2]
<U4 102>
<F8 100.0>
>
> .
日志解析要点: S2F14 返回的数据格式必须与 GEM 定义的 EC 类型一致(如 F8 浮点、U4 无符号整型)。若类型不匹配,主机可能解析失败并报错。建议在日志中同时记录 EC 的 ID、类型、值 三要素。
4.2.2 SV 查询(S2F17)
状态变量(SV)反映设备的实时状态,如当前温度、压力、运行速度等。S2F17 用于主机主动查询 SV 值。
- 请求格式:S2F17 携带 SV ID 列表(L 结构)。
- 回复格式:设备回复 S2F18(Variable Data),包含 SV ID 与对应值。
- 故障定位:若 S2F17 无回复,检查设备是否处于 OFFLINE 模式;若回复数据为空,检查 SV ID 是否在 GEM 配置中定义。
4.2.3 常见故障与排查步骤
| 故障现象 | 可能原因 | 排查步骤 |
|---|---|---|
| S2F13 无回复 | 设备未就绪 / EC 模块未初始化 | 1. 检查设备状态(S1F1/S1F2) 2. 查看设备日志中 EC 初始化是否完成 |
| S2F15 写入失败(EAC ≠ 0) | EC 值超出范围 / 只读属性 | 1. 核对 GEM 配置中 EC 的 Min/Max 范围 2. 检查 EC 的 AccessType 是否为 ReadWrite |
| S2F17 返回空列表 | SV ID 无效 / 设备未采集 | 1. 确认 SV ID 在 GEM 定义文件中存在 2. 检查设备是否处于可采集状态 |
实战建议: 在日志分析工具中,为 S2F13/S2F15/S2F17 设置独立的告警规则。当连续 3 次请求无回复时,自动触发“设备通信中断”告警,并联动 S1F1 心跳检查,快速区分是参数问题还是连接问题。