34:SECS/GEM通信抓包入门
一、本课学习目标
- 学会抓包工具基础使用,区分HSMS包头与SECS-II消息体
- 通过抓包分辨消息收发方向、SxFy编号、W位标识
- 依靠报文快速定位无应答、丢包、参数异常等通信故障
- 看懂异常报文特征:超时、非法数据、报文截断
- 建立现场“先看日志、再抓包”的排查思路
二、抓包基础概念
1. 抓包作用
抓取EAP与机台之间TCP原始报文,还原真实收发数据,定位EAP日志无法体现的底层异常。
2. 常用工具
Wireshark(通用免费)、设备厂商自带抓包软件、EAP内置报文日志。
3. 过滤规则
按设备IP+HSMS端口筛选报文,过滤无关流量,只保留SECS通信数据。
三、报文分层识别(抓包解析要点)
第一层:TCP报文头
源IP、目的IP、源端口、目标端口,用来确认收发两端。
第二层:HSMS包头
包含消息长度、SessionID、DeviceID、HSMS指令类型(Select/Linktest/数据报文)
- Select:会话建立报文
- Linktest:心跳保活报文
- DataMsg:承载SxFy业务报文
第三层:SECS-II消息体
- S号+F号:分辨S1/S5/S6/S7各类消息
- W位:W=1需要应答、W=0设备主动上报
- 数据域:LIST、ASCII、数值,Recipe参数/报警/工艺数据都在此段
四、典型报文抓包识别
1. 握手报文 S1F1→S1F2
EAP下发S1F1(W=1),机台返回S1F2,无回复代表握手失败、通信异常。
2. 报警报文 S5F1
设备单向发送W=0报文,无对应回复S5F2代表EAP未回应答,机台重复上送报警。
3. 工艺数据 S6F11
设备持续周期性上送,跟随S6F12 EAP回执,缺失报文即FDC无曲线。
4. Recipe下载 S7F3→S7F4
S7F3 Host下发配方,S7F4设备返回成功/失败原因。
五、四类异常报文现场判定
异常1:只发请求报文,无对应偶数应答(T3超时)
抓包可见:只有奇数F下发报文,无设备返回报文
原因:机台控制器卡死、参数超限拒绝处理、DeviceID不匹配丢弃报文。
异常2:设备频繁重复发送同一条SxFy
机台收不到EAP应答报文(如S5F1无S5F2、S6F11无S6F12),反复重发。
异常3:报文残缺、数据截断
网线/交换机故障、网络丢包,SECS报文不完整,EAP解析报错丢弃。
异常4:长时间无Linktest心跳报文
T5超时触发链路断开,设备从ONLINE变为OFFLINE。
六、现场标准抓包排查步骤
- 故障复现期间开启抓包,绑定设备IP与HSMS端口
- 筛选对应SxFy,确认报文是EAP没发,还是设备没回
- 有下发无回复→问题在机台侧;设备有上报EAP无接收→EAP配置/网络问题
- 对比正常报文,查找参数格式、长度异常点位
七、抓包使用规范
- 量产高峰期禁止长时间全量抓包,避免占用网络带宽
- 故障只抓取关键时间段报文,留存报文文件用于复盘
- 优先查看EAP内置通信日志,疑难问题再使用Wireshark抓包
八、本课核心总结
- 抓包三层结构:TCP→HSMS→SECS-II
- W=1必查回复报文,无回执=T3超时故障
- FDC无数据抓包查S6F11,无报警查S5F1,配方报错查S7F3
- 报文重复=EAP未回复对应ACK回执
- Ping通不代表SECS正常,抓包是DeviceID配置错误最直观证据
九、课后小作业
- 抓包三层结构分别是什么?
- S1F1下发抓包看不到S1F2应答是什么故障?
- FDC缺曲线优先在抓包里查找哪条报文?
- 设备重复上送S5F1代表什么?
- TCP正常连通但无SECS业务报文大概率什么原因?