之所以把应用效果放到前面,主要还是想让广大博友首先确定这是否是你想要了解的?前面提到了“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”基础库的雏形。效果如下图所示:
基础库-设备端(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程序支持的命令列表如下:
命令 |
功能名(符号) |
方向 |
|
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) |
设备->主机 |