25:SECS-II消息结构
一、本课学习目标
- 掌握SECS-II基础架构,分清Stream与Function定义规则
- 理解请求消息、应答消息收发规则(奇偶F编号)
- 熟悉SECS-II标准数据格式与层级封装逻辑
- 看懂一条原始报文的组成结构,区分Host/Equipment收发方向
- 为后续SxFy各类消息学习建立底层基础
二、SECS-II基础定义
1.SECS-II定位
SECS-II规定消息内容格式、数据类型、交互应答规则,承载在HSMS/SECS-I传输层之上,是EAP与机台业务交互的语法标准。
2.Stream(S)与Function(F)
- Stream(S):消息大类,按业务领域划分,十进制数字编号(S1/S2/S5/S6/S7)
- S1:设备联机与状态类
- S2:设备常量、参数配置
- S5:报警相关报文
- S6:事件+工艺数据上报
- S7:Recipe流程程序管理
- Function(F):同Stream下细分功能编号
- 奇数F:Host(EAP)→Equipment(机台)【请求下发】
- 偶数F:Equipment→Host(EAP)【应答回复】
- 标准写法:SxFy,例S1F1、S5F2、S7F3
3.一问一答机制
Host发奇数请求,设备必须回复对应偶数应答,无应答判定通信超时异常。
例:EAP发S1F1(请求握手)→机台返回S1F2(握手应答)。
三、SECS-II消息整体结构
一条完整SECS-II消息分为三层:
- 传输头(HSMS Header):IP、端口、DeviceID、消息长度、会话标识,底层链路使用
- SECS-II消息头:S号、F号、W位标记、消息ID
- W=Wait位:W=1代表需要对方应答;W=0无需回复(主动上报消息,如S5F1报警主动上抛)
- 消息体:各类SECS标准数据项(LIST、ASCII、INT、BOOL等),业务实际内容
W位关键说明
- W=1:请求报文,必须等回复,超时EAP记Error
- W=0:设备主动上报(报警、事件、实时数据),无需EAP回应答
四、SECS-II内置基础数据类型
- ASCII:字符串,名称、Recipe名、文本描述
- BOOLEAN:布尔,0/1状态信号
- INT1/INT2/INT4:不同长度整型,编号、ID、计数值
- F4/F8:浮点,温度、压力等模拟参数
- LIST:数组容器,可嵌套存放多类型数据,SECS最常用复合结构
数据嵌套规则
绝大多数业务报文外层为LIST,LIST内部再嵌套子LIST、字符串、数值。
五、消息两种分类
1. 请求应答类(W=1)
EAP下发奇数F,设备回偶数F;S1F1/S1F2、S7F3/S7F4属于此类。
2. 异步上报类(W=0)
设备主动上传,不需要EAP回复报文;S5F1报警、S6F11工艺数据、S6F13事件全部属于异步上报。
六、简易报文示例(S1F1)
- S=1,F=1,W=1(需要应答)
- Host→Equipment:查询设备在线握手
- 设备返回S1F2,携带设备名称、型号等ASCII信息
七、现场排查应用
- 下发指令无反馈:查看日志,请求报文发出,但无对应偶数应答→机台故障/配置缺失
- 收不到报警:S5F1为W=0异步消息,无报文=机台屏蔽报警或CEID/ALID未配置
八、本课核心总结
- S代表消息大类,F代表细分功能;奇F下发、偶F应答
- W=1需要回复,W=0设备主动上报无需应答
- SECS报文由HSMS头+SECS消息头+数据体三层组成
- LIST是SECS最核心复合数据类型,大部分报文基于LIST封装
- 抓包看SxFy+W位,即可快速判定消息方向与交互规则
九、课后小作业
- 解释S和F分别含义、奇偶F收发规则
- W=1和W=0区别,举例对应消息
- 简述SECS-II一条完整消息三层结构
- 写出S1F1/S1F2收发方向与用途
- 异步上报消息常用哪些S段?