2. HSMS 通信建立:连接模式、定时器与状态机
HSMS(High-Speed SECS Message Services)是 SECS/GEM 标准中基于 TCP/IP 的通信层。在设备自动化测试中,HSMS 连接的建立与维护是消息事务能够正常进行的前提。本章将深入剖析 HSMS 的主动/被动连接模式、关键定时器(T3/T5/T6/T8)的配置策略,以及通信状态机的三个核心状态:Not Connected、Connected 和 Selected。
2.1 HSMS 主动连接与被动连接模式
HSMS 定义了两种连接建立模式,分别对应设备端(Equipment)与主机端(Host)在 TCP 连接中的角色。在测试工程中,正确选择并配置连接模式是通信会话成功的第一步。
| 特性 | 主动连接模式(Active) | 被动连接模式(Passive) |
|---|---|---|
| 发起方 | 设备(Equipment)主动向主机发起 TCP 连接 | 主机(Host)主动向设备发起 TCP 连接 |
| 监听方 | 主机处于监听状态(Listen) | 设备处于监听状态(Listen) |
| 典型场景 | 设备上电后自动连接主机 | 主机集中管理多个设备,由主机调度连接 |
| IP/端口配置 | 设备需配置主机的 IP 和端口 | 设备需配置自身的监听端口 |
| 测试关注点 | 设备端重连机制、T5 定时器 | 主机端连接请求频率、T8 定时器 |
测试工程提示: 在实验室环境中,建议先使用被动模式进行调试,因为主机端可以精确控制连接建立的时机,便于观察设备端的响应行为。生产环境中,主动模式更为常见,设备需具备健壮的重连逻辑。
连接建立流程对比
以下 SVG 图展示了两种模式下 TCP 连接建立的时序差异:
2.2 T3 / T5 / T6 / T8 定时器配置
HSMS 协议定义了多个定时器来管理通信会话的可靠性。在测试工程中,定时器配置不当是导致通信异常中断的常见原因。以下是四个核心定时器的详细说明:
| 定时器 | 默认值 | 作用范围 | 超时后果 | 测试建议 |
|---|---|---|---|---|
| T3 | 45 s | Reply Timeout(回复超时) | 重发消息或断开连接 | 根据设备处理能力调整,通常 30-120 s |
| T5 | 10 s | Connect Separation(连接间隔) | 忽略连接请求 | 主动模式下设备重连间隔,建议 5-30 s |
| T6 | 5 s | Transaction Timeout(事务超时) | 中止当前事务 | 用于控制单条消息事务的等待时间 |
| T8 | 5 s | Control Transaction Timeout(控制事务超时) | 断开连接 | 用于 Select/Linktest 等控制消息 |
常见陷阱: T3 和 T6 容易混淆。T3 是等待单条回复消息的超时,而 T6 是等待整个事务完成的超时。在测试中,如果设备处理复杂指令耗时较长,应优先增大 T6 而非 T3,否则可能导致消息重发与事务混乱。
定时器交互时序图
以下 SVG 图展示了 T3 和 T6 在一条 S2F17 消息事务中的超时监控点:
2.3 HSMS 通信状态机
HSMS 通信状态机定义了设备与主机之间 TCP 连接和逻辑会话的完整生命周期。理解状态转换是诊断通信故障的基础。状态机包含三个主要状态:Not Connected、Connected 和 Selected。
状态定义与转换条件
| 当前状态 | 触发事件 | 下一状态 | 说明 |
|---|---|---|---|
| Not Connected | TCP 连接建立成功 | Connected | 物理链路已通,但未建立逻辑会话 |
| Connected | 收到或发送 Select.req | Connected(等待中) | 进入选择协商过程 |
| Connected | 收到有效的 Select.rsp(成功) | Selected | 逻辑会话建立,可进行数据交换 |
| Connected | 收到 Select.rsp(失败)或 T8 超时 | Connected | 选择失败,可重试 |
| Selected | TCP 连接断开 | Not Connected | 物理链路中断,状态重置 |
| Selected | 收到 Deselect.req / Linktest 失败 | Connected | 逻辑会话解除,物理链路保留 |
| Connected | TCP 连接断开 | Not Connected | 物理链路中断 |
状态机转换图
以下 SVG 图完整展示了 HSMS 通信状态机的三个状态及关键转换路径:
2.4 测试工程案例:连接建立故障排查
案例场景: 某半导体设备在产线上频繁出现“通信中断”报警,日志显示设备反复在 Connected 和 Not Connected 状态之间切换,无法稳定进入 Selected 状态。
排查步骤
- 检查 T5 定时器: 发现设备主动重连间隔设置为 3 秒,小于主机端的 T8 定时器(5 秒),导致主机尚未完成 Select 响应,设备又发起了新的连接请求。
- 调整 T5 值: 将 T5 从 3 秒增大至 10 秒,确保主机有足够时间处理 Select 事务。
- 验证 T8 配置: 确认主机端 T8 定时器设置为 8 秒,与设备端 T5 形成合理的时间窗口。
- 观察状态机日志: 修改后,设备稳定进入 Selected 状态,通信中断告警消除。
经验法则: 在配置 HSMS 定时器时,应遵循 T5 > T8 的原则,避免设备重连速度超过主机处理控制事务的能力。同时,T3 应大于设备处理单条消息的最大耗时,T6 应大于整个事务的预期耗时。
定时器配置示例(设备端)
# HSMS 设备端定时器配置示例 (config.ini)
[HSMS]
T3 = 60 # 回复超时,单位秒
T5 = 10 # 连接间隔,单位秒
T6 = 30 # 事务超时,单位秒
T8 = 5 # 控制事务超时,单位秒
connect_mode = ACTIVE # 主动连接模式
host_ip = 192.168.1.100
host_port = 5000
device_id = 1
通过本章的学习,测试工程师应能够独立配置 HSMS 连接参数,理解状态机转换逻辑,并能够快速定位因定时器或连接模式配置不当导致的通信故障。