二. SECS/GEM封装库RapidSecs开发手记-应用效果

       之所以把应用效果放到前面,主要还是想让广大博友首先确定这是否是你想要了解的?前面提到了“RapidSecs”分为基础库和扩展库两部分,其中基础库既可以用于开发主机端(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”基础库的雏形。效果如下图所示:
二. SECS/GEM封装库RapidSecs开发手记-应用效果_第1张图片

二. SECS/GEM封装库RapidSecs开发手记-应用效果_第2张图片

基础库-设备端(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,如下图所示;
二. SECS/GEM封装库RapidSecs开发手记-应用效果_第3张图片

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

       二. SECS/GEM封装库RapidSecs开发手记-应用效果_第4张图片

 

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

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

       二. SECS/GEM封装库RapidSecs开发手记-应用效果_第5张图片

 

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

       二. SECS/GEM封装库RapidSecs开发手记-应用效果_第6张图片

 

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

       二. SECS/GEM封装库RapidSecs开发手记-应用效果_第7张图片

       二. SECS/GEM封装库RapidSecs开发手记-应用效果_第8张图片

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

       二. SECS/GEM封装库RapidSecs开发手记-应用效果_第9张图片

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”,界面如下:
二. SECS/GEM封装库RapidSecs开发手记-应用效果_第10张图片

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

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

 

命令

功能名(符号)

方向

1

S1F1

Are You There Request(R)

设备<->主机

2

S1F2

On Line Data (D)

设备<->主机

3

S1F3

Selected Equipment Status Request (SSR)

主机->设备

4

S1F4

Selected Equipment Status Data (SSD)

设备->主机

5

S1F11

Status Variable Namelist Request (SVNR)

主机->设备

6

S1F12

Status Variable Namelist Reply (SVNRR)

设备->主机

7

S1F13

Establish Communication Request (CR)

设备<->主机

8

S1F14

Establish Communication Acknowledge (CRA)

设备<->主机

9

S1F15

Request OFF-LINE (ROFL)

主机->设备

10

S1F16

OFF-LINE Acknowledge (OFLA)

设备<->主机

11

S1F17

Request ON-LINE (RONL)

主机->设备

12

S1F18

ON-LINE Acknowledge (ONLA)

设备<->主机

13

S2F13

Equipment Constant Request (ECR)

主机->设备

14

S2F14

Equipment Constant Data (ECD)

设备->主机

15

S2F15

New Equipment Constant Send (ECS)

主机->设备

16

S2F16

New Equipment Constant Acknowledge (ECA)

设备->主机

17

S2F17

Date and Time Request (DTR)

设备<->主机

18

S2F18

Date and Time Data (DTD)

设备<->主机

19

S2F23

Trace Initialize Send (TIS)

主机->设备

20

S2F24

Trace Initialize Acknowledge (TIA)

设备->主机

21

S2F29

Equipment Constant Namelist Request (ECNR)

主机->设备

22

S2F30

Equipment Constant Namelist (ECN)

设备->主机

23

S2F31

Date and Time Set Request (DTS)

主机->设备

24

S2F32

Date and Time Set Acknowledge (DTA)

设备->主机

25

S2F33

Define Report (DR)

主机->设备

26

S2F34

Define Report Acknowledge (DRA)

设备->主机

27

S2F35

Link Event Report (LER)

主机->设备

28

S2F36

Link Event Report Acknowledge (LERA)

设备->主机

29

S2F37

Enable/Disable Event Report (EDER)

主机->设备

30

S2F38

Enable/Disable Event Report (EERA)

设备->主机

31

S2F41

Host Command Send (HCS)

主机->设备

32

S2F42

Host Command Acknowledge (HCA)

设备->主机

33

S2F49

Enhanced Remote Command

主机->设备

34

S2F50

Enhanced Remote Command Acknowledge

设备->主机

35

S5F1

Alarm Report Send (ARS)

设备->主机

36

S5F2

Alarm Report Acknowledge (ARA)

主机->设备

37

S5F3

Enable/Disable Alarm Send (EAS)

主机->设备

38

S5F4

Enable/Disable Alarm Acknowledge (EAA)

主机->设备

39

S5F5

List Alarms Request (LAR)

主机->设备

40

S5F6

List Alarm Data (LAD)

设备->主机

41

S5F7

List Enabled Alarm Request (LEAR)

主机->设备

42

S5F8

List Enabled Alarm Data (LEAD)

设备->主机

43

S6F1

Trace Data Send (TDS)

设备->主机

44

S6F2

Trace Data Acknowledge (TDA)

主机->设备

45

S6F11

Event Report Send (ERS)

设备->主机

46

S6F12

Event Report Acknowledge (ERA)

主机->设备

47

S6F15

Event Report Request (ERR)

主机->设备

48

S6F16

Event Report Data (ERD)

设备->主机

49

S6F19

Individual Report Request (IRR)

主机->设备

50

S6F20

Individual Report Data (IRD)

设备->主机

51

S7F1

Process Program Load Inquire(PPI)

主机<->设备

52

S7F2

Process Program Load Grant(PPG)

设备<->主机

53

S7F5

Process Program Request(PPR)

主机<->设备

54

S7F6

Process Program Data(PPD)

设备<->主机

55

S7F17

Delete Process Program Send(DPS)

主机->设备

56

S7F18

Delete Process Program Acknowledge(DPA)

设备->主机

57

S7F19

Current EPPD Request(RER)

主机->设备

58

S7F20

Current EPPD Data(RED)

设备->主机

59

S7F25

Formatted Process Program Request(FPR)

主机<->设备

60

S7F26

Formatted Process Program Data(FPD)

设备<->主机

61

S10F1

Terminal Request (TRN)

设备->主机

62

S10F2

Terminal Request Acknowledge (TRA)

主机->设备

63

S10F3

Terminal Display, Single (VTN)

主机->设备

64

S10F4

Terminal Display, Single Acknowledge (VTA)

设备->主机

65

S10F9

Broadcast (BCN)

主机->设备

66

S10F10

Broadcast Acknowledge (BCA)

设备->主机

你可能感兴趣的:(SECS/GEM实战)