半导体行业通信标准SECS/GEM透析

  HSMS通信的设备端通常为客户端(Equipment)(也可称为Active 在通信中主动连接对方的),工厂会部署服务端(Host)(也可称为Passive 被动等待对方连接)。

一、HSMS报文格式

HSMS 报文详情如下

二、消息长度:

①消息长度:用一个 4 字节无符号整数表示,它表示消息头部和消息文本的总字节数,在传输过程中,高字节在前,低字节在后。消息长度的最小值是 10。和 SECS-I 中块的信息头部类似,HSMS 消息头部的字节数也是 10(注意:这个长度不包含自己的4个字节)。

如:如果要发送的如图1所示的报文,那消息长度就是 “报文头”+“数据内容的长度”。即22个字节。对应的16进制就是16.所以消息长度为:00 00 00 16。

                  图一

三、消息头部:

HSMS 消息头部各个字节的含义见表 1.1。

            表1.1 HSMS 消息头部字节含义

SxFy表示所有的功能。通常SxFy中y是奇数则是发送消息,y是偶数表示响应消息.

① 会话标识:设备的ID标记设备的唯一标识,低位在后,高位在前。

如:00 00

②头部字节2:在数据消息中,它表示等待位(W-Bit)和消息的 SECS 流(SECS Stream)。【如果这个指令需要回复,则8位里面,最高位是1。如果这个指令不需要回复则8位里面最高位是0】一般都是1000+Stream(S1F1就是“0001”)

如:S1F1,头部字节2:“1000 +0001”,前面的1000(0x80)是一般都是这个,后面+的就是S后面跟着的数值,即1000 0001,16进制就是 81。

③头部字节3:用法和头部字节 2 相似,不同之处在于在数据消息中,它表示 SECS 功能 (SECS Function);表示类型是一个 8 位无符号整数。

如:S1F1,在F后面跟着的“1”就是上述要填入头部字节3的值。即 01

④表示类型Ptype:消息的编码格式(SECS-II 编码格式 取值为0 ,所以该位就是0),一般都是00。

⑤会话类型SType:消息的类型(等于0表示为数据信息,不等于0表示控制信息),具体消息类型如下表2.2所示。

                表2.2 SType不同取值表示的消息类型

⑥系统字节:标记这次指令的ID,通常用于超时判断(响应时依据发送者指令的最后4字节作为回复,发送时生成不重复的4个字节)。

如:

四、消息文本(构成:长度字节数&数据项格式代码 + 长度字节+实际数据)

  SECS-II 协议定义了设备和主机之间传送消息的格式和含义,在 SECS-II 协议中,传输的消息使用两种数据结构进行格式化:数据项(Item)和列表(List)。SECS-II 协 议使用数据项和列表对消息进行逻辑划分(Logical Division)。

                      +

①长度字节数:定义了数据项的格式和表示数据项长度的字节数,第 1、2 位表示长度字节的个数,其取值范围是 1-3(因为只有两个字节,所以一共只有0,1,2,3这4种取值情况)。

如:发送的是“hellosecs”,总共就是9位,一个字节16位。所以一个字节就可以放下。所以长度字节数位1,即01。

②数据项格式代码:第 3-8 位定义了数据项的格式,即数据项的数据类型,目前 SECS-II 协议一共定义了 16 种数据项类型代码,它们的取值和含义如表 3.3 所示。

            表3.3 SType不同取值表示的消息类型

如:当发送是ASCLL码,数据项格式代码为010000

③长度字节:表示数据项内容(Item Body/IB)的长度。

如:发送“ABC123”,长度是6,那长度字节组就是0000 0110。

④实际数据:

如:如果发送字符串“ 12A”,对应的ASCLL码就是00110001、00110010、 01000001。

SECS-II 的 例子1:
例如需要发送一个字符串是ABC,
则类型字节就是前六位01000,因为ABC数量为3,1个字节就可以表示,所以最后2位为01,即长度字节组的长度为1。
长度字节组就是00000011表示3,
而ABC去查对应的ASCII码,也就是01000001(十进制就是65),01000010(66),01000011。
所以最终需要发送的数据用字节表示就是
01000001            格式字节(01000+01)
00000011            长度字节
01000001   “A”    实际数据
01000010   “B” 实际数据
01000011   “C” 实际数据

注释:1字=2字节,1字节=8位,1字=16位。

