国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      多協(xié)議多客戶端設(shè)備服務(wù)器的制作方法

      文檔序號:7636693閱讀:332來源:國知局

      專利名稱::多協(xié)議多客戶端設(shè)備服務(wù)器的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及自動化作業(yè)管理領(lǐng)域,具體地,涉及半導(dǎo)體加工設(shè)施中設(shè)備(equipment)處理的監(jiān)視與控制。
      背景技術(shù)
      :半導(dǎo)體芯片制造一般不如其他技術(shù)部門的自動化程度高。在半導(dǎo)體芯片制造廠的各個區(qū)域中,系統(tǒng)與工具經(jīng)常只是半集成的,甚至是完全獨立的。另外,因為一般使用的專用通信協(xié)議,經(jīng)常很難以如下方式自動化制造過程,這種方式不僅協(xié)調(diào)工具之間的活動,而且以可用于過程改進(jìn)或者其他工作管理功能的方式從工具采集數(shù)據(jù)。圖1顯示設(shè)備管理的現(xiàn)有技術(shù)方式。工廠制造執(zhí)行系統(tǒng)(MES)110連接到半導(dǎo)體制造設(shè)備120,其運行工具控制軟件130。通過計算機(jī)集成制造技術(shù)來管理設(shè)備的這一傳統(tǒng)方式依賴于半導(dǎo)體設(shè)備與材料國際(SEMI)組織的有二十年歷史的半導(dǎo)體設(shè)備通信標(biāo)準(zhǔn)(SECS)通信標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)定義了串行的點到點通信接口與消息系統(tǒng),用于半導(dǎo)體制造設(shè)備120與MESIIO之間的信息交換。為了符合這些標(biāo)準(zhǔn),工具銷售商一般提供符合SECS或SECS/GEM的接口140與工具控制軟件130,以使工廠人員能夠?qū)⒐ぞ哌B接到MES主機(jī)110。隨著工具變得越來越復(fù)雜,需要比SECS消息系統(tǒng)與接口一般提供的要多的、關(guān)于工具的功能與結(jié)構(gòu)的信息。SECS接口的某些具體限制包括以下1、不可發(fā)現(xiàn)的接口MES不能查詢接口來確定其功能。已經(jīng)開發(fā)了工具驅(qū)動器來向MES提供不能通過SECS接口得到的配置信息。2、不可發(fā)現(xiàn)的物理結(jié)構(gòu)SECS消息無法:波露工具的物理結(jié)構(gòu)。這阻礙了開發(fā)用于諸如遠(yuǎn)程狀態(tài)顯示與遠(yuǎn)程診斷等重要任務(wù)的通用工廠系統(tǒng)。3、單個客戶端將工具連接到MES的SECS電纜為點到點鏈接。只有來自MES的一個軟件進(jìn)程可以訪問工具,這使多個客戶端應(yīng)用不可能訪問工具。4、缺乏安全機(jī)制SECS沒有規(guī)定客戶端驗證或者訪問許可。如果多個客戶端(尤其是MES之外的那些客戶端)可以訪問工具,則必須要有安全控制。作為圖1所示配置的替換,工廠自動化工程師已經(jīng)開發(fā)了圖2例示的配置,其中將工具編組在一起,并且由稱為"站點控制器"的單個軟件程序松散地控制。站點控制器250利用SECS/GEM接口,與單個工具或者工具組通信。工廠MES210連接到站點控制器250,站點控制器250進(jìn)而連接到半導(dǎo)體制造設(shè)備220,該半導(dǎo)體制造設(shè)備220運行工具控制軟件230。站點控制器250的工作是雙重的。首先,站點控制器250向MES210呈現(xiàn)關(guān)于工具的、比使用SECS接口可能有的更方便的視圖。第二,站點控制器250可以為工具添加幾種功能,例如過程工作設(shè)置與配方控制。不幸的是,實現(xiàn)站點控制器的當(dāng)前的軟件體系結(jié)構(gòu)具有嚴(yán)重的限制,尤其是關(guān)于半導(dǎo)體制造工具之間的集成,以及處理關(guān)于工具動作與狀態(tài)的數(shù)據(jù)的方式。具體地,經(jīng)常需要設(shè)備從工具直接提供實時數(shù)據(jù)到其他軟件應(yīng)用,以用于制造過程分析、診斷、以及迅速實現(xiàn)的校正措施。為了支持這一需求,用來集成與提取來自工具的數(shù)據(jù)的當(dāng)前的軟件體系結(jié)構(gòu)要克服許多設(shè)計障礙。首先,利用SECS/GEM接口,實現(xiàn)站點控制器的當(dāng)前的體系結(jié)構(gòu)沒有克服上述的限制。當(dāng)前的站點控制器中存在的另一基本問題在于由于偏離了控制材料過程的首要功能而產(chǎn)生的較高的復(fù)雜度。因為在核心工作管理需求之上又融入了多項功能,所以人們建立了大型復(fù)雜的軟件體系結(jié)構(gòu),其不容易適應(yīng)變化。這也導(dǎo)致了單個故障點和多個內(nèi)部故障點以及擁有成本較高。因為數(shù)據(jù)采集一般已經(jīng)與工作管理集成,所以當(dāng)前的站點控制器已經(jīng)成為設(shè)備數(shù)據(jù)的唯一采集者,這就要求數(shù)據(jù)使用者通過站點控制器連接。與目前集中于45nm及其之下的幾何尺寸的減少并行地,隨著對于300mm及其之上晶片的電路容量增加,需要半導(dǎo)體制造商實現(xiàn)高效自動化集成策略的半導(dǎo)體工業(yè)的變化是作為結(jié)果的、必須管理的制造數(shù)據(jù)的指數(shù)增長的主要原因。除以上變化推動因素之外,還有幾種其他壓力放大了對變化的需求。首先,需要將少數(shù)的專家資源集中于解決問題,并且減少花費在僅僅尋找數(shù)據(jù)上的資源。另外,(其中每個晶片包含上百到上千個沖模)誤處理45nm的晶片的高成本使得更加急需高效的解決方案。還存在推動對高效解決方案的需求的性能問題,例如設(shè)備停機(jī)時間的高成本,以及對改進(jìn)總體設(shè)備有效性(OEE)的希望。還需要實時數(shù)據(jù)以允許對處理問題的更快的響應(yīng),以及需要改進(jìn)從工具到生產(chǎn)的時間。當(dāng)前解決方案不會解決諸如電子診斷以及高級過程控制(APC)等應(yīng)用的數(shù)據(jù)訪問需求,這些應(yīng)用需要自動化體系結(jié)構(gòu)的功能,以支持對于設(shè)備的并發(fā)的多客戶端訪問,并且獨立于設(shè)備處理控制的當(dāng)前所有權(quán)。實現(xiàn)"按需數(shù)據(jù),,的功能是下一代專注于半導(dǎo)體的站點控制器體系結(jié)構(gòu)的推動因素。隨著業(yè)界從基于批次(lotbased)水平的制造轉(zhuǎn)移到晶片水平的制造,自動化解決方案將需要能夠提供進(jìn)行有效的制造與業(yè)務(wù)決定以滿足其客戶需求所需的高級統(tǒng)計過程控制(SPC)、故障檢測分類、以及逐次運行(run-to-run)控制應(yīng)用。出于上述原因,典型的站點控制器已經(jīng)構(gòu)成障礙。在過去站點控制器被設(shè)計來具體地控制對制造工作的管理,而目前站點控制器已經(jīng)演變?yōu)閺?fù)雜交織的一組程序,其功能擴(kuò)展不亞于其復(fù)雜度的擴(kuò)展。這種復(fù)雜度使對站點控制器、及其基本功能(例如工作管理)的維護(hù)或者改變非常困難、耗費時間、并且昂貴。在某些情況下,軟件代碼的重疊與交織性質(zhì)使得工廠管理者對于進(jìn)行任何改變非常猶豫,即使這些改變可以產(chǎn)生增加操作半導(dǎo)體芯片的產(chǎn)出量所需的制造過程的改進(jìn)也如此。新標(biāo)準(zhǔn),例如SEMIE120,常用設(shè)備模型規(guī)格(CEM)正在演進(jìn),其提供標(biāo)準(zhǔn)設(shè)備對象模型。CEM可以用做指南,以允許開發(fā)表示要由其他工廠設(shè)備使用的工具的外部視圖的對象模型。諸如CEM等標(biāo)準(zhǔn)代表了使用工業(yè)標(biāo)準(zhǔn)面向?qū)ο蠊ぞ呓缑娴臋C(jī)會,但是當(dāng)前的站點控制器體系結(jié)構(gòu)不能利用這些新標(biāo)準(zhǔn)。需要一種方法,來克服SECS或者SECS/GEM接口的限制,消除對成本高昂的站點控制器的需要,并且利用CEM對象模型
      發(fā)明內(nèi)容本發(fā)明通過建立一種圍繞設(shè)備模型框架的多協(xié)議多客戶端設(shè)備服務(wù)器,解決了上述限制。本發(fā)明作為設(shè)備與工廠MES和與設(shè)備通信的其他客戶端軟件之間的中介。本發(fā)明可以在繼承模式(legacymode)下運行,其中支持當(dāng)前MES與SECS/GEM接口,同時使得易于轉(zhuǎn)變?yōu)樵O(shè)備與MES系統(tǒng)的新式協(xié)議。本發(fā)明的一個方面融入了一種設(shè)備服務(wù)器要使用的具有圖形用戶界面的軟件工具,其允許方便地建立和驗證設(shè)備模型。圖1顯示對于通過計算機(jī)集成制造技術(shù)管理設(shè)備的現(xiàn)有技術(shù)方法;圖2顯示對于并入站點控制器的管理設(shè)備的現(xiàn)有技術(shù)替換方法;圖3顯示運行于繼承模式下的本發(fā)明的實施例;圖4顯示運行于原生模式(nativemode)下的本發(fā)明的實施例;圖5顯示本發(fā)明實施例的軟件組件;圖6顯示用于以下其他附圖中的UML圖中的對象模型標(biāo)記法;圖7顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖8顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖9A-9B顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖10A-10B顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖11顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖12顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖13顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖14顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖15顯示本發(fā)明實施例的對象模型的細(xì)節(jié);圖16顯示本發(fā)明的ModelBuilder的圖形用戶界面的細(xì)節(jié);圖17顯示本發(fā)明實施例的主機(jī)/客戶端接口關(guān)系;圖18顯示本發(fā)明實施例的客戶端與設(shè)備服務(wù)器之間的通信;圖19顯示本發(fā)明實施例的客戶端與設(shè)備服務(wù)器之間的通信;圖20顯示本發(fā)明實施例的工具/數(shù)據(jù)代理關(guān)系;圖21顯示本發(fā)明實施例的異步源與設(shè)備服務(wù)器之間的通信;圖22顯示本發(fā)明實施例的異步源與設(shè)備服務(wù)器之間的通信圖23顯示本發(fā)明實施例的異步源與設(shè)備服務(wù)器之間的通信圖24顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖25顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖26顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖27顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖28顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖29顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖30顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖31顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖32顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖33顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖34顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信圖35顯示本發(fā)明實施例的事件源與設(shè)備服務(wù)器之間的通信和具體實施方式本發(fā)明的設(shè)備服務(wù)器通過實現(xiàn)允許并發(fā)訪問設(shè)備信息的設(shè)備模型,為前端與后端制造(fab)提供最新的實時數(shù)據(jù)。設(shè)備服務(wù)器提供一種對象模型,其能夠表示工具的物理結(jié)構(gòu),以及其行為特性。其支持多個同時連接,多個通信接口類型——多個協(xié)議——并且包括用于添加附加標(biāo)準(zhǔn)與非標(biāo)準(zhǔn)接口的框架。利用XML配置進(jìn)行對工具模型與所有通信接口的配置,這允許完全的靈活性。本發(fā)明的設(shè)備服務(wù)器是靈活的,并且適合于現(xiàn)有的自動化解決方案,不論前端還是后端,包括組裝與測試。支持與傳統(tǒng)站點控制器與非SECS設(shè)備的集成,其中對信息的訪問仍然是關(guān)鍵的,但是較耗時,并且經(jīng)常手工采集。另外,支持多個商業(yè)通信協(xié)議,這提供了靈活的集成、低成本以及無風(fēng)險的實現(xiàn)。本發(fā)明提供了對于半導(dǎo)體工具實現(xiàn)CEM標(biāo)準(zhǔn)的手段。本發(fā)明提供了基于CEM標(biāo)準(zhǔn)的分層通用類庫,其可以用來建立半導(dǎo)體制造工具的對象模型。通過添加面向?qū)ο蟮耐ㄐ偶夹g(shù),例如DCOM與.NET,本發(fā)明擴(kuò)展了對象模型,以使多個客戶端程序(不論工廠之內(nèi)還是之夕卜)能夠同時與工具通信。這使工廠用戶能夠利用工具信息來提高生產(chǎn)率,以及使各個第三方(例如工具銷售商)能夠通過萬維網(wǎng)提供遠(yuǎn)程診斷支持。本發(fā)明還包括SECS/GEM接口組,其使得易于從繼承應(yīng)用遷移到分布式對象接口技術(shù)。通過利用當(dāng)前技術(shù)水平的基于對象的通信技術(shù)(例如DCOM、.NET、以及HTTP/SOAP)擴(kuò)展CEM模型,本發(fā)明使得能夠?qū)?yīng)用從有限的基于SECS/GEM的體系結(jié)構(gòu)遷移到基于使能解決方案供應(yīng)商之間的互操作的工業(yè)標(biāo)準(zhǔn)構(gòu)造的健壯的應(yīng)用。以下SEMI標(biāo)準(zhǔn)與本發(fā)明有關(guān),并且通過引用融入本文。從其相關(guān)標(biāo)準(zhǔn)中抽取對于每個標(biāo)準(zhǔn)的描述。SEMIE4-0699:SEMI設(shè)備通信標(biāo)準(zhǔn)1消息傳送(SECS-I)。定義了適合于半導(dǎo)體處理設(shè)備與主機(jī)之間的消息交換的通信接口(1.2節(jié),1999年6月)。SEMIE5-0301:SEMI設(shè)備通信標(biāo)準(zhǔn)2消息內(nèi)容(SECS-II)。定義了智能設(shè)備與主機(jī)之間交換的消息的解釋的細(xì)節(jié)(l.l節(jié),2001年3月)。本發(fā)明的優(yōu)選實施例支持SEMIE5中定義的消息的子集。這些消息的格式在SEMIE5中描述。確立了設(shè)備服務(wù)器內(nèi)部變量與事件的缺省變量與事件ID。對于特定工具實現(xiàn),這些值可以變化。工具實現(xiàn)者應(yīng)該提供單獨的手冊,來描述用于該工具的變量與事件。SEMIE30-1000:制造設(shè)備的通信與控制的通用模型(GEM)。GEM標(biāo)準(zhǔn)的范圍限于定義通過通信鏈路觀察的半導(dǎo)體設(shè)備的行為。SEMIE5(SECS-II)標(biāo)準(zhǔn)提供了在主機(jī)與設(shè)備之間交換的消息與相關(guān)數(shù)據(jù)項的定義。GEM標(biāo)準(zhǔn)定義應(yīng)該在哪些情況下使用哪些SECS-II消息,以及作為結(jié)果的活動應(yīng)該是什么(1.2節(jié),2000年10月)。SEMIE37-0298:高速SECS消息服務(wù)(HSMS)通用服務(wù)。HSMS定義適合于半導(dǎo)體工廠中的計算機(jī)之間消息交換的通信接口。對于其中需要較高速通信的應(yīng)用或者當(dāng)簡單的點到點拓樸結(jié)構(gòu)不足時,HSMS意圖作為SEMIE4(SECS-I)的替換。對于其中比OSI更偏好TCP/IP的應(yīng)用,HSMS還意圖作為SEMIE13(SECS消息服務(wù))的替換(l與2節(jié),1998年2月)。SEMIE37.1-96E:高速SECS消息服務(wù)單會話模式(HSMS-SS)。對于高速SECS消息服務(wù)(HSMS)通用服務(wù)的補(bǔ)充標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)的目的在于將HSMS通用服務(wù)的功能明確地限定至該應(yīng)用類型的最小需要(2與5節(jié),1999年8月)。SEMI3570:XML半導(dǎo)體公用組件SEMI3851:測量單位的XML表示SEMIE125與E125.1:設(shè)備自我描述SEMIE132與E321.1:鑒別與授權(quán)SEMIE134與E134.1:數(shù)據(jù)采集管理圖3顯示繼承模式下的本發(fā)明實施例。工廠MES310與設(shè)備服務(wù)器上的繼承模式接口320通信。設(shè)備服務(wù)器還利用到運行工具控制軟件330的設(shè)備340的繼承模式接口320通信。繼承模式接口320包括到工廠MES310的GEM繼承模式接口、到設(shè)備對象模型350的繼承模式接口、以及到設(shè)備340的SECS/GEM繼承模式接口。設(shè)備對象模型350為基于GEM標(biāo)準(zhǔn)的設(shè)備的分層模型。設(shè)備服務(wù)器通過分布式對象接口360(其包括DCOM、.NET、以及HTTP接口),支持設(shè)備與其他客戶端之間的其他交互。諸如工具性能應(yīng)用370、定制電子表格應(yīng)用380、或者網(wǎng)絡(luò)瀏覽器電子診斷3卯等客戶端通過到設(shè)備服務(wù)器的分布式對象接口360通信。本發(fā)明的繼承模式被設(shè)計來為過程工具提供繼承GEM接口,而不關(guān)心工具制造商提供的接口。這允許工廠建立到設(shè)備服務(wù)器的GEM連接,設(shè)備服務(wù)器進(jìn)而利用繼承SECS或GEM實現(xiàn)建立到過程工具的連接。雖然該特征允許所有工具都看起來相似并且使單元控制器開發(fā)容易,但是其增加了將本發(fā)明部署于現(xiàn)有繼承系統(tǒng)中的復(fù)雜度。繼承模式工具接口提供了解決這個問題的短期解決方案。在設(shè)施中部署繼承模式而不修改現(xiàn)有的單元控制器。在這種模式下,本發(fā)明作為數(shù)據(jù)采集系統(tǒng)。繼承模式允許將來自主機(jī)的所有消息不經(jīng)修改地傳遞到工具,并且在相同條件下返回,同時進(jìn)行數(shù)據(jù)采集并且提供工具的對象模型。該模式意圖作為中間部署解決方案,直至可以改進(jìn)繼承系統(tǒng)以利用完全實現(xiàn)的益處。圖4顯示非繼承或者原生模式下的本發(fā)明實施例。在該實施例中,不使用設(shè)備服務(wù)器的繼承模式特征,而是工廠MES410直接與設(shè)備服務(wù)器的分布式對象接口450通信,并且這些接口也用來與在設(shè)備440上運行的工具控制軟件430通信。設(shè)備服務(wù)器利用作為基于CEM標(biāo)準(zhǔn)的設(shè)備的分層模型的設(shè)備模型420。與繼承模式中一樣,諸如工具性能應(yīng)用460、定制電子表格應(yīng)用470、或者網(wǎng)絡(luò)瀏覽器電子診斷480等其他客戶端通過到設(shè)備服務(wù)器的分布式對象接口450通信。在圖5中顯示了關(guān)于本發(fā)明的設(shè)備服務(wù)器內(nèi)部組件的更多的細(xì)節(jié)。分布式對象接口560用來在服務(wù)器520與客戶端程序(工廠之內(nèi)和之外兩者)之間通信,如圖3與圖4所示。在本發(fā)明優(yōu)選實施例中,支持DCOM565、.NET570、以及HTTP575接口。與設(shè)備的通信利用SECS/GEM繼承模式接口545或者定制工具接口550。如上所述,與工廠MES主機(jī)的通信利用SECS/GEM繼承'模式接口525或者定制主機(jī)應(yīng)用接口535。繼承模式連接接口540用來在繼承模式下連接主機(jī)與設(shè)備。EIB框架530包含基于CEM標(biāo)準(zhǔn)的分層通用類庫。該庫用來為工廠中的每個工具建立對象模型實例。EIB探索器(explorer)510為作為工具瀏覽器的程序,其顯示特定工具的對象與屬性。EIB探索器510還允許為了測試或者調(diào)試目的改變屬性值。對象模型本發(fā)明使用每個半導(dǎo)體制造工具的對象模型。對象模型的功能很象分層數(shù)據(jù)模型,其揭示關(guān)于反映設(shè)備的結(jié)構(gòu)與操作的對象的信息。客戶端程序可以以幾種方式與模型通信。通過交換同步消息,可以檢索或者改變數(shù)據(jù)值。該過程可以用來執(zhí)行以下1、查詢模型以發(fā)現(xiàn)工具的物理或者邏輯結(jié)構(gòu)。2、查詢模型以發(fā)現(xiàn)到工具或者其組件處于哪個狀態(tài),例如服務(wù)中、未服務(wù)、空閑、活躍、非活躍。3、指揮對象執(zhí)行該對象所擁有的、并且用戶可訪問的特定功能,例如當(dāng)工具的所有或者部分必須去除服務(wù)以進(jìn)行維護(hù)時改變對象的狀態(tài),或者讀取所添加的1/0設(shè)備??蛻舳顺绦蚺c工具之間的通信也可以通過異步回叫發(fā)生,其中當(dāng)在工具內(nèi)發(fā)生特定事件時,例如當(dāng)狀態(tài)或者數(shù)據(jù)值改變時,客戶端程序接收來自對象的通知。從本發(fā)明設(shè)備服務(wù)器之外的應(yīng)用的觀點看,對象采用三種形式之一。它們是可命名對象、服務(wù)對象、以及內(nèi)部對象??擅麑ο鬄榛赟EMIE120公用設(shè)備模型可命名對象的對象??擅麑ο鬄閷崿F(xiàn)CEM可命名類的所有要求的對象。為了訪問對象,可命名對象的重要元素為具有在對象的所有擁有者內(nèi)唯一識別對象的名稱的對象,并且可以從每個擁有者檢索該對象。另外,可命名對象具有一組定位符,其在模型內(nèi)唯一地識別對象,通過對象的每個擁有者識別一個。這些對象看起來類似于E39對象,但是可以符合或不符合該標(biāo)準(zhǔn)。在每個對象具有一組屬性以及可以在對象上執(zhí)行的服務(wù)的意義上,它們是類似的。這些對象不類似是因為它們(缺省地)沒有ObjID或者ObjType屬性,并且相同類的對象可能有不同的屬性與服務(wù)。某些對象符合E39對象服務(wù),并且將被標(biāo)注。服務(wù)對象為可命名對象上的服務(wù)提供的可命名對象的支持對象。這些對象一般提供對于特定可命名對象為可選地取得的附加描述信息或者附加服務(wù)。這些對象可以具有或不具有識別它們的名稱。這些對象不可用做可命名對象的子對象,并且沒有唯一識別它們的定位符。這些對象可以作為引用或者作為值返回。內(nèi)部對象為通過.NET接口根本不可見的對象。在實現(xiàn)設(shè)備服務(wù)器時,使用這些對象,并且與客戶端無關(guān)。本發(fā)明中的每個對象的定義描述了對象保持的數(shù)據(jù)(屬性與相關(guān)值),其保持該數(shù)據(jù)是只讀還是可讀/寫,對象的可能行為(狀態(tài)模型)、以及用戶可以訪問以控制對象行為的服務(wù)(方法)。圖6顯示在以下附圖中的UML圖中使用的對象模型標(biāo)記方法。UML圖中定義的所有對象都是可命令對象。圖中不出現(xiàn)服務(wù)對象與內(nèi)部對象。相關(guān)服務(wù)對象在每個附圖的文本中簡單描述。UML圖中以正常文本顯示的對象名稱為可能存在于工具模型內(nèi)的具體對象。UML圖中以斜體顯示的對象名稱為抽象對象,并且必須由具體對象繼承??捎玫膶ο舐淙霂讉€組之一。這些組是應(yīng)用根對象、接口對象、管理對象、以及CEM框架對象。下面段落中描述這些組的每個組中的對象。應(yīng)用根對象在優(yōu)選實施例中,本發(fā)明的設(shè)備服務(wù)器暴露單個應(yīng)用根對象,其允許訪問服務(wù)器中所有其他對象。EibApplicationRoot對象提供該對所有信息的單個訪問點。應(yīng)用根對象包含設(shè)備的CEM模型、向/從設(shè)備服務(wù)器提供信息的接口、以及幾個對象管理器、以及定義對象。定義對象沒有顯示為對象層次的一部分,這是因為它們不是可命令對象,并且通過服務(wù)訪問。應(yīng)用根對象被添加到CEM層次的頂部,以保持CEM定義的設(shè)備模型獨立于設(shè)備服務(wù)器提供的接口與管理功能。為了符合SEMIE39,應(yīng)用根對象為系統(tǒng)內(nèi)的所有對象提供基本E39服務(wù)。其包括使系統(tǒng)內(nèi)的所有可命名對象看起來都是E39對象的邏輯。其通過以下來做到這一點將ObjID與ObjType屬性的概念添加到還沒有它們的可命名對象。為了完全符合E39,對于工具模型存在某些依賴性。在優(yōu)選實施例中,不要求符合E39,從而設(shè)備服務(wù)器不實施建模規(guī)則。應(yīng)用根對象提供了用于訪問定義對象的一組服務(wù)。定義對象為定義可以在整個對象模型中使用的可重用定義的對象。所有定義對象都是服務(wù)對象。在優(yōu)選實施例中支持以下定義參數(shù)類型定義、單位定義、以及狀態(tài)機(jī)定義。參數(shù)類型定義定義模型中使用的數(shù)據(jù)類型。系統(tǒng)內(nèi)可命名對象的所有屬性都引用參數(shù)類型定義之一。使用大量的參數(shù)類型定義,另外還可以添加任意數(shù)目的用戶定義的參數(shù)類型定義。除枚舉、數(shù)組、以及結(jié)構(gòu)之外,參數(shù)類型定義還能夠表示本發(fā)明中定義的所有筒單數(shù)據(jù)類型。單位定義定義模型中使用的測量單位??擅麑ο笊系乃袑傩远伎梢砸脝挝欢x之一,以定義該屬性的測量單位。沒有到單位對象的鏈接的屬性沒有測量單位。狀態(tài)機(jī)定義定義模型中使用的狀態(tài)機(jī)。系統(tǒng)中可命名對象上的所有狀態(tài)機(jī)屬性都引用狀態(tài)機(jī)定義之一。狀態(tài)機(jī)定義定義合法狀態(tài)、狀態(tài)之間的轉(zhuǎn)移、以及當(dāng)發(fā)生轉(zhuǎn)移時生成的事件。狀態(tài)機(jī)內(nèi)的任何狀態(tài)都可能由子狀態(tài)機(jī)構(gòu)成。圖7顯示應(yīng)用根對象層次。顯示了對于所有內(nèi)部定義的Commlnterface與EibModelManager對象的EibApplicationRoot層次。許多管理器被單獨配置,并且不必包含在設(shè)備模型內(nèi)。所有接口被單獨配置,并且不必包含在設(shè)備模型內(nèi)。接口對象Commlnterface為到本發(fā)明的設(shè)備服務(wù)器的所有接口的抽象基類。到服務(wù)器的接口為負(fù)責(zé)向或從CEM模型提供或檢索數(shù)據(jù)的通信機(jī)制。沒有對象表示它的、唯一的到CEM的接口為原生C#。在優(yōu)選實施例中,實現(xiàn)本發(fā)明的軟件以C弁編寫,并且運行在.NET框架上。唯一內(nèi)部Commlnterface為GEMInterface??梢蕴砑悠渌ㄖ平涌?。GEMInterface對象表示到設(shè)備服務(wù)器的SECS/GEM接口。接口可以為到工具的接口或者到主機(jī)的接口。GEMInterface包括提供關(guān)于接口的配置的信息、并且允許配置接口某些方面的幾個對象。以下討論關(guān)于主機(jī)GEM接口與工具SECS/GEM接口的更多的細(xì)節(jié)。管理器對象EibModelManager為系統(tǒng)中所有管理器的抽象基類。管理器為負(fù)責(zé)類似對象的采集(collection)的對象。管理器一^fe提供獲得其管理的采集對象的方法、以及對對象聚集執(zhí)行動作的方法。定義了幾個EibModelManager'對象??梢蕴砑悠渌ㄖ乒芾砥鲗ο蟆perationManager負(fù)責(zé)管理Operation與Task對象。OperationManager具有基于對工作的XML描述建立控制工作以及處理工作的功能。Operation提供要在設(shè)備上運行的工作的控制定義。Task定義對某些材料執(zhí)行處理所需的處理與過程步驟。Operation與Task對象都具有OperationStateChangeEvent,用來通知當(dāng)工作狀態(tài)改變時通知客戶端。圖8顯示OperationManager對象層次。ProcessJobManager負(fù)責(zé)管理E40ProcessJob對象。其提供訪問ProcessJob對象的方法。ProcessJob對象表示在工具上定義的E40處理工作。管理器不提供任何E40處理工作服務(wù)。其只披露存在于300mm工具上的E40ProcessJob對象。圖9A顯示ProcessJobManager對象層次。ControlJobManager負(fù)責(zé)管理E94ControlJob對象。其提供訪問ControlJob對象的方法。ControlJob對象對象表示在工具上定義的E94控制工作。管理器不提供任何E94控制工作服務(wù)。其只披露存在于300mm工具上的E94ControlJob對象。圖9B顯示ControlJobManager對象層次。ExceptionManager負(fù)責(zé)管理ExceptionCondition對象。其提供從單個位置訪問CEM才莫型內(nèi)定義的ExceptionCondition只于象的方法。ExceptionCondition對象不是ExceptionManager的子對象。ExceptionCondition由報告ExceptionCondition的CEM對象擁有。在ExceptionManager內(nèi),ExceptionCondition對象的名稱不一定是唯一的。ExceptionManager通過Locator(定位符,其是唯一的)而非名稱管理ExceptionCondition對象。圖10A顯示ExceptionManagerlcondition對象層次。AppLogManager負(fù)責(zé)管理AppLog對象。AppLog對象負(fù)責(zé)記錄(logging)關(guān)于設(shè)備服務(wù)器的特定組件的信息。圖IOB顯示AppLogManager對象層次。MaterialManager負(fù)責(zé)管理Material對象。MaterialManager具有設(shè)備的CEM模型中定義的每個材料子類型的MaterialTypeManager。MaterialTypeManager提供從單個位置建立、訪問、以及釋放駐留在CEM模型內(nèi)的MaterialLocation對象中的Material對象的方法。每個MaterialTypeManager都具有兩個MaterialManagerEvent對象,一個用來建立材料,一個用來釋放材料。圖11顯示MaterialManager對象層次。MaterialLocationManager負(fù)責(zé)管理MaterialLocation對象。MaterialLocationManager提供在模型內(nèi)將材料從一個位置移動到另一個位置的幾個方法。MaterialLocationManager具有設(shè)備的CEM模型中定義的每個材津牛子類型的MaterialLocationTypeManager。MaterialLocationTypeManager^是供從單個位置建立、訪問、以及釋放CEM模型內(nèi)定義的MaterialLocation對象的方法。圖12顯示MaterialLocationManager對象層次。CEM框架對象CEM標(biāo)準(zhǔn)及其根據(jù)本發(fā)明的實現(xiàn)定義通用對象類的層次,所述通用對象類用作構(gòu)造塊來表示MES通過通信接口觀察到的半導(dǎo)體工具的物理和/或邏輯視圖。圖13顯示CEM標(biāo)準(zhǔn)中描述的抽象對象和具體對象以及本發(fā)明的實現(xiàn)提供的附加對象的接口繼承層次。抽象對象對象定義上述具體子類型對象的屬性、狀態(tài)模型、以及服務(wù)(方法或者行為)。抽象對象不直接實現(xiàn)。CEM標(biāo)準(zhǔn)及其根據(jù)本發(fā)明的實現(xiàn)定義通用對象類的層次,所述通用對象類用作構(gòu)造塊來表示MES通過通信接口觀察到的半導(dǎo)體工具的物理和/或邏輯視圖。這些對象類包括以下Equipment、Module、Subsystem、以及IODevice。CEM對象的一個首要目的是允許數(shù)據(jù)和可用命令與工具上它們實際所屬的硬件組件相關(guān)聯(lián)。本發(fā)明提供了這些對象的每一個的預(yù)先定義的命令與屬性的標(biāo)準(zhǔn)集合。除這些之外,可以按照需要通過工具模型添加附加的定制命令與屬性,以表示該工具的特定功能。CEM標(biāo)準(zhǔn)及其根據(jù)本發(fā)明的實現(xiàn)定義修飾以上定義的通用構(gòu)造塊的特定對象。這些對象的某些形式上由CEM定義,其他為本發(fā)明特有。這些對象包括Clock、ProcessDurableLocation)、ExceptionCondition、BaseEvent(SimpleEvent,StateMachineEvent)、StateMachine。CemObject為定義CEM中定義的對象的抽象基類。所有CEM對象都具有uid屬性,其定義基于CEM的對象的全局唯一的標(biāo)識符。CemObject可以具有零或多個SimpleEvent或者零或多個StateMachine對象。E390bject為定義E39ObjectSerices對象所需的附加屬性的抽象基類。所有E390bject都具有Name以及定義E39Object類型的ObjType。EquipmentElement為提供在工具中建模的每個硬件構(gòu)件的基本功能的抽象基類。EquipmentElement提供組件的服務(wù)狀態(tài)以及描述該組件的屬性集合。EquipmentElement可以具有零或多個SimpleEvent以及ExceptionCondition對象。EquipmentElement可以具有零或多個ExceptionCondition對象。SoftwareModule對象為表示組件的軟件或者固件的服務(wù)對象。Abstractsubsystem為表示可能處理材料的所有組件所需的基本功能的抽象類。除EquipmentElement提供的所有功能之夕卜,Abstractsubsystem還可以具有零或多個MaterialLocation對象。AbstractModule為表示進(jìn)行處理或者執(zhí)行配方的所有組件所需的基本功能的抽象類。除Abstractsubsystem提供的所有功能之外,AbstractModule提■供組件的行為狀態(tài)以及關(guān)于處理材料的命令與屬性的集合。Equipment對象位于分層的應(yīng)用根,并且基于AbstmctModule。其由其下的其他對象構(gòu)成,即,其為Module、Subsystem、以及IODevice對象的聚集。Equipment對象具有總是存在于其上的Clock對象。Module對象表示處理過程的主要子系統(tǒng)。Module基于AbstractModule,并且可以為其〈也Module、Subsystem、以及IODevice對象的聚集。Subsystem對象表示設(shè)備的子系統(tǒng)以及子組合組件。Subsystem對象基于Abstractsubsystem,并且可以為其他Subsystem、以及IODevice對象的聚集。IODevice對象表示最低的復(fù)雜度,并且包括例如I/O設(shè)備,例如傳感器、致動器、以及智能傳感器/致動器設(shè)備,其向MES提供處理數(shù)據(jù)。IODevice基于EquipmentElement。Clock對象提供計時機(jī)制。時鐘提供利用多種格式請求與設(shè)置當(dāng)前時間與曰期的功能。CEM模型在Equipment對象上具有單個時鐘對象。ExceptionCondition對象表示工具上可能發(fā)生的異常條件或者狀態(tài)。異常條件可以為警報或者錯誤。警報為可能危及人員、設(shè)備、或者正在處理的材料的異常情況。錯誤為不會危及人員、設(shè)備、或者材料的、并且是可恢復(fù)的情形。MaterialLocation對象表示工具中能夠保持材料的位置。本發(fā)明的優(yōu)選實施例添加了MaterialLocation對象子類型,其識別能夠保持特定材料類型(包括可消耗材料、基底、載體、以及過程耐用材料)的材料的位置。除了是CemObject之外,所有MaterialLocation對象還都是E39對象。由于本發(fā)明的優(yōu)選實施例不支持'多繼承(一個對象不能從多于一個對象中導(dǎo)出)這一實際情況,這沒有在圖中顯示。相反,MaterialLocation對象直接實現(xiàn)E390bject的所有特征。ConsumableLocation對象表示工具中能夠保持可消耗材料的位置??上牟牧蠟楣ぞ咴诋a(chǎn)生產(chǎn)品的處理期間消耗的某些材料。Consumable對象表示可消耗材料。Consumable對象為符合E39的對象。SubstrateLocation對象表示工具中能夠保持基底的位置?;诪楣ぞ哒谔幚淼囊粋€單位的材料。一旦完成了基底上所有處理,基底就會成為一或多個產(chǎn)品。Substrate對象表示基底。Substrate對象為符合E39的對象。CarrierLocation對象表示工具中能夠放置載體的、或者存在于工具內(nèi)用來保持材料的位置。載體能夠保持一或多個單位的特定材料類型(可消耗材料、基底、或者過程耐用材料)。Carrier對象表示載體。Carrier對象為符合E39的對象。ProcessDurableLocation對象表示工具中過程耐用材料所在的位置。過程耐用材料為在產(chǎn)生產(chǎn)品的處理中工具使用的可交換或可替換物品。所用的過程耐用材料經(jīng)常依賴于工具正在生產(chǎn)的產(chǎn)品。ProcessDurable對象表示過程耐用材料。ProcessDurable對象為符合E39的對象。StateMachine對象表示可命名對象上的屬性實現(xiàn)的狀態(tài)機(jī)實例。其包含到對于該狀態(tài)機(jī)的狀態(tài)機(jī)定義的引用。在復(fù)雜狀態(tài)機(jī)的情況下,StateMachine對象將包含子StateMachine對象,對于狀態(tài)機(jī)定義中的每個子狀態(tài)機(jī)都有一個子StateMachine對象。StateMachine對象還包括子StateMachineEvent對象集合,對于狀態(tài)機(jī)可能生成的每個事件都有一個子StateMachineEvent對象。EibModelEvent對象為表示不能邏輯地或者容易地建模為模型中的值的變化的、在工具上出現(xiàn)的情況的抽象對象。所有工具都有控制工具上的動作的軟件。CEM模型沒有對于該軟件的完全的可見性。具有對于軟件的完全的可見性將使CEM模型變得比必須的更復(fù)雜、并且更難于理解。CEM中的事件用來對該軟件中的動作或者狀態(tài)變化建模。SimpleEvent對象表示內(nèi)部工具軟件采f^的事件或者動作。其表示工具才莫型中的該事件,并且提供當(dāng)在工具上發(fā)生事件時通知外部系統(tǒng)的手段。StateMachineEvent對象表示狀態(tài)機(jī)可能生成的事件。其提供當(dāng)狀態(tài)機(jī)轉(zhuǎn)移時通知外部系統(tǒng)的手段。狀態(tài)機(jī)中的事件落入以下一般類別中的一個1、發(fā)生了狀態(tài)改變對于狀態(tài)機(jī)內(nèi)的所有可能轉(zhuǎn)移,狀態(tài)機(jī)生成單個事件。2、狀態(tài)機(jī)轉(zhuǎn)移到了一個狀態(tài)對于狀態(tài)機(jī)可能進(jìn)入的每個狀態(tài),狀態(tài)機(jī)都生成一個事件。3、狀態(tài)機(jī)轉(zhuǎn)移對于從源狀態(tài)到新狀態(tài)的每個可能轉(zhuǎn)移,狀態(tài)機(jī)都生成一個事件。圖14顯示IonImplanter的樣本對象^f莫型。接曰概述本發(fā)明允許程序員利用多個商業(yè)通信協(xié)議開發(fā)可以適用于任何自動化解決方案的接口。對于主機(jī)應(yīng)用,提供客戶端/服務(wù)器運行時體系結(jié)構(gòu),其使客戶端應(yīng)用(工廠內(nèi)部和外部)能夠通過分布式基于對象通信技術(shù)(例如DCOM、.NET、HTTP/SOAP、GEM與定制接口)的支持與模型通信。對于工具應(yīng)用,本申請可以利用SECS或者定制連接從外部訪問設(shè)備或者組件數(shù)據(jù)。在工具中,利用到設(shè)備服務(wù)器的直接連接,完成了解決方案。為了利用上述的SECS/GEM繼承接口,對象模型必須能夠處理在主機(jī)與工具之間交換的SECS消息。為了做到這一點,需要定義特定的配置參數(shù),并且需要將SECS/GEM變量映射到對象模型中的對象以及對象內(nèi)的特定屬性。繼承模式有利于將本發(fā)明安裝到繼承工廠基礎(chǔ)結(jié)構(gòu)中,而對繼承系統(tǒng)實質(zhì)上沒有改變?,F(xiàn)有系統(tǒng)所需的唯一改變?yōu)橹匦屡渲霉S單元控制器應(yīng)用,以與繼承模式下的設(shè)備服務(wù)器通信,而非直接與主機(jī)通信。然后配置繼承模式與工具通信.。如上參照圖3、4、5所述,繼承模式連接允許設(shè)備服務(wù)器與主機(jī)實際共享到工具的單個SECS連接。對于設(shè)備服務(wù)器,繼承模式作為SECS/GEM繼承接口。在本發(fā)明的優(yōu)選實施例中,Y吏用分布式對象通信技術(shù),例如DCOM與.NET,以使多個客戶端程序能夠同時訪問CEM對象模型。點到點的SECS/GEM接口不能提供該功能。通過允許工廠內(nèi)和外的多個客戶端程序訪問CEM對象模型,一次可以有多于一個的用戶具有關(guān)于工具性能的操作數(shù)據(jù),從而有利于更好的工具管理決策。諸如DCOM與.NET等分布式對象通信技術(shù)實現(xiàn)為面向?qū)ο筮h(yuǎn)程程序調(diào)用(RPC)風(fēng)格的通信。在典型RPC通信中,客戶端應(yīng)用通過調(diào)用客戶端占位程序(stub),啟動遠(yuǎn)程功能。占位程序配置數(shù)據(jù)(將調(diào)用參數(shù)打包到請求消息中),并且啟動線協(xié)議,以將消息發(fā)送給服務(wù)器。服務(wù)器占位程序解包消息,并且調(diào)用對象上的所請求的功能。該功能產(chǎn)生的數(shù)據(jù)通過相同的逆向過程送回。ModelBuilder本發(fā)明的優(yōu)選實施例包含稱為ModelBuilder的工具。ModelBuilder為基于.NET的GUI工具,用來建立與編輯設(shè)備服務(wù)器使用的設(shè)備工具模型設(shè)備服務(wù)器。這些設(shè)備模型可以保存為XML格式的文件,該文件然后對XSD模式文件驗證。當(dāng)啟動時,設(shè)備服務(wù)器可以讀取新建立的設(shè)備模型XML文件。ModelBuilder的特征簡化了建立與維護(hù)設(shè)備服務(wù)器使用的符合SEMICEM的設(shè)備模型的任務(wù)。減少了建造復(fù)雜設(shè)備模型的時間。交互式的GUI允許人以分層關(guān)系定義設(shè)備的視圖。用戶界面的標(biāo)準(zhǔn)窗口感官(look-and-feel)慣例與行為。支持配置用戶定義的定制接口,其由用戶提供的XSD模式文件定義。容易將接口中的元素鏈接到模型中的對象。例用建立基本模型結(jié)構(gòu)的所有數(shù)據(jù)相關(guān)設(shè)備模型數(shù)據(jù),導(dǎo)入GWGEMGCD文件。本發(fā)明的優(yōu)選實施例通過XML配置文件配置,該文件指定管理器與服務(wù),工具模型以及接口。XML文件的語法由一組XML模式定義語言(XSD)模式約束。模式描述了XML文檔實例需要符合的結(jié)構(gòu),其不僅提供了語法,而且定義了可以在XML文檔中表示元素與屬性的方式。模式也可以導(dǎo)入或者引用其他模式。本發(fā)明使用"頂級"模式,"EIB.xsd,,,其定義配置的基本框架。該框架包括管理器與服務(wù)、以及將導(dǎo)入工具模型模式與接口模式的元素的定義。ModelBuilder利用XML模式來發(fā)現(xiàn)配置項目及其結(jié)構(gòu)。也可以使ModelBuilder知道用戶定義的XSD模式,以配置添加到設(shè)備服務(wù)器的定制接口。在ModelBuilder啟動時,讀取作為產(chǎn)品一部分的模式以及定制接口模式。ModelBuilder應(yīng)用基于利用ModelBidlderGUI配置的工具模型,建立XML配置文件??梢詮念^建立模型,或者可以通過打開現(xiàn)有的模型文件來建立模型。GUI菜單上New選項將生成"頂級"模式內(nèi)那些必須元素的缺省模型。GUI菜單上Open選項將允許用戶選擇將用來建立模型的現(xiàn)有XML配置文件。讀取該文件,并且針對模式驗證。如果成功,則建立工具模型。圖15顯示ModelBuilderGUI及其基本組件,以下將詳細(xì)描述。標(biāo)題條顯示正在編輯的模型文件名稱。〈newModel〉指示新建立的、還沒有保存的模型。文件名稱后的*指示已編輯/未保存的變化。菜單條包含建立與操縱模型的菜單選項。工具條包含具有到特定菜單項的快捷方式的圖標(biāo)按鈕。按鈕包括NewModel(新模型)、OpenModel(打開模型)、SaveModel(保存模型)、Cut(剪切)、Copy(復(fù)制)、Paste(粘貼)、Undo(撤銷)、Redo(重復(fù))、FindObject(查找對象)、以及ValidateModel(驗證模型)。模型面板以樹形顯示模型。通過點擊文本左側(cè)的+或-,可以擴(kuò)展或者收縮具有子節(jié)點的節(jié)點。點擊節(jié)點會用該模型節(jié)點的信息填充屬性面板與注釋面板。熱點提示(hottip)顯示節(jié)點類型。右擊顯示具有對于該特定節(jié)點可能的動作的上下文菜單,包括可以作為子節(jié)點添加的可能的節(jié)點類型。屬性面才反顯示關(guān)于節(jié)點的一般信息,例如對象的名稱、類型、定位符、以及具有每個屬性的名稱與值的編輯面板??删庉媽傩杂摄U筆圖標(biāo)識別。屬性如下排列對象識別屬性(以粗體文本顯示)、必需屬性(以正常文本顯示)、以及可選屬性(以斜體文本顯示)。注釋面板允許用戶在ModelBuilder中輸入、觀看、以及編輯用戶定義的注釋。注釋將在工具模型的XML文檔(nomenclature)中逐字出現(xiàn)。注釋附接于所選的對象節(jié)點。錯誤面板顯示當(dāng)進(jìn)行模型加載、驗證、以及保存操作時遇到的錯誤。點擊錯誤會選擇和顯示模型面板中的對象,其屬性在屬性面板中。如果錯誤也與特定屬性關(guān)聯(lián),則該屬性也將在屬性面板中被選擇。雙擊行會顯示具有錯誤文本的彈出菜單。狀態(tài)條顯示當(dāng)執(zhí)行動作時的狀態(tài)信息。在下表中顯示ModelBuilder的優(yōu)選實施例中可用的菜單命令。<table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table>菜單,這是因為只有可以作為該節(jié)點的子節(jié)點的對象類型可以出現(xiàn)。如果所選節(jié)點可以添加子節(jié)點,則使能。ImportGWConfig(gcd)導(dǎo)入GCD文件,其可以通過文件對話窗口選擇,并且將其合并到新近建立的模型中。如果在模型面板中顯示新模型,則使能。ToolModel(工具模型)(xml)導(dǎo)入工具模型文件,其可以通過文件對話窗口選擇,并且將其合并到現(xiàn)有模型中。如果在模型面板中顯示模型,則使能。ToolsUIDs顯示子菜單,其允許為所選節(jié)點("重新生成節(jié)點UIDs")或者由所選節(jié)點領(lǐng)頭的子樹("重新生成子樹UIDs"),重新生成統(tǒng)一標(biāo)識符(UID)類型的屬性的值。如果在模型面板中顯示模型,則使能。Options(選項)顯示選項對話框,允許用戶指定工具模型以及定制接口模式的缺省文件夾。選項在用戶注冊表下保存。HelpAbout(關(guān)于)顯示"關(guān)于"對話框。圖16顯示編輯對象屬性時使用的屬性窗口的概貌。當(dāng)編輯對象屬性時,知道在工具模型內(nèi)的位置是重要的。請注意圖16中左側(cè)模型板塊與右側(cè)屬性選項卡板塊之間關(guān)系。屬性選項卡板塊指示以下三個參數(shù)Object(長箭頭)可以編輯的屬性屬于此處所指的對象;Type:Type指示對象的類型;以及Locator(短箭頭)Locator指示工具模型內(nèi)對象的位置。Locator文本可以拷貝以備以后當(dāng)編輯其他對象的屬性時使用(即粘貼到文本框或者單選列表框中)。Locator指示接口內(nèi)對象的接口名稱。Locator標(biāo)簽還被重新命名為Interface。可以改變在屬性面板中以黃色或者藍(lán)色鉛筆圖標(biāo)顯示的Object屬性。藍(lán)色鉛筆圖標(biāo)指示該屬性具有提供附加編輯信息的熱提示。這些屬性可以三種方式之一編輯文本框——允許用戶定義的文本輸入項;多選列表框——可以選擇多個預(yù)先定義的值;以及單選列表框——只可以選擇一個預(yù)先定義的值。驗證工具模型確認(rèn)工具模型的完整性。如果在模型中沒有錯誤,則在ModelBuilder狀態(tài)條中出現(xiàn)驗證成功消息。如果工具模型包含錯誤,則驗證將暴露這些錯誤。錯誤的類型在ModelBuilderGUI的錯誤面板中顯示。主機(jī)/客戶端到服務(wù)器的通信圖17顯示到本發(fā)明的設(shè)備服務(wù)器的可能的主機(jī)/客戶端連接。在優(yōu)選實施例中支持以下接口類型,.NET、DCOM、GEM、EDA、以及定制接口。NET接口.NET客戶端接口使在一個計算機(jī)上運行的.NET實現(xiàn)的程序能夠利用對象串行化訪問在不同計算機(jī)上運行的另一程序的對象和方法。對象串行化允許通過網(wǎng)絡(luò)傳遞復(fù)雜數(shù)據(jù)結(jié)構(gòu),而不用編寫任何代碼來重新構(gòu)造它們。這使設(shè)備服務(wù)器可用于在任何.NET應(yīng)用中編寫的.NET客戶端。.NET遠(yuǎn)程(Remoting)接口為用來連接到本發(fā)明的設(shè)備服務(wù)器的最基本的網(wǎng)關(guān)。該框架允許對象在遠(yuǎn)程客戶端與服務(wù)器應(yīng)用之間相互交互。該外部接口利用.NET連接從主機(jī)或客戶端連接到設(shè)備服務(wù)器。當(dāng)啟動外部接口時,接口應(yīng)用將需要通過打開到設(shè)備服務(wù)器的連接,驗證設(shè)備服務(wù)器正在運行。關(guān)于.NET遠(yuǎn)程的基本信息可以在微軟軟件開發(fā)人員網(wǎng)絡(luò)(MSDN)中諸如"MicrosoftNETRemoting:ATechnicalOverview"等文章找到。以下的討論呈現(xiàn)對該機(jī)制以及其與本發(fā)明的關(guān)系的簡要描述。.NET遠(yuǎn)程可以通過HTTP或者TCP通道發(fā)生。如果性能是主要關(guān)心的,則.NET遠(yuǎn)程消息可以編碼為二進(jìn)制(通過二進(jìn)制格式化器),或者如果互操作性是主要關(guān)心的,則NET遠(yuǎn)程消息可以編碼為XML(通過SOAP格式化器)。缺省地,TCP通道使用二進(jìn)制格式化來串行化消息。這是用于本發(fā)明優(yōu)選實施例的機(jī)制,如以下討論的例子所示。遠(yuǎn)程框架的主要價值在于提供一種筒單機(jī)制來訪問遠(yuǎn)程對象上的方法,并且獲得返回的結(jié)果。.NET接口為本發(fā)明優(yōu)選實施例中可用的幾種接口中的一個。該接口必須在工具模型定義,就像任何其他接口一樣。如果它不在工具模型定義,則.NET遠(yuǎn)程接口將不可用。在本發(fā)明的優(yōu)選實施例中,上述的ModelBuilder工具可以用來利用以下步驟驗證或者添加.NET遠(yuǎn)程接口到模型1、在ModelBuilder中打開工具模型。2、察看^Ui定義的對象。如果存在.NET遠(yuǎn)程接口,則其總是第一個接口(緊接Equipemnt節(jié)點之后)。如果其存在,則點擊它來察看配置。3、為了添加.NET遠(yuǎn)程接口,右擊Root(4艮),并且選擇Add(添加)〉Remotelnterface(遠(yuǎn)程接口)。設(shè)置對其進(jìn)行遠(yuǎn)程接口的名稱、協(xié)議、以及端口號。另外,如果計算機(jī)中存在多個網(wǎng)卡,則可以設(shè)置bindTo屬性,以將服務(wù)器綁定到特定網(wǎng)絡(luò)接口。以下具有相關(guān)數(shù)據(jù)類型的屬性為Remotelnterface對象的一部分name(字符串)遠(yuǎn)程接口的名稱。這是遠(yuǎn)程客戶端在與該服務(wù)器連接時將使用的名稱。protocol(枚舉)當(dāng)連接服務(wù)器時使用的協(xié)議(top或者h(yuǎn)ttp)。port(整數(shù))服務(wù)器要綁定的TCP/IP端口號。bindTo(字符串)對于具有多個網(wǎng)卡的系統(tǒng),將其設(shè)置為要綁定的網(wǎng)卡的IP地址。對于其他系統(tǒng)可以為其留下空白。本發(fā)明的工具模型具有附加的配置選項,其指示是否EibSever對象應(yīng)該是遠(yuǎn)牙呈的。該酉己置選項為NetRemotinglnterface元素上的remoteEibSever。該選項缺省為真,指示EibSever對象將是遠(yuǎn)程的。如果該選項設(shè)置為假,則禁止到設(shè)備服務(wù)器的所有標(biāo)準(zhǔn)訪問。本發(fā)明的優(yōu)選實施例支持安裝有多個網(wǎng)絡(luò)接口卡(NIC)的系統(tǒng)。為了使能該多個網(wǎng)絡(luò)特征,Remotelnterface定義中的bindTo屬性必須設(shè)置為要綁定的地址。一旦作了這一點,客戶端必須注意與正確的IP地址連4妄。請注意該例子只有當(dāng)運行EibExplorer的本i也實例日十才適用。對于從C^.Net客戶端連接到設(shè)備服務(wù)器,必須發(fā)生三個基本步驟。步驟1:打開通道。在可以訪問對象之前,必須在遠(yuǎn)程框架注冊至少一個通道。步驟2:建立代理對象。步驟3:訪問設(shè)備服務(wù)器應(yīng)用根。一旦建立了到設(shè)備服務(wù)器的連接,則可以通過GetApplicationRoot()方法獲得到應(yīng)用根的引用。該應(yīng)用根對象將提供到所有設(shè)備服務(wù)器對象與方法的訪問。用于連接的url必須確切匹配工具模型中用于.NET遠(yuǎn)程的url。具體地,url為以下形式tcp:〃machineName:port/.netName。例如,如果工具才莫型包括以下.NET遠(yuǎn)程定義<Eib:RemoteInterfaceprotocol="tcp"port="8201"name="myImpianterModer>,并且其在IP192.168.1.101上,則客戶端應(yīng)該利用URL:tcp:〃192.168.1.101:8201/mylmplanterModel訪問設(shè)備服務(wù)器??蛻舳藨?yīng)該保證設(shè)備服務(wù)器連接健康。這可以通過連接健康模型進(jìn)行,健康模型與服務(wù)器心跳同步(heartbeat),并且如果心跳失敗,則嘗試重新連接。基本消息消息落入兩種基本類型關(guān)于事件報告的消息以及關(guān)于事件之外的所有東西的消息。非事件相關(guān)消息包括獲得/設(shè)置屬性值(GetAttrNames(),GetAttr(),SetAttr()…)遠(yuǎn)程命令(ObjectAction()...)處理程序(MakeRecipe().,.)WaferMap事件相關(guān)消息包括屬性設(shè)置事件簡單事件定制事件跟蹤事件請注意設(shè)備服務(wù)器使用的事件系統(tǒng)要求客戶端也是服務(wù)器。設(shè)備服務(wù)器自動向客戶端進(jìn)行直接遠(yuǎn)程調(diào)用。為了設(shè)置屬性上的監(jiān)聽器,在保持具有屬性名稱的屬性的對象上調(diào)用AddAttributeSetListener。為了設(shè)置事件上的監(jiān)聽器,利用可選的報告在事件對象上調(diào)用IBaseEvent的AddEventListener()。當(dāng)事件發(fā)生時,客戶端將通知應(yīng)用中的EventTriggered()方法。如果在調(diào)用AddEventListener()時指定了報告,則將利用該通知提供報告中的屬性值。.Net中的遠(yuǎn)程對象生命期管理關(guān)于遠(yuǎn)程對象生命期管理的基本信息可以在名稱為"ManagingtheLifetimeofRemote.NETObjectswithLeasingandSponsorship"的MSDN文章中找到。為任何應(yīng)用建立.NET客戶端要求理解對對象生命期管理的.NET方式。當(dāng)建立對象時,為該對象建立"租約"。將該對象的生存時間設(shè)置為該對象的初始租約時間,一般大約5分鐘。每次對對象進(jìn)行遠(yuǎn)程引用時,將該對象的存活時間重新設(shè)置為更新租約時間。只要繼續(xù)對對象進(jìn)行引用,該對象將保持存活。如果存活時間變?yōu)?,則遠(yuǎn)程層釋放該對象。如果仍然存在對該對象的本地引用,則其只是在本地保持存活。如果不存在本地引用,則對象被垃圾對象被釋放,對象可以具有發(fā)起方。當(dāng)對象租約過期時,系統(tǒng)將查詢每個發(fā)起方。然后根據(jù)發(fā)起方重新設(shè)置存活時間。該機(jī)制的優(yōu)點在于客戶端除了通過反復(fù)輪詢對象,無法通過不釋放其對對象的引用,使服務(wù)器"泄露(leak)"存.儲器。該機(jī)制的缺點在于客戶端與服務(wù)器必須對保持對象存活更主動。在本發(fā)明的優(yōu)選實施例中,所有靜態(tài)對象都具有有限的生命期。對于動態(tài)對象,必須定義租約與發(fā)起方。如果在遠(yuǎn)程中可用動態(tài)對象,則其或者在此處描述或者被賦予有限的生命期。動態(tài)對象落入兩個生命期確定類型之一服務(wù)器激活的對象或者主機(jī)客戶端/源激活的對象。服務(wù)器激活的動態(tài)對象服務(wù)器建立并且維持對于所有客戶端的服務(wù)器激活的對象。因此,本發(fā)明將建立發(fā)起方,只要對象存在,發(fā)起方就將保持對象存活。當(dāng)釋放對象時,將去除發(fā)起方,從而當(dāng)存活時間過期時允許對象被垃圾回收。服務(wù)器激活的動態(tài)對象為Operation:通過OperationManageri殳置生命4月管J里酉己置。OperationManager將管理生命期。Task:通過OperationManager設(shè)置生命期管理配置。Operation將管理生命期。OperationStateChangeEvent:通過OperationManageri殳置生命其月管J里酉己置。ControlJob/ProcessJob將管理生命期。MaterialLocation:模型中的靜態(tài)位置將具有有限的生命期。動態(tài)位置將由MaterialLocationTypeManager管i里與酉己置。Material:通過MaterialTypeManager設(shè)置和管理生命期管理配置。主機(jī)客戶端或源激活的對象客戶端或源激活的對象為ReportTraceReportRecipeNotification(例如IEventListener)CustomEventISynchronousSource客戶端(或源)激活的對象以不同的方式處理。本發(fā)明的優(yōu)選實施例不允許客戶端直接建立任何對象,而是為它們提供建立對象的方法。在這種情況下,對象是特定客戶端的。對于客戶端,當(dāng)可能時,建立對象的發(fā)起方,并且盡可能地管理對象,而非強(qiáng)迫客戶端發(fā)起所有對象。IApplicationRoot。i青;主意在IApplicationRoot上有大量方'法,其;忝力口參數(shù)來定義初始與更新租約時間。這些方法為MakeReportMakeTraceReportMakeEventMakeReportUidMakeTraceReportUid有利于客戶端使用報告與事件的兩個附加參數(shù)為initialLeaseTime,為對于遠(yuǎn)程以毫秒為單位的初始租約時間(對于.NET缺省初始租約時間為0);以及renewLeaseTime,為對于遠(yuǎn)程以毫秒為單位的更新租約時間(對于.NET缺省初始租約時間為0)。請注意這些參數(shù)都不能為負(fù)。負(fù)值將引起異常。Notifications。在這些情況下,客戶端目前為"服務(wù)器",并且i殳備服務(wù)器保持到客戶端對象的引用。客戶端將具有告知設(shè)備服務(wù)器其是否應(yīng)該添加發(fā)起方的功能。當(dāng)添加監(jiān)聽器時,將添加發(fā)起方;而當(dāng)去除監(jiān)聽器(或者在跟蹤的情況監(jiān)聽器完成)時,將去除發(fā)起方。IReport。如果指令設(shè)備服務(wù)器將發(fā)起方添加給IEventListener或者其他通知程序,則其也添加發(fā)起方給報告。將與發(fā)起方被添加到IEventListener同時地添加與去除該發(fā)起方。存在一個潛在的問題,即設(shè)備服務(wù)器無法保護(hù)客戶端。如果客戶端建立報告然后在其為事件注冊之前等待經(jīng)過缺省對象生命期,則在添加發(fā)起方之前,報告上的租約可能過期。服務(wù)器什么也作不了。在這種情況下,客戶端將不得不發(fā)起報告。CustomEvent。建立事件的客戶端具有設(shè)置生命期配置的功能,并且負(fù)責(zé)管理這些對象。Recipe。對于配方?jīng)]有提供功能。它們具有缺省的生命期,并且客戶端負(fù)責(zé)管理它們。源激活的對象對于源,當(dāng)可能時就建立對象的發(fā)起方,并且盡可能的管理對象,而不強(qiáng)迫源發(fā)起所有對象。在所有情況下,源都有告訴設(shè)備服務(wù)器其是否應(yīng)該添加發(fā)起方的能力。當(dāng)設(shè)置源時,添加發(fā)起方,然后當(dāng)去除源時,去除發(fā)起方。主機(jī)GEM接口在優(yōu)選實施例中,本發(fā)明包括符合GEM的主機(jī)接口,用來訪問工具模型中的信息,以及向設(shè)備服務(wù)器發(fā)出命令。GEM連接支持根據(jù)SEMIE4SECS-I標(biāo)準(zhǔn)的串行連接。其還支持根據(jù)SEMIE37標(biāo)準(zhǔn)的高速SECS消息服務(wù)單會話模式(HSMS-SS),其使用以太網(wǎng)連接與工具通信而不是與工具的串行通信端口通信。主機(jī)GEM接口為本發(fā)明優(yōu)選實施例中幾種可用的接口中的一種。只有當(dāng)在工具模型中配置時,該接口才存在。通過在ModelBuilder中打開模型、并且向Root(根)元素添加SecsToHostlnterface,可以將主機(jī)GEM接口添加到模型。以下描述開發(fā)主機(jī)與工具Secs/GEM接口兩者的過程。定制接口如果客戶端要求利用未作為標(biāo)準(zhǔn)客戶端接口集合的一部分支持的協(xié)議的連接,則可以采用兩種定制方式來建造通信網(wǎng)關(guān)。首先,網(wǎng)關(guān)可以使用并且連接至設(shè)備服務(wù)器,作為其"工具側(cè),,連接,以如協(xié)議x所要求的那樣連接客戶端x,如圖17所示。這種方法的優(yōu)點在于實現(xiàn)者可以遠(yuǎn)離設(shè)備服務(wù)器??商鎿Q地,可以編寫對于新協(xié)議的定制接口,以如協(xié)議y所要求的那樣與客戶端y通信,如圖17所示。該方法要求與設(shè)備服務(wù)器較緊密的集成,如果要將接口產(chǎn)品化,則這是有理由的。本發(fā)明允許以如下兩種方式之一添加任意數(shù)目的定制接口直接到服務(wù)器中,或者作為.NET上的客戶端。一般地,很少為主機(jī)應(yīng)用建立定制接口。所建立的主機(jī)接口管理這些需求的大部分(如果不是管理全部需求的話)。EDA接口獨立SECS/GEM接口無法滿足半導(dǎo)體工廠的未來需求,這是因為SECS不披露設(shè)備的結(jié)構(gòu),這使得無法確定設(shè)備的物理構(gòu)成。SECS不是可發(fā)現(xiàn)接口;應(yīng)用無法查詢設(shè)備來確定其功能。SECS只支持單個客戶端;不支持對于設(shè)備信息的同時多客戶端訪問。SECS沒有安全機(jī)制;在SECS中沒有客戶端授權(quán)與訪問許可的概念。按照設(shè)備數(shù)據(jù)獲取(EDA)相關(guān)SEMI標(biāo)準(zhǔn)的要求,本發(fā)明的優(yōu)選實施例實現(xiàn)HTTP/SOAP/XML接口,該接口結(jié)構(gòu)的優(yōu)點為跨平臺、5爭語言RPC機(jī)制工業(yè)標(biāo)準(zhǔn)技術(shù)提供多個連接(一對多)廣泛的工業(yè)支持保證對速度障礙的最終校正通過防火墻安全地協(xié)商支持.NET與J2EE客戶端圖18顯示EDA服務(wù)器/客戶端消息流的概貌。E132身份驗證負(fù)責(zé)安全套接字層與證書交換。身份驗證還用來驗證允許給定客戶端與特定設(shè)備通信。E132的授權(quán)方面驗證對服務(wù)作出特定請求的特定客戶端被授權(quán)請求該服務(wù)。訪問控制列表(ACL)項為描述對于設(shè)備哪些項可以被授權(quán)的數(shù)據(jù)結(jié)構(gòu)。ACL項可以為兩種類型RoleAssignments或者PriviligeAssignments。角色允i午一個人定義特定的特權(quán)集合。具有該角色的ACL項意味著特權(quán)集合。例如,可以設(shè)置OperatorRoleAssignment,其描述與操作人員相關(guān)的特權(quán)。ACL項也可以為特權(quán)的確定列表。EDA接口包括指定持續(xù)ACL訪問設(shè)置的路徑/文件名的屬性。如果由于某種原因文件不存在,或者在讀取ACL文件時有錯誤,則EDA接口將加載缺省ACL項。這允許缺省的但是可修改的ACL項集合。缺省ACL項包括如下4個內(nèi)置PrivilegeAssignments、4個內(nèi)置RoleAssignments、以及3個內(nèi)置ClientID。PrivilegeAssignmentIDs:El32Administrator(完全E132,E125),E134Administrator(基本E132,完全E134,E125),E134PowerUser(基本E132,中等E134,E125),DefaultUser(基本E132,基本E134,E125)。RoIeAssignmentIDs:El32Admin-(El32Administrator),E134Admin-(El34Administrator),E134Power-(E134PowerUser),Urn:semi-org:auth:anyPrinicipal-保留、缺省項。ClientIDs:E132Admin,El34Admin,E134Power。任何其他clientID基本獲得DefaultUser訪問。E132管理員可以利用E132功能,修改訪問控制列表。另外,可以利用E132Adm功能,本地地建立或者修改訪問控制列表文件??蛻舳丝梢哉埱笏⒌臅挶仨毷浅志玫?。這意味著如果由于某種原因設(shè)備停止,則該會話凍結(jié)。當(dāng)設(shè)備重啟時,重啟該會話。為了滿足EDA相關(guān)SEMI要求,本發(fā)明利用以下構(gòu)造塊以求全面的EDA解決方案。HTTP(s):超文本傳輸協(xié)議SSL:安全套接字層(HTTPS中的"s"),具有WSDL:網(wǎng)絡(luò)服務(wù)定義語言SOAP:簡單對象訪問協(xié)議EDA相關(guān)模式EDA指定HTTP用做SOAPEDA消息的傳輸機(jī)制。因此,需要網(wǎng)絡(luò)服務(wù)器或者網(wǎng)絡(luò)服務(wù)器功能來接收到來的http消息。在本發(fā)明的優(yōu)選實施例中,EDA使能設(shè)備服務(wù)器使用微軟的IIS網(wǎng)絡(luò)服務(wù)器。本發(fā)明的EDA體系結(jié)構(gòu)為服務(wù)器/客戶端關(guān)系,其中客戶端使用HTTP/SOAP網(wǎng)關(guān)。圖19顯示該配置的總體體系結(jié)構(gòu)圖。每個實現(xiàn)規(guī)范(SEMIE132.1,E125.1,E134.1)都使用網(wǎng)絡(luò)服務(wù)定義語言(WSDL)來確定地描述其接口。萬維網(wǎng)聯(lián)盟(W3C)描述WSDL為"一種XML格式,用來將網(wǎng)絡(luò)服務(wù)描述為對包含面向文檔或者面向過程的信息的消息進(jìn)行操作的端點集合,,。對于每個WebService都有一個WSDL,其描述WebService的功能。客戶端可以使用該WSDL來建立與網(wǎng)絡(luò)服務(wù)對話的代理。當(dāng)時,在EDA的情況下,對于每種EDA相關(guān)SEMI實現(xiàn)標(biāo)準(zhǔn)(SEMIE132.1,E125.1,E134.1),有兩組WSDL。一個WSDL用于設(shè)備,一個用于客戶端。在所有情況下,設(shè)備的網(wǎng)絡(luò)服務(wù)都實現(xiàn)設(shè)備WSDL指示的功能??蛻舳薟SDL由設(shè)備用來生成與客戶端通信的代理。該功能在EDA服務(wù)器中實現(xiàn)。類似地,客戶端網(wǎng)絡(luò)服務(wù)實現(xiàn)客戶端WSDL指示的功能,并且使用設(shè)備WSDL來生成與設(shè)備服務(wù)器通信的代理。該客戶端功能可從SEMI標(biāo)準(zhǔn)WSDL生成。主才幾/客戶端API主機(jī)/客戶端到服務(wù)器的通信由應(yīng)用程序接口(API)管理,其定義外部應(yīng)用通過.NET、DCOM、直接連接、間接地通過HTTP/SOAP、SECS、或者定制協(xié)議調(diào)用以與設(shè)備對象模型中的對象交互的方法。接口IBaseObject在軟件包Acs.EIB.framework中。IBaseObject定義所有對象共有的基本對象特征。軟件包Acs.EIB.framework中的接口IBaseObject定義所有對象共有的基本對象特征。軟件包Acs.EIB.framework中的接口INameable定義作為對象模型的一部分可見,并且具備具有子對象的能力的任何對象的最少特征。如上所述,對象模型為分層數(shù)據(jù)模型。對象模型中的對象及其屬性揭示了特定半導(dǎo)體制造工具所感興趣的結(jié)構(gòu)與操作數(shù)據(jù)。在運行時,本發(fā)明作為服務(wù)器動作,接收來自客戶端應(yīng)用的查詢,并且向其發(fā)送關(guān)于CEM對象模型中的屬性值的信息。GetChildren()方法用來獲得關(guān)于特定對象的子對象的信息。該方法返回該命令所針對的對象的所有子對象的數(shù)組。通過使用對象的對象指定符,可以找到對象。GetObject()方法從對象模型中檢索單個對象。對象指定符為表示對象在CEM模型中從該節(jié)點開始的位置的字符串。其包含從當(dāng)前對象到所希望的對象的路徑上的每個對象的名稱,由'〉,(SEMIE39格式)或者'/,(CEM格式)隔開。例如INameablechildObject=obj.GetObject("Modulel〉Submodule2");該例子從作為obj(請注意obj必須具有到INameable的有效引用)的子對象的對象Modulel檢索稱為Submodule2的子對象。INameable接口提供GetChild()方法來檢索到對象的直接子對象的引用。該方法要求要檢索的子對象的名稱。本發(fā)明的對象模型提供了大量的屬性來描述模型中的每個對象。對象模型中提供的屬性基于SEMICEM標(biāo)準(zhǔn),并提供了某些附加屬性。對于不適合現(xiàn)有屬性之一的信息,可以為每個對象實例添加新屬性。對象模型中的屬性必須包含來自源的值。'屬性源為提供在該屬性中存儲的數(shù)據(jù)的系統(tǒng)。一般地,屬性值源為來自XML文檔的靜態(tài)屬性,從工具檢索的動態(tài)屬性,以及從主機(jī)應(yīng)用設(shè)置的動態(tài)屬性。靜態(tài)屬性實際為從不改變的只讀屬性。CEM中定義的所有屬性都被認(rèn)為是只讀屬性。模型中其他屬性也可以是靜態(tài)的。請注意當(dāng)在工具上替換模塊、重新配置工具、或者發(fā)生對于硬件的其他重大修改時,CEM屬性實際可以改變。仍然認(rèn)為這些屬性是靜態(tài)的。動態(tài)屬性為隨時間變化的屬性。這些屬性必須具有改變屬性值的源。該源可以在設(shè)備服務(wù)器內(nèi)部,或者來自工具。動態(tài)屬性可以為從主機(jī)只讀或者可讀寫。只讀屬性只能由工具應(yīng)用改變。不允許主機(jī)改變這些屬性的值??勺x寫屬性可以由主機(jī)或者工具應(yīng)用改變。IBaseObject接口提供GetAttributeNames方法來檢索對象上可得的屬性的名稱的字符串?dāng)?shù)組。該數(shù)組將對于為對象實例定義的每個屬性名稱將包括一項。檢索屬性值有幾種可用方法。每個對象具有一組方法,其允許檢索每個屬性的值。另外,存在設(shè)置每個可讀寫屬性的值的方法。例如,serviceState屬性具有方法GetServiceState來檢索serviceState屬性的值。因為serviceState是只讀的,所以不存在SetServiceState方法。IBaseObject接口定義利用屬性名稱作為參數(shù)來獲得與設(shè)置屬性的方法。方法GetAttributeValue從對象檢索單個屬性的值。方法GetAttributeValues從對象檢索多個屬性的值。對于設(shè)置屬性,存在類似的方法SetAttributeValue與SetAttributeValues。IBaseObject接口還定義片全索或者^殳置多個對象的多個屬性的方法。方法GetMultipleObjectAttributeValues檢索多個對象中的多個屬性的值,并且方法SetMultipleObjectAttributeValues設(shè)置多個對象中的多個屬性的值。提供這些方法以減少請求,并且提供原子操作。事件主機(jī)/客戶端API使人能夠注冊監(jiān)聽器,用于在設(shè)置對象模型中的對象的屬性值的情況下進(jìn)行通知。如果注冊監(jiān)聽器以在設(shè)置屬性值時接收通知,則在注冊時對象將該監(jiān)聽器添加到列表,然后當(dāng)設(shè)置屬性值時通知監(jiān)聽器該屬性的舊值與新值。主機(jī)應(yīng)用通過調(diào)用AddAttributeSetListener來向?qū)傩蕴砑颖O(jiān)聽器。然后,設(shè)備服務(wù)器通過執(zhí)行監(jiān)聽器上的AttributeSet方法設(shè)備服務(wù)器通知客戶端。本發(fā)明的實施例還定義了幾個事件對象。這些事件對象的每一個都基于IBaseEvent。API使得能夠注冊監(jiān)聽器,以在事件觸發(fā)時進(jìn)行通知。如果注冊監(jiān)聽器已在事件觸發(fā)時接收通知,則在注冊時對象將該監(jiān)聽器添加到列表,然后當(dāng)事件發(fā)生時通知監(jiān)聽器。監(jiān)聽器具有向事件附加報告的功能。報告包含當(dāng)事件觸發(fā)時應(yīng)該提供的IBaseEvent屬性的列表。通知將在報告中報告所請求的每個IBaseObject屬性的值。主機(jī)應(yīng)用通過調(diào)用AddEventListener,將監(jiān)聽器添加到屬性。然后設(shè)備服務(wù)器將通過執(zhí)行監(jiān)聽器上的EventTriggered方法,通知客戶端。配方(recipe)基于IAbstractModule接口的所有對象都可以具有執(zhí)行配方的功能。對象必須以與SEMIE30標(biāo)準(zhǔn)中所指定的配方管理兼容的方式支持配方。主機(jī)應(yīng)用通過調(diào)用GetRecipeExecutor檢索到IRecipeExecutor的引用,來執(zhí)行配方動作。IRecipeExecutor提供上載、下載、列出、刪除、以及選擇配方的方法。主機(jī)應(yīng)用可以注冊為配方的提供者。主機(jī)提供者為負(fù)責(zé)來自工具的配方上載與下載請求的主機(jī)應(yīng)用。主機(jī)通過利用實現(xiàn)IToHostRecipeHandler的對象調(diào)用SetToHostRecipeHandler,注冊為主機(jī)配方提供者。Wafe她us基于IAbstractModule接口的所有對象都可以具有4丸行WaferMaps的功能。WaferMap對象包含如在SEMIE5標(biāo)準(zhǔn)(BinList、XDieSize等等)中指定的每個SECS元素相關(guān)WaferMaps的屬性。如果存在主機(jī)提供信息的情況,則屬性為可寫的。主機(jī)應(yīng)用通過調(diào)用GetWaferMapExecutor檢索到IWaferMapExecutor的引用,來^M亍Wafermap動作。IWaferMapExecutor提供上載、下載、以及報告Wafermap錯誤的方法。主機(jī)應(yīng)用可以注冊為WaferMaps的提供者。主機(jī)提供者為負(fù)責(zé)來自工具的uploadSend(接收Wafermap)與downloadRequestOt是供Wafermap)的主才幾應(yīng)用。主才幾通過利用實現(xiàn)IToHostWaferMapHandler的對象調(diào)用SetToHostWaferMapHandler,注冊為主機(jī)Wafermap提供者。Command對象模型中的大部分對象都支持命令。對象上的命令可以分為兩組。在第一組中為EIB實現(xiàn)的內(nèi)部命令。這些命令存在于特定類型的所有對象上。在第二命令組中為遠(yuǎn)程命令。遠(yuǎn)程命令為必須由工具控制器軟件處理的命令??捎玫倪h(yuǎn)程命令依賴于工具實現(xiàn)。通過在ApplicationRoot上調(diào)用對象服務(wù)GetServiceName、或者通過在對象實例上調(diào)用GetCommandNames,可以獲得對于對象的可用命令的列表。類似地,通過在ApplicationRoot上調(diào)用對象服務(wù)GetServiceParameterData、或者通過在對象實例上調(diào)用GetCommandParameters,可以獲得命令參數(shù)的列表。請注意當(dāng)請求命令與參數(shù)名稱時,對象服務(wù)使用對象類型而非對象實例。本發(fā)明允許相同類型的對象具有不同的命令與參數(shù)。如果工具對象在相同對象類型上有不同命令,則對象服務(wù)方法不能返回正確信息。本發(fā)明提供了執(zhí)行命令的幾種方法。從ApplicationRoot,可以在模型中的任何對象上執(zhí)行對象服務(wù)ObjectAction。從對象引用,可以通過直接調(diào)用命令,執(zhí)行在CEM標(biāo)準(zhǔn)中定義的任何命令。通過利用要執(zhí)行的命令的名稱調(diào)用ExecuteCommand,可以從對象引用執(zhí)行所有命令。工具/數(shù)據(jù)代理到服務(wù)器的通信如圖20所示,本發(fā)明的優(yōu)選實施例包括SECS/GEM、.NET、以及定制接口,其使得能夠在設(shè)備服務(wù)器與其他源或者數(shù)據(jù)代理(例如設(shè)備控制軟件(內(nèi)部的)、工具與工具組件(外部的))之間通信。內(nèi)部直接連接內(nèi)部定制接口為直接連接到設(shè)備服務(wù)器的接口。提供一種容易使用的框架用于到設(shè)備服務(wù)器的直接連接。該框架提供一種系統(tǒng),用來啟動接口、連接定制接口到設(shè)備服務(wù)器、以及配置接口。NET接口.NET客戶端接口允許在一個計算機(jī)上運行的具備.NET使能的程序使用對象串行化訪問在不同計算機(jī)上運行的另一程序的對象與方法。對象串行化允許通過網(wǎng)絡(luò)傳遞復(fù)雜數(shù)據(jù)結(jié)構(gòu),而不用編寫任何代碼來重新構(gòu)造它們。這使裝備服務(wù)器可用于以任何.NET應(yīng)用編寫的.NET客戶端。.NET遠(yuǎn)程接口為用來連接到本發(fā)明的設(shè)備服務(wù)器的最基本的網(wǎng)關(guān)。該框架允許對象在遠(yuǎn)程客戶端與服務(wù)器應(yīng)用之間相互交互。該外部接口利用.NET連接從工具或者數(shù)據(jù)代理連接到設(shè)備服務(wù)器。當(dāng)啟動外部接口時,接口應(yīng)用將需要通過打開到設(shè)備服務(wù)器的連接,驗證設(shè)備服務(wù)器正在運行。對于在對象模型內(nèi)接口將向其提供數(shù)據(jù)或者從其接收命令的每個對象,所述接口將注冊作為源。關(guān)于.NET接口的更多信息在以上關(guān)于主機(jī)/客戶端接口中描述。SECS/GEM接口本發(fā)明的優(yōu)選實施例包括"到工具"的SECS/GEM接口,其使得能夠在設(shè)備服務(wù)器與依賴于SECS/GEM協(xié)議的工具或者其他數(shù)據(jù)代理之間進(jìn)行通信。提供一組SECS/GEM接口,其使得能夠在對象與依賴于SECS/GEM協(xié)議的其他應(yīng)用(例如工具控制軟件)之間進(jìn)行通信。還支持根據(jù)SEMIE37標(biāo)準(zhǔn)的高速SECS消息服務(wù)單會話模式(HSMS-SS)。利用HSMS-SS,可以使用以太網(wǎng)連接進(jìn)行與工具的通信,而非使用工具的串行通信端口。該功能還使之能夠在不使用工具的串行通信端口的情況下測試對象模型。本發(fā)明的優(yōu)選實施例通過實現(xiàn)最常用的GEM消息,提供GEM功能??梢允褂幂^老的基于SECS的工具,并且將提供到主機(jī)的符合GEM的接口。對象可以通過GEM接口從對象模型向主機(jī)發(fā)送數(shù)據(jù)。在GEM標(biāo)準(zhǔn)SEMIE30的實現(xiàn)所支持的SECS消息中使用指定的數(shù)據(jù)項。GEM接口在所支持的SECS消息中,傳送對于確定的確認(rèn)代碼的特定值。通過在接口代碼中指定這些值,本發(fā)明關(guān)于使用設(shè)備服務(wù)器的每個工具向主機(jī)呈現(xiàn)確認(rèn)代碼值的標(biāo)準(zhǔn)集合。從工具到對象模型的SECS/GEM接口使用這些相同的確認(rèn)代碼與值。SECS/GEM接口被配置來允許與工具上符合SECS/GEM接口的通信。以下元素為SECS/GEM接口的一部分連接以下中的一個GEMConnection,SIF1Connection(只在toTool中),LMConnection(只在toTool中),LoopbackConnectionElementFormats(ToTool中要求toHos中不要求)Clock可選ProcessProgramsWaferMapServiceRemoteCon加lStatusVariablesEquipmentConstantsDataVariablesDataCollectionTraceDataCollectionAlarmsTerminalServicesCustomSources(只在toTool中)InternalGEMIDs(只在toHost中)UnrecognizedMessages在與CEMEibModel模型定義相同的XML文件中(但是在XML文檔中完全隔離的部分中),執(zhí)行對主機(jī)GEM接口與工具SECS/GEM接口的配置。XML文檔中存在的限制為在工具的CEM模型中,沒有嵌入任何接口的組件;并且利用完整的對象指定符,進(jìn)行到CEM模型的接口中的所有連接。其優(yōu)點在于允許容易地定義新接口。主要缺點在于正確地將SECS項鏈接到模型中的對象。在模型中四處移動對象要求重新鏈接受到影響的SECS/GEM項。其還要求在建立XML時在XML內(nèi)大量的導(dǎo)航。請注意當(dāng)移動對象時,ModelBuilder將自動糾正接口與對象模型之間的所有鏈接。由此,只有當(dāng)手工編輯模型時,這才是個問題。為了配置對象模型的SECS/GEM接口,執(zhí)行以下任務(wù)來完成配置指定XML文件的處理指令部分中接口的名稱。配置每個接口的通信參數(shù)。例如,對于每個接口正在使用HSMS-SS還是SECS串行端口連接,以及到工具的SECS連接為GEM連接還是SIF1連接。對于從設(shè)備服務(wù)器到工具的SECS接口,指定SECS數(shù)據(jù)項的數(shù)據(jù)類型,并且配置可選功能,例如跟蹤數(shù)據(jù)采集以及工具支持的預(yù)先定義的報告。將狀態(tài)變量、設(shè)備常量、數(shù)據(jù)變量以及采集事件映射到對象模型中的特定對象與屬性。映射SECS變量與事件到EibModel對象與屬性為設(shè)置SECS接口時較困難的配置任務(wù)之一。EibModel對象中的每個屬性可以被綁定到一或多個SECS配置項。對于要向主機(jī)報告的任何事件或者變量,CEM模型必須包括對象與屬性對。這些對象與屬性對必須被鏈接到主機(jī)GEM接口(如果存在的話)以及工具SECS/GEM接口(如果存在的話)。指定對于Equipment和/或EquipmentModule對象,主機(jī)支持哪些遠(yuǎn)程命指定模型中哪個對象為recipeExecutor(如果適用于該模型的話)。指定^^莫型中哪個對象為waferMapExecutor(如果適用于該模型的話)。指定異常管理器與為異常管理器定義的異常條件。映射SECS警報到EibModelExceptionCondition對象是簡單的。對于希望向主機(jī)報告的任何警報,對象模型必須包括ExceptionCondition對象。這些ExceptionCondition對象必須鏈接到主機(jī)GEM接口(如果存在的話)以及工具SECS/GEM接口(如果存在的話)。SECS/GEM接口中的定制處理器本發(fā)明允許在工具SECS接口中定義定制消息處理器。定制消息處理器可以用來處理工具SECS接口不直接支持的任何SECS消息。工具SECS接口支持兩種不同的定制消息處理器,一種用于命令,一種用于數(shù)據(jù)。EIB中的定制處理器可以以任何.NET語言編寫。這包括C弁、VB#、以及完全符合微軟通用語言運行系統(tǒng)(CLR)的任何語言。定制SECS命令處理器為從設(shè)備服務(wù)器接收遠(yuǎn)程命令、根據(jù)收到的命令構(gòu)造定制SECS消息、并且發(fā)送該消息給工具的處理器。工具SECS接口允許定義一個定制SECS命令處理器。該命令處理器負(fù)責(zé)對于要求定制消息處理器的所有遠(yuǎn)程命令,構(gòu)造并且發(fā)送定制SECS消息。定制SECS消息處理器為從設(shè)備服務(wù)器接收數(shù)據(jù)請求并且利用定制SECS消息(同步數(shù)據(jù)請求)請求工具、或者從工具接收定制SECS消息并且更新數(shù)據(jù)(異步數(shù)據(jù))、或者兩者都執(zhí)行的處理器。工具SECS接口可以定義任意數(shù)目的定制SECS消息處理器。異步定制SECS消息處理器負(fù)責(zé)從工具接收定制SECS消息,并且異步地更新設(shè)備服務(wù)器中的信息。為了成為異步源,定制處理器必須直接地或者在內(nèi)部類中也實現(xiàn)IAsyncrhonousSource接口。InitializeElement方法將需要注冊為對象的異步源。如果定制處理器正在提供事件,則其應(yīng)該調(diào)用SetAsyncrhonousSource,以傳遞其自身或者內(nèi)部類。然后,當(dāng)收到定制SECS消息時,定制SECS消息處理器將調(diào)用事件的觸發(fā)器。如果定制處理器為屬性源,則其應(yīng)該利用屬性名稱以及其自身或者內(nèi)部類調(diào)用SetAsyncrhonousSource。然后,當(dāng)收到定制SECS消息時,定制SECS消息處理器對對象上的屬性調(diào)用SetAttributeFromSource。關(guān)于處理事件與異步源的更多的細(xì)節(jié)將在以下對于工具/數(shù)據(jù)代理API討論。定制SECS消息處理器可以為同步源或者任意IBaseObject的可變同步源。同步定制SECS消息處理器負(fù)責(zé)當(dāng)請求屬性值時發(fā)送定制SECS消息。為了成為同步源,定制處理器必須直接地或者在內(nèi)部類中也實現(xiàn)ISyncrhonousSource接口。InitializeElement方法將需要注冊為對象的同步源。定制處理器必須實現(xiàn)在ISyncrhonousSource接口中描述的GetValue方法(直接地或者在內(nèi)部類中)。這些方法將需要構(gòu)造檢索所請求的數(shù)據(jù)、發(fā)送它、以及返回來自回答的數(shù)據(jù)所需的定制SECS消息。通過拋出描述錯誤的異常,返回所有錯誤??勺兺蕉ㄖ芐ECS消息處理器在請求來自工具的值之外,還負(fù)責(zé)當(dāng)設(shè)置屬性時,利用SECS消息向工具發(fā)送關(guān)于屬性的新值。為了成為可變同步源,定制處理器必須直接地或者在內(nèi)部類中也實現(xiàn)IMutableSyncrhonousSource接口。InitializeElement方法將需要注冊為對象的可變同步源。除ISyncrhonousSource中的GetValue方法之外,定制處理器還必須實現(xiàn)IMutableSyncrhonousSource接口中描述的SetValue方法(直接地或者在內(nèi)部類中)。這些方法將需要構(gòu)造設(shè)置所提供的數(shù)據(jù)、發(fā)送它、以及接收回答所需的定制SECS消息。通過拋出描述錯誤的異常,返回所有錯誤。定制接口本發(fā)明可以支持添加到工具上的任意數(shù)目的定制接口。內(nèi)部定制接口為在設(shè)備服務(wù)器內(nèi)運行的接口,如在圖20中顯示為接口z。本發(fā)明允許以兩種方式之一添加任意數(shù)目的定制接口直接加到服務(wù)器中,或者作為.NET上的客戶端??梢蚤_發(fā)定制接口來處理獨特的工具或者組件情況。內(nèi)部定制接口為在設(shè)備服務(wù)器內(nèi)運行的接口。提供了使用框架的一種簡單的方法,來將定制接口直接添加到服務(wù)器中。該框架提供了一種系統(tǒng),用于啟動接口、將定制接口連接到設(shè)備服務(wù)器、以及配置接口。定制內(nèi)部接口'必須以C弁編寫,并且編譯到設(shè)備服務(wù)器在運行時可以定位的位置。需要建立模式來表示定制接口。該模式描述定制接口定義的有效內(nèi)容。置于模式中的信息量依賴于定制接口所需的配置量。模式必須在其中定義一個具有以Interface結(jié)束的名稱的元素。例如,到Acme公司制造的劃線工具的定制4妄口可以命名為AcmeScribeInterface。在本發(fā)明的優(yōu)選實施例中,對于定制接口,以下具有相關(guān)數(shù)據(jù)類型的屬性為最低要求name(字符串)接口的名稱(在Root上的所有子節(jié)點中必須唯一)className(字符串)定義具有分析該定制模式的功能的XMLFactory的類名稱。在模式中,該屬性必須被聲明為固定的,并且必須指定值。對于定制接口,可以按照需要添加其他屬性。接口元素的剩余內(nèi)容只依賴于接口設(shè)計。在模式中可以定義任意數(shù)目的復(fù)雜類型。XML工廠(Factory)為在負(fù)責(zé)構(gòu)造與配置定制接口的定制接口中定義的類。該工廠將負(fù)責(zé)建立(最少的)接口的主對象(參見以下定制接口對象)。XML工廠必須實現(xiàn)IXMLFactory接口(參見定制接口文檔中的IXMLFactory)。IXMLFactory接口定義工廠中必須實現(xiàn)的四個方法。當(dāng)設(shè)備服務(wù)器最初啟動時,調(diào)用Initialize方法。在處理XML文檔之前,工廠應(yīng)該執(zhí)行其所需的任何設(shè)置。對于本實例,將提供到ApplicationRoot對象的引用。該引用將允許工廠對EibModel模型的完全訪問。對于從XML文檔中讀取的每個元素,調(diào)用StartElement方法。EIB利用其從XML文檔讀取的所有元素,調(diào)用所有工廠。你的工廠必須驗證正在處理的元素對于工廠是有意義的。一般地,工廠將驗證元素的命名空間匹配工廠所期望的命名空間。另外,你的工廠應(yīng)該驗證父輩Interface元素具有所期望的名稱。如果名稱不匹配,則工廠需要忽略當(dāng)前的內(nèi)容。這允許單個工廠利用不同的名稱生成多個接口。在從XML中讀取的每個元素的結(jié)束處,調(diào)用EndElement。當(dāng)達(dá)到元素的末尾時,調(diào)用所有工廠。工廠必須驗證正在處理的元素對于工廠是有意義的。一般地,工廠將驗證元素的命名空間匹配工廠所期望的命名空間。在XML文檔的結(jié)束處,調(diào)用EndDocument。在從文檔中讀出所有信息之后,調(diào)用EndDocument。工廠應(yīng)該執(zhí)行在從XML文檔中讀出所有信息之后必須發(fā)生的任何配置。最少,如果該接口的接口對象還沒有被添加到ApplicationRoot,則i亥方法應(yīng)i亥在ApplicationRoot上i周用Addlnterface。到設(shè)備服務(wù)器的所有接口(內(nèi)部的與定制的兩者)都具有表示該接口的主對象。用于你的接口的該main對象必須擴(kuò)展com.asyst.core.Commlnterface。XMLFactory必須在正在讀取XML文檔時的某點上建立該對象。XMLFactory.何時建立該對象不重要,只要其在EndDocument完成之前建立即可。com.asyst.core.Commlnterface的基類定義4妄口的名稱。該名稱必須^皮i殳置為該接口的名稱。它唯一地識別設(shè)備服務(wù)器中的接口的這一實例。請注意定制接口必須擴(kuò)展擴(kuò)展C#.MarshalByRefObject的對象,或者擴(kuò)展C#.MarshalByRefObject本身。本發(fā)明的優(yōu)選實施例在啟動時通過讀取描述工具模型以及到工具模型的所有接口的XML文檔,加載定制接口。關(guān)于定制接口的配置信息必須被置于XML文檔中。對于接口的XML文檔內(nèi)容依賴于模式以及定制接口實現(xiàn)。最少信息應(yīng)該包括接口的名稱。在優(yōu)選實施例中,上述ModelBuilder可以執(zhí)行添加與配置定制接口的步驟。所提供的ASCII接口結(jié)構(gòu)十分類似于To-TollSECS接口,除了其是用于利用ASCII消息通信的工具。存在使用連接對象來對工具發(fā)送與接收消息的一組服務(wù)。然后,該連接對象使用端口來實際發(fā)送消息。一個顯著的差異為ASCII接口要求定制代碼。因為對于消息沒有確立的格式,所以無法寫出完整的實現(xiàn)。實現(xiàn)了以下端口ASCIISerialPort-利用串行端口通信ASCIITcpPort-利用TCP/IP連接通信ASCIIPortConnection-沒有連接邏輯的基本連接ASCIIEstablishCommConnection-要求已確立通信連接的連接ASCIIOnlineConnection-要求在線交換的連接。ASCIIEstablishCommConnection與ASCIIOnlineConnection都要求添力口定制代碼以正確發(fā)揮作用。定義了以下服務(wù)DataCollectionService-用于異步數(shù)據(jù)采集(事件與變量)EquipmentConstantService-用于檢索與設(shè)置配置變量StatusVariableService畫用于檢索同步狀態(tài)數(shù)據(jù)RemoteControl-用于發(fā)送命令這些的每個都要求用于其的某些定制代碼,以利用工具正確工作。RemoteControl是服務(wù)器中最充分開發(fā)的。對于某些工具,其只要求回答消息處理器。VariableStore、EventStore、以及CommandStore的定義支持這一點。對于Ascii接口,添加了稱為Asciilnterface的才莫式。該才莫式定義了缺省支持的選項。該模式被設(shè)置來與ModelBuilder工作。工具/數(shù)據(jù)代理API工具到服務(wù)器的通信由描述外部工具通過對象、直接連接、通過SECS或者定制協(xié)議的間接連接調(diào)用的方法的應(yīng)用程序接口管理。如上所述,本發(fā)明的設(shè)備對象模型為分層數(shù)據(jù)模型。設(shè)備對象模型中的對象及其屬性揭示了特定半導(dǎo)體制造工具所感興趣的結(jié)構(gòu)與操作數(shù)據(jù)。在運行時,設(shè)備服務(wù)器作為客戶端動作,對工具或者組件數(shù)據(jù)代理請求獲得或者設(shè)置值等等,以用來填充對象模型。利用GetChildren()方法,可以檢索關(guān)于特定對象的子對象的信息。該方法返回該命令所針對的對象的所有子對象的數(shù)組。也可以通過使用對象的對象指定符,找到對象。GetObject()方法從對象模型中檢索單個對象。對象指定符為表示對象在CEM模型中從該節(jié)點開始的位置的字符串。其包含從當(dāng)前對象到所希望的對象的路徑上的每個對象的名稱,由'〉,(SEMIE39格式)或者V,(CEM格式)隔開。例如INameablechildObject=obj.GetObject("Modulel>Submodule2");該例子乂人作為obj(請注意obj必須具有到INameable的有效引用)的子對象的對象Modulel檢索稱為Submodule2的子對象。通過INameable類提供的GetChild()方法,可以檢索到對象的直接子對象的引用。該方法要求要檢索的子對象的名稱。本發(fā)明的設(shè)備模型提供了大量的屬性來描述模型中的每個對象。所提供的屬性為基于SEMICEM標(biāo)準(zhǔn),以及某些附加屬性。對于不適合現(xiàn)有屬性中的一個的信息,可以為每個對象實例添加新屬性。對象模型中的屬性必須包含來自源的值。屬性源為提供在該屬性中存儲的數(shù)據(jù)的系統(tǒng)。一般地,屬性值的源為以下之一來自XML文檔的靜態(tài)屬性從工具或組件檢索的動態(tài)屬性從主機(jī)應(yīng)用設(shè)置的動態(tài)屬性。靜態(tài)屬性實際為從不改變的只讀屬性。CEM中定義的所有屬性都被認(rèn)為是只讀屬性。這些屬性在工具的XML文檔中設(shè)置。請注意當(dāng)在工具上替換模塊、重新配置工具、或者發(fā)生對于硬件的其他重大修改時,CEM屬性實際可以改變。仍然認(rèn)為這些屬性是靜態(tài)的。必須通過編輯表示工具的XML文檔來進(jìn)行此類改變。動態(tài)屬性為隨時間變化的屬性。這些屬性必須具有改變屬性值的源。該源可以在設(shè)備服務(wù)器、主機(jī)應(yīng)用或者工具內(nèi)部。以下的描述顯示了工具可用來提供屬性數(shù)據(jù)源以及接收主機(jī)應(yīng)用進(jìn)行的改變的方法。同步源每次請求屬性的值時,同步源都從同步源獲得值。該值從屬性源立即檢索。例如,溫度的可觀察屬性將具有對于其值的同步源。工具必須注冊作為該屬性的源,從而當(dāng)向?qū)ο蟛樵冊撝禃r,其調(diào)用所注冊的同步源。通過建立實現(xiàn)接口Acs.EIB.framework.ISynchronousSource的類、并且將其注冊作為屬性的源,工具應(yīng)用做到了這一點。工具通過利用屬性名稱與提供源的對象調(diào)用IBaseObject對象上的SetSynchronousSource(),將該類注冊為源。所注冊的同步源必須實現(xiàn)ISynchronousSource中的GetValue方法以檢索(多個)屬性值?,F(xiàn)在每次請求屬性值時,設(shè)備服務(wù)器都調(diào)用該對象。請注意實現(xiàn)ISynchronousSource的對象可以為多于一個屬性的源??勺兺皆纯勺兺皆礊檫€允許設(shè)備服務(wù)器改變屬性值的同步源。每次請求屬性的值時,可變同步源都從可變同步源獲得值,并且每次設(shè)置屬性的值時,可變同步源都在可變同步源設(shè)置該值。例如,MaxAllowedPressure的可觀察屬性將具有對于其值的可變同步源。工具必須注冊作為該屬性的源,從而當(dāng)向?qū)ο蟛樵冊撝禃r,其調(diào)用所注冊的同步源,并且當(dāng)設(shè)置該值時,向可變同步源通知新值。通過建立實現(xiàn)接口Acs.EIB.framework.IMutableSynchronousSource的類、并且將其注冊作為屬性的源,工具應(yīng)用做到了這一點。工具通過利用屬性名稱與提供源的對象調(diào)用IBaseObject對象上的SetMutableSynchronousSource,將該類注冊為源。所注冊的可變同步源必須實現(xiàn)IMutableSynchronousSource中的GetValue與SetValue方法以檢索(多個)屬性值。現(xiàn)在每次請求屬性值時,設(shè)備服務(wù)器都將調(diào)用該對象。請注意實現(xiàn)IMutableSynchronousSource的對象可以為多于一個屬性的源。異步源該接-口用來允許IBaseObject對象包含對應(yīng)于關(guān)于設(shè)備的數(shù)據(jù)變量的屬性。關(guān)于設(shè)備的數(shù)據(jù)變量為當(dāng)屬性值改變時、由設(shè)備異步地更新的變量。如果屬性與一或多個IBaseEvent對象同時改變,則IEventSource接口也應(yīng)該由該源實現(xiàn)。通過調(diào)用IBaseObject,AddAttributeSetListener,使能IAsynchronousSource。<吏能IAsynchronousSource會調(diào)用IAsynchronousSource.Start方法之一。當(dāng)不在需要屬性時,通過調(diào)用IBaseObject.RemoveAttributeSetLIstener禁用IAsynchronousSource。禁用頁有三種方法源客戶端可以用來使屬性保持最新。它們是:基于事件地按照需要總是無關(guān)于事件地按照需要基于事件地按照需要更新是時間效率最高的報告數(shù)據(jù)的機(jī)制,但是要求較復(fù)雜的IAsychronousSource。該系統(tǒng)假定實際的數(shù)據(jù)源為必須與之通信的獨立的應(yīng)用。另外,其對高帶寬數(shù)據(jù)報告優(yōu)化,其中配置與報告數(shù)據(jù)相比要求少量的帶寬。該系統(tǒng)要求IAsynchronousSource跟蹤到數(shù)據(jù)的引用的數(shù)目。其在IAsynchronousSource之夕卜,還要求源實現(xiàn)IEventSource。當(dāng)源客戶端根據(jù)客戶端的需求更新一或多個屬性時,源必須跟蹤5JIAsynchronousSource.Start以及IAsynchronousSource.Stop方法的所有調(diào)用。每次調(diào)用Start時,源必須;險查屬性的狀態(tài)。如果還沒有使能對于該屬性的數(shù)據(jù)采集,則源必須執(zhí)行設(shè)置數(shù)據(jù)釆集所需的所有動作。所需的實際動作依賴于源。請注意如果可以以多于一種的方式采集該屬性的數(shù)據(jù),則應(yīng)該使能所有的方式(除非其他方式完全冗余,并且總是在同一時刻發(fā)生),從而該屬性的值被盡可能經(jīng)常地更新。一旦成功完成了所有動作,則調(diào)用IBaseObject.ConnectAsynchronousSource以通知IBaseObject源對奪開始4是供凄t據(jù)。請注意直至源利用IBaseObject.SetAttributeFromSource設(shè)置了屬性值至少一次,才認(rèn)為屬性值是有效的。這樣做是支持可能不能立即報告屬性的當(dāng)前值的源。每次調(diào)用Stop時,源都必須檢查這是否是到屬性的最后一個引用。如果是,則其應(yīng)該執(zhí)行終止采集數(shù)據(jù)所需的所有動作,然后其必須調(diào)用IBaseObject.DisconnectAsynchronousSource以通知IBaseObject源將不再才是供數(shù)據(jù)。屬性值將立即變?yōu)闊o效。圖21顯示源必須采取的動作。請注意該圖沒有詳細(xì)顯示在IBaseObject內(nèi)采取的任何實際動作。某些異步源可以連續(xù)提供數(shù)據(jù),而不考慮對數(shù)據(jù)的興趣。一旦這些源準(zhǔn)備好開始提供數(shù)據(jù),它們就應(yīng)該調(diào)用IBaseObject.ConnectAsynchronousSource。然后,它們忽略Start與Stop方法(這些方法仍然必須被實現(xiàn);它們只是不執(zhí)行任何動作)。在任意時間,如果源停止提供數(shù)據(jù),則它必須調(diào)用IBaseObject.DisconnectAsynchronousSource以通知屬性其不再提供數(shù)據(jù)。圖22顯示源必須采取的動作。請注意該圖沒有詳細(xì)顯示在IBaseObject內(nèi)采取的任何實際動作。無關(guān)于事件地按照需要更新提供了源客戶端復(fù)雜性與帶寬要求之間的一種良好的折中。該系統(tǒng)假定實際數(shù)據(jù)源為必須與之通信的獨立的應(yīng)用。該系統(tǒng)不要求lAsynchronousSource跟蹤到數(shù)據(jù)的引用的數(shù)目。該系統(tǒng)與基于事件的更新值之間首要區(qū)別為屬性的所有可能源(事件等等)必須被使能,即使只有一或幾個被要求滿足該需要也如此。當(dāng)源客戶端無關(guān)于事件地更新一或多個屬性時,源將在第一個監(jiān)聽器添加到屬性時接收到對lAsynchronousSource.Start的調(diào)用、以及當(dāng)從屬性去除最后一個監(jiān)聽器時接收到對IAsynchronousSource.Stop的調(diào)用。當(dāng)調(diào)用Start時,源必須執(zhí)行設(shè)置數(shù)據(jù)采集所需的所有動作。所需的實際動作依賴于源。請注意如果可以以多于一種的方式采集該屬性的數(shù)據(jù),則應(yīng)該使能所有的方式(除非其他方式完全冗余,并且總是在同一時刻發(fā)生),從而該屬性的值被盡可能經(jīng)常地更新。一旦成功完成了所有動作,則調(diào)用IBaseObject.ConnectAsynchronousSource以通知IBaseObject源將開始4是供婆丈據(jù)。請注意直至源利用IBaseObject.SetAttributeFromSource設(shè)置了屬性值至少一次,才認(rèn)為屬性值是有效的。這樣做是支持可能不能立即報告屬性的當(dāng)前值的源。當(dāng)調(diào)用St叩時,源必須執(zhí)行終止采集數(shù)據(jù)所需的所有動作,然后其必須調(diào)用IBaseObject.DisconnectAsynchronousSource以通知IBaseObject源將不再提供數(shù)據(jù)。屬性值將立即變?yōu)闊o效。圖23顯示源必須采取的動作。請注意該圖沒有詳細(xì)顯示在IBaseObject內(nèi)采取的任何實際動作。在許多情況下,異步源與外部系統(tǒng)通信。該通信系統(tǒng)經(jīng)??赡苁?丟失與外部系統(tǒng)的連接)。希望異步系統(tǒng)不將通信失敗報告為錯誤(異常)。生成異常應(yīng)該限于Start或Stop中的無效信息。對于通信失敗,^^記錄通信失敗并且高速緩存配置信息比較好。一旦恢復(fù)了通信,就可以將配置信息發(fā)送給外部系統(tǒng)。這允許主機(jī)數(shù)據(jù)客戶端即使當(dāng)通信失敗時也訂閱數(shù)據(jù),然后當(dāng)恢復(fù)了通信時開始接收數(shù)據(jù)??赡艽嬖诓幌M绱嘶蛘哌@樣不實際的情況。在這些情況下,通信故障應(yīng)該生成異常。跟蹤源跟蹤源為能夠周期性地提供屬性值的源。工具注冊為該屬性的跟蹤源,從而當(dāng)在屬性上設(shè)置跟蹤時,通知跟蹤源。通過建立實現(xiàn)接口Acs.EIB.framework.ITraceSource的類、并且將其注冊為屬性源,工具應(yīng)用作到了這一點。工具通過利用屬性名稱以及將提供源的對象調(diào)用IBaseObject上的SetTraceSource()方法,將該類注冊為源。所注冊的跟蹤源實現(xiàn)ITraceSource中的start與stop方法,以開始與停止跟蹤數(shù)據(jù)報告?,F(xiàn)在當(dāng)設(shè)置包括屬性的跟蹤時、或者當(dāng)從屬性去除跟蹤時,設(shè)備服務(wù)器將調(diào)用該對象。請注意實現(xiàn)ITraceSource的對象可以為多于一個屬性的跟蹤源。配方執(zhí)行器基于IAbstractModule接口的所有對象都可以具有執(zhí)行配方的能力。為了能夠執(zhí)行配方,對象必須有賦予它的IRecipeExecutor。具有配方源的對象可以以和SEMIE30標(biāo)準(zhǔn)中指定的配方管理兼容的方式處理配方。通過利用實現(xiàn)1ToToolRecipeHandler的對象調(diào)用SetToToolRecipeHandler,工具相對于配方管理注冊處理工具與主機(jī)之間的通信的IRecipeExecutor對象。WaferMap執(zhí)行器基于IAbstractModule接口的所有對象都可以具有執(zhí)行WaferMap的能力。為了能夠執(zhí)行WaferMap,對象必須有在ModelBuilder中添加給它的WaferMap執(zhí)行器功能。另夕卜,其必須具有賦予它作為WaferMap工具源的處理器。具有WaferMap源的對象可以以和SEMIE5標(biāo)準(zhǔn)中指定的WaferMap管理兼容的方式處理WaferMap。通過利用實現(xiàn)IToToolWaferMapHandler的對象(處理器)調(diào)用SetToToolWaferMapHandler,工具處理器注冊IWaferMapExecutor對象。遠(yuǎn)程命令遠(yuǎn)程命令用來請求執(zhí)行在工具上實現(xiàn)的命令。例如,可以使用遠(yuǎn)程命令來^吏工具實現(xiàn)命令調(diào)用的開始。如CEM標(biāo)準(zhǔn)所指定的,Equipment以及EquipmentModule對象的實例都可以處理遠(yuǎn)程命令。對能夠處理遠(yuǎn)程命令的每個IAbstractModule,工具必須注冊實現(xiàn)ICommandExecutor的對象。該對象必須實現(xiàn)ExecuteCommand方法以執(zhí)行遠(yuǎn)程命令。該對象將負(fù)責(zé)對于其所注冊的每個IAbstractModule處理所有遠(yuǎn)程命令。請注意實現(xiàn)ICommandExecutor的對象可以為多于一個才莫塊的源。終端服務(wù)基于IAbstractModule接口的所有對象都可以具有實現(xiàn)終端服務(wù)的能力。具有終端服務(wù)源的對象可以以和SEMIE30標(biāo)準(zhǔn)中指定的終端服務(wù)兼容的方式處理終端服務(wù)消息。通過利用實現(xiàn)ITerminalDisplayHandler的對象調(diào)用SetTerminalDisplayHandler,工具對于終端服務(wù)注冊處理工具與主機(jī)之間通信的ITerminalService對象。請注意實現(xiàn)ITerminalDisplayHandler的對象可以為多于一個模塊的源。事件事件接口用來允許IBaseEvent表示在設(shè)備上生成的事件。在許多'i況下,當(dāng)事件發(fā)生時,事件也將更新模型中的一或多個屬性。在這種情況下,源必須也實現(xiàn)這些屬性的IAsynchronousSource接口。通過調(diào)用IBaseEvent.AddEventListener,4吏能IEventSource。<吏能IEventSource會調(diào)用lEventSource.Start方法。當(dāng)不再需要事件時,通過調(diào)用IBaseEvent.RemoveEventListener,禁止IEventSource。禁止IEventSource會調(diào)用IEventSource.Stop方;去。源客戶端可以使用三種方法來為事件以及與事件相關(guān)的數(shù)據(jù)提供源。它們是基于事件地按照需要總是無關(guān)于事件地按照需要基于事件地按照需要更新是時間效率最高的報告數(shù)據(jù)的機(jī)制,但是要求較復(fù)雜的IEventSource。該系統(tǒng)假定實際的數(shù)據(jù)源為必須與之通信的單獨的應(yīng)用。另外,對高帶寬數(shù)據(jù)報告優(yōu)化,其中配置與報告數(shù)據(jù)相比要求少量的帶寬。該系統(tǒng)要求IEventSource跟蹤到事件以及事件中的數(shù)據(jù)的引用的數(shù)目。跟蹤這些將只允許對每個事件報告所需的數(shù)據(jù)。當(dāng)源客戶端根據(jù)客戶端的需求更新一或多個事件時,源必須跟蹤對IEventSource.Start以及IEventSource.Stop方法的所有調(diào)用。每次調(diào)用Start時,源必須檢查事件的狀態(tài)。如果還沒有使能對于該事件的數(shù)據(jù)釆集,則源必須執(zhí)行設(shè)置事件采集所需的所有動作。如果事件具有該源也更新的一組屬性,則源必須確定該事件是否也正在更新這些屬性。如果該事件沒有正在更新這些屬性,則必須改變事件配置以另外更新屬性列表。當(dāng)在事件上指定一組屬性時,只有在該事件(加上它們已經(jīng)被使能的任何其他事件)上才要求更新屬性,除非已經(jīng)利用IAsynchronousSource.Start使能了屬性的采集。所需的實際動作依賴于源。一旦成功完成了所有動作,則調(diào)用IBaseEvent.ConnectAsynchronousSource來通知IBaseEvent源將開始4是供事件。存在這種水平的復(fù)雜度來最小化潛在地通過IEventSource與實際生成數(shù)據(jù)的應(yīng)用之間的通信機(jī)制必須報告的數(shù)據(jù)(不是配置)。每次調(diào)用Stop時,源都必須檢查是否這是對時間的最后一個引用。如果是,則其應(yīng)該執(zhí)行終止采集事件以及與事件相關(guān)的數(shù)據(jù)所需的所有動作。請注意可以只對這一個事件終止對象/屬性的數(shù)據(jù)采集。如果仍在其它事件上采集數(shù)據(jù),則其必須繼續(xù)這樣做。如果未終止事件,則其也可以檢查到與事件相關(guān)的每個對象/屬性的引用。如果不存在對屬性的引用,則其可以停止采集該屬性的數(shù)據(jù)。一旦完成了所有酉己置,則其必須調(diào)用IBaseEvent.DisconnectAsynchronousSource以通知IBaseEvent源將不再提供事件。圖24顯示不是IAsynchronousSource的IEventSource。該例子顯示當(dāng)將監(jiān)聽器添加到都由正ventSource提供來源(source)的兩個不同事件時所發(fā)生的動作。IEventSource必須僅跟蹤到每個事件的引用的數(shù)目,從而源在正確的時間斷開。圖25與26顯示對于作為兩個屬性的IAsynchronousSource的一個事件的IEventSource。該例子顯示當(dāng)將監(jiān)聽器添加到具有相同屬性(圖25)的以及具有不同屬性(圖26)的事件時所發(fā)生的動作。現(xiàn)在IEventSource必須跟蹤到事件以及到屬性的引用的數(shù)目。最少,其必須使能當(dāng)添加監(jiān)聽器時(如圖所示)報告每個特定事件上的屬性。圖27顯示也作為兩個屬性的IAsynchronousSource的兩個事件的IEventSource。該例子顯示當(dāng)將監(jiān)聽器添加到具有這些屬性的事件時所發(fā)生的動作。圖28顯示當(dāng)使能了異步供應(yīng)的屬性、隨后使能包含該屬性以及另一個屬性的事件時發(fā)生的情況。請注意當(dāng)在IBaseEvent上觸發(fā)事件以更新屬性時所執(zhí)行的附加動作。實際上,即使當(dāng)不存在屬性設(shè)置的監(jiān)聽器時也總是這樣。這沒有在先前圖中顯示,這是因為其與那些圖無關(guān)。某些異步源可以連續(xù)地提供事件,而不考慮對事件的興趣。一旦這些源準(zhǔn)備好開始提供事件,它們就應(yīng)該調(diào)用IBaseEvent.ConnectAsynchronousSource。如果源也才是供屬性,則其對每個屬寸生也必須調(diào)用IBaseObject.ConnectAsynchronousSource。源可以忽略Start與Stop方法(這些方法仍然必須被實現(xiàn);它們只是不執(zhí)行任何動作)。在任意時間,如果源停止提供數(shù)據(jù),則它必須調(diào)用IBaseEventDisconnectAsynchronousSource以通知IBaseEvent其不再提供事件。如果對象還為屬性提供來源(sourcing),則其必須在每個屬性上調(diào)用IBaseObject.DisconnectAsynchronousSource。圖29顯示源必須采取的動作。請注意該圖沒有詳細(xì)顯示在IBaseEvent或IBaseObject內(nèi)采取的任何實際動作。無關(guān)于事件地按照需要更新不是報告數(shù)據(jù)的有效機(jī)制,但是其要求較簡單的IEventSource。該系統(tǒng)假定實際數(shù)據(jù)源為必須進(jìn)行通信的分離的應(yīng)用。該系統(tǒng)不要求IEvenSource跟蹤到事件或者事件中的數(shù)據(jù)的引用的數(shù)目。通過不跟蹤該信息,可能改變屬性值的所有事件必須更新屬性。當(dāng)源客戶端按照客戶端要求更新一或多個屬性時,當(dāng)?shù)谝粋€監(jiān)聽器添加到事件時,將調(diào)用正ventSource.Start;以及當(dāng)從事件去除最后一個監(jiān)聽器時,將調(diào)用IEventSource.St叩。每次調(diào)用Start時,源必須執(zhí)行設(shè)置事件采集所需的所有動作。如果事件具有該源也要更新的一組屬性,則源必須執(zhí)行配置該事件加上具有提供屬性數(shù)據(jù)的能力的所有其他事件上的數(shù)據(jù)采集的所有動作。一旦成功完成了所有動作,則調(diào)用IBaseEvent.ConnectAsynchronousSource以通知IBaseEvent源將開始提供事件。每次調(diào)用Stop時,源必須確定是否仍然需要事件。如果事件提供當(dāng)前被使能的該源所提供的任何屬性,則事件必須保持被使能。如果對于事件沒有保持屬性,則執(zhí)行終止采集事件以及與事件相關(guān)的數(shù)據(jù)所需的所有動作。屬性僅被提供任何監(jiān)聽器都不再需要的Stop。如果仍然在其他事件上采集數(shù)據(jù),則必須繼續(xù)這樣做。一旦完成了所有配置,^再提供事件。、、''J圖30顯示不是IAsynchronousSource的IEventSource。該例子顯示當(dāng)將監(jiān)聽器添加到都由IEventSource提供來源的兩個不同事件時所發(fā)生的動作。圖31與32顯示對于作為兩個屬性的IAsynchronousSource的一個事件的IEventSource。該例子顯示當(dāng)將監(jiān)聽器添加到具有相同屬性(圖31)的以及具有不同屬性(圖32)的事件時所發(fā)生的動作。圖33顯示也是兩個屬性的IAsynchronousSource的兩個事件的IEventSource。該例子顯示當(dāng)將監(jiān)聽器添加到具有這些屬性的事件時所發(fā)生的動作。請注意當(dāng)將監(jiān)聽器添加到第一事件時,必須使能兩個事件源,這是因為兩個事件都要更新屬性值。在該例子中,只在需要時進(jìn)行連接。圖34顯示圖33所示例子的輕微變形,其中當(dāng)在外部源上使能事件時,可以連接事件的源。圖35顯示當(dāng)使能了異步供應(yīng)的屬性、隨后使能包含該屬性以及另一個屬性的事件時發(fā)生的情況。以上附圖描述了在IBaseEvent上調(diào)用Trigger。該方法實際并不存在于IBaseEvent上。它確實存在于IBaseEvent的特定字類上。并非所有事件都支持從外部異步源觸發(fā)事件。某些事件必須由替換手段觸發(fā)。以上結(jié)合幾種實施例描述了本發(fā)明。這樣做只是為了說明目的,本領(lǐng)域技術(shù)人員明白本發(fā)明的許多變化,并且其也落入本發(fā)明的范圍之內(nèi)。權(quán)利要求1.一種多客戶端多協(xié)議設(shè)備服務(wù)器,用來與工具通信,包括多個主機(jī)/客戶端接口,所述多個主機(jī)/客戶端接口中的至少一個用來與制造執(zhí)行系統(tǒng)通信;多個工具接口,所述多個工具接口中的至少一個用來與該工具通信;以及工具的設(shè)備對象模型,其中制造執(zhí)行系統(tǒng)基于所述工具設(shè)備對象模型與該工具通信。2.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述設(shè)備對象模型基于SEMICEM標(biāo)準(zhǔn)。3.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的至少一個用來與工具性能應(yīng)用通信,并且其中工具性能應(yīng)用基于所述工具的設(shè)備對象模型與工具通信。4.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的至少一個用來與電子表格應(yīng)用通信,并且其中電子表格應(yīng)用基于所述工具的設(shè)備對象模型與工具通信。5.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的至少一個用來與基于網(wǎng)絡(luò)瀏覽器的遠(yuǎn)程診斷應(yīng)用通信,并且其中基于網(wǎng)絡(luò)瀏覽器的遠(yuǎn)程診斷應(yīng)用基于所述工具的設(shè)備 對象模型與工具通信。6.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的第一個用來與制造執(zhí)行系統(tǒng)通信,其中所述多個主機(jī)/客戶端接口中的第二個用來與第二客戶端通信,并且其中制造執(zhí)行系統(tǒng)基于所述工具的設(shè)備對象模型、與第二客戶端與工具通信同時地與工具通信。7.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的至少一個用來接收對工具的物理或邏輯構(gòu)成的查詢,并且其中所述工具的設(shè)備對象模型用來對該查詢做出響應(yīng)。8.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的至少一個用來接收對工具或其組件所處狀態(tài)的查詢,并且其中所述工具的設(shè)備對象模型用來對該查詢做出響應(yīng)。9.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的至少一個用來傳達(dá)發(fā)生了與工具相關(guān)的事件,并且其中在該事件的傳達(dá)中使用所述設(shè)備對象模型。10.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的至少一個包括GEM接口,其中制造執(zhí)行系統(tǒng)通過所述GEM接口通信。11.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個工具接口中的至少一個包括SECS/GEM接口,其中工具通過所述SECS/GEM接口通信。12.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個主機(jī)/客戶端接口中的至少一個包括.NET接口,其中制造執(zhí)行系統(tǒng)通過所述.NET一妻口通信。13.如權(quán)利要求1所述的多客戶端多協(xié)議設(shè)備服務(wù)器,其中所述多個工具接口中的至少一個包括.NET接口,其中工具通過所述.NET接口通信。14.一種通過多個協(xié)議建立工具與多個客戶端之間的通信的方法,包括以下步驟配置多個主機(jī)/客戶端接口中的至少一個與制造執(zhí)行系統(tǒng)通信;配置多個工具接口中的至少一個與工具通信;以及定義工具的設(shè)備對象模型,其中制造執(zhí)行系統(tǒng)基于所述工具的設(shè)備對象模型與工具通信。15.如權(quán)利要求14所述的建立通信的方法,其中所述設(shè)備對象模型基于SEMICEM標(biāo)準(zhǔn)。16.如權(quán)利要求14所述的建立通信的方法,還包括以下步驟配置所述多個主機(jī)/客戶端接口中的至少一個與工具性能應(yīng)用通信,并且其中工具性能應(yīng)用基于所述工具的設(shè)備對象模型與工具通信。17.如權(quán)利要求14所述的建立通信的方法,還包括以下步驟配置所述多個主機(jī)/客戶端接口中的至少一個與電子表格應(yīng)用通信,并且其中電子表格應(yīng)用基于所述工具的設(shè)備對象模型與工具通信。18.如權(quán)利要求14所述的建立通信的方法,還包括以下步驟配置所述多個主機(jī)/客戶端接口中的至少一個與基于網(wǎng)絡(luò)瀏覽器的遠(yuǎn)程診斷應(yīng)用通信,并且其中基于網(wǎng)絡(luò)瀏覽器的遠(yuǎn)程診斷應(yīng)用基于所述工具的設(shè)備對象模型與工具通信。19.如權(quán)利要求14所述的建立通信的方法,還包括以下步驟配置所述多個主機(jī)/客戶端接口中的至少一個與第二客戶端通信,其中制造執(zhí)行系統(tǒng)基于所述工具的設(shè)備對象模型、與第二客戶端與工具通信同時地與工具通信。20.如權(quán)利要求14所述的建立通信的方法,其中所述多個主機(jī)/客戶端接口中的至少一個用來接收對工具的物理或邏輯構(gòu)成的查詢,并且其中所述工具的設(shè)備對象模型用來對該查詢做出響應(yīng)。21.如權(quán)利要求14所述的建立通信的方法,其中所述多個主機(jī)/客戶端接口中的至少一個用來接收對工具或其組件所處狀態(tài)的查詢,并且其中所述工具的設(shè)備對象模型用來對該查詢做出響應(yīng)。22.如權(quán)利要求14所述的建立通信的方法,其中所述多個主^W客戶端接口中的至少一個用來傳達(dá)發(fā)生了與工具相關(guān)的事件,并且其中在該事件的傳達(dá)中使用所述設(shè)備對象模型。23.如權(quán)利要求14所述的建立通信的方法,其中所述多個主機(jī)/客戶端接口中的至少一個包括GEM接口,其中制造執(zhí)行系統(tǒng)通過所述GEM接口通信。24.如權(quán)利要求14所述的建立通信的方法,其中所述多個工具接口中的至少一個包括SECS/GEM接口,其中工具通過所述SECS/GEM接口通信。25.如權(quán)利要求14所述的建立通信的方法,其中所述多個主機(jī)/客戶端接口中的至少一個包括.NET接口,其中制造執(zhí)行系統(tǒng)通過所述.NET接口通信。26.如權(quán)利要求14所述的建立通信的方法,其中所述多個工具接口中的至少一個包括.NET接口,其中工具通過所述.NET接口通信。全文摘要公開了一種改進(jìn)工廠中設(shè)備的自動化工作管理的實現(xiàn)的方法與裝置。配備多協(xié)議多客戶端設(shè)備服務(wù)器,用來利用多個協(xié)議與設(shè)備和客戶端通信。設(shè)備服務(wù)器包括每個工具的對象模型,并且實時地與工廠設(shè)備直接通信。通過提供多協(xié)議多客戶端平臺,將數(shù)據(jù)使用客戶端有效地與工作管理客戶端分離開,從而允許容易地實現(xiàn)用來監(jiān)視與控制設(shè)備處理的下一代站點控制器。文檔編號H04L12/66GK101151865SQ200680010731公開日2008年3月26日申請日期2006年1月31日優(yōu)先權(quán)日2005年2月2日發(fā)明者托尼·古克,查爾斯·貝利斯,蒂姆·約斯,雷·埃利斯申請人:阿西斯特技術(shù)公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1