SECS/GEM 底层协议解析

SECS是什么?

SEMI电子半导体联盟,为实现设备与工厂系统的快速对接数据,状态,配方,程序的标准化协议,SECS具有多个版本,本文主要介绍E5协议 HSMS通信方式,设备端的处理流程(Passive模式)。

SECS关键字

  • Host 主机一般指向工厂控制系统
  • EQP 单机设备
  • Active 在Tcp通信中主动连接对方的(可理解为客户端)
  • Passive 被动等待对方连接(可理解为服务器)
  • Device ID 设备标识
  • CEID 事件编号
  • SVID 设备状态编号
  • VID 设备变量ID
  • RPTID 报告编号
  • PPID 配方编号
  • ALCD 报警清除或者报警设置
  • ALID 报警编号
  • ALTX 报警文本

SECS的流和功能

Secs按照功能大类用Stream标识 按照具体功能Fucntion的方式标识

Stream编号 功能名称 Stream编号 功能名称
1 设备状态 10 终端服务
2 设备控制与诊断-I 11 主机文件服务
3 原料状态 12 晶元定位
4 原料控制 13 数据集传输
5 意外处理 14 对象服务
6 数据采集 15 配方管理
7 加工程序控制 16 加工管理
8 控制程序输出 17 设备控制与诊断-II
9 系统错误 18 子系统控制与数据

具体功能可以查看文末链接下。

S1F1,S1F2举例

S1F1 询问对方可以连接。
S1F2 应答对方是否可以连接。
SECS采用这样一问一答的形式,又问必有答。
发送者发送奇数 响应者发送偶数。

SECS 协议与报文

Secs 报文以16进制方式显示
rsp - 响应
req - 请求

Tcp连接是状态转换

  1. Not Connected 未建立连接状态
  2. Not Selected 已建立连接但为接受到selecte.rsp
  3. Selected 可以发送Secs的消息状态

报文格式

Message Length: 报文总长度减去自身占的4个字节(低位在后)
Message Header: 报文头占用10字节
Message Text: 具体消息内容

报文头详解(Message Header)

序号指从左到右字节的顺序

序号 标识 内容
01 Session ID up 相当于设备标识高字节,单机设备固定不变
02 Session ID low 相当于设备标识低字节,单机设备固定不变
03 Stream 不同消息不同例如S1则是1
04 Function 不同消息不同例如F1则是1
05 PType 消息编码格式 HSMS固定0
06 SType 取值可参考下面表格
07-10 System Bytes 标识一次通信

连接状态报文

类型 报文长度 报文头 报文内容
select.req 00 00 00 0A FF FF 00 00 00 01 System Bytes
select.rsp 00 00 00 0A FF FF 00 00 00 02 System Bytes
LinkTest.req 00 00 00 0A FF FF 00 00 00 05 System Bytes
LinkTest.rsp 00 00 00 0A FF FF 00 00 00 06 System Bytes

System Bytes 标识每一次消息的标签占4字节,响应时可以依据发送者报文头最后4字节,发送可生成不重复的4个字节。
select.req 请求进入selected状态
select.rsp 回应可以进入selected状态
LinkTest.req 发送测试请求 主要是判断是否网络正常
LinkTest.rsp 回应对方请求

 SECS-II 报文格式

上图是数据项头部(Item Header/IH)定义,分为数据项的长度字节和格式字节,数据项头部的长度范围是 2-4个字节,其格式如图 4-11 所示。

格式字节:数据项头部的第1个字节是格式字节,它定义了数据项的格式和表示数据项长度的字节数,第 1、2 位表示长度字节的个数,其取值范围是 1-3,第 3-8 位定义了数据项的格式,即数据项的数据类型,目前 SECS-II 协议一共定义了 16 种数据项类型代码,它们的取值和含义如下面表 4.5 所示。

长度字节:数据项头部的第2~4字节是长度字节,数据项头部的长度由长度字节数决定,长度字节数的取值表示长度字节的个数,长度字节根据的长度字节数取值表示的是 8/16/24 位无符号整数,它表示数据项内容(Item Body/IB)的长度。 

 下面是一个消息格式的解析案例:

相关推荐

  1. Vector部分底层源码

    2024-06-13 17:36:03       21 阅读
  2. 网络通信(7)-TCP协议

    2024-06-13 17:36:03       33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-13 17:36:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-13 17:36:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-13 17:36:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-13 17:36:03       18 阅读

热门阅读

  1. shell脚本--基础版本

    2024-06-13 17:36:03       5 阅读
  2. Hadoop生态圈中的各个组件的介绍 JournalNode

    2024-06-13 17:36:03       8 阅读
  3. SQL入门大全

    2024-06-13 17:36:03       7 阅读
  4. 2024年科技趋势与未来展望

    2024-06-13 17:36:03       7 阅读
  5. 【C语言实现PID控制器】

    2024-06-13 17:36:03       5 阅读
  6. 视频处理与显示控制器HDMI转LVDS,支持缩放/旋转

    2024-06-13 17:36:03       5 阅读
  7. 从渲染管线到着色器Shader实践

    2024-06-13 17:36:03       6 阅读
  8. ES6 .entries用法

    2024-06-13 17:36:03       5 阅读
  9. uniapp使用vue3打包H5,android或ios加载白屏

    2024-06-13 17:36:03       3 阅读
  10. Unity 合理跳过启动LOGO动画 多平台官方API

    2024-06-13 17:36:03       9 阅读