T5 定时器定义与作用

T5 定时器是 HSMS(High-Speed SECS Message Services)连接建立阶段的核心超时控制参数,直接决定了设备在 TCP 连接建立失败或响应延迟时的重试行为。在 SECS/GEM 协议栈中,T5 定时器负责管理从发起 TCP 连接请求到收到 HSMS 连接确认(Select. rsp)之间的等待时间,是保证 HSMS 链路自动恢复的关键机制。

2.1 T5 定时器定义

根据 SEMI E37.1(HSMS 通用服务)标准定义,T5 定时器是连接建立超时定时器,其标准参数如下:

参数项 定义值 说明
定时器名称 T5 连接建立超时定时器(Connect Timeout)
默认值 10 秒 SEMI 标准推荐值,实际可配置范围 1–120 秒
精度要求 ±10% 允许的计时偏差范围
触发条件 TCP 连接建立后,发送 Select.req 时启动 等待 Select.rsp 或连接拒绝
超时动作 关闭 TCP 连接,触发重试机制 进入 T5 超时重试流程
工程提示:在实际半导体设备中,T5 定时器的配置需要与设备控制器的通信周期匹配。如果 T5 设置过短(< 3 秒),在设备启动或网络抖动时容易产生频繁重连;设置过长(> 30 秒)则会延迟故障检测,影响产线 OEE。

2.2 T5 在 HSMS 连接建立中的角色

HSMS 连接建立过程分为三个阶段,T5 定时器在第二阶段(Select 阶段)发挥核心作用:

  1. TCP 连接建立阶段:主动方发起 TCP 三次握手,被动方监听端口等待连接。此阶段不涉及 T5。
  2. HSMS Select 阶段(T5 作用域):TCP 连接建立后,主动方发送 Select.req 消息,同时启动 T5 定时器,等待被动方回复 Select.rsp。
  3. 连接确认阶段:收到 Select.rsp 后停止 T5,检查响应状态,确认连接建立成功。
关键概念:T5 定时器仅在 HSMS 逻辑连接建立阶段生效,一旦连接建立成功(Select 完成),后续的数据传输超时由 T3、T6、T7 等其他定时器管理。
T5 定时器在 HSMS 连接建立流程中的角色 阶段一:TCP 连接 三次握手建立 TCP 阶段二:HSMS Select 发送 Select.req + 启动 T5 阶段三:连接确认 收到 Select.rsp 停止 T5 T5 超时未收到 Select.rsp 关闭 TCP 连接 重试机制:重新发起 TCP 连接 等待 T5 间隔后重试 说明:T5 定时器仅在阶段二(Select 阶段)生效,超时后触发 TCP 关闭并进入自动重试循环,直到连接建立成功或达到最大重试次数。

2.3 超时重试机制原理

T5 定时器的超时重试机制遵循“指数退避 + 最大重试限制”策略,确保在网络不稳定时不会对设备或主机造成过大的连接风暴:

重试次数 等待时间(T5 默认 10s) 累计耗时 行为描述
第 1 次 10 秒 10 秒 首次 Select.req 超时,关闭 TCP,立即重试
第 2 次 10 秒 20 秒 再次超时,关闭 TCP,等待 1 个 T5 间隔
第 3 次 10 秒 30 秒 连续超时,等待 2 个 T5 间隔(20 秒)
第 4 次 10 秒 40 秒 等待 4 个 T5 间隔(40 秒)
第 n 次(n ≤ 最大重试) 10 秒 n × 10 秒 指数退避等待,最大间隔通常限制在 120 秒
注意:如果 T5 超时重试次数超过设备配置的最大重试阈值(通常为 5–10 次),设备应上报连接失败告警(Alarm),并进入离线状态等待人工干预。不要无限重试,否则可能导致设备控制器的通信线程阻塞。
T5 超时重试状态机 IDLE(空闲) 等待连接触发 TCP 连接中 三次握手 Select 等待 T5 计时中 CONNECTED 连接建立 T5 超时 关闭 TCP 连接 重试等待 指数退避间隔 最大重试到达 上报 Alarm,进入离线 说明:T5 超时后,设备关闭当前 TCP 连接,进入指数退避等待(1×T5, 2×T5, 4×T5…),然后重新发起 TCP 连接。达到最大重试次数后上报连接失败告警。

2.4 T5 与其他 HSMS 定时器的关系

在 HSMS 协议栈中,T5 定时器与 T3、T6、T7、T8 共同构成完整的超时管理体系。下表对比了各定时器的职责范围:

定时器 作用阶段 默认值 超时后果 与 T5 的关系
T5 连接建立(Select) 10 秒 关闭 TCP,触发重试 —
T3 消息回复等待 45 秒 重发消息或断开 T5 成功后 T3 才生效
T6 控制事务超时 5 秒 断开连接 与 T5 独立,用于不同场景
T7 连接空闲检测 10 秒 发送测试消息 T5 成功后 T7 开始监控
T8 网络字符超时 5 秒 断开连接 与 T5 独立,用于数据链路层
工程要点:在自动重连测试中,T5 定时器是第一个需要验证的参数。如果 T5 配置不当,后续的 T3/T6/T7/T8 定时器测试将无法正常进行,因为连接可能根本建立不起来。建议在测试方案中优先验证 T5 超时重试逻辑。

2.5 T5 定时器配置与测试要点

  • 配置位置:通常在设备的 HSMS 通信配置文件中定义(如 hsms_config.xml 或设备参数表),支持运行时动态修改。
  • 测试方法:通过模拟主机端不回复 Select.rsp,观察设备端是否在 T5 超时后关闭 TCP 并启动重试。
  • 边界测试:验证 T5 最小值(1 秒)和最大值(120 秒)下的设备行为,确保不出现死锁或无限重试。
  • 日志记录:设备应在 T5 超时时输出日志,包含时间戳、重试次数、当前 T5 值,便于故障定位。
// T5 超时重试伪代码示例
int t5_timeout = 10;  // 默认 10 秒
int retry_count = 0;
int max_retry = 5;

while (retry_count < max_retry) {
    send_select_req();
    start_t5_timer(t5_timeout);

    if (wait_for_select_rsp() == SUCCESS) {
        stop_t5_timer();
        break;  // 连接建立成功
    } else {
        // T5 超时
        close_tcp_connection();
        retry_count++;
        log("T5 timeout, retry %d/%d", retry_count, max_retry);
        sleep(calculate_backoff(retry_count));  // 指数退避
    }
}

if (retry_count >= max_retry) {
    report_alarm("HSMS connection failed after max retries");
    set_equipment_offline();
}
测试建议:在自动化测试脚本中,建议将 T5 超时重试测试分为三个场景:① 正常建立连接(T5 不触发);② 单次超时后重试成功(模拟一次网络抖动);③ 连续超时达到最大重试次数(验证告警上报和离线状态切换)。