SECS/GEM协议(HSMS协议)

本文详细介绍了HSMS概念,包括其在TCP/IP环境下的通信接口,连接状态流程,消息交换过程以及Header结构。还涵盖了协议参数如超时设置等关键要素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 HSMS的概念理解

  • HSMS定义了使用 TCP/IP 作为物理传输媒质时的通信接口。
  • HSMS使用TCP/IP流支持,提供了可靠的双向同步传输,可以用来作为SECS-I通信以及其他更高级的通信环境的替代。

image.png

二 HSMS的 Connection State / Procedure

2.1 Communication Steps(通信步骤)

TCP/IP连接是在两个“实体”(Host和EQ)之间动态建立的。
步骤:

  • 获取通信链路

  • 建立用于交换数据消息的应用程序协议约定

  • 交换数据

  • 正式结束通信

  • 断开通信链路

2.2 Connection State Diagram(连接状态图)

image.png

状态图说明:

  • NOT CONNECTED:该实体已准备好侦听或启动TCP/IP连接,但尚未建立任何连接,或所有以前建立的TCP/IP连接都已终止;
  • CONNECTED:已建立了一个TCP/IP连接。此状态有两个子状态,NOT SELECTED 和 SELECTED;
  • NOT SELECTED:未建立HSMS会话或任何先前建立的HSMS会话已结束;
  • SELECTED:至少建立了一个HSMS会话,这是HSMS的通常操作状态:数据消息可以在此状态下进行交换。

image.png

2.3 Procedure(过程/步骤)

HSMS消息交换过程

  • HSMS定义了跨TCP/IP连接的实体之间的所有消息交换过程。
  • 一旦连接建立,这两个实体间就建立起HSMS通信。然后,数据消息可以在任何时候以任意一个方向进行交换。
  • 当实体希望结束HSMS通信时,将使用 Deselcet 或 Separate procedure 来结束HSMS通信。

发送和接收HSMS消息
所有的HSMS过程都涉及到HSMS消息的交换。这些消息以 TCP/IP 流的形式使用先前建立的TCP/IP连接进行发送和接收。
消息交换过程
消息交换过程分为:Select Procedure,Data Procedure,Deselect Procedure,Linktest Procedure ,Separate Procedure,Reject Procedure。
image.png

image.png

三 Message的组合方法及 Header 结构

3.1 Message 结构

image.png

  • Byte Structrue:

在HSMS中一个字节包含8位。字节中的位从第7位(MSB)编号到第0位(LSB)。

  • Message Format:

HSMS消息以单个连续字节流传输。

  • Message Length:

Message Length是一个四字节的无符号整数值,它指定Message Header加上Message Text的字节长度。消息长度首先传输最高有效位(MSB),最后传输最低有效位(LSB)。

  • Message Header:

MessageHeader是一个10字节的字段。头中的字节从第0字节(传输的第一个字节)编号到第9字节(传输的最后一个字节)。

3.2 Header Structure

image.png

说明:

Session ID:16位无符号整数,它占据了字节0和字节1(字节0是MSB,1是LSB)。用于标识通信实体的连接。

Header Byte 2:对于不同的HSMS消息,有不同的取值。

Header Byte3:对于不同的HSMS消息,有不同的取值。

PType:8位无符号整型,PType旨在作为一种枚举类型,定义表示层消息类型:MessageHeader和MessageText是如何编码的。

PType = 0,被HSMS定义为表示SECS-II消息编码。
image.png
SType:8位无符号整数,是一种枚举类型,标识此消息是HSMS数据消息(值=0)还是HSMS控制消息。
image.png
SystemBytes:四字节无符号整数,用于在一组开放的事务中唯一地标识一个事务,即唯一地标识一次消息交互。

3.3 HSMS Message Formats by Type (按类型划分的HSMS消息格式)

HSMS消息中的Header的解释取决于由SType字段的值定义的特定HSMS消息类型。
下表总结了定义的完整消息集,PType = 0(SECS-II消息格式)。
image.png

四 Protocol Parameter

image.png
说明:

回复超时 T3Reply Timeout:定义一个实体等待回复消息的最长时间,如果T3超时则取消这次会话事务但不断开 TCP/IP 连接。
连接间隔时间 T5Connect Separation Time:定义两个连接请求之间的时间间隔。
频繁的向一个未准备好连接的实体发起连接请求,会加重 TCP/IP 的操作负荷。
因此,当一个主动模式实体发起的连接操作终止后(不论是成功结束还是被远端实体拒绝),该实体必须等待 T5 时间再后发起下一次连接请求。
控制事务超时 T6Control Transactions Control Timeout:定义了一个控制事务所能保持开启的最长时间,超过该时间就认为这次通信失败。
未选择状态超时 T7Not Selected Timeout :定义当建立了 TCP/IP 连接之后通信处于 Not Selected 状态的最长时间,通信必须在该时间完成 Selected Procedure,否则将会断开 TCP/IP 连接。
网络字符超时 T8Network Intercharacter Timeout:定义成功接收到单个HSMS 消息的字符之间的最大时间间隔。
因为TCP/IP是面向流的通信,所以所有作为单个HSMS消息的一部分的字节可能在单独的TCP/IP消息中传输,一个 HSMS 通信消息可能被分为若干个 TCP/IP 消息进行传输。
若 T8 超时则认为这次传输失败。
04-03
### HSMS 协议概述 HSMS (High-Speed SECS Message Service) 是一种基于 TCP/IP 的通信协议,广泛应用于半导体制造和其他工业领域中的设备通信。它作为 SECS-I 和 SECS-II 的扩展版本,提供了更高的传输速度和更可靠的连接机制[^1]。 #### 主要特点 HSMS 使用标准的 TCP/IP 进行数据包传输,支持点对点或多主机架构下的高效消息传递。以下是其主要特性: - **高可靠性**:通过建立持久性的 TCP 链接来保障消息的安全性和完整性。 - **多主机支持**:单台设备可以同时与多个主机进行交互,这得益于其实现方式允许实例化多个对象以处理不同的接口需求。 ```python import socket def establish_hsms_connection(host='localhost', port=5000): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, port)) print(f"Connected to {host} on port {port}") return sock except Exception as e: print(f"Error establishing connection: {e}") # Example usage of the function if __name__ == "__main__": hsms_socket = establish_hsms_connection('example.com', 5001) ``` 上述代码展示了如何利用 Python 创建一个简单的 HSMS 客户端程序框架,用于初始化到指定服务器地址及端口上的链接操作。 #### 应用场景 在实际应用中,HSMS 能够满足现代工厂自动化环境中复杂的通讯需求,特别是在需要实时监控、控制以及大量数据交换的情况下表现尤为突出。例如,在晶圆加工过程中,生产设备可以通过此协议向中央控制系统发送状态更新报告或者接收参数调整指令等信息流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值