【SECS】初识SECS协议
- 基本知识
- 流和功能函数数量
- 官方文件中缩写标注
- 正常是不是都是主机向设备端?
- 对数据信息中第1字节第1-2位官网介绍
- S1F1双向指令说明测试
- H发起端
- E发起端
- 参考资料
基本知识
SECS(SEMI Equipment Communications Standard)即半导体设备通信标准,是SEMI(Semiconductor Equipment and Materials International,国际半导体产业协会)为了方便工厂系统与设备沟通而建立的一种通信标准。它一共可以划分为4类:
- E4(SECS - I):传输协议标准,使用RS-232C通信;
- E37(HSMS) :传输协议标准,高速消息服务,基于TCP/IP传输SECS-II消息;
- E5(SECS - II):消息格式标准,定义了设备与主机之间进行双向会话时使用的消息格式;
- E30(GEM):设备功能标准,定义了设备接口和设备行为。着重规定了设备如何利用 SECS - II 消息来实现特定的行为和功能。
基本的使用可以查看官方文档,这里着重对发送指令页进行记录,以下图片主要来自于b站大佬的ppt整理。
通过这些图片,基本可以很清楚了了解SECS的发送报文,接下来主要对官方文档进行剖析,对当前遇到的几个重点进行记录。
流和功能函数数量
官方文件中缩写标注
其中,H<>E是涵盖了主机和设备之间双向的通信情况,包括请求、响应、状态报告等各种类型的消息交互,如S1F1,后面对其进行测试说明。
正常是不是都是主机向设备端?
对数据信息中第1字节第1-2位官网介绍
这里要注意,里面关于这个2位的说明很明确:项目标题的第一位和第二位告诉下面有多少字节表示项目的长度。而项目的长度是指项目标题后面的字节数,这里第一个字节就是项目标题。1个字节可以表示的最大长度是0-255,所以只要项目标题后面的字节数小于等于254,都是0x01。
S1F1双向指令说明测试
首先需要准备一个网络调试助手,协议类型设置为TCP Server,作为设备端;一个SEComSimulator,用于模拟支持SECS的系统,作为主机。为了方便测试,在SEComSimulator配置中,将T6时间放大成500s,即控制指令响应时间延长,方便在网络调试助手中输入指令的方便。里面T5表示2次连接的间隔,在测试时候也可以很明显的看出。
然后进行连接,H发来00 00 00 0A FF FF 00 00 00 01 7F 00 00 00 ,E根据协议对应回复就行,进行连接建立。
建立成功后,因为要模拟S1F1,而它是一个双向的指令,先熟悉它的指令,里面的MDLN表示设备型号,SOFTREV表示修订代码,L,2表示2个分支List。在模拟时候,MDLN和SOFTREV我们主要采用ASCII格式进行SEComSimulator的设置,里面设备型号设置FLS,修订代码设置1.0,具体可以进行自定义。
H发起端
点击SEComSimulator进行指令发送,能够看到E端收到指令00 00 00 0A 00 01 81 01 00 00 00 00 00 01 ,这里要注意,S1F1虽然正常应该是0x01 0x01,但这里实际发的是0x81 0x01。然后根据指令格式,我们进行回复00 00 00 16 00 01 01 02 00 00 00 00 00 01 01 02 41 03 46 4C 53 41 03 31 2E 30。
回复的指令,00 00 00 16是数据长度,00 01 01 02 00 00 00 00 00 01是报文头信息,01 02 41 03 46 4C 53 41 03 31 2E 30是数据信息。对数据信息进行解析,
因为是LIST格式,所以第一个字节第2-7位是000000,那么第一个字节是01;
2个元素,所以02;
列表第一个元素是FLS,ASCII代码是010000,所以是41;
字节长度3,所以03;
FLS用ASCII文本到十六进制转换器换算后是46 4C 53。
最后可以在SEComSimulator接收窗口看到接收信息,里面用的显示方式是SML语言。
E发起端
网络调试助手上发送指令00 00 00 0A 00 01 81 01 00 00 00 00 00 01 ,这里要注意S1F1的8101,试了一下发0101,不会有回复的。然后SEComSimulator会自动回复我们编辑的信息,因为是双向指令,所以在SEComSimulator上要注意第二个才是这边H端表示的接收端。
显示信息也会在窗口中进行显示,很形象。
注意,这里H发回E有数据只为尝试模拟器使用,实际SECS协议,S1F2指令有一个额外,H发回E的列表为空。
参考资料
很推荐b站大佬的Secs/gem hsms协议解析,架构搭建得是真的很nice,很值得学习思想,附上视频里面的数据集合分类。CSDN博文推荐基于SECS协议开发的简明教程、C#_半导体行业-SECS/GEM协议、SECS协议学习,当然主要还是官方文档,配合SEComSimulator正在逐步研究中,很开心的学习过程!