SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识此部分主要来自于网络内容的收集整理及自己的一点体会 都是一些 SECS GEM 开发的相关知识点 可以帮助博友们有针对性的去学习 1 FA FactoryAutom 的目的生产费用减少通过自动化减少人力提高生产力通过中央控制增加产量减少操作人员的失误通过对设备状态的把握预测和预防错误设备管理的最大化通过检测设备状态计划性的分配设备保养和工作的时 2 半导体设备通信标准通信协议属于 SEMI 标准中的设备自动化 软件标准 包括 SECS I HSMS SECS

此部分主要来自于网络内容的收集整理及自己的一点体会,都是一些SECS/GEM开发的相关知识点,可以帮助博友们有针对性的去学习。

SECS/GEM协议开发系列(四)SECS/GEM基础知识
2.3 通信标准的历史

 SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识
       其中,SECS-I 和 HSMS 属于传输协议标准,描述了数据是如何通过物理媒介在设备与主机之前传输的。SECS-II 属于消息格式标准,定义了在设备与主机之前进行双向会话时所使用的消息格式。GEM 属于特殊功能标准,定义了通过通信链路所能看到的设备接口,指定了根据特定消息设备所应该采取的对应行为。

       SECS-I标准是用于串口通讯的设备,这种设备基本都是20年前的老旧设备,近些年的新设备已经不再使用此标准了。因此对于此标准的开发需求已经很少了。

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

       标准还定义了两个超时参数,用于检测通信故障。下图显示了该协议的握手过程以及 T1 和 T2 两个超时参数。

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

其中各项说明如下:

SECS/GEM协议开发系列(四)SECS/GEM基础知识
Data Bytes 中各项说明如下: 

SECS/GEM协议开发系列(四)SECS/GEM基础知识
       此通信标准建议每次可传输的字节最多为254,如果-个消息的大小<245个字节,则以一个块的形式进行传输。

SECS/GEM协议开发系列(四)SECS/GEM基础知识

       如果-个消息的大小> 245个字节,则以分块的形式进行传输。

SECS/GEM协议开发系列(四)SECS/GEM基础知识

3.4 握手信号

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识
3.4 超时
T1:在一个块中各个字符间传输的最大时间间隔。
T2:对于发送者:
       发送ENQ后,等待EOT的时间



       发送一个Message后,等待ACK or NACK

    对于接收者:

       发送EOT后,等待第一个块的第一个字符的时间

T3:

SECS/GEM协议开发系列(四)SECS/GEM基础知识
T4:多个块传输中,各个块间的时间间隔。
4. HSMS通信标准
       HSMS (High-Speed SECS Message Services)[8]定义了使用 TCP/IP 作为物理传输媒质时的通信接口。HSMS 可以作为 SECS-I 以及其他一些高级通信环境的替代。HSMS 又包括了两个子标准,分别是 HSMS-SS (High-Speed SECS Message Service Single Selected Mode)和 HSMS-GS (High-Speed SECS Message Service General Session)。HSMS-SS 对母标准中的操作进行了简化,以便于实际应用。HSMS-GS 定义了使用 HSMS 访问多个子实体的操作。


SECS/GEM协议开发系列(四)SECS/GEM基础知识

HSMS 把通信实体分为被动模式和主动模式两种:

(1) 获得一个连接端点,在指定的端口进行侦听

(2) 侦听到远程端点发送的连接请求

(3) 接收连接请求,发送确认

主动模式下建立连接的步骤包括:

(1) 获得一个连接端点

(2) 向指定端口号的远程端点发起连接

(3) 等待远程端点接收连接并返回确认

SECS/GEM协议开发系列(四)SECS/GEM基础知识
   图中各状态说明如下:

SECS/GEM协议开发系列(四)SECS/GEM基础知识
4.3.3 主动模式连接的状态转换

 SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识
      其中各项说明如下:

1) Session ID:十六比特无符号整数,最高位必须为零,剩下十五比特用于唯一标识一台设备。

2) Header Byte 2:对于不同类型的消息取值不同。

3) Header Byte 3:对于不同类型的消息取值不同。

4) PType:表示类型(Presentation Type)为八比特无符号整数,用于枚举表示层消息类型,即消息头和消息内容是以何种方式编码的,PType 取值如下表所示:

