【翻译】SECS GEM系列之十一:协议层

协议层的用途

协议层封装数据,并在工厂主机和设备GEM接口之间可靠地传输数据。

协议层定义

协议层实现了通过工厂主机和设备GEM接口之间的连线发送消息所用到的传输技术和数据打包算法,。

SEMI E5标准,半导体设备通信标准II 消息内容(SECSII), 定义了用作数据的SECS消息,以及如何将它们打包到二进制缓冲区中进行传输。

SEMI E37E37.1标准高速SECS消息服务(HSMS)定义了一种协议,用于在TCP/IP连接上交换SECS消息。这是SECS/GEM中使用最多的传输技术。

【翻译】SECS GEM系列之十一:协议层_第1张图片

HSMS协议栈

SEMI E4标准,即半导体设备通信协议标准I 消息传输 (SECS- I),定义了在RS-232上交换SECS消息的机制。这通常用于较旧的设备或设备内部的某些硬件,例如EFEM控制器。

本文的其余部分将重点讨论通过HSMS传递的SECS消息。

协议层的好处

GEM中的协议层维护连接并检测连接丢失,因此任何一方都可以采取适当的操作,比如激活假脱机。

协议层定义握手机制,以确保在需要时传递消息。

协议层连接是工厂主机和设备之间的点对点连接。它是一个没有广播功能的专用连接。这使得预测网络负载变得更加容易。

数据密度

SECS/GEM传输数据开销小、密度高。这意味着给定数据集的网络带宽使用更少。

为了便于说明,我们来看一个典型的事件报告示例,并将SECS/GEM消息传递与某种程度上等价的XMLJSON消息进行比较。

以一个典型的GEM接口为例,该接口为id使用无符号的4字节整数,以及一个包含8字节浮点数和4字节整数的事件报告。下表以SECS/GEM E5格式以及等效的JSONXML格式显示了此消息的一个示例。

【翻译】SECS GEM系列之十一:协议层_第2张图片

二进制SECS/GEM消息将通过网络占用58个字节,JSON大约占用206个字节,XML 175占用175个字节。JSONXML数字可以根据键/元素名称进行一些更改,上面的只是许多可能的表示之一。

【翻译】SECS GEM系列之十一:协议层_第3张图片

下图显示了示例消息的数据密度比较。实际数据大小为24字节整数+ 28字节浮点数+ 14字节事件id + 14字节报告id = 32字节的实际数据。开销是通过从消息的总字节数中减去实际数据大小来计算的。

【翻译】SECS GEM系列之十一:协议层_第4张图片

对于示例消息SECS的数据密度,数据密度百分比如下图所示。数据密度百分比由(实际数据)/开销*100计算。

【翻译】SECS GEM系列之十一:协议层_第5张图片

现在,如果我们将示例消息更改为包含1008字节浮点数,则数据密度百分比图将改变为如下图。注意JSONXML相对相同,但是SECS/GEM数据密度增加到78%。数据密度百分比由(实际数据)/开销*100计算。

【翻译】SECS GEM系列之十一:协议层_第6张图片

SECS/GEM编码的开销非常小。消息的开销是描述消息的头部的10个字节,加上消息体大小的14个字节。对于SECS消息中的任何4字节整数或浮点数,都将通过网络发送6个字节,4个字节表示整数值+ 1个字节表示类型+ 1个字节表示数据的长度(以字节为单位)。同样,对于任何8字节的整数或浮点数,都将发送10字节。对于字符串值,长度将是字符数加上24字节。在SECS消息中出现列表(上面可读示例中的L)时,将向消息添加24个字节。

SECS/GEM数据中,数字数组尤为高效。数组的开销是类型为1字节,数组长度为14字节,加上数据的本身大小。例如:一个由104字节整数组成的数组将占用42字节,即数据密度为95%!

JSON示例中,一个4字节的整数需要16个字节加上表示该整数所需的字符数,因此需要1728个字节。浮点数的开销相同,但可能需要更多字符来表示值。

XML中,开销基于XML元素名称的大小。使用上面示例中的元素名,对于任何4字节整数,跨连接的字节数将是9 +表示该整数所需的字符数,所以是1021字节。浮点数取决于用来表示值的字符串格式。

总而言之,通过查看每项数据所需字节大小,SECS/GEM非常密集。以4字节整数为例,其中SECS/GEM6个字节,JSON示例是1728个字节,XML示例是1021个字节,随着参数数量的增加,您会发现开销确实很重要。300mm半导体设备预计每秒每个工艺模块向主机传输1000个参数。对于2个模块的设备,这将导致仅用于数据的字节数如下: SECS/GEM 12K字节,  JSON 34K-56K,  如实例的XML 需要20K-42K。这些数字不考虑消息其余部分的大小,只考虑与参数值相关的实际部分。如果数据在大量消息中传输,而每个消息的值很少,那么网络负载就更糟了。在所有情况下,更少、更大的消息总是更好。

根据使用的传输协议,XMLJSON也可能增加开销。例如,XML通常使用SOAP通过HTTP传输,这就为每个消息增加了额外的两层开销和更多的字节。SECS/GEM显示的字节数是实际通过TCP/IP上的网络传输的。

无数据翻译

SECS/GEM中传输数值数据时不需要转换。数字以其原始格式传输。例如:8字节浮点数以其8字节表示形式传输,没有经过任何转换、截断或舍入。

任何协议,如JSONXML都必须将这些8字节浮点数转换为文本表示形式。这需要计算用于编码和解码的资源,并且需要更多的字节。IEEE754要求17位十进制数字将8字节浮点数精确地表示为字符串。将符号、小数点、指数和指数符号的字符相加,得到21个字符。这是SECS/GEM通过网络发送的两倍多。

环路保证

HSMS定义了一种称为Link Test的环路保证机制。如果没有活动的消息交换,协议层将启动一个计时器。每次计时器过期时,都会交换一条协议消息以确保连接仍然是打开的。

安全

HSMS没有定义安全性。没有连接方的验证,连接不需要凭证或证书。数据未使用任何普通加密算法加密; 然而,数据在数据打包过程中是模糊的,通常是人类无法读懂的。由于工厂网络与外部世界隔离,安全通常不会被视为一个问题。

结论

使用HSMS的SECS/GEM协议层提供了在工厂主机和设备之间交换准确数据的非常有效的方法。

你可能感兴趣的:(SECS,GEM)