
SECS/GEM实战
文章平均质量分 67
jxb_memory
从事工控领域研发多年对工业组态软件、DCS控制系统、云平台、HART手操器(支持DDL解析)、各种通信协议都有涉猎,目前主要从事设备软件的设计研发工作、SECS/GEM通信等等,欢迎交流。
展开
-
关于RapidSecs的Demo几点说明
近期经过大家的试用,发现由于大家用的编译器与提供的Demo编译器版本不匹配,会导致Demo无法调试的问题出现,因此希望大家索要Demo时最好注明自己的编译器版本,否则就只能运行而无法调试了! 目前Demo的编译器版本主要有:VS2010、VS2015、VS2017、VS2019。 Demo只是一个演示程序,它的作用时告诉用户RapidSecs能够支持哪些功能,以及相应的接口如何调用,但它本身并不是一个完胜的设备端Gem程序,要想实现完整的设备端Gem功能还是需要进行二次开发的! 由于工作很忙对大家De原创 2021-01-10 17:25:03 · 1985 阅读 · 93 评论 -
后继系列文章播报
本人目前在从事设备软件的研发,确实很忙所以文章发布的比较缓慢,GEM300也正在研发当中,随着研发过程的推进文章将陆续更新,在这里做一下后继文章的播报,请广大博友持续关注,敬请期待:GEM300的研发包括: E40支持; E94支持; E87支持; E90支持; E116支持; E84支持; 设备软件的研发: 框架搭建; 主引擎开发; GUI开发; 调度程序开发; 各类驱动开发; 实际应用原创 2020-12-04 09:19:52 · 990 阅读 · 3 评论 -
GEM300标准的自动跑片演示
自动跑片的实现其实就是把上一章中的手动跑片的命令连接起来,同样动画中左边的部分是设备软件,右边的是测试工具软件,相当于主机端的EAP软件,当右边的测试工具收到特定的命令时自动进行回复(实际的EAP软件也是这样的),这样就完成了自动跑片过程,具体详见下面动画:...原创 2020-10-11 16:19:45 · 2367 阅读 · 3 评论 -
GEM300标准的手动跑片演示
最近比较忙,有一段时间没有更新博客了,发一段GEM300标准的手动跑片过程(既然此处是手动,那么当然会有自动了),让初涉这个行业的朋友一睹为快,录了一段动画大家看一下。 动画中左边的部分是设备软件,右边的是测试工具软件,相当于主机端的EAP软件,发送指令的过程大致如下:S1F13,建立连接; S2F41,切换到Remote模式; S3F17 ,收到获取Port1的Carrier ID事件后,验证CarrierID成功; S3F17,收到获取Port1的Map结果事件后,验证Map R...原创 2020-09-22 21:08:26 · 5277 阅读 · 10 评论 -
六. SECS/GEM封装库RapidSecs开发手记-扩展库开发-1
上一章结尾时我提到了在以上DEMO的基础上继续完善下去就可以实现GEM的全部功能,那么本章的扩展库就是真正的去实现GEM功能,不过并不是全部,而是GEM200部分,因为GEM300部分更加复杂涉及的内容太多,以后有机会再考虑这部分内容的实现。此外,扩展库的开发采用了C#,而不是基础库的C++。下面让我们开始吧……1. 功能设计GEM 标准定义了从用户所能看到的设备功能,以及实现这些功能所需要用到的哪些 SECS-II 消息。每个通用设备功能都是按标准规定的顺序收/发组SECS-II 消息来实现的。原创 2020-07-11 16:04:18 · 2881 阅读 · 5 评论 -
五. SECS/GEM封装库RapidSecs开发手记-基础库DEMO开发-2
4.4 状态机状态机的数据结构如下:typedef struct _comm_fsm{ COMM_STATE state; COMM_STATE state_host_init_connect; COMM_STATE state_eq_init_connect; deque<COMM_EVENT> m_comm_ev_queue; HANDLE m_comm_ev_handle; HANDLE m_comm_estab_comm_timer; unsigned int原创 2020-05-26 21:56:09 · 2871 阅读 · 3 评论 -
五. SECS/GEM封装库RapidSecs开发手记-基础库DEMO开发-1
1.库结构RapidSecs的C++基础库包括: 文件 描述 rapid_secs.h 头文件 RapidSecs.dll 动态库 RapidSecs.lib 动态库对应的Lib 2.头文件主要是定义了一些基本的数据结构和接口函数供用户调用,接口功能在上一章的博文中已经进行了介绍,这里就不再重复了。头文件的代码如下:3.Demo原创 2020-05-16 22:45:21 · 3119 阅读 · 2 评论 -
四. SECS/GEM封装库RapidSecs开发手记-基础库开发-2
5.命名空间5.1 空间结构5.2 HSMS此命名空间中的类主要处理和HSMS协议相关的操作。5.2.1 类HsmsClient从Socket类派生,HSMS的被动模式使用的类。主要接口如下: 主要接口 接口功能 Accept 接受连接 Connect 建立连接 Send 发送数据 OnRecv原创 2020-05-08 18:21:24 · 3097 阅读 · 1 评论 -
四. SECS/GEM封装库RapidSecs开发手记-基础库开发-1
如果已经将上面介绍的SECS/GEM开发要点掌握了,那么我们就可以进入“RapidSecs基础库”的实际开发了。首先明确一下基础库的目标:支持E5(SECSII)、E37(HSMS),开发语言为C++。这两个协议也是后继E30、E40、E90等等一系列协议的基础。1. 总体设计1.1 模块划分 首先,基础库的功能要如何划分?从对协议的支持来看要支持的协议是E5...原创 2020-04-24 21:30:27 · 4536 阅读 · 2 评论 -
三. SECS/GEM封装库RapidSecs开发手记-SECS/GEM基础知识-2
5. SECS-II通信标准 SECS-II 标准定义了设备和主机之前发送的消息所表达的含义。所有的消息按照其行为分类,称为Stream,每个Stream又包括具体的消息,称为Function。标准还定义了消息的结构,消息由数据项和数据项序列构成。SECS-II还规定了事务协议,用于管理消息的交换、分块等。5.1 消息分类 标准把所有的消息按照行为分为各种Str...原创 2020-04-12 10:33:34 · 12743 阅读 · 5 评论 -
三. SECS/GEM封装库RapidSecs开发手记-SECS/GEM基础知识-1
此部分主要来自于网络内容的收集整理及自己的一点体会,都是一些SECS/GEM开发的相关知识点,可以帮助博友们有针对性的去学习。1. FA(Factory Automation)的目的生产费用减少 通过自动化减少人力 提高生产力 通过中央控制增加产量 减少操作人员的失误 通过对设备状态的把握预测和预防错误 设备管理的最大化 通过检测设备状态计划性的分...原创 2020-04-10 21:57:39 · 11814 阅读 · 6 评论 -
二. SECS/GEM封装库RapidSecs开发手记-应用效果
之所以把应用效果放到前面,主要还是想让广大博友首先确定这是否是你想要了解的?前面提到了“RapidSecs”分为基础库和扩展库两部分,其中基础库既可以用于开发主机端(Host)也可以用于开发设备端(Equipment)。而扩展库主要是为设备端开发的,测试和应用目前都仅限于设备端。基础库-主机端:基础库部分的开发起源于一个国家项目,为一家封装测试厂开发一套EAP软件,其功能就是将F...原创 2020-04-09 14:45:56 · 6921 阅读 · 111 评论 -
一. SECS/GEM封装库RapidSecs开发手记-前言
300mm晶圆是目前IC制造的主流,国际半导体装备和材料协会(SEMI)及全球半导体制造厂、设备供应商共同起草并制定了一系列300mm相关的自动化软件通信标准,规定了生产管理系统(MES/CIM)与IC装备之间的通信协议。 目前,与通信相关的SEMI软件标准有如下3类:SECS/GEM标准:传统的主机设备通信标准,定义了通信的物理层(RS232, TCP/IP)、消息格...原创 2020-04-08 20:28:26 · 5229 阅读 · 7 评论