半导体行业通信标准SECS/GEM协议一看就懂的的更多相关文章

  1. secs/gem协议

    介绍SECS/GEM SEMI SECS/GEM标准概述 SECS/GEM是由国际半导体设备与材料协会(SEMI)制定的连接性标准.此连接性标准用于在设备和工厂的资讯和控制系统间建立通讯. SECS是 ...

  2. SECS半导体设备通讯-2 HSMS通信标准

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

  3. Python 标准类库- 因特网协议于支持之UUID

    标准类库- 因特网协议于支持之UUID by:授客 QQ:1033553122   测试环境 python3 UUID生成函数定义 uuid.getnode() 获取一个表示硬件地址的48位正整数.第 ...

  4. Python 标准类库 - 因特网协议与支持之socketserver

    标准类库 - 因特网协议与支持之socketserver by:授客 QQ:1033553122 socketserver 模块,简化网络服务编写任务. 创建服务的步骤 1  通过子类化BaseReq ...

  5. Android之Http通信——1.初识Http协议

    Android之Http通信--1.初识Http协议 引言: 今天是六一儿童节,先在这里给各位超龄儿童说声节日快乐哈~( ╯□╰ ),小猪也象征性地给群里的小朋友们派了红包-嗯,忙碌的五月最终过去了, ...

  6. 打造游戏金融小程序行业测试标准腾讯WeTest携各专家共探品质未来

    在获客成本不断上升的时代里,产品品质愈发是互联网应用的决胜标准.随着用户需求更加多样,开发者不仅要深挖应用功能,更需要面向业务所在领域,建立全面.专业的测试架构,掌控开发进度.提高开发效率,才能在互联 ...

  7. 半导体行业MES系统应用案例

    半导体行业的发展是受惠在集成电路上的,但是收到技术瓶颈的阻碍,所以工业时期对半导体行业就造成了严重的冲击. 为了推动半导体行业快速发展,扭转像IBM.东芝以及富士康等IDM大厂利用晶圆代工对半导体制造 ...

  8. 第14讲 | HTTP协议:看个新闻原来这么麻烦

    第14讲 | HTTP协议:看个新闻原来这么麻烦 http://www.163.com 是个 URL,叫作统一资源定位符. 之所以叫统一,是因为它是有格式的.HTTP 称为协议,www.163.com ...

  9. Windows进程通信之一看就懂的匿名管道通信

    目录 进程通信之一看就懂的匿名管道通信 一丶匿名管道 1.1何为匿名管道 1.2创建匿名管道需要注意的事项 1.3 创建匿名管道需要的步骤 1.4代码例子 1.5代码运行截图 进程通信之一看就懂的匿名 ...

  10. php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便)

    php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便) 一.总结 直接看代码实例,特别方便易懂 thinkphp控制器利眠宁不支持(说明 ...

随机推荐

  1. 2021-07-14:接雨水。给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

    2021-07-14:接雨水.给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 福大大 答案2021-07-14: 左右指针向中间移动.左指针是左边柱 ...

  2. defer有什么用呢

    1. 简介 本文将从一个资源回收问题引入,引出defer关键字,并对其进行基本介绍.接着,将详细介绍在资源回收.拦截和处理panic等相关场景下defer的使用. 进一步,介绍defer的执行顺序,以 ...

  3. transaction.atomic装饰器

    from django.shortcuts import renderfrom django.http import HttpResponsefrom django.views.generic imp ...

  4. 40% building 31/38 modules 7 active ...es\core-js\modules\es6.object.assign.jsBrowserslist: caniuse-lite is outdated.

    一早运行项目发现不正常 虽然能运行,但是怎么看都不顺眼啊,那就照着提示先: npm update 一连串下来啥也看不懂是不是 我就直接npm install看看重新下载一下依赖结果直接给我来了个 :c ...

  5. django之drf(部分讲解)

    序列化类常用字段和字段参数 drf在Django字段类型的基础上派生了自己的字段类型以及字段参数 序列化器的字段类型用于处理原始值和内部数据类型直接的转换 还可以用于验证输入.以及父对象检索和设置值 ...

  6. flutter填坑之旅(有状态组件StatefulWidget)

    今天我们来看看flutter的StatefulWidget(有状态组件),最常用就是app 主页的底部导航栏的应用 效果图 首页 关于 我的 statefull-widget-learn .dart ...

  7. Python基础 - 注释

    单行注释 Python中使用#表示单行注释.一般在#后面添加一个空格,再添加注释内容 1 # 这是单行注释 多行注释   Python中使用三个单引号或三个双引号表示多行注释. 1 ''' 2 这是使 ...

  8. Spring Boot 3.1中如何整合Spring Security和Keycloak

    在今年2月14日的时候,Keycloak 团队宣布他们正在弃用大多数 Keycloak 适配器.其中包括Spring Security和Spring Boot的适配器,这意味着今后Keycloak团队 ...

  9. WC2021及学长分享题目

    部分题目见洛谷题单 动态更新. 标 * 为想做的题. hdhd: CF1214G Feeling Good CF1305F Kuroni and the Punishment AGC016F Game ...

  10. 【python基础】文件-初识文件

    文本文件可存储的数据量是非常多的.每当需要分析或修改存储在文件中的信息时,首先就是读取文件到内存中,为此可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取. 1.读取文件 1.1读取整个文件 ...