三. SECS/GEM封装库RapidSecs开发手记-SECS/GEM基础知识-1

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

1. FA(Factory Automation)的目的

  • 生产费用减少
    • 通过自动化减少人力
  • 提高生产力
    • 通过中央控制增加产量
    • 减少操作人员的失误
    • 通过对设备状态的把握预测和预防错误
  • 设备管理的最大化
    • 通过检测设备状态计划性的分配设备保养和工作的时

2. 半导体设备通信标准

       通信协议属于 SEMI 标准中的设备自动化/软件标准,包括 SECS-I、HSMS、SECS-II 和 GEM 四个标准。其实还有一个最新国际标准EDA(Interface A) ,但不在本系列文章的探讨范围内。

2.1 标准描述

  • SECS-I
    • 属于传输协议标准,描述数据是如何通过物理层在设备与主机之间进行传输的,通 RS-232C 通信来传SECS-II 据的范。
    • SEMI E4 : SEMI Equipment Communications Standard 1 Message Transfer
  • SECS-II
    • 属于消息格式标准,定义了在设备与主机之间进行双向会话时所使用的消息格式。
    • SEMI E5 : SEMI Equipment Communications Standard 2 Message Content
  • HSMS
    • 属于传输协议标准,描述数据是如何通过物理层在设备与主机之间进行传输的,使用的传输媒质是以太网。通以太网来传SECS-II 据的范。
    • SEMI E37 : High-speed SECS Message Services Generic Services
  • GEM
    • 属于设备功能标准,定义了通过通信链路所能看到的设备接口,指定了根据特定的消息设备所应该采取的对应的行为。
    • 义设备驱动准,对设备工作的scenario当时所使用的SECS-II 消息的捆绑。
    • SEMI E30 : Generic Model for Communications and Control of Manufacturing Equipment (制造设备通信和控制的通用模型)

2.2 总体结构

2.3 通信标准的历史

2.4 通信协议分层结构

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

3. SECS-I通信标准

       SECS-I (SEMI Equipment Communications Standard 1 Message Transfer)[7]定义了使用 RS-232 作为传输媒质时点到点的数据通信。通信使用的是一个串行发送的 8 比特字符串,以及一个起始位和一个终止位。通信是双向和异步的,但是同一时间媒质上只能有一个方向的数据进行传输。数据被分块进行传输,每个数据块最大为 254 字节,一个消息最多能包括 32767 个数据块。

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

3.1 硬件通讯

       以RS232串口通信协议为通讯标准,8-N-1的传输方式,并且采用半双工方式通讯,波特率一般采用9600。

3.2 数据块传输协议

       数据块传输协议 (Block Transfer Protocol) 用于建立通信并为数据块的传输提供环境。第一消息 (primary message) 或第二消息 (secondary message) 可能需要分块传输。协议使用单个字节进行握手,标准定义了四个握手编码,用于控制数据流,四个标准编码如下表所示:

Name

Code (b8 b7 …… b1)

Function

ENQ

00000101

Request to Send

EOT

00000100

Ready to Receive

ACK

00000110

Correct Reception

NAK

00010101

Incorrect Reception

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

  • T1 (Inter-Character Timeout):表示在接收数据块时每个字符之间的时间间隔
  • T2 (Protocol Timeout):表示发送 ENQ 之后到接收 EOT 的时间间隔

3.3 消息格式

       块数据(block data)是单块消息或多块消息中的数据部分,包括一个长度字节、N 个字节的数据和两个字节的校验和,其结构如下图所示。

其中各项说明如下:

  • Length Byte:表示随后有多少个字节的数据(即 N bytes),不包括最后 2个字节的校验和
  • Checksum:只计算 N Data Bytes 的校验和
  • N Data Bytes:表示消息块中的数据部分,长度范围是 10 至 254 字节,它由十个字节的头和消息数据组成,如下图所示:

Data Bytes 中各项说明如下:

  • Message Data:表示消息的数据部分,由编码后的 SECS-II 消息构成
  • 10 Byte Header:用于描述块数据中的数据内容,包括 Device ID、Message ID、Block Number 和 System Bytes,如下图所示:

10 Byte Data 结构中各项说明如下:

  • Device ID:头中的第一和第二字节,其第一个比特为 R-bit,其作用是指出消息传输的方向。
  • Message ID:头中的第三和第四字节,其第一个比特为 Wait-bit,用于指示消息的发送者是否需要回复。
  • Block Number:头中的第五和第六字节,其第一个比特为 End-bit,用于指示这个是否是消息的最后一个块。
  • System Bytes:头的最后四个字节,第七和第八字节表示 source ID,用于表示消息的发送者,第九和第十字节表示 transaction ID,用于唯一标示每个发送的消息。

       此通信标准建议每次可传输的字节最多为254,如果-个消息的大小<245个字节,则以一个块的形式进行传输。

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

