2. SECS/GEM协议体系精讲
SECS/GEM并不是单一协议,而是一套分层协作的通信标准族。设备与主机之间能否稳定交换数据,取决于每一层是否各司其职:物理与链路层负责“怎么把字节可靠送过去”,消息层负责“这些字节代表什么含义”,行为层负责“什么时候允许发、收到后如何响应”。理解这套分层关系,是后续做数据采集、Trace监控和过程追溯的基础。
四层协议栈与各自职责
从下往上看,SECS-I(E4)与HSMS(E37)是两种可选的传输层实现。SECS-I基于RS-232串口,采用点对点连接,通过块(Block)方式传输,每个块最大244字节数据,用握手信号保证可靠;HSMS基于TCP/IP,支持多会话、长连接和更高吞吐,是现代工厂的主流选择。两者之上是SECS-II(E5),它定义了消息的语义结构:每条消息由Stream和Function编号标识,例如S1F1是“Are You There”请求,S1F2是应答。再往上是GEM(E30),它规定了设备必须支持哪些SECS-II消息、状态模型如何运转、报警与事件如何上报。最上层则是具体设备根据工艺需求扩展的定制消息。
消息结构:从Stream/Function到数据项
一条SECS-II消息由消息头(Header)和消息体(Body)组成。消息头包含设备ID、Stream、Function、W-Bit(等待位)、系统字节等字段。W-Bit是理解事务机制的关键:当W-Bit=1时,表示发送方期待对方回复一条对应的F+1消息;W-Bit=0则表示单向通知,不需要回复。例如主机发S1F1(W=1),设备必须回S1F2;设备主动发S6F11事件报告(W=0),主机无需回复。
消息体由数据项(Data Item)树形嵌套构成。每个数据项有格式码和长度,常见格式包括:L(列表)、A(ASCII字符串)、U1/U2/U4(无符号整数)、I1/I2/I4(有符号整数)、F4/F8(浮点数)、B(二进制)。例如一条S1F2应答可能包含:<L[2] <A "EQP01"> <A "1.2.3">>,表示设备名和软件版本。实际调试时,用SECS-II消息解析工具抓包,逐层展开L列表,就能定位到具体数据项的值。
GEM状态模型:设备行为的骨架
GEM定义了设备必须维护的状态机,最核心的是通信状态和控制状态。通信状态包括:Disabled(禁止通信)、Enabled(允许通信)。控制状态包括:Offline(离线)、Online Local(在线本地)、Online Remote(在线远程)。设备上电后通常处于Disabled+Offline,主机通过S1F1建立通信后,发S1F17请求进入Online Remote,设备回S1F18确认。只有进入Online Remote,主机才能远程下发配方、启动加工、采集Trace。
状态迁移不是随意的,必须遵循GEM规定的触发条件。例如从Online Remote切到Online Local,需要操作员在设备面板上手动切换,或主机发S1F15请求离线。理解这些状态边界,能避免“为什么命令发不下去”这类问题——很多时候不是消息格式错,而是设备当前状态不允许执行该操作。
事务与超时机制:T3、T5、T6、T7、T8
SECS/GEM用一组定时器保证通信可靠性。最常用的是:
- T3:等待回复超时。主机发出W=1的消息后,启动T3(典型值45秒),若超时未收到回复,判定为通信故障,通常触发重连或报警。
- T5:连接分离超时。HSMS中,若TCP连接断开后T5时间内未重连成功,则进入通信失败状态。
- T6:控制事务超时。用于Online/Offline切换等控制消息,防止状态卡死。
- T7:Not Selected状态超时。HSMS连接建立后,若T7内未完成Select流程,则断开连接。
- T8:网络字符间超时。接收方在T8内未收到完整消息,判定为帧错误。
实际工程中,T3设置过短会导致误判超时,过长则故障响应慢。建议根据设备响应时间统计,取P99响应时间的1.5~2倍作为T3值。例如某设备S1F1平均响应200ms,P99为800ms,则T3可设1.5秒。调试时可在日志中记录每条消息的发送时间戳和回复时间戳,计算实际RTT,再反推合理的超时参数。
设备通信场景映射
把协议知识落到具体场景,才能看出各层的配合。以“主机采集设备温度Trace”为例:主机先发S1F3(请求状态变量),设备回S1F4携带温度值;若需持续监控,主机发S2F33定义报告规则,再发S2F35链接事件,设备在温度变化时主动发S6F11事件报告。整个过程涉及SECS-II消息构造、GEM事件机制、HSMS连接维持和T3超时保护。再如“远程下发配方”:主机发S7F1询问配方是否存在,设备回S7F2;主机发S7F3下发配方体,设备回S7F4确认;最后主机发S7F5请求校验,设备回S7F6。每一步都依赖W-Bit和T3保证事务完整性。
关键参数速查
| 参数/消息 | 含义 | 典型值/示例 |
|---|---|---|
| S1F1 / S1F2 | Are You There 请求/应答 | 建立通信第一步 |
| S1F13 / S1F14 | Establish Communications | 确认在线 |
| S1F17 / S1F18 | Request Online / 确认 | 进入Remote |
| S6F11 | Event Report Send | W=0,设备主动上报 |
| T3 | 回复超时 | 45s(可调,建议1.5~2倍P99 RTT) |
| T5 | 连接分离超时 | 10s |
| T7 | Not Selected超时 | 10s |
| T8 | 字符间超时 | 5s |
掌握这四层协议、消息结构、状态模型和超时机制后,面对设备通信问题就能按层排查:先看物理连接和HSMS Select是否成功,再看SECS-II消息格式是否正确,最后检查GEM状态是否允许该操作。这套分层思维,是后续Trace监控和过程追溯工程中定位问题的基本方法。