secs-gem协议开发系列(五)交互测试

  本文转载自工控老兵的博文

        300mm晶圆是目前IC制造的主流,国际半导体装备和材料协会(SEMI)及全球半导体制造厂、设备供应商共同起草并制定了一系列300mm相关的自动化软件通信标准,规定了生产管理系统(MES/CIM)与IC装备之间的通信协议。

    目前,与通信相关的SEMI软件标准有如下3类:

  • SECS/GEM标准:传统的主机设备通信标准,定义了通信的物理层(RS232, TCP/IP)、消息格式以及设备通信场景。
  • 300mm相关标准:以SECS/GEM标准为基础,针对300mm晶圆加工过程中的特殊需求,定义了加工过程管理、批量物料的作业管理、物料跟踪、载体管理、载体并行I/O接口等。
  • Interface A标准:Interface A通信方法工具软件是设备系统的一部分,由Interface A接口、服务和数据类型,以及设备模型工具和设备控制系统组成。

基础库和扩展库两部分,其中基础库既可以用于开发主机端(Host)也可以用于开发设备端(Equipment)。而扩展库主要是为设备端开发的,测试和应用目前都仅限于设备端。
       基础库-主机端:
       基础库部分的开发起源于一个国家项目,为一家封装测试厂开发一套EAP软件,其功能就是将FAB厂中各个厂家的封装测试设备通过SECS标准协议连接起来,进行统一的管理。
       项目主要功能:
       1.系统采用B/S分布式系统架构;
       2.SECS通信库,封装SECS协议(包括E4,E5,E30,E37等),支持半导体设备的联网通信;
       3.监控封装测试生产线封装、键合、划片、测试等后道设备,及腐蚀、光刻、薄膜等前道设备;
       4.对采集设备状态数据及报警信息进行分析,统计设备在线时间及加工效率等信息,并提供分析报表帮助企业提高设备生产效率;
       5.系统设计容量为500台设备同时在线;
       6.此EAP系统分别在2家前道和后道FAB厂进行了应用。
       下图就是开发的EAP软件,因年代比较久远,采用的框架也比较老,不过这不是重点,我们要说的是SECS通信库。这个项目的实施过程中开发的通信库就是“RapidSecs”基础库的雏形。效果如下图所示:


基础库-设备端(C++版):
       随着多个项目的实施,用户的需求也不断的增加,尤其是对设备端功能的需求日渐增加,因此开发库的设备端功能也得到了不断的完善,C++版本的开发库是既支持主机端又支持设备端的,此处演示设备端应用。由于设备端不像主机端一样有用户界面,因此为了说明可用性采取与第三方测试软件(“Swift Emulator”)通信的方式。
       测试过程如下:
       1.    首先启动第三方工具软件“Swift Emulator.exe”,点击“File”->”Open”,在弹出对话框中选择“Host.xml”,此时工具软件是作为主机端,如果作为设备端则选择“Equipment.xml”;
       2.    然后选择“Commnuicaion“->”Settings“,弹出配置对话框,有”General“和”HSMS“两个标签;
       3.    “General“标签,主要是配置设备ID和通信协议,其中设备ID一定要与实际设备的ID一致,否则无法建立通信(默认为            

        1),此时需要把设备ID修改为0,因为设备端软件默认ID为0,如下图所示;

                 
       4.    “HSMS“标签,是配置通信地址、端口号和超时信息(保持默认即可)等,如下图所示:

       

以上配置暂时不用修改,保持默认即可,此时主机端为主动模式“Active“;
       5.    然后选择“Commnuicaion“->”Open Port“,软件进入监听状态;
       6.    启动设备端软件“DEMOSecs.exe“,然后输入”E“(选择了作为设备),再输入”P“(选择了作为被动模式)。此处如果选择“H”代表的是作为主机,选择“A”代表的是主动模式。


       7.    回车后,设备端软件将等待主机端主动建立连接,主机端软件主动和设备端软件建立连接后,消息显示如下图所示:

 

此处打印出了测试用的命令列表,可以输入进行测试。

8.    此时选择发送“S1F1“消息,则设备端会恢复”S1F2“消息,如下图所示;

 

9.    在设备端命令行界面输入“1”回车,设备将发送一个报警(S5F1)消息到主机端,如下图所示:

       

10.    目前设备端软件仅仅是一个Demo,支持的命令很有限,需要用户自行开发所要支持的命令。其实在使用此C++库开发Demo的过程本身就是在开发GEM功能,只是由于是DEMO的原因支持的命令比较少,但实际上可以提供对所有SxFx系列消息的支持。
       扩展库-设备端(C#版):
       C++版本的基础开发库由于没有提供对GEM(E30)的支持,需要用户自行开发,开发的工作量较大而且很多用户的开发能力有限、项目周期有限,因此开发库提供对GEM的支持就成为了必须。
       C#版扩展库的测试基本同C++版本一致,只不过可以进行测试的命令更多,但是要强调一点使用此扩展库也并不是不需要进行任何的二次开发(没有任何一个库是可以不进行二次开发就可以直接使用的),都需要根据自己设备的实际情况进行相应的适配工作,比如设备SV、DV、EC的配置,还有各类事件、报警的配置等等,本DEMO测试的前提是已经对这些内容进行了模拟适配。
       测试过程如下:
       1.    启动第三方工具软件“Swift Emulator.exe”,过程与上述相同就不再重复介绍了;
       2.    启动设备端DEMO程序“RapidSecsDemo.exe”,界面如下:


       窗口中有3个部分:
       SECS/GEM:此部分的按钮功能用于设备在通讯/控制状态机的各个状态之间进行切换(状态机的具体内容后面会讲);
       State:此部分显示的是设备当前的状态;
       Gem Command Test:此部分用于模拟测试设备主动向主机端发送的命令。
       3.    点击“Enable”按钮后设备端Demo程序就进入了服务状态可以与主机端进行通信行了,主机端与设备端建立连接后消息显示如下:

 


之所以此处的消息比C++版的多是因为C#版本的扩展库支持了GEM,并且次Demo配置了事件上报(S6F11),所以此处出现了事件消息上报主机。
       4.    后面在讲述Demo开发的时候将进行逐条命令的测试,此处不进行详细的测试。本设备端Demo程序支持的命令列表如下:

最后:点赞是美德,关注是缘分,收藏是肯定,打赏您随意,您的鼓励是我世界善的一部分!

  • 23
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大余里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值