3.4 握手信号

3.4 超时

  • T1:在一个块中各个字符间传输的最大时间间隔。
  • T2:对于发送者:

       发送ENQ后,等待EOT的时间

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

    对于接收者:

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

  • T3:

  • 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 访问多个子实体的操作。

4.1 TCP/IP 的使用

       HSMS可以使用任何标准 TCP/IP API 进行开发,比如 BSD socket、TLI等。使用标准的 TCP/IP 寻址,默认的端口号为 5000。建立连接的过程如下图所示:

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

  • 被动模式:处于被动模式的实体侦听线路,接收主动模式的实体的连接请求
  • 主动模式:处于主动模式的实体发起连接请求

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

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

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

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

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

(1) 获得一个连接端点

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

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

4.2 HSMS的控制消息

  • Select.req/Select.rsp
    • Not Selected 状态转化为 Selected 状态所使用的消息 (Active Entity 发送Select.req)
  • Deselect.req/Deselect.rsp
    • 在双方协议终止通信时使用. 由想要通信终止的一端发送Deselect.req.
  • Linktest.req/Linktest.rsp
    • 连接状态的确认和维护确认, 如果没有应答则转换为Not Connected 状态.
  • Separate.req
    • 单方面通知通信终止时使用.
  • Reject.req
    • 收到无效消息时发送

4.3 HSMS的状态转换

4.3.1 状态图

   图中各状态说明如下:

  • Not Connected 状态:实体开始侦听,但是未建立任何 TCP/IP 连接或者之前建立的 TCP/IP 连接已经断开;
  • Connected 状态:已经建立一个 TCP/IP 连接,包括 Not Selected 和 Selected两个子状态;
  • Not Selected 状态:Connected 的子状态,表示没有创建 HSMS 会话或之前的会话已经结束;
  • Selected 状态:Connected 的子状态,表示至少创建了一个 HSMS 会话。

4.3.2 被动模式连接的状态转换

4.3.3 主动模式连接的状态转换

4.4 HSMS的消息格式

4.4.1 一般消息格式

HSMS 消息以字节的方式作为单个的流进行传输,其格式如图所示:

  • Message Length:一个 4 字节无符号整数,表示其后 Message Header 加上 Message Text 总的字节数,其最小值为十字节。
  • Message Header:消息头长度为十字节,格式如下图所示:

      其中各项说明如下:

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

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

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

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

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

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

4.4.2 控制消息格式

     HSMS 中的控制消息包括:

  1. Select.req:SType=1,PType=0
  2. Select.rsp:SType=2,PType=0,Header Byte 3 为 SelectStatus 项
  3. Linktest.req:SType=5,Ptype=0,Session ID=0xFFFF
  4. Linktest.rsp:SType=6,Ptype=0,Session ID=0xFFFF
  5. Separate.req:SType=9,PType=0

4.5 计时器

4.5.1 回复超时 T3

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

4.5.2 连接间隔时间 T5

       连接间隔时间 T5 (T5 connect separate timeout)表示两个连接请求之间的时间间隔。过于频繁的向一个未准备好连接的实体发起连接请求,会加重 TCP/IP 的负荷。因此,当一个主动模式实体发起的连接操作终止后(不论是成功结束还是被远端实体拒绝),该实体必须等待 T5 计时器超时后发起下一次连接请求。

4.5.3 控制会话超时 T6

       控制会话超时 T6 (T6 control transaction timeout)表示一个控制会话所能开启的最长时间,超过该时间就认为这次通信失败。当发送<xx>.req 控制消失时 T6计时器开启,若在 T6 超时之前收到相应的<xx>.rsp 消息则计时器关闭,否则控制消息的发起者将关闭这次会话,并认为出现一个通信故障。

4.5.4 Not Select 状态超时 T7

       Not Select 状态超时 T7 (T7 NOT SELECT timeout)表示当建立了 TCP/IP 连接之后通信处于 Not Select 状态的最长时间,通信必须在该时间完成 select 操作,否则将会断开 TCP/IP 连接。

4.5.5 网络字符超时 T8

       网络字符超时 T8 (T8 network intercharacter timeout)表示成功接收到单个HSMS 消息的字符之间的最大时间间隔。鉴于 TCP/IP 是面向流的通信协议,因此一个 HSMS 通信消息可能被分为若干个 TCP/IP 消息进行传输,若 T8 计时器超时则认为这次传输失败。

未完待续......

  • 20
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值