仅为学习SECS/GEM过程中记录的笔记以供后续查阅。
SECS/GEMI 标准(制造设备通信和控制的通用模型)指的是一组用于半导体行业“设备与设备”之间或“设备与工厂主机系统”之间通信的国际标准协议,由国际半导体协议SEMI发起并维护。SECS基于其他较低级别的协议,如下:
1、SECS-II与SECS-I、HSMS的关系:
协议 | 定义 |
---|---|
SECS-I | 定义 RS-232 通信的标准(报文) |
HSMS | 定义 TCP/IP 通讯的标准(报文) |
SECS-II | 定义交换消息的标准 |
secs协议连接协议栈, |
从协议栈,可以看到,连接方式有两种:
1,串口连接,对应的是secs i 协议。串口参数,串口号,波特率,数据位,停止位,校验位。
2,网口连接,对应的是HSMS协议。对应的参数是Host IP 和Port。
SECS/GEMHSMS协议报文分析
(1)数据长度
占4个字节,每个字节都是存储的16进制的数据。
(2)报文头信息
指令中数据类型定义
指令描述
主动发送为奇数,
相应回复为偶数。
Stream编号含义
1 设备状态
2 设备控制与诊断
3 原料状态
4 原料控制
5 意外处理
6 数据采集
7 加工程序控制
8 控制程序传输
9 系统错误
10 终端服务
11 主机文件服务
12 晶元定位
13 数据集传输
14 对象服务
15 配方管理
16 加工管理
17 设备控制与诊断II
18 子系统控制与数据
(2)常用指令
Primary | 描述 | Description | Primary | 描述 | Description |
---|---|---|---|---|---|
S1F1 | 通讯存在确认 | Are You There Request | S1F2 | 在线数据 | On-Line Data |
S1F3 | 所选设备状态请求 | Selected Equipment Status Request | S1F4 | 所选设备状态数据 | Selected Equipment Status Data |
S1F11 | 状态变量名称列表请求 | Status Variable Namelist Request | S1F12 | 状态变量名称列表 | Status Variable Namelist |
S1F13 | 建立通信请求 | Establish Communications Request | S1F14 | ECR确认 | ECR Acknowledge |
S1F15 | 离线控制状态请求 | Off-Line Control State Request | S1F16 | 离线控制状态数据 | Off-Line Control State Data |
S1F17 | 在线控制状态请求 | On-Line Control State Request | S1F18 | 在线状态数据 | On-Line State Data |
S2F13 | 设备常数请求 | Equipment Constant Request | S2F14 | 设备常数数据 | Equipment Constant Data |
S2F15 | 新设备常数发送 | New Equipment Constant Send | S2F16 | 新设备常数确认 | New Equipment Constant Acknowledge |
S2F17 | 日期和时间请求 | Date & Time Request | S2F18 | 日期和时间数据 | Date & Time Data |
S2F23 | 跟踪初始化发送 | Trace Initialise Send | S2F24 | 跟踪初始化确认 | Trace Initialise Acknowledge |
S2F25 | 回环诊断请求 | Loop Back Diagnostic Request | S2F26 | 回环诊断数据 | Loop Back Diagnostic Data |
S2F29 | 设备常数名称列表请求 | Equipment Constant Namelist Request | S2F30 | 设备常数名称表数据 | Equipment Constant Namelist Data |
S2F31 | 日期和时间设置请求 | Date & Time Set Request | S2F32 | 日期和时间确认 | Date & Time Acknowledge |
S2F33 | 定义报表 | Define Report | S2F34 | 定义报表确认 | |
S2F35 | 链接事件报告 | Link Event Report | S2F34 | 链接事件报告确认 | Link Event Report Acknowledge |
S2F37 | 启用/禁用事件报告 | Enable / Disable Event Report | S2F38 | 启用/禁用事件报告确认 | Enable / Disable Event Report Acknowledge |
S2F39 | 多块查询 | Multi-block Inquire | S2F40 | 多区拨款 | Multi-block Grant |
S2F41 | 主机命令发送 | Host Command Send | S2F42 | 主机命令确认 | Host Command Acknowledge |
S2F43 | 重置后台处理流和函数 | Reset Spooling Streams and Functions | S2F44 | 重置假脱机确认 | Reset Spooling Acknowledge |
S2F45 | 定义变量限制属性 | Define Variable Limit Attributes | S2F46 | 可变限制属性确认 | Variable Limit Attribute Acknowledge |
S2F47 | 可变限制属性请求 | Variable Limit Attribute Request | S2F48 | 变量限制属性发送 | Variable Limit Attribute Send |
S5F1 | 报警发送 | Alarm Send | S5F2 | 报警事件可从设备侧选择。 | Alarm event could be selected from equipment side. |
S5F3 | 启用/禁用报警发送 | Enable / Disable Alarm Send | S5F4 | 启用/禁用报警发送确认 | Enable / Disable Alarm Send Acknowledge |
S5F5 | 列出报警请求 | List Alarms Request | S5F6 | 列出报警数据 | List Alarms Data |
S5F7 | 列表启用报警请求 | List Enabled Alarms Request | S5F8 | 列出启用的报警数据 | List Enabled Alarms Data |
S6F11 | 事件报告发送 | Event report send | S6F12 | 发生任何事件或选定的事件 | Any events happen, or selected event |
S6F15 | 事件报告请求 | Event Report Request | S6F16 | 事件报告数据 | Event Report Data |
S6F19 | 个人报告请求 | Individual Report Request | S6F20 | 个别报表数据 | Individual Report Data |
S6F23 | 请求假脱机数据 | Request Spooled Data | S6F24 | 请求假脱机数据确认 | Request Spooled Data Acknowledge |
S7F1 | 进程程序加载查询 | Process Program Load Inquire | S7F2 | 处理程序加载授权 | Process Program Load Grant |
S7F3 | 处理程序发送(下载) | Process Program Send | S7F4 | 过程程序确认 | Process Program Acknowledge |
S7F5 | 处理程序请求(上传) | Process Program Request | S7F6 | 处理程序数据 | Process Program Data |
S7F7 | 处理程序id请求 | process program id request | S7F8 | 处理程序id数据 | process program id data |
S7F17 | 删除进程程序发送 | Delete Process Program Send | S7F18 | 删除过程程序确认 | Delete Process Program Acknowledge |
S7F19 | 当前EPPD6请求(请求所有几台当前recipe名称) | Current EPPD6 Request | S7F20 | 当前EPPD数据 | Current EPPD Data |
S7F25 | 格式化处理程序请求 | Formatted Process Program Request | S7F26 | 格式化的过程程序数据 | Formatted Process Program Data |
S10F3 | 终端显示器,单台 | Terminal Display, Single | S10F4 | 终端显示,单一确认 | Terminal Display, Single Acknowledge |
S10F5 | 多块终端显示器 | Terminal Display, Multiblock | S10F6 | 终端显示,多块确认 | Terminal Display, Multiblock Acknowledge |
S14F1 | 获取属性请求 | Get Attribute Request | S14F2 | 获取属性数据 | Get Attribute Data |
S9F1 | device错误 | ||||
S9F3 | 无法识别的Stream类型 | ||||
S9F4 | 无法识别的Function类型 | ||||
S9F7 | 指令格式错误 |
交互异常返回
超时时间
返回 | 描述 |
---|---|
T1 | 表示在接收数据块时每个字符之间的时间间隔 |
T2 | 表示发送 ENQ 之后到接收 EOT 的时间间隔 |
T3 | 回复超时 T3 (T3 reply timeout)表示一个实体等待回复消息的最长时间,如果T3 计时器超时则取消这次会话但不断开 TCP/IP 连接,如果这个实体是设备,则向主机发送 SECS-II S9F9 消息。 |
T4 | 多个块传输中,各个块间的时间间隔 |
T5 | 连接间隔时间 T5 (T5 connect separate timeout)表示两个连接请求之间的时间间隔。过于频繁的向一个未准备好连接的实体发起连接请求,会加重 TCP/IP 的负荷。因此,当一个主动模式实体发起的连接操作终止后(不论是成功结束还是被远端实体拒绝),该实体必须等待 T5 计时器超时后发起下一次连接请求。 |
T6 | 控制会话超时 T6 (T6 control transaction timeout)表示一个控制会话所能开启的最长时间,超过该时间就认为这次通信失败。当发送.req 控制消失时 T6计时器开启,若在 T6 超时之前收到相应的.rsp 消息则计时器关闭,否则控制消息的发起者将关闭这次会话,并认为出现一个通信故障 |
T7 | Not Select 状态超时 T7 (T7 NOT SELECT timeout)表示当建立了 TCP/IP 连接之后通信处于 Not Select 状态的最长时间,通信必须在该时间完成 select 操作,否则将会断开 TCP/IP 连接 |
T8 | 网络字符超时 T8 (T8 network intercharacter timeout)表示成功接收到单个HSMS 消息的字符之间的最大时间间隔。鉴于 TCP/IP 是面向流的通信协议,因此一个 HSMS 通信消息可能被分为若干个 TCP/IP 消息进行传输,若 T8 计时器超时则认为这次传输失败 |
基本概念
DeviceID:用于Host识别的设备号。
CEID:event ID 即事件ID
SVID:设备状态变量ID
ECID:设备常量ID
VID :变量ID
RPTID:report ID 即上报ID
PPID:recipe ID 即配方ID(工艺ID)
CHIPID:芯片ID