半导体行业通信标准SECS/GEM协议一看就懂的
半导体行业通信标准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协议一看就懂的的更多相关文章
- secs/gem协议
介绍SECS/GEM SEMI SECS/GEM标准概述 SECS/GEM是由国际半导体设备与材料协会(SEMI)制定的连接性标准.此连接性标准用于在设备和工厂的资讯和控制系统间建立通讯. SECS是 ...
- SECS半导体设备通讯-2 HSMS通信标准
一 HSMS通信标准概述 HSMS定义了使用 TCP/IP 作为物理传输媒质时的通信接口. HSMS使用TCP/IP流支持,提供了可靠的双向同步传输,可以用来作为SECS-I通信以及其他更高级的通信环 ...
- Python 标准类库- 因特网协议于支持之UUID
标准类库- 因特网协议于支持之UUID by:授客 QQ:1033553122 测试环境 python3 UUID生成函数定义 uuid.getnode() 获取一个表示硬件地址的48位正整数.第 ...
- Python 标准类库 - 因特网协议与支持之socketserver
标准类库 - 因特网协议与支持之socketserver by:授客 QQ:1033553122 socketserver 模块,简化网络服务编写任务. 创建服务的步骤 1 通过子类化BaseReq ...
- Android之Http通信——1.初识Http协议
Android之Http通信--1.初识Http协议 引言: 今天是六一儿童节,先在这里给各位超龄儿童说声节日快乐哈~( ╯□╰ ),小猪也象征性地给群里的小朋友们派了红包-嗯,忙碌的五月最终过去了, ...
- 打造游戏金融小程序行业测试标准腾讯WeTest携各专家共探品质未来
在获客成本不断上升的时代里,产品品质愈发是互联网应用的决胜标准.随着用户需求更加多样,开发者不仅要深挖应用功能,更需要面向业务所在领域,建立全面.专业的测试架构,掌控开发进度.提高开发效率,才能在互联 ...
- 半导体行业MES系统应用案例
半导体行业的发展是受惠在集成电路上的,但是收到技术瓶颈的阻碍,所以工业时期对半导体行业就造成了严重的冲击. 为了推动半导体行业快速发展,扭转像IBM.东芝以及富士康等IDM大厂利用晶圆代工对半导体制造 ...
- 第14讲 | HTTP协议:看个新闻原来这么麻烦
第14讲 | HTTP协议:看个新闻原来这么麻烦 http://www.163.com 是个 URL,叫作统一资源定位符. 之所以叫统一,是因为它是有格式的.HTTP 称为协议,www.163.com ...
- Windows进程通信之一看就懂的匿名管道通信
目录 进程通信之一看就懂的匿名管道通信 一丶匿名管道 1.1何为匿名管道 1.2创建匿名管道需要注意的事项 1.3 创建匿名管道需要的步骤 1.4代码例子 1.5代码运行截图 进程通信之一看就懂的匿名 ...
- php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便)
php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便) 一.总结 直接看代码实例,特别方便易懂 thinkphp控制器利眠宁不支持(说明 ...
随机推荐
- 2021-12-13:字符串解码。给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k
2021-12-13:字符串解码.给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k ...
- DataGridView数据内容自适应列宽
数据自适应宽度某一列dataGridView1.Columns[@"列名"].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCe ...
- jmeter跨线程组引用变量的3种方法
利用BeanShell后置处理程序将参数设置为全局变量,用于跨线程传参(注:1.把提取变量的线程组放到引用变量的线程组前2.在测试计划中勾选"独立运行每个线程组") 方法1(jme ...
- “中国法研杯”司法人工智能挑战赛:基于UTC的多标签/层次分类小样本文本应用,Macro F1提升13%+
"中国法研杯"司法人工智能挑战赛:基于UTC的多标签/层次分类小样本文本应用,Macro F1提升13%+ 相关文章推荐: 本项目主要完成基于UTC的多标签应用,更多部署细节请参考 ...
- 创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
本文为博主原创,转载请注明出处: 1.使用npm进行初始化 在本地创建项目的文件夹名称,如 node_test,并在该文件夹下进行黑窗口执行初始化命令 2. 安装 expres包和myslq依赖包 n ...
- List的拆分的几种方式
开发中我们可能会遇到一个大的集合,然后我们需要对集合进行拆分,然后再对拆分的集合进行相关的操作.当然我们可以自己写一个拆分的方法,我自己写过用了不少代码,但是感觉还不是很好,最近看了不少工具才发现很多 ...
- rust实现weatherforecast的获取天气webapi
rust用来写webapi可能有点大材小用,但是作为入门学习应该说是不错的选择. cargo new webapi创建一个webapi项目,在src下面新建handler文件夹和models文件夹. ...
- Hybrid 实验
实验拓扑 实验需求 按图示给各 PC 配置 IP 地址 PC1属于 VLAN 10 : PC2 与 PC5 属于 VLAN 20:PC4属于 VLAN 30 实现全网互通 实验步骤 1.配置链路聚合 ...
- 【python基础】复杂数据类型-字典(遍历)
一个字典可能只包含几个键值对,也可能包含数百万个键值对,所以Python支持字典遍历.字典可用于以各种方式存储信息,因此有多种遍历字典的方式:可遍历字典的所有键值对.键或值. 1.遍历所有的键值对 其 ...
- 曲线艺术编程 coding curves 第十二章 玑镂(扭索)纹
第十二章 玑镂(扭索)纹 原作:Keith Peters https://www.bit-101.com/blog/2022/11/coding-curves/ 译者:池中物王二狗(sheldon) ...