SECS/GEM协议开发系列(四)SECS/GEM基础知识

5) SType:会话类型(Session Type)为八比特无符号整数,其取值类型如下表所示:

SECS/GEM协议开发系列(四)SECS/GEM基础知识

6) System Bytes:四字节无符号整数,用于唯一标识一次消息交互。

SECS/GEM协议开发系列(四)SECS/GEM基础知识
4.5 计时器
4.5.1 回复超时 T3
       回复超时 T3 (T3 reply timeout)表示一个实体等待回复消息的最长时间,如果T3 计时器超时则取消这次会话但不断开 TCP/IP 连接,如果这个实体是设备,则向主机发送 SECS-II S9F9 消息。


 SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

一些Stream和Function 编号组合被标准保留,其他的可以由用户自定义。保留的 Stream和Function编号为:

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

数据项(item):数据项即一个带长度和格式的信息包。前 2、3 或 4 个字节作为数据项头(item header),描述该数据项的格式和长度信息。如图 2-22 所示。头由格式字节和长度字段组成。第一个字节是格式字节,其高六位表示这个数据项的格式,低二位表示紧随其后有多少个字节表示该数据项的长度,取值只能为1、2 和 3,如果为 0 则该数据项格式错误。高六位的取值及对应格式见表 2-8。根据格式字节的低二位确定长度字段为几个字节,若为 1 则该数据项最长为255字节;若为 2 则该数据项最长为 64K 字节;若为 3 则该数据项最长为 7.99M 字节。长度字段的第一个字节为最高位字节。

SECS/GEM协议开发系列(四)SECS/GEM基础知识
列表(list):列表是一组有序的元素集合,集合中的元素既可以是数据项也可以是列表本身。列表头和格式编码为 0 的数据项头有着相同的格式。长度字段表示该列表中有多少个元素。列表的作用是将若干个有着不同格式的相关数据项组合到一个表示一个有自身含义的结构。
下面列举 4 个数据项和列表编码示例:

(1) 一个包含二进制数据 的数据项:

(bit )

00 (数据项,二进制数据,一个字节表示长度)

00000001 (长度为 1 字节)

(数据)

(2) 一个包含 3 个 ASCII 字符 ABC 的数据项:

(bit )

0 (数据项,ASCII 数据,一个字节表示长度)

00000011 (长度为 3 字节)

0 (ASCII 字符 A)

0 (ASCII 字符 B)

0 (ASCII 字符 C)

(3) 一个包含三个 2 字节有符号整数的数据项:

(bit )

0 (数据项,2 字节有符号整数,一个字节表示长度)

00000110 (长度为 6 字节)

xxxxxxxx (整数 x 的高位)

xxxxxxxx (整数 x 的低位)

yyyyyyyy (整数 y 的高位)

yyyyyyyy (整数 y 的低位)

zzzzzzzz  (整数 z 的高位)

zzzzzzzz  (整数 z 的低位)

(4) 一个包含 4 字节浮点数的数据项

(bit )

(数据项,4 字节浮点数,一个字节表示长度)

00000100 (长度为 4 字节)

f f f f f f f f (4 字节浮点数)

f f f f f f f f

f f f f f f f f

f f f f f f f f

SML 对数据项的定义如下:

其中 type 表示数据类型,count 表示个数,value 表示该数据的值。每个数据项都由一个尖括号封装。Type 的取值如下表所示:

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SML 对一个完整消息定义如下:

SnFm W item .

其中 SnFm 表示 stream 编号为 n 且 function 编号为 m 的 SECS-II 消息。W 表示W 比特位,如果设置为 0 则忽略,如果回复可选则用方括号括起来。Item 即上述数据项。最后消息以一个句号“.”结束。

例如 S5F1 消息,其结构在 SEMI 标准中描述如下图所示:

SECS/GEM协议开发系列(四)SECS/GEM基础知识

然而使用 SML 可以更准确的描述该结构,如下图所示:

SECS/GEM协议开发系列(四)SECS/GEM基础知识

GEM标准为所有半导体制造设备定义了实现SECS-II的标准方法。标准定义了设备行为和通信功能的通用集合,这样为支持半导体设备的自动化加工程序提供了功能性和弹性。设备提供商可以提供GEM中没有的额外功能,但是不能与GEM中已定义的行为和功能相冲突。

E5、E37标准规定了主机如何同设备建立起通信,以及传输数据的格式。

在实际上,设备可能只需要采用SECS-II的某部分信息便可使工厂主控电脑达到控制设备的功能,并不需要完全使用SECS-II的所有信息。

于是E30 GEM (通用设备模型通讯与控制标准)标准被制定了出来。

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

控制状态模型为主机提供了三个基本层次的控制。在最高层次(REMOTE),主机可以最大程度的控制设备。在中间层次(LOCAL)主机可以访问设备的所有信息,但对设备的操作有所限制。在最低层次(OFF-LINE)设备不允许主机控制且只能提供很有限的信息。控制状态图如下图所示:

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

机可以查询设备的数据变量,以便于初始化和同步。通信场景如下图所示:

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

SECS/GEM协议开发系列(四)SECS/GEM基础知识

其实简单一点来说GEM就是:

现在应该知道自己的设备需要支持哪些标准、哪些功能了?

secs-gem的资料,希望对你有帮助,如果有补充或建议,可以联系我,邮箱:

最后:点赞是美德,关注是缘分,收藏是肯定,打赏您随意,您的鼓励是我世界善的一部分!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217097.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午10:21
下一篇 2026年3月18日 上午10:21


相关推荐

  • php7.4 ffi,PHP7.4 全新扩展方式 FFI 详解

    php7.4 ffi,PHP7.4 全新扩展方式 FFI 详解随着 PHP7 4 而来的有一个我认为非常有用的一个扩展 PHPFFI ForeignFunct 引用一段 PHPFFIRFC 中的一段描述 ForPHP FFIopensaway 是的 FFI 提供了高级语言直接的互相调用 而对于 PH

    2026年3月16日
    1
  • Matlab中while语句使用

    Matlab中while语句使用目录一 语法二 说明三 示例 1 重复执行语句 直到表达式为 False2 跳至下一循环迭代 3 在表达式为 false 之前退出循环详细信息表达式 while 语句是条件为 true 时重复执行的 while 循环 一 语法 whileexpress 提示 如果意外创建了一个无限循环 即永远不会自行结束的循环 请按下 Ctrl C 停止执行循环 如果条件表达式的计算结果是一个矩阵 则仅当该矩阵中的所

    2026年3月17日
    3
  • Dubbo原理分析

    Dubbo原理分析接触了 dubbo 框架已经接近一年 今天把 dubbo 框架的实现总结一下 1 前言未有 dubbo 之前 我们在应用与应用跨应用调用 一般可以采用基于 TCP 的 socket 来实现 当然也可以用 netty 或者 httpclient 当采用这种调用方式 会有一个严重弊端 那就是当服务过多时 导致调用者与被调用者的关系链变得负责 用专业术语来说就是服务治理问题 而解决服务治理问题的核心方法就是使用注册中心

    2026年3月20日
    2
  • 事务的四种隔离级别_事务默认的隔离级别

    事务的四种隔离级别_事务默认的隔离级别数据库事务的隔离级别有4种,由低到高分别为Readuncommitted、Readcommitted、Repeatableread、Serializable。Readuncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,

    2022年10月14日
    4
  • CSS圆角边框

    CSS圆角边框css 如何设置圆角边框 css 设置圆角边框的方法

    2026年3月20日
    1
  • 基于STM32F4单片机对步进电机的控制(有代码)「建议收藏」

    基于STM32F4单片机对步进电机的控制(有代码)「建议收藏」步进电机是将电脉冲控制信号转变为角位移或线位移的一种常用的数字控制执行元件,又称为脉冲电机。在驱动电源的作用下,步进电机受到脉冲的控制,其转子的角位移量和速度严格地与输入脉冲的数量和脉冲频率成正比。步进电机每接收一个电脉冲,转子就转过一个相应的角度(步距角)。改变通电顺序可改变步进电动机的旋转方向;改变通电频率可改变步进电动机的转速。因此,通过控制输入电脉冲的数目、频率及电动机绕组的通电顺序就可以…

    2022年5月6日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号