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)

通信建立是设备与主机交互的“握手”阶段,其成功与否直接决定后续所有消息能否正常收发。典型流程如下:

  1. 主机发送 S1F13:携带设备 ID(MDLN)和软件版本号(SOFTREV)。
  2. 设备回复 S1F14:COMMACK 字段为 0 表示接受,非 0 表示拒绝(如协议版本不匹配、设备忙)。
  3. 建立成功:后续可进行 S1F1/S1F2 心跳及 S2 参数读写。
日志定位技巧: 若日志中频繁出现 S1F13 重发但无 S1F14 回复,优先检查 TCP 连接状态;若 S1F14 的 COMMACK = 1,则设备拒绝建立,需核对 MDLN/SOFTREV 是否匹配 GEM 配置文件。
S1F13/S1F14 通信建立流程 主机 (Host) 设备 (Eqp) S1F13 (R) MDLN, SOFTREV S1F14 (D) COMMACK=0 (接受) COMMACK 检查 0 → 建立成功 | ≠0 → 拒绝

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 配置中定义。
S2F13~S2F17 参数读写架构 主机 (Host) S2F13 / S2F15 / S2F17 设备 (Eqp) S2F14 / S2F16 / S2F18 请求 (EC/SV ID) 回复 (EC/SV 值) EC 存储区 SV 实时采集

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 心跳检查,快速区分是参数问题还是连接问题。

4.3 本章小结