之所以把应用效果放到前面,主要还是想让广大博友首先确定这是否是你想要了解的?前面提到了“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) | 设备->主机 |