摘要:SECS/GEM通訊是應用于半導體制造設備和半導體工廠MES之間的通訊標準,半導體設備接入工廠的半導體MES,需要半導體設備按照SECS/GEM相關標準協(xié)議的要求實現通訊。為此,基于對SECS/GEM標準協(xié)議的研究分析,應用面向對象的設計方法,自上而下地進行軟件設計和開發(fā),提出一種整合了半導體設備通訊標準SECS/GEM的SDK,供設備端應用程序進行二次開發(fā),為設備增添該通訊能力。SDK對SECS/GEM諸協(xié)議標準進行分層和實現、以動態(tài)鏈接庫的形式進行封裝、提供高級接口,并設計配置文件,將設備的本身特性進行分離,可以在不同類型的設備上進行部署。通過測試,驗證了SDK可以滿足SECS/GEM通訊要求,實現了標準中所述的各項能力,其可以應用于各類半導體制造設備的SECS/GEM通訊開發(fā),實現與半導體工廠的MES互聯。
關鍵詞:SECS/GEM;半導體設備通訊標準;工廠自動化;網絡通訊;智能制造
中圖分類號:TP29 文獻標志碼:A doi:10.3969/j.issn.1006-0316.2024.04.009
文章編號:1006-0316 (2024) 04-0059-08
Design of SDK for Equipment Communication Interface Based on SECS/GEM Protocol
SUI Mingyuan1,ZHANG Chunlei1,ZHOU Wei2,ZHOU Qingyi1
( 1. College of Mechanical Engineering, Sichuan University, Chengdu 610065, China;
2. Chengdu Leetro Automation Co., Ltd., Chengdu 610000, China )
Abstract:SECS/GEM protocol is a communication standard applied between semiconductor manufacturing equipment and Manufacturing Execution System(MES) in semiconductor factory. The semiconductor equipment gets access to MES via communication in accordance with the requirements of SECS/GEM protocol. This paper applies object-oriented design method to design and develop software from top to bottom and puts forward an SDK integrating SECS/GEM standard for semiconductor equipment communication, which can be used for secondary development of equipment side applications to add the communication capability to the equipment. The SDK layers and implements SECS/GEM standards, encapsulates them in the form of dynamic link libraries, and provides advanced interfaces. Configuration files are designed to separate the inherent characteristics of the equipment and deploy them on different types of equipment. After testing, it is verified that the SDK can meet the requirements of SECS/GEM communication and realize the capabilities described in the standard. It can be applied to the SECS/GEM communication development of various semiconductor manufacturing equipment to realize the interconnection with the MES of semiconductor factories.
Key words:SECS/GEM;semiconductor equipment communication standard;factory automation;network communication;intelligent manufacturing
半導體行業(yè)具有非常高的自動化實現程度,出于對制造效率及生產環(huán)境高真空、高潔度、高無塵的要求[1],需盡量減少操作員干預,因此車間采用MES(Manufacturing Execution System,制造執(zhí)行系統(tǒng))來滿足半導體行業(yè)的自動化需求,MES是半導體制造企業(yè)必不可少的核心系統(tǒng)[2]。
隨著MES在半導體行業(yè)內的實施應用,出現了MES與來自不同設備供應商的半導體制造設備建立通訊連接的問題。MES端對不同種類制造設備建立通訊,需花費額外的開發(fā)成本。為規(guī)范通訊、降低成本,SEMI(Semiconductor Equipment and Materials International,國際半導體設備與材料協(xié)會)提出連接性標準SECS/ GEM(Semiconductor Equipment Communication Standard / Generic Equipment Model,半導體設備通信標準/通用設備模型)[1]。SECS/GEM在行業(yè)內施行近30年來,被驗證為是一套行之有效的、能提高自動化水平的通訊標準,廣為行業(yè)所應用,并在不斷更新發(fā)展。該套協(xié)議標準近年來又衍生出PCBECI(Printed Circuit Board Equipment Communication Interfaces,印刷電路板設備通信接口)[3]標準,將SECS/GEM通訊應用在行業(yè)下游的PCB制造產業(yè),這更為擴大了該種通訊方式的應用范圍。
針對SECS/GEM通訊,半導體產業(yè)發(fā)達地區(qū)的知名企業(yè)已經有相關軟硬件產品投入到商業(yè)應用之中,其中最知名的企業(yè)有Cimetrix、RockWell公司、BROOKS公司等[4]。
國內對此的研究主要集中于基于SECS/ GEM通訊的主機端(工廠端)的軟件開發(fā)。如張旭華[5]通過在CIMS(Computer Integrated Manufacturing Systems,計算機集成制造系統(tǒng))中應用SECS/GEM協(xié)議,研制了芯片焊線機的監(jiān)控系統(tǒng)。王昌元[6]利用SECS/GEM通訊收集到的信息,搭建了一套設備能耗管理系統(tǒng)。王延輝[7]基于SECS/GEM通訊設計了一套應用于SMT(Surface Mounted Technology,表面組裝技術)車間生產的數據采集系統(tǒng)等。
上述研究主要是基于SECS/GEM通訊對主機端軟件進行開發(fā),SECS/GEM通訊是作為系統(tǒng)的一部分,并沒有形成獨立的產品。另外,由于是主機端軟件的開發(fā),開發(fā)側重點與設備端軟件的側重點也有所不同,設備端不能照用。陳小飛等[8]開發(fā)了專門的SECS/GEM通訊軟件,但其對GEM層的實現程度不高。因此,本文針對設備端的通訊需求,應用面向對象的程序設計方法,在實現SECS通訊基礎上實現更高級且完善的GEM接口,以幫助設備以標準方式快速與半導體MES之間建立通訊。
1 "SECS/GEM協(xié)議分析
1.1 "SECS-I和HSMS
SECS-I(SEMI Equipment Communications Standard 1 Message Transfer)[9]和HSMS(High-Speed SECS Message Services)[10]標準處于協(xié)議族的底層。SECS-I和HSMS規(guī)定了通訊實體間建立連接和交換消息的方式,前者基于RS232串口,后者基于網口??紤]到SECS-I標準已經不能滿足現場對通訊距離和速率的要求,本文設計采用更高效的HSMS協(xié)議。
HSMS標準對傳輸消息的格式進行了定義,如圖1所示,包括三部分:4字節(jié)的消息長度,10字節(jié)的消息頭,以及后面跟隨的消息體,消息體對應SECS-II消息編碼后的內容。
消息頭中的SType,用以區(qū)分HSMS消息是數據消息還是控制消息。數據消息包含消息體,用以傳輸真正的消息內容,也即編碼后的SECS-II消息??刂葡⒅话㈩^,它被用來改變HSMS內部的狀態(tài)機,以維護通訊狀態(tài)。HSMS狀態(tài)機如圖2所示,只有進入Selected狀態(tài),兩個通訊實體間才能交換數據消息。
1.2 "SECS-II
SECS-II(SEMI Equipment Communications Standard 2 Message Content)[11]標準定義了半導體制程中可能用到的所有消息的內容和格式、以及這些消息所使用的數據項DataItem。一個具體的消息被稱為流函數(Stream Function),流(Stream)對消息進行分類,函數(Function)區(qū)分消息具體的職能。如S6F11和S6F12是用來傳遞事件信息的消息。
一條消息包含0個或1個數據項,數據項具有List、Binary、Boolean、ASCII、JIS-8、2bytecharacter、1byteinteger (signed)、2byteinteger (signed)、4byteinteger (signed)、8byteinteger (signed)、4bytefloatingpoint、8bytefloatingpoint、1byteinteger (unsigned)、2byteinteger (unsigned)、4byteinteger (unsigned)、8byteinteger (unsigned)這些數據類型,其中List可包括自身在內的其他的數據類型,組成樹形結構。
SECS-II消息采用了一種緊湊的編碼方式進行編碼,以S1F2這條消息為例,其格式如圖3上半部分所示,它的數據項為一個List,該List包含2個ASCII類型的子項MDLN和SOFTREV,值分別為model1和v1.0。編碼后得到圖3方框內所示的結果。其中,虛線劃分了不同的數據項的編碼。List的編碼中,01表示該數據項為List類型,02表示下兩個數據項都是該List的子項。MDLN的編碼中,41表示該數據項為ASCII類型,并且接下來1個字節(jié)代表該數據的長度,06即儲存了該數據的長度6,表示接下來的6個字節(jié)按ASCII解碼為model1。SOFTREV的解碼同理。
SECS-II編碼后形成的字節(jié)流將融入HSMS的消息格式,作為消息體發(fā)送給建立通訊的另一端。因而,實現HSMS標準中建立連接的方式和HSMS消息解碼規(guī)則以及SECS-II協(xié)議中消息的解編碼是建立SECS/GEM通訊的基礎。
1.3 "GEM
GEM(Generic Model for Communications and Control of Manufacturing Equipment)[12]標準定義了設備能力(Capabilities),每個設備能力包含若干場景(Scenarios),場景則明確了該使用什么SECS-II消息進行通訊。設備需要滿足這些設備能力,以符合GEM也即設備通用模型的要求,這有利于主機端軟件明確在收發(fā)某些SECS-II消息時設備的行為表現。
在消息傳輸方面,GEM標準定義了通訊狀態(tài)和控制狀態(tài)兩個狀態(tài)機,來對設備的通訊建立和控制權限進行規(guī)范,狀態(tài)機的不同也限制了一些具體的SECS-II消息的傳輸,通訊狀態(tài)機和控制狀態(tài)機對消息收發(fā)所做的限制如表1和表2所示。這兩個狀態(tài)機是實現SECS/GEM通訊所必備的。
GEM標準提出的設備能力主要有:建立通訊、事件通知、事件報告配置、報警管理、遠程控制、配方管理、終端服務等,設備需要支持相應的SECS-II消息從而滿足這些能力。GEM標準應用了SECS-II消息的傳輸來實現具體的設備能力,因而適合單獨作為應用層進行設計。
2 "SDK的設計與實現
2.1 架構設計
SDK(Software Development Kit,軟件開發(fā)工具包)包含提供二次開發(fā)接口的動態(tài)鏈接庫、配置文件以及配置文件配置器??傮w架構圖如圖4所示。
按照上文分析,基于自上而下的設計思路,采用面向對象的設計方法,將動態(tài)鏈接庫分為GEM驅動層和SECS驅動層兩個大的模塊。
GEM驅動層集成了GEM狀態(tài)機和與設備能力相關的接口,為設備開發(fā)SECS/GEM通訊能力提供易用的API(Application Programming Interface,應用程序編程接口),同時還具備回調接口來讓設備端應用軟件對接收的消息進行響應。該層對來自設備端應用軟件的數據進行包裝,形成具體的SECS-II消息,同時可以對SECS驅動層接收到的SECS-II消息進行解析,自行處理消息,或交給設備應用軟件處理。
SECS驅動層負責HSMS通訊的建立和維護,以及SECS-II消息的解編碼、接收和發(fā)送,為GEM驅動層提供SECS-II消息的表示功能。該層對應HSMS和SECS-II標準,起到了將設備應用和底層復雜的消息傳輸和解編碼隔離開來的作用。
由于接口是針對設備端軟件開發(fā)的,設計了配置文件,可在其中靈活地配置特定于設備的變量、事件和報警等信息,方便對不同型號的機型進行開發(fā)。配置器則用于高效編輯配置文件。
2.2 "HSMS和SECS-II標準的設計實現
對于HSMS和SECS-II標準,集成設計為一個單獨的動態(tài)鏈接庫,即SECS驅動層,該層的主要職能是與GEM驅動層和主機端進行交互,應用面向對象的方法對動態(tài)鏈接庫中的模塊進行設計。該層的模塊圖如圖5所示。
對于接收到的網絡字節(jié)流,經由底層的SOCKET接口接收到后,交由HSMS消息解碼模塊對消息進行分割、分類,按照HSMS消息頭中定義的消息類型,分別將消息交由控制消息處理模塊或數據消息(即SECS-II消息)處理模塊進行處理??刂葡⑻幚砟K會根據控制消息內容對HSMS狀態(tài)機狀態(tài)進行維護;數據消息處理模塊會按照SECS消息解編碼模塊提供的解碼規(guī)則,對消息進行解碼,把封裝好的SECS-II消息傳輸給GEM驅動層進行處理。
對于GEM驅動層需要發(fā)送的SECS-II消息,數據消息處理模塊會按規(guī)則將其編碼,在預期消息隊列中為其注冊并通過消息ID管理模塊生成消息ID,交由HSMS消息編碼模塊進行編碼,并最終通過SOCKET接口將編碼成的網絡字節(jié)流發(fā)送給主機端。
圖5中的SECS消息表示模塊是一個相對獨立的模塊,它實現了SECS-II標準中不同的數據項數據類型,形成了SECS-II消息和SECS-II數據項數據結構,這些數據結構以結構體的形式在內存中加以儲存,方便GEM驅動層對消息進行讀寫和處理。
2.3 nbsp;GEM標準的設計實現
如圖6所示,GEM驅動層負責根據具體的SECS-II消息來實現GEM標準中所要求的具體的設備能力。比如,對于建立通訊這項設備能力,需要該層支持S1F13和S1F14消息的解析,并且還需要實現通訊狀態(tài)機。該層為設備應用提供了一個建立通訊的API,當設備應用調用此API時,該層通過調用SECS驅動層接口向主機發(fā)送S1F13這條消息,收到包含同意答復的S1F14后,轉換通訊狀態(tài),完成建立通訊。
本層模塊以接口為主,GEM設備能力API對應不同的設備能力,這些接口按照這些能力所使用的消息,要求設備應用傳入必要的數據,將其組織成特定格式的SECS-II消息,交由消息發(fā)送隊列,并進一步交給SECS驅動層將消息編碼并發(fā)送出去。在這里,通訊狀態(tài)機和控制狀態(tài)機按表1、表2所列出的約束對消息的發(fā)送進行限制。
對于從SECS驅動層傳來的接收到的消息,在檢查狀態(tài)機是否允許該消息進行處理后,按照消息的流函數分類,交給不同的HandleSxFy方法進行處理,這些方法有的能夠自行處理接收的消息,進行數據采集或改變內部狀態(tài),有的,如遠程命令,則需要回傳給設備應用進行處理,這種情況下,設計了GEM回調接口來將關鍵信息傳出。
有了該層,設備應用只需要關注少量的GEM設備能力API和GEM回調接口即可。這些高級接口可以使設備應用開發(fā)人員無需關心底層復雜的通訊實現和幾十上百條不同格式的流函數的解碼工作,重點關注業(yè)務和能力實現,從而減少SECS/GEM通訊的開發(fā)難度和時間。
2.4 配置文件的設計
配置文件內部存儲了關于設備本身特性以及運行所需配置的內容,但是通過這種通訊方式傳遞的變量(Variable Item)、事件(Event)、報告(Report)、報警(Alarm)等信息是特定于設備的,為使模塊具有良好的可移植性,必須對這部分設備的個性化內容加以描述,并且使之獨立于動態(tài)鏈接庫之外,讓動態(tài)鏈接庫只包含與SECS/GEM標準相關的內容。
配置文件基于ini配置文件進行設計,按照配置內容分為[SysVariables]、[EqpVariables]、[SysEvents]、[EqpEvents]、[Reports]、[Alarms]等節(jié),每一節(jié)下的可配置元素以數字ID為鍵,以按逗號分隔的具體配置信息為值進行索引和儲存。
其中[SysVariables]節(jié)下是動態(tài)庫運行所必需的變量,[SysEvents]是由動態(tài)庫自身所觸發(fā)的事件。其余節(jié)則是根據設備特點,由開發(fā)人員自行去定義的變量、事件、報告和報警。
配置器用于快速生成配置文件,可以對配置文件各個節(jié)下的內容進行快速編輯。
3 設計驗證
利用主機模擬軟件SEComSimulator作為主機端,以HSMS通訊模式進行通訊,設置IP地址、端口號、Device ID等信息,與使用本SDK開發(fā)的設備應用軟件進行通訊。使用DLL開發(fā)的GEM窗體和主機模擬軟件的通訊日志如圖7和圖8所示。設備軟件在運行后自動與主機端軟件建立連接,通過交換S1F13/F14消息建立通訊,進入到通訊狀態(tài)中。
通過收發(fā)其他設備能力對應的流函數,經驗證,該SDK符合GEM標準,可起到為半導體制造設備增添SECS/GEM通訊能力的作用。
4 結論
SECS/GEM是半導體行業(yè)里廣泛應用的標準,也是半導體產業(yè)發(fā)展的趨勢所在,本SDK以面向對象的設計方法,通過對SECS/GEM諸協(xié)議標準進行分層實現、以動態(tài)鏈接庫的形式進行封裝、提供高級接口,將復雜的通訊部分與設備本身的特性進行了分離,前者封裝進動態(tài)鏈接庫中,后者在獨立的配置文件中進行編寫注冊,實現了SECS/GEM通訊和機臺應用端軟件的解耦,可部署在不同類型的設備上,為其快速構建SECS/GEM通訊能力。
參考文獻:
[1]劉明哲,徐皚冬,于海斌. 半導體設備控制中SEMI標準模型研究:第六屆全國信息獲取與處理學術會議論文集[C]. 儀器儀表學報,2008.
[2]耿凱鴿. MES在半導體生產管理中的應用[J]. 物聯網技術,2014,4(8):87-89.
[3]SEMI. Information amp; Control Global Technical Committee. Specification for printed circuit board equipment communication interfaces (PCBECI):SEMI A3-0722[S]. 2022.
[4]張鵬程. SECS/GEM半導體設備自動化系統(tǒng)設計[D]. 成都:電子科技大學,2013.
[5]張旭華. 基于SECS/GEM協(xié)議的芯片焊線機監(jiān)控系統(tǒng)的實現[D]. 成都:電子科技大學,2014.
[6]王昌元. 基于 SECS/GEM 標準的機臺能耗管理系統(tǒng)[D]. 西安:陜西師范大學,2019.
[7]王延輝. 表面貼裝設備數據采集技術的研究與應用[D]. 西安:西安電子科技大學,2008.
[8]陳小飛,謝政華,汪昌來. 一種SECS/GEM協(xié)議的實現方法[J]. 軟件,2019,40(10):103-106.
[9]SEMI. Information amp; Control Global Technical Committee. Equipment communications standard 1 message transfer (SECS-I):SEMI E4-0699[S]. 1999.
[10]SEMI. Information amp; Control Global Technical Committee. Specification for high-speed SECS message service(HSMS):SEMI E37-0222[S]. 2022.
[11]SEMI. Information amp; Control Global Technical Committee. Specification for equipment communications standard 2 message content (SECS-II):SEMIE5-0323[S]. 2023.
[12]SEMI. Information amp; Control Global Technical Committee. Specification for the general model for communications and control of manufacturing equipment (GEM):SEMI E30-0423[S]. 2023.