2. 通信链路异常分类

在 SECS/GEM 通信中,链路异常可划分为四个层次:物理层、网络层、协议层和应用层。每一层的异常表现、检测手段和恢复策略均不相同。理解这些分类是设计容错机制的基础。

通信链路异常四层分类 物理层 电缆断开 信号丢失 网络层 TCP 超时 路由不可达 协议层 报文格式错误 校验和失败 应用层 SxFx 超时 事务 ID 冲突 说明: • 物理层异常:硬件连接中断,通常需要人工恢复。 • 网络层异常:IP/TCP 层面的通信故障,软件可检测。 • 协议层异常:SECS 报文结构或校验错误,需协议栈处理。 • 应用层异常:HSMS/SEMI 标准定义的事务级错误。

2.1 物理层断开

物理层断开指通信介质(如 RS-232 串口线、以太网电缆、光纤)的物理连接中断。在半导体设备环境中,常见的物理层异常包括:

  • 电缆脱落或损坏:设备移动或维护时误拔插头,导致连接器松动。
  • 端口故障:设备端或主机端的串口/网口硬件损坏。
  • 信号衰减:长距离传输或电磁干扰导致信号质量下降。

物理层断开通常表现为通信完全中断,软件层面无法恢复,需要人工介入检查硬件连接。

工程提示:在设备端部署“心跳检测”机制,当连续 N 次心跳无响应时,触发物理层告警并记录日志,便于运维人员快速定位故障点。

2.2 网络超时

网络超时发生在 TCP/IP 协议栈层面,常见于网络拥塞、路由故障或对端主机负载过高。SECS/GEM 通信中,网络超时主要分为:

超时类型 典型阈值 触发条件 影响范围
TCP 连接超时 10–30 秒 SYN 包未收到 SYN-ACK 整个连接无法建立
TCP 重传超时 (RTO) 动态(初始 1 秒) 数据包未收到 ACK 单个报文丢失
HSMS 链路测试超时 5–10 秒 Link Test 请求无响应 HSMS 会话断开
应用层响应超时 30–120 秒 SxFx 请求未收到 Reply 单个事务失败
网络超时处理流程 发送数据包 等待 ACK 超时未收到 ACK 重传或断开连接 关键参数: • T3 (Reply Timeout): 45s • T5 (Connect Timeout): 10s • T6 (Control Timeout): 5s

2.3 协议层错误

协议层错误指 SECS 报文在格式、长度、校验和或消息头字段上不符合规范。这类错误通常由软件缺陷、内存损坏或版本不兼容引起。常见的协议层错误包括:

  • 消息头长度错误:Device ID、Stream/Function 编码超出范围。
  • 校验和 (Checksum) 不匹配:HSMS 报文尾部校验和与内容不符。
  • 消息体格式异常:SML 格式解析失败,Item 类型或长度错误。
  • 会话 ID 冲突:同一连接中出现重复的 Session ID。
协议层容错策略:在协议栈中实现“格式验证 + 校验和检查 + 异常报文丢弃”三级过滤。对于校验和错误,直接丢弃报文并触发重传;对于格式错误,记录完整报文快照用于离线分析。

2.4 应用层异常

应用层异常是 SECS/GEM 通信中最复杂的一类,涉及事务状态机、超时管理和业务逻辑冲突。典型场景包括:

异常类型 示例 影响
SxFx 超时 S2F17 请求后 45 秒未收到 S2F18 事务挂起,占用系统资源
事务 ID 冲突 两个请求使用相同的 System Bytes 响应无法匹配,导致逻辑混乱
状态机异常 在 DISABLED 状态下收到 S1F1 协议栈拒绝处理
数据长度超限 Report 数据超过 64KB 限制 报文被截断或丢弃
应用层事务状态机(异常路径) IDLE(空闲) WAIT_REPLY TIMEOUT ABORTED 发送请求 超时 重试超限 重试 应用层异常处理:超时后进入 TIMEOUT 状态,允许重试 N 次;超过重试上限则进入 ABORTED 状态,释放事务资源。

2.5 异常分类对比总结

下表从检测方式、恢复手段和影响范围三个维度对比四类异常:

异常层次 检测方式 恢复手段 影响范围
物理层断开 硬件检测 / 心跳丢失 人工插拔 / 更换线缆 全局通信中断
网络超时 TCP 超时 / HSMS Link Test 自动重连 / 指数退避 单连接或会话
协议层错误 校验和 / 格式验证 丢弃报文 / 请求重传 单个报文
应用层异常 事务超时 / 状态机检查 事务重试 / 资源清理 单个事务
设计注意:容错机制应分层设计,下层异常(如物理层断开)会向上传递为上层异常(如网络超时)。在实现时,建议在应用层统一捕获异常并记录上下文,避免多层重复处理导致资源浪费。