CN101151865B - 多协议多客户端设备服务器 - Google Patents

多协议多客户端设备服务器 Download PDF

Info

Publication number
CN101151865B
CN101151865B CN200680010731.8A CN200680010731A CN101151865B CN 101151865 B CN101151865 B CN 101151865B CN 200680010731 A CN200680010731 A CN 200680010731A CN 101151865 B CN101151865 B CN 101151865B
Authority
CN
China
Prior art keywords
instrument
interface
letter
client
clients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200680010731.8A
Other languages
English (en)
Other versions
CN101151865A (zh
Inventor
查尔斯·贝利斯
雷·埃利斯
蒂姆·约斯
托尼·古克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ASYST TECHNOLOGIES
Original Assignee
ASYST TECHNOLOGIES
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ASYST TECHNOLOGIES filed Critical ASYST TECHNOLOGIES
Priority claimed from PCT/US2006/003282 external-priority patent/WO2006083789A2/en
Publication of CN101151865A publication Critical patent/CN101151865A/zh
Application granted granted Critical
Publication of CN101151865B publication Critical patent/CN101151865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

公开了一种改进工厂中设备的自动化工作管理的实现的方法与装置。配备多协议多客户端设备服务器,用来利用多个协议与设备和客户端通信。设备服务器包括每个工具的对象模型,并且实时地与工厂设备直接通信。通过提供多协议多客户端平台,将数据使用客户端有效地与工作管理客户端分离开,从而允许容易地实现用来监视与控制设备处理的下一代站点控制器。

Description

多协议多客户端设备服务器
相关申请的交叉引用
本申请为2000年2月1日提交的美国申请第09/496,009号的部分继续申请,2001年7月5日提交的美国申请第09/899,833号的部分继续申请,2005年4月15日提交的美国申请第11/107,508号的部分继续申请,并且要求以下2005年2月2日提交的13个美国临时申请中每个的优先权:60/649,207,60/649,754,60/649,755,60/649,756,60/649,757,60/649,75 8,60/649,759,60/649,763,60/649,764,60/649,765,60/649,768,60/649,898,60/650,441,所有以上申请通过引用融入本文。
技术领域
本发明涉及自动化作业管理领域,具体地,涉及半导体加工设施中设备(equipment)处理的监视与控制。
背景技术
半导体芯片制造一般不如其他技术部门的自动化程度高。在半导体芯片制造厂的各个区域中,系统与工具经常只是半集成的,甚至是完全独立的。另外,因为一般使用的专用通信协议,经常很难以如下方式自动化制造过程,这种方式不仅协调工具之间的活动,而且以可用于过程改进或者其他工作管理功能的方式从工具采集数据。
图1显示设备管理的现有技术方式。工厂制造执行系统(MES)110连接到半导体制造设备120,其运行工具控制软件130。通过计算机集成制造技术来管理设备的这一传统方式依赖于半导体设备与材料国际(SEMI)组织的有二十年历史的半导体设备通信标准(SECS)通信标准。这些标准定义了串行的点到点通信接口与消息系统,用于半导体制造设备120与MES110之间的信息交换。为了符合这些标准,工具销售商一般提供符合SECS或SECS/GEM的接口140与工具控制软件130,以使工厂人员能够将工具连接到MES主机110。
随着工具变得越来越复杂,需要比SECS消息系统与接口一般提供的要多的、关于工具的功能与结构的信息。SECS接口的某些具体限制包括以下:
1、不可发现的接口:MES不能查询接口来确定其功能。已经开发了工具驱动器来向MES提供不能通过SECS接口得到的配置信息。
2、不可发现的物理结构:SECS消息无法披露工具的物理结构。这阻碍了开发用于诸如远程状态显示与远程诊断等重要任务的通用工厂系统。
3、单个客户端:将工具连接到MES的SECS电缆为点到点链接。只有来自MES的一个软件进程可以访问工具,这使多个客户端应用不可能访问工具。
4、缺乏安全机制:SECS没有规定客户端验证或者访问许可。如果多个客户端(尤其是MES之外的那些客户端)可以访问工具,则必须要有安全控制。
作为图1所示配置的替换,工厂自动化工程师已经开发了图2例示的配置,其中将工具编组在一起,并且由称为“站点控制器”的单个软件程序松散地控制。站点控制器250利用SECS/GEM接口,与单个工具或者工具组通信。工厂MES 210连接到站点控制器250,站点控制器250进而连接到半导体制造设备220,该半导体制造设备220运行工具控制软件230。
站点控制器250的工作是双重的。首先,站点控制器250向MES 210呈现关于工具的、比使用SECS接口可能有的更方便的视图。第二,站点控制器250可以为工具添加几种功能,例如过程工作设置与配方控制。
不幸的是,实现站点控制器的当前的软件体系结构具有严重的限制,尤其是关于半导体制造工具之间的集成,以及处理关于工具动作与状态的数据的方式。具体地,经常需要设备从工具直接提供实时数据到其他软件应用,以用于制造过程分析、诊断、以及迅速实现的校正措施。为了支持这一需求,用来集成与提取来自工具的数据的当前的软件体系结构要克服许多设计障碍。首先,利用SECS/GEM接口,实现站点控制器的当前的体系结构没有克服上述的限制。
当前的站点控制器中存在的另一基本问题在于由于偏离了控制材料过程的首要功能而产生的较高的复杂度。因为在核心工作管理需求之上又融入了多项功能,所以人们建立了大型复杂的软件体系结构,其不容易适应变化。这也导致了单个故障点和多个内部故障点以及拥有成本较高。因为数据采集一般已经与工作管理集成,所以当前的站点控制器已经成为设备数据的唯一采集者,这就要求数据使用者通过站点控制器连接。
与目前集中于45nm及其之下的几何尺寸的减少并行地,随着对于300mm及其之上晶片的电路容量增加,需要半导体制造商实现高效自动化集成策略的半导体工业的变化是作为结果的、必须管理的制造数据的指数增长的主要原因。除以上变化推动因素之外,还有几种其他压力放大了对变化的需求。首先,需要将少数的专家资源集中于解决问题,并且减少花费在仅仅寻找数据上的资源。另外,(其中每个晶片包含上百到上千个冲模)误处理45nm的晶片的高成本使得更加急需高效的解决方案。还存在推动对高效解决方案的需求的性能问题,例如设备停机时间的高成本,以及对改进总体设备有效性(OEE)的希望。还需要实时数据以允许对处理问题的更快的响应,以及需要改进从工具到生产的时间。
当前解决方案不会解决诸如电子诊断以及高级过程控制(APC)等应用的数据访问需求,这些应用需要自动化体系结构的功能,以支持对于设备的并发的多客户端访问,并且独立于设备处理控制的当前所有权。实现“按需数据”的功能是下一代专注于半导体的站点控制器体系结构的推动因素。随着业界从基于批次(lot based)水平的制造转移到晶片水平的制造,自动化解决方案将需要能够提供进行有效的制造与业务决定以满足其客户需求所需的高级统计过程控制(SPC)、故障检测分类、以及逐次运行(run-to-run)控制应用。
出于上述原因,典型的站点控制器已经构成障碍。在过去站点控制器被设计来具体地控制对制造工作的管理,而目前站点控制器已经演变为复杂交织的一组程序,其功能扩展不亚于其复杂度的扩展。这种复杂度使对站点控制器、及其基本功能(例如工作管理)的维护或者改变非常困难、耗费时间、并且昂贵。在某些情况下,软件代码的重叠与交织性质使得工厂管理者对于进行任何改变非常犹豫,即使这些改变可以产生增加操作半导体芯片的产出量所需的制造过程的改进也如此。
新标准,例如SEMI E120,常用设备模型规格(CEM)正在演进,其提供标准设备对象模型。CEM可以用做指南,以允许开发表示要由其他工厂设备使用的工具的外部视图的对象模型。诸如CEM等标准代表了使用工业标准面向对象工具界面的机会,但是当前的站点控制器体系结构不能利用这些新标准。
需要一种方法,来克服SECS或者SECS/GEM接口的限制,消除对成本高昂的站点控制器的需要,并且利用CEM对象模型。
发明内容
本发明通过建立一种围绕设备模型框架的多协议多客户端设备服务器,解决了上述限制。本发明作为设备与工厂MES和与设备通信的其他客户端软件之间的中介。本发明可以在继承模式(legacy mode)下运行,其中支持当前MES与SECS/GEM接口,同时使得易于转变为设备与MES系统的新式协议。
本发明的一个方面融入了一种设备服务器要使用的具有图形用户界面的软件工具,其允许方便地建立和验证设备模型。
附图说明
图1显示对于通过计算机集成制造技术管理设备的现有技术方法;
图2显示对于并入站点控制器的管理设备的现有技术替换方法;
图3显示运行于继承模式下的本发明的实施例;
图4显示运行于原生模式(native mode)下的本发明的实施例;
图5显示本发明实施例的软件组件;
图6显示用于以下其他附图中的UML图中的对象模型标记法;
图7显示本发明实施例的对象模型的细节;
图8显示本发明实施例的对象模型的细节;
图9A-9B显示本发明实施例的对象模型的细节;
图10A-10B显示本发明实施例的对象模型的细节;
图11显示本发明实施例的对象模型的细节;
图12显示本发明实施例的对象模型的细节;
图13显示本发明实施例的对象模型的细节;
图14显示本发明实施例的对象模型的细节;
图15显示本发明实施例的对象模型的细节;
图16显示本发明的Model Builder的图形用户界面的细节;
图17显示本发明实施例的主机/客户端接口关系;
图18显示本发明实施例的客户端与设备服务器之间的通信;
图19显示本发明实施例的客户端与设备服务器之间的通信;
图20显示本发明实施例的工具/数据代理关系;
图21显示本发明实施例的异步源与设备服务器之间的通信;
图22显示本发明实施例的异步源与设备服务器之间的通信;
图23显示本发明实施例的异步源与设备服务器之间的通信;
图24显示本发明实施例的事件源与设备服务器之间的通信;
图25显示本发明实施例的事件源与设备服务器之间的通信;
图26显示本发明实施例的事件源与设备服务器之间的通信;
图27显示本发明实施例的事件源与设备服务器之间的通信;
图28显示本发明实施例的事件源与设备服务器之间的通信;
图29显示本发明实施例的事件源与设备服务器之间的通信;
图30显示本发明实施例的事件源与设备服务器之间的通信;
图31显示本发明实施例的事件源与设备服务器之间的通信;
图32显示本发明实施例的事件源与设备服务器之间的通信;
图33显示本发明实施例的事件源与设备服务器之间的通信;
图34显示本发明实施例的事件源与设备服务器之间的通信;和
图35显示本发明实施例的事件源与设备服务器之间的通信。
具体实施方式
本发明的设备服务器通过实现允许并发访问设备信息的设备模型,为前端与后端制造(fab)提供最新的实时数据。设备服务器提供一种对象模型,其能够表示工具的物理结构,以及其行为特性。其支持多个同时连接,多个通信接口类型——多个协议——并且包括用于添加附加标准与非标准接口的框架。利用XML配置进行对工具模型与所有通信接口的配置,这允许完全的灵活性。
本发明的设备服务器是灵活的,并且适合于现有的自动化解决方案,不论前端还是后端,包括组装与测试。支持与传统站点控制器与非SECS设备的集成,其中对信息的访问仍然是关键的,但是较耗时,并且经常手工采集。另外,支持多个商业通信协议,这提供了灵活的集成、低成本以及无风险的实现。
本发明提供了对于半导体工具实现CEM标准的手段。本发明提供了基于CEM标准的分层通用类库,其可以用来建立半导体制造工具的对象模型。通过添加面向对象的通信技术,例如DCOM与.NET,本发明扩展了对象模型,以使多个客户端程序(不论工厂之内还是之外)能够同时与工具通信。这使工厂用户能够利用工具信息来提高生产率,以及使各个第三方(例如工具销售商)能够通过万维网提供远程诊断支持。本发明还包括SECS/GEM接口组,其使得易于从继承应用迁移到分布式对象接口技术。
通过利用当前技术水平的基于对象的通信技术(例如DCOM、.NET、以及HTTP/SOAP)扩展CEM模型,本发明使得能够将应用从有限的基于SECS/GEM的体系结构迁移到基于使能解决方案供应商之间的互操作的工业标准构造的健壮的应用。
以下SEMI标准与本发明有关,并且通过引用融入本文。从其相关标准中抽取对于每个标准的描述。
SEMI E4-0699:SEMI设备通信标准1消息传送(SECS-I)。定义了适合于半导体处理设备与主机之间的消息交换的通信接口(1.2节,1999年6月)。
SEMI E5-0301:SEMI设备通信标准2消息内容(SECS-II)。定义了智能设备与主机之间交换的消息的解释的细节(1.1节,2001年3月)。本发明的优选实施例支持SEMI E5中定义的消息的子集。这些消息的格式在SEMI E5中描述。确立了设备服务器内部变量与事件的缺省变量与事件ID。对于特定工具实现,这些值可以变化。工具实现者应该提供单独的手册,来描述用于该工具的变量与事件。
SEMI E30-1000:制造设备的通信与控制的通用模型(GEM)。GEM标准的范围限于定义通过通信链路观察的半导体设备的行为。SEMI E5(SECS-II)标准提供了在主机与设备之间交换的消息与相关数据项的定义。GEM标准定义应该在哪些情况下使用哪些SECS-II消息,以及作为结果的活动应该是什么(1.2节,2000年10月)。
SEMI E37-0298:高速SECS消息服务(HSMS)通用服务。HSMS定义适合于半导体工厂中的计算机之间消息交换的通信接口。对于其中需要较高速通信的应用或者当简单的点到点拓扑结构不足时,HSMS意图作为SEMIE4(SECS-I)的替换。对于其中比OSI更偏好TCP/IP的应用,HSMS还意图作为SEMI E13(SECS消息服务)的替换(1与2节,1998年2月)。
SEMI E37.1-96E:高速SECS消息服务单会话模式(HSMS-SS)。对于高速SECS消息服务(HSMS)通用服务的补充标准。该标准的目的在于将HSMS通用服务的功能明确地限定至该应用类型的最小需要(2与5节,1999年8月)。
SEMI 3570:XML半导体公用组件
SEMI 3851:测量单位的XML表示
SEMI E125与E125.1:设备自我描述
SEMI E132与E321.1:鉴别与授权
SEMI E134与E134.1:数据采集管理
图3显示继承模式下的本发明实施例。工厂MES 310与设备服务器上的继承模式接口320通信。设备服务器还利用到运行工具控制软件330的设备340的继承模式接口320通信。继承模式接口320包括到工厂MES 310的GEM继承模式接口、到设备对象模型350的继承模式接口、以及到设备340的SECS/GEM继承模式接口。设备对象模型350为基于GEM标准的设备的分层模型。设备服务器通过分布式对象接口360(其包括DCOM、.NET、以及HTTP接口),支持设备与其他客户端之间的其他交互。诸如工具性能应用370、定制电子表格应用380、或者网络浏览器电子诊断390等客户端通过到设备服务器的分布式对象接口360通信。
本发明的继承模式被设计来为过程工具提供继承GEM接口,而不关心工具制造商提供的接口。这允许工厂建立到设备服务器的GEM连接,设备服务器进而利用继承SECS或GEM实现建立到过程工具的连接。虽然该特征允许所有工具都看起来相似并且使单元控制器开发容易,但是其增加了将本发明部署于现有继承系统中的复杂度。继承模式工具接口提供了解决这个问题的短期解决方案。
在设施中部署继承模式而不修改现有的单元控制器。在这种模式下,本发明作为数据采集系统。继承模式允许将来自主机的所有消息不经修改地传递到工具,并且在相同条件下返回,同时进行数据采集并且提供工具的对象模型。该模式意图作为中间部署解决方案,直至可以改进继承系统以利用完全实现的益处。
图4显示非继承或者原生模式下的本发明实施例。在该实施例中,不使用设备服务器的继承模式特征,而是工厂MES 410直接与设备服务器的分布式对象接口450通信,并且这些接口也用来与在设备440上运行的工具控制软件430通信。设备服务器利用作为基于CEM标准的设备的分层模型的设备模型420。与继承模式中一样,诸如工具性能应用460、定制电子表格应用470、或者网络浏览器电子诊断480等其他客户端通过到设备服务器的分布式对象接口450通信。
在图5中显示了关于本发明的设备服务器内部组件的更多的细节。分布式对象接口560用来在服务器520与客户端程序(工厂之内和之外两者)之间通信,如图3与图4所示。在本发明优选实施例中,支持DCOM 565、.NET 570、以及HTTP 575接口。与设备的通信利用SECS/GEM继承模式接口545或者定制工具接口550。如上所述,与工厂MES主机的通信利用SECS/GEM继承模式接口525或者定制主机应用接口535。继承模式连接接口540用来在继承模式下连接主机与设备。EIB框架530包含基于CEM标准的分层通用类库。该库用来为工厂中的每个工具建立对象模型实例。EIB探索器(explorer)510为作为工具浏览器的程序,其显示特定工具的对象与属性。EIB探索器510还允许为了测试或者调试目的改变属性值。
对象模型
本发明使用每个半导体制造工具的对象模型。对象模型的功能很象分层数据模型,其揭示关于反映设备的结构与操作的对象的信息。客户端程序可以以几种方式与模型通信。通过交换同步消息,可以检索或者改变数据值。该过程可以用来执行以下:
1、查询模型以发现工具的物理或者逻辑结构。
2、查询模型以发现到工具或者其组件处于哪个状态,例如:服务中、未服务、空闲、活跃、非活跃。
3、指挥对象执行该对象所拥有的、并且用户可访问的特定功能,例如当工具的所有或者部分必须去除服务以进行维护时改变对象的状态,或者读取所添加的I/O设备。
客户端程序与工具之间的通信也可以通过异步回叫发生,其中当在工具内发生特定事件时,例如当状态或者数据值改变时,客户端程序接收来自对象的通知。
从本发明设备服务器之外的应用的观点看,对象采用三种形式之一。它们是:可命名对象、服务对象、以及内部对象。
可命名对象为基于SEMI E120公用设备模型可命名对象的对象。可命名对象为实现CEM可命名类的所有要求的对象。为了访问对象,可命名对象的重要元素为具有在对象的所有拥有者内唯一识别对象的名称的对象,并且可以从每个拥有者检索该对象。另外,可命名对象具有一组定位符,其在模型内唯一地识别对象,通过对象的每个拥有者识别一个。这些对象看起来类似于E39对象,但是可以符合或不符合该标准。在每个对象具有一组属性以及可以在对象上执行的服务的意义上,它们是类似的。这些对象不类似是因为它们(缺省地)没有ObjID或者ObjType属性,并且相同类的对象可能有不同的属性与服务。某些对象符合E39对象服务,并且将被标注。
服务对象为可命名对象上的服务提供的可命名对象的支持对象。这些对象一般提供对于特定可命名对象为可选地取得的附加描述信息或者附加服务。这些对象可以具有或不具有识别它们的名称。这些对象不可用做可命名对象的子对象,并且没有唯一识别它们的定位符。这些对象可以作为引用或者作为值返回。
内部对象为通过.NET接口根本不可见的对象。在实现设备服务器时,使用这些对象,并且与客户端无关。
本发明中的每个对象的定义描述了对象保持的数据(属性与相关值),其保持该数据是只读还是可读/写,对象的可能行为(状态模型)、以及用户可以访问以控制对象行为的服务(方法)。
图6显示在以下附图中的UML图中使用的对象模型标记方法。UML图中定义的所有对象都是可命令对象。图中不出现服务对象与内部对象。相关服务对象在每个附图的文本中简单描述。UML图中以正常文本显示的对象名称为可能存在于工具模型内的具体对象。UML图中以斜体显示的对象名称为抽象对象,并且必须由具体对象继承。
可用的对象落入几个组之一。这些组是:应用根对象、接口对象、管理对象、以及CEM框架对象。下面段落中描述这些组的每个组中的对象。
应用根对象在优选实施例中,本发明的设备服务器暴露单个应用根对象,其允许访问服务器中所有其他对象。EibApplicationRoot对象提供该对所有信息的单个访问点。应用根对象包含设备的CEM模型、向/从设备服务器提供信息的接口、以及几个对象管理器、以及定义对象。定义对象没有显示为对象层次的一部分,这是因为它们不是可命令对象,并且通过服务访问。
应用根对象被添加到CEM层次的顶部,以保持CEM定义的设备模型独立于设备服务器提供的接口与管理功能。为了符合SEMI E39,应用根对象为系统内的所有对象提供基本E39服务。其包括使系统内的所有可命名对象看起来都是E39对象的逻辑。其通过以下来做到这一点:将ObjID与ObjType属性的概念添加到还没有它们的可命名对象。为了完全符合E39,对于工具模型存在某些依赖性。在优选实施例中,不要求符合E39,从而设备服务器不实施建模规则。
应用根对象提供了用于访问定义对象的一组服务。定义对象为定义可以在整个对象模型中使用的可重用定义的对象。所有定义对象都是服务对象。在优选实施例中支持以下定义:参数类型定义、单位定义、以及状态机定义。
参数类型定义定义模型中使用的数据类型。系统内可命名对象的所有属性都引用参数类型定义之一。使用大量的参数类型定义,另外还可以添加任意数目的用户定义的参数类型定义。除枚举、数组、以及结构之外,参数类型定义还能够表示本发明中定义的所有简单数据类型。
单位定义定义模型中使用的测量单位。可命名对象上的所有属性都可以引用单位定义之一,以定义该属性的测量单位。没有到单位对象的链接的属性没有测量单位。
状态机定义定义模型中使用的状态机。系统中可命名对象上的所有状态机属性都引用状态机定义之一。状态机定义定义合法状态、状态之间的转移、以及当发生转移时生成的事件。状态机内的任何状态都可能由子状态机构成。
图7显示应用根对象层次。显示了对于所有内部定义的CommInterface与EibModel Manager对象的EibApplicationRoot层次。许多管理器被单独配置,并且不必包含在设备模型内。所有接口被单独配置,并且不必包含在设备模型内。
接口对象CommInterface为到本发明的设备服务器的所有接口的抽象基类。到服务器的接口为负责向或从CEM模型提供或检索数据的通信机制。没有对象表示它的、唯一的到CEM的接口为原生C#。在优选实施例中,实现本发明的软件以C#编写,并且运行在.NET框架上。
唯一内部CommInterface为GEMInterface。可以添加其他定制接口。GEMInterface对象表示到设备服务器的SECS/GEM接口。接口可以为到工具的接口或者到主机的接口。GEMInterface包括提供关于接口的配置的信息、并且允许配置接口某些方面的几个对象。以下讨论关于主机GEM接口与工具SECS/GEM接口的更多的细节。
管理器对象EibModelManager为系统中所有管理器的抽象基类。管理器为负责类似对象的采集(collection)的对象。管理器一般提供获得其管理的采集对象的方法、以及对对象聚集执行动作的方法。定义了几个EibModelManager对象。可以添加其他定制管理器对象。
OperationManager负责管理Operation与Task对象。OperationManager具有基于对工作的XML描述建立控制工作以及处理工作的功能。Operation提供要在设备上运行的工作的控制定义。Task定义对某些材料执行处理所需的处理与过程步骤。Operation与Task对象都具有OperationStateChangeEvent,用来通知当工作状态改变时通知客户端。图8显示Operation Manager对象层次。
ProcessJobManager负责管理E40 Process Job对象。其提供访问ProcessJob对象的方法。ProcessJob对象表示在工具上定义的E40处理工作。管理器不提供任何E40处理工作服务。其只披露存在于300mm工具上的E40 ProcessJob对象。图9A显示ProcessJobManager对象层次。
ControlJobManager负责管理E94 ControlJob对象。其提供访问ControlJob对象的方法。ControlJob对象对象表示在工具上定义的E94控制工作。管理器不提供任何E94控制工作服务。其只披露存在于300mm工具上的E94ControlJob对象。图9B显示ControlJobManager对象层次。
ExceptionManager负责管理ExceptionCondition对象。其提供从单个位置访问CEM模型内定义的ExceptionCondition对象的方法。ExceptionCondition对象不是ExceptionManager的子对象。ExceptionCondition由报告ExceptionCondition的CEM对象拥有。在ExceptionManager内,ExceptionCondition对象的名称不一定是唯一的。ExceptionManager通过Locator(定位符,其是唯一的)而非名称管理ExceptionCondition对象。图10A显示ExceptionManagerlcondition对象层次。
AppLogManager负责管理AppLog对象。AppLog对象负责记录(logging)关于设备服务器的特定组件的信息。图10B显示AppLogManager对象层次。
MaterialManager负责管理Material对象。MaterialManager具有设备的CEM模型中定义的每个材料子类型的MaterialTypeManager。MaterialTypeManager提供从单个位置建立、访问、以及释放驻留在CEM模型内的MaterialLocation对象中的Material对象的方法。每个MaterialTypeManager都具有两个MaterialManagerEvent对象,一个用来建立材料,一个用来释放材料。图11显示MaterialManager对象层次。
MaterialLocationManager负责管理MaterialLocation对象。
MaterialLocationManager提供在模型内将材料从一个位置移动到另一个位置的几个方法。MaterialLocationManager具有设备的CEM模型中定义的每个材料子类型的MaterialLocationTypeManager。MaterialLocationTypeManager提供从单个位置建立、访问、以及释放CEM模型内定义的MaterialLocation对象的方法。图12显示MaterialLocationManager对象层次。
CEM框架对象CEM标准及其根据本发明的实现定义通用对象类的层次,所述通用对象类用作构造块来表示MES通过通信接口观察到的半导体工具的物理和/或逻辑视图。图13显示CEM标准中描述的抽象对象和具体对象以及本发明的实现提供的附加对象的接口继承层次。
抽象对象对象定义上述具体子类型对象的属性、状态模型、以及服务(方法或者行为)。抽象对象不直接实现。CEM标准及其根据本发明的实现定义通用对象类的层次,所述通用对象类用作构造块来表示MES通过通信接口观察到的半导体工具的物理和/或逻辑视图。这些对象类包括以下:Equipment、Module、Subsystem、以及IODevice。
CEM对象的一个首要目的是允许数据和可用命令与工具上它们实际所属的硬件组件相关联。本发明提供了这些对象的每一个的预先定义的命令与属性的标准集合。除这些之外,可以按照需要通过工具模型添加附加的定制命令与属性,以表示该工具的特定功能。CEM标准及其根据本发明的实现定义修饰以上定义的通用构造块的特定对象。这些对象的某些形式上由CEM定义,其他为本发明特有。这些对象包括:Clock、MaterialLocation(ConsumableLocation,SubstrateLocation,CarrierLocation,以及ProcessDurableLocation)、ExceptionCondition、BaseEvent(SimpleEvent,StateMachineEvent)、State Machine。
CemObject为定义CEM中定义的对象的抽象基类。所有CEM对象都具有uid属性,其定义基于CEM的对象的全局唯一的标识符。CemObject可以具有零或多个Simple Event或者零或多个StateMachine对象。
E39Object为定义E39 Object Serices对象所需的附加属性的抽象基类。所有E39Object都具有Name以及定义E39 Object类型的ObjType。
EquipmentElement为提供在工具中建模的每个硬件构件的基本功能的抽象基类。EquipmentElement提供组件的服务状态以及描述该组件的属性集合。EquipmentElement可以具有零或多个SimpleEvent以及ExceptionCondition对象。EquipmentElement可以具有零或多个Exception Condition对象。
SoftwareModule对象为表示组件的软件或者固件的服务对象。
Abstractsubsystem为表示可能处理材料的所有组件所需的基本功能的抽象类。除EquipmentElement提供的所有功能之外,Abstractsubsystem还可以具有零或多个MaterialLocation对象。
AbstractModule为表示进行处理或者执行配方的所有组件所需的基本功能的抽象类。除Abstractsubsystem提供的所有功能之外,AbstractModule提供组件的行为状态以及关于处理材料的命令与属性的集合。
Equipment对象位于分层的应用根,并且基于AbstractModule。其由其下的其他对象构成,即,其为Module、Subsystem、以及IODevice对象的聚集。Equipment对象具有总是存在于其上的Clock对象。Module对象表示处理过程的主要子系统。
Module基于AbstractModule,并且可以为其他Module、Subsystem、以及IODevice对象的聚集。
Subsystem对象表示设备的子系统以及子组合组件。Subsystem对象基于Abstractsubsystem,并且可以为其他Subsystem、以及IODevice对象的聚集。
IODevice对象表示最低的复杂度,并且包括例如I/O设备,例如传感器、致动器、以及智能传感器/致动器设备,其向MES提供处理数据。IODevice基于EquipmentElement。
Clock对象提供计时机制。时钟提供利用多种格式请求与设置当前时间与日期的功能。CEM模型在Equipment对象上具有单个时钟对象。
ExceptionCondition对象表示工具上可能发生的异常条件或者状态。异常条件可以为警报或者错误。警报为可能危及人员、设备、或者正在处理的材料的异常情况。错误为不会危及人员、设备、或者材料的、并且是可恢复的情形。
MaterialLocation对象表示工具中能够保持材料的位置。本发明的优选实施例添加了MaterialLocation对象子类型,其识别能够保持特定材料类型(包括可消耗材料、基底、载体、以及过程耐用材料)的材料的位置。除了是CemObject之外,所有MaterialLocation对象还都是E39对象。由于本发明的优选实施例不支持多继承(一个对象不能从多于一个对象中导出)这一实际情况,这没有在图中显示。相反,MaterialLocation对象直接实现E39Object的所有特征。
ConsumableLocation对象表示工具中能够保持可消耗材料的位置。可消耗材料为工具在产生产品的处理期间消耗的某些材料。Consumable对象表示可消耗材料。Consumable对象为符合E39的对象。
SubstrateLocation对象表示工具中能够保持基底的位置。基底为工具正在处理的一个单位的材料。一旦完成了基底上所有处理,基底就会成为一或多个产品。Substrate对象表示基底。Substrate对象为符合E39的对象。
CarrierLocation对象表示工具中能够放置载体的、或者存在于工具内用来保持材料的位置。载体能够保持一或多个单位的特定材料类型(可消耗材料、基底、或者过程耐用材料)。
Carrier对象表示载体。Carrier对象为符合E39的对象。
ProcessDurableLocation对象表示工具中过程耐用材料所在的位置。过程耐用材料为在产生产品的处理中工具使用的可交换或可替换物品。所用的过程耐用材料经常依赖于工具正在生产的产品。
ProcessDurable对象表示过程耐用材料。ProcessDurable对象为符合E39的对象。
StateMachine对象表示可命名对象上的属性实现的状态机实例。其包含到对于该状态机的状态机定义的引用。在复杂状态机的情况下,StateMachine对象将包含子StateMachine对象,对于状态机定义中的每个子状态机都有一个子StateMachine对象。StateMachine对象还包括子StateMachineEvent对象集合,对于状态机可能生成的每个事件都有一个子StateMachineEvent对象。
EibModelEvent对象为表示不能逻辑地或者容易地建模为模型中的值的变化的、在工具上出现的情况的抽象对象。所有工具都有控制工具上的动作的软件。CEM模型没有对于该软件的完全的可见性。具有对于软件的完全的可见性将使CEM模型变得比必须的更复杂、并且更难于理解。CEM中的事件用来对该软件中的动作或者状态变化建模。
SirmpleEvent对象表示内部工具软件采取的事件或者动作。其表示工具模型中的该事件,并且提供当在工具上发生事件时通知外部系统的手段。
StateMachineEvent对象表示状态机可能生成的事件。其提供当状态机转移时通知外部系统的手段。状态机中的事件落入以下一般类别中的一个:
1、发生了状态改变:对于状态机内的所有可能转移,状态机生成单个事件。
2、状态机转移到了一个状态:对于状态机可能进入的每个状态,状态机都生成一个事件。
3、状态机转移:对于从源状态到新状态的每个可能转移,状态机都生成一个事件。
图14显示Ion Implanter的样本对象模型。
接口概述
本发明允许程序员利用多个商业通信协议开发可以适用于任何自动化解决方案的接口。对于主机应用,提供客户端/服务器运行时体系结构,其使客户端应用(工厂内部和外部)能够通过分布式基于对象通信技术(例如DCOM、.NET、HTTP/SOAP、GEM与定制接口)的支持与模型通信。
对于工具应用,本申请可以利用SECS或者定制连接从外部访问设备或者组件数据。在工具中,利用到设备服务器的直接连接,完成了解决方案。
为了利用上述的SECS/GEM继承接口,对象模型必须能够处理在主机与工具之间交换的SECS消息。为了做到这一点,需要定义特定的配置参数,并且需要将SECS/GEM变量映射到对象模型中的对象以及对象内的特定属性。
继承模式有利于将本发明安装到继承工厂基础结构中,而对继承系统实质上没有改变。现有系统所需的唯一改变为重新配置工厂单元控制器应用,以与继承模式下的设备服务器通信,而非直接与主机通信。然后配置继承模式与工具通信。
如上参照图3、4、5所述,继承模式连接允许设备服务器与主机实际共享到工具的单个SECS连接。对于设备服务器,继承模式作为SECS/GEM继承接口。
在本发明的优选实施例中,使用分布式对象通信技术,例如DCOM与.NET,以使多个客户端程序能够同时访问CEM对象模型。点到点的SECS/GEM接口不能提供该功能。通过允许工厂内和外的多个客户端程序访问CEM对象模型,一次可以有多于一个的用户具有关于工具性能的操作数据,从而有利于更好的工具管理决策。
诸如DCOM与.NET等分布式对象通信技术实现为面向对象远程程序调用(RPC)风格的通信。在典型RPC通信中,客户端应用通过调用客户端占位程序(stub),启动远程功能。占位程序配置数据(将调用参数打包到请求消息中),并且启动线协议,以将消息发送给服务器。服务器占位程序解包消息,并且调用对象上的所请求的功能。该功能产生的数据通过相同的逆向过程送回。
Model Builder
本发明的优选实施例包含称为Model Builder的工具。Model Builder为基于.NET的GUI工具,用来建立与编辑设备服务器使用的设备工具模型设备服务器。这些设备模型可以保存为XML格式的文件,该文件然后对XSD模式文件验证。当启动时,设备服务器可以读取新建立的设备模型XML文件。
Model Builder的特征
简化了建立与维护设备服务器使用的符合SEMI CEM的设备模型的任务。
减少了建造复杂设备模型的时间。
交互式的GUI允许人以分层关系定义设备的视图。
用户界面的标准窗口感官(look-and-feel)惯例与行为。
支持配置用户定义的定制接口,其由用户提供的XSD模式文件定义。
容易将接口中的元素链接到模型中的对象。
例用建立基本模型结构的所有数据相关设备模型数据,导入GWGEMGCD文件。
本发明的优选实施例通过XML配置文件配置,该文件指定管理器与服务,工具模型以及接口。XML文件的语法由一组XML模式定义语言(XSD)模式约束。模式描述了XML文档实例需要符合的结构,其不仅提供了语法,而且定义了可以在XML文档中表示元素与属性的方式。模式也可以导入或者引用其他模式。
本发明使用“顶级”模式,“EIB.xsd”,其定义配置的基本框架。该框架包括管理器与服务、以及将导入工具模型模式与接口模式的元素的定义。ModelBuilder利用XML模式来发现配置项目及其结构。也可以使Model Builder知道用户定义的XSD模式,以配置添加到设备服务器的定制接口。在ModelBuilder启动时,读取作为产品一部分的模式以及定制接口模式。
Model Builder应用基于利用Model BuilderGUI配置的工具模型,建立XML配置文件。可以从头建立模型,或者可以通过打开现有的模型文件来建立模型。GUI菜单上New选项将生成“顶级”模式内那些必须元素的缺省模型。GUI菜单上Open选项将允许用户选择将用来建立模型的现有XML配置文件。读取该文件,并且针对模式验证。如果成功,则建立工具模型。
图15显示Model Builder GUI及其基本组件,以下将详细描述。
标题条:显示正在编辑的模型文件名称。<newModel>指示新建立的、还没有保存的模型。文件名称后的*指示已编辑/未保存的变化。
菜单条:包含建立与操纵模型的菜单选项。
工具条:包含具有到特定菜单项的快捷方式的图标按钮。按钮包括:NewModel(新模型)、Open Model(打开模型)、Save Model(保存模型)、Cut(剪切)、Copy(复制)、Paste(粘贴)、Undo(撤销)、Redo(重复)、Find Object(查找对象)、以及Validate Model(验证模型)。
模型面板:以树形显示模型。通过点击文本左侧的+或-,可以扩展或者收缩具有子节点的节点。点击节点会用该模型节点的信息填充属性面板与注释面板。热点提示(hot tip)显示节点类型。右击显示具有对于该特定节点可能的动作的上下文菜单,包括可以作为子节点添加的可能的节点类型。
属性面板:显示关于节点的一般信息,例如对象的名称、类型、定位符、以及具有每个属性的名称与值的编辑面板。可编辑属性由铅笔图标识别。属性如下排列:对象识别属性(以粗体文本显示)、必需属性(以正常文本显示)、以及可选属性(以斜体文本显示)。
注释面板:允许用户在Model Builder中输入、观看、以及编辑用户定义的注释。注释将在工具模型的XML文档(nomenclature)中逐字出现。注释附接于所选的对象节点。
错误面板:显示当进行模型加载、验证、以及保存操作时遇到的错误。点击错误会选择和显示模型面板中的对象,其属性在属性面板中。如果错误也与特定属性关联,则该属性也将在属性面板中被选择。双击行会显示具有错误文本的弹出菜单。
状态条:显示当执行动作时的状态信息。
在下表中显示Model Builder的优选实施例中可用的菜单命令。
Figure 2006800107318A00800011
Save(保存) 保存当前模型到其相关文件。Ctrl+S
Save As(另存为) 保存当前模型到新文件名。
Validate(验证) 验证模型
Recent Files(最近文件) 显示具有四个最近观看的模型文件名称的子菜单。选择一项将打开该模型。
Exit(退出) 退出应用
Edit(编辑) Undo(撤销) 撤消上一个节点剪切/粘贴/移动动作。如果模型打开或建立后进行了剪切/粘贴/移动动作,则使能。Ctrl+Z
Redo(重复) 重复上一个“撤消”动作。如果进行了“撤消”动作,则使能。Ctrl+Y
Cut(剪切) 剪切所选树节点。如果节点可剪切,则使能。Ctrl+X
Copy(复制) 拷贝所选树节点。如果节点可拷贝,则使能。Ctrl+C
Paste(粘贴) 粘贴树中节点。如果先前剪切或拷贝的节点可以作为所选节点的子节点粘贴,则使能。Ctrl+V
Find(查找) 显示查找对话的Find Object与GoTo Reference选项卡,从而使用户可以查找当前模型中匹配指定文本的(多个)节点,并且允许用户察看到所找到的(多个)节点的引用。Ctrl+F
Replace(替换) 显示查找对话的Replace选项卡,从而使用户可以对在模型面板中显示的当前模型,替换节点(对象)名称中的子串为另一子串。Ctrl+H
ExpandSubtree(扩展子树) 扩展由所选节点领头的子树中所有节点。
CollapseSubtree(收缩子树) 收缩由所选节点领头的子树中所有节点。
Add(添加) 添加在其子菜单中指定的所选类型的对象,作为所选节点的子节点。每次选择节点时动态重新配置子
Figure 2006800107318A00800021
图16显示编辑对象属性时使用的属性窗口的概貌。当编辑对象属性时,知道在工具模型内的位置是重要的。请注意图16中左侧模型板块与右侧属性选项卡板块之间关系。属性选项卡板块指示以下三个参数:Object(长箭头):可以编辑的属性属于此处所指的对象;Type:Type指示对象的类型;以及Locator(短箭头):Locator指示工具模型内对象的位置。Locator文本可以拷贝以备以后当编辑其他对象的属性时使用(即粘贴到文本框或者单选列表框中)。Locator指示接口内对象的接口名称。Locator标签还被重新命名为Interface。
可以改变在属性面板中以黄色或者蓝色铅笔图标显示的Object属性。蓝色铅笔图标指示该属性具有提供附加编辑信息的热提示。这些属性可以三种方式之一编辑:文本框——允许用户定义的文本输入项;多选列表框——可以选择多个预先定义的值;以及单选列表框——只可以选择一个预先定义的值。
验证工具模型确认工具模型的完整性。如果在模型中没有错误,则在Model Builder状态条中出现验证成功消息。如果工具模型包含错误,则验证将暴露这些错误。错误的类型在Model BuilderGUI的错误面板中显示。
主机/客户端到服务器的通信
图17显示到本发明的设备服务器的可能的主机/客户端连接。在优选实施例中支持以下接口类型,.NET、DCOM、GEM、EDA、以及定制接口。
.NET接口.NET客户端接口使在一个计算机上运行的.NET实现的程序能够利用对象串行化访问在不同计算机上运行的另一程序的对象和方法。对象串行化允许通过网络传递复杂数据结构,而不用编写任何代码来重新构造它们。这使设备服务器可用于在任何.NET应用中编写的.NET客户端。
.NET远程(Remoting)接口为用来连接到本发明的设备服务器的最基本的网关。该框架允许对象在远程客户端与服务器应用之间相互交互。该外部接口利用.NET连接从主机或客户端连接到设备服务器。当启动外部接口时,接口应用将需要通过打开到设备服务器的连接,验证设备服务器正在运行。
关于.NET远程的基本信息可以在微软软件开发人员网络(MSDN)中诸如″Microsoft NET Remoting:A Technical Overview″等文章找到。以下的讨论呈现对该机制以及其与本发明的关系的简要描述。
.NET远程可以通过HTTP或者TCP通道发生。如果性能是主要关心的,则.NET远程消息可以编码为二进制(通过二进制格式化器),或者如果互操作性是主要关心的,则NET远程消息可以编码为XML(通过SOAP格式化器)。缺省地,TCP通道使用二进制格式化来串行化消息。这是用于本发明优选实施例的机制,如以下讨论的例子所示。
远程框架的主要价值在于提供一种简单机制来访问远程对象上的方法,并且获得返回的结果。.NET接口为本发明优选实施例中可用的几种接口中的一个。该接口必须在工具模型定义,就像任何其他接口一样。如果它不在工具模型定义,则.NET远程接口将不可用。
在本发明的优选实施例中,上述的Model Builder工具可以用来利用以下步骤验证或者添加.NET远程接口到模型:
1、在Model Builder中打开工具模型。
2、察看根上定义的对象。如果存在.NET远程接口,则其总是第一个接口(紧接Equipemnt节点之后)。如果其存在,则点击它来察看配置。
3、为了添加.NET远程接口,右击Root(根),并且选择Add(添加)>RemoteInterface(远程接口)。设置对其进行远程接口的名称、协议、以及端口号。另外,如果计算机中存在多个网卡,则可以设置bindTo属性,以将服务器绑定到特定网络接口。以下具有相关数据类型的属性为RemoteInterface对象的一部分:
name(字符串):远程接口的名称。这是远程客户端在与该服务器连接时将使用的名称。
protocol(枚举):当连接服务器时使用的协议(tcp或者http)。
port(整数):服务器要绑定的TCP/IP端口号。
bindTo(字符串):对于具有多个网卡的系统,将其设置为要绑定的网卡的IP地址。对于其他系统可以为其留下空白。
本发明的工具模型具有附加的配置选项,其指示是否EibSever对象应该是远程的。该配置选项为NetRemotingInterface元素上的remoteEibSever。该选项缺省为真,指示EibSever对象将是远程的。如果该选项设置为假,则禁止到设备服务器的所有标准访问。
本发明的优选实施例支持安装有多个网络接口卡(NIC)的系统。为了使能该多个网络特征,RemoteInterface定义中的bindTo属性必须设置为要绑定的地址。一旦作了这一点,客户端必须注意与正确的IP地址连接。请注意:该例子只有当运行EibExplorer的本地实例时才适用。
对于从C#.Net客户端连接到设备服务器,必须发生三个基本步骤。
步骤1:打开通道。在可以访问对象之前,必须在远程框架注册至少一个通道。
步骤2:建立代理对象。
步骤3:访问设备服务器应用根。一旦建立了到设备服务器的连接,则可以通过GetApplicationRoot()方法获得到应用根的引用。该应用根对象将提供到所有设备服务器对象与方法的访问。用于连接的url必须确切匹配工具模型中用于.NET远程的url。具体地,url为以下形式:tcp://machineName:port/.netName。例如,如果工具模型包括以下.NET远程定义:
<Eib:RemoteInterface          protocol=″tcp″         port=″8201″name=″myImplanterModel″>,
并且其在IP 192.168.1.101上,则客户端应该利用URL:tcp://192.168.1.101:8201/myImplanterModel访问设备服务器。客户端应该保证设备服务器连接健康。这可以通过连接健康模型进行,健康模型与服务器心跳同步(heartbeat),并且如果心跳失败,则尝试重新连接。
基本消息消息落入两种基本类型:关于事件报告的消息以及关于事件之外的所有东西的消息。非事件相关消息包括:
获得/设置属性值(GetAttrNames(),GetAttr(),SetAttr()…)
远程命令(Object Action()...)
处理程序(MakeRecipe()...)
WaferMap
事件相关消息包括:
属性设置事件
简单事件
定制事件
跟踪事件
请注意:设备服务器使用的事件系统要求客户端也是服务器。设备服务器自动向客户端进行直接远程调用。为了设置属性上的监听器,在保持具有属性名称的属性的对象上调用AddAttributeSetListener。为了设置事件上的监听器,利用可选的报告在事件对象上调用IBaseEvent的AddEventListener()。当事件发生时,客户端将通知应用中的EventTriggered()方法。如果在调用AddEventListener()时指定了报告,则将利用该通知提供报告中的属性值。
.Net中的远程对象生命期管理关于远程对象生命期管理的基本信息可以在名称为“Managing the Lifetime of Remote.NET Objects with Leasing andSponsorship”的MSDN文章中找到。
为任何应用建立.NET客户端要求理解对对象生命期管理的.NET方式。当建立对象时,为该对象建立“租约”。将该对象的生存时间设置为该对象的初始租约时间,一般大约5分钟。每次对对象进行远程引用时,将该对象的存活时间重新设置为更新租约时间。只要继续对对象进行引用,该对象将保持存活。
如果存活时间变为0,则远程层释放该对象。如果仍然存在对该对象的本地引用,则其只是在本地保持存活。如果不存在本地引用,则对象被垃圾回收(garbage collected)。为了防止当存活时间变为零时在其他方面已经过期的对象被释放,对象可以具有发起方。当对象租约过期时,系统将查询每个发起方。然后根据发起方重新设置存活时间。该机制的优点在于客户端除了通过反复轮询对象,无法通过不释放其对对象的引用,使服务器“泄露(leak)”存储器。该机制的缺点在于客户端与服务器必须对保持对象存活更主动。
在本发明的优选实施例中,所有静态对象都具有有限的生命期。对于动态对象,必须定义租约与发起方。如果在远程中可用动态对象,则其或者在此处描述或者被赋予有限的生命期。动态对象落入两个生命期确定类型之一:服务器激活的对象或者主机客户端/源激活的对象。
服务器激活的动态对象服务器建立并且维持对于所有客户端的服务器激活的对象。因此,本发明将建立发起方,只要对象存在,发起方就将保持对象存活。当释放对象时,将去除发起方,从而当存活时间过期时允许对象被垃圾回收。服务器激活的动态对象为:
Operation:通过OperationManager设置生命期管理配置。OperationManager将管理生命期。
Task:通过OperationManager设置生命期管理配置。Operation将管理生命期。
OperationStateChangeEvent:通过OperationManager设置生命期管理配置。Control Job/Process Job将管理生命期。
MaterialLocation:模型中的静态位置将具有有限的生命期。动态位置将由MaterialLocationTypeManager管理与配置。
Material:通过MaterialTypeManager设置和管理生命期管理配置。
主机客户端或源激活的对象客户端或源激活的对象为:
Report
TraceReport
Recipe
Notification(例如IEventListener)
CustomEvent
ISynchronousSource
客户端(或源)激活的对象以不同的方式处理。本发明的优选实施例不允许客户端直接建立任何对象,而是为它们提供建立对象的方法。在这种情况下,对象是特定客户端的。
对于客户端,当可能时,建立对象的发起方,并且尽可能地管理对象,而非强迫客户端发起所有对象。
IApplicationRoot。请注意:在IApplicationRoot上有大量方法,其添加参数来定义初始与更新租约时间。这些方法为:
MakeReport
MakeTraceReport
MakeEvent
MakeReportUid
MakeTraceReportUid
有利于客户端使用报告与事件的两个附加参数为:initialLeaseTime,为对于远程以毫秒为单位的初始租约时间(对于.NET缺省初始租约时间为0);以及renewLeaseTime,为对于远程以毫秒为单位的更新租约时间(对于.NET缺省初始租约时间为0)。请注意这些参数都不能为负。负值将引起异常。
Notifications。在这些情况下,客户端目前为“服务器”,并且设备服务器保持到客户端对象的引用。客户端将具有告知设备服务器其是否应该添加发起方的功能。当添加监听器时,将添加发起方;而当去除监听器(或者在跟踪的情况监听器完成)时,将去除发起方。
IReport。如果指令设备服务器将发起方添加给IEventListener或者其他通知程序,则其也添加发起方给报告。将与发起方被添加到IEventListener同时地添加与去除该发起方。存在一个潜在的问题,即设备服务器无法保护客户端。如果客户端建立报告然后在其为事件注册之前等待经过缺省对象生命期,则在添加发起方之前,报告上的租约可能过期。服务器什么也作不了。在这种情况下,客户端将不得不发起报告。
CustomEvent。建立事件的客户端具有设置生命期配置的功能,并且负责管理这些对象。
Recipe。对于配方没有提供功能。它们具有缺省的生命期,并且客户端负责管理它们。
源激活的对象对于源,当可能时就建立对象的发起方,并且尽可能的管理对象,而不强迫源发起所有对象。在所有情况下,源都有告诉设备服务器其是否应该添加发起方的能力。当设置源时,添加发起方,然后当去除源时,去除发起方。
主机GEM接口在优选实施例中,本发明包括符合GEM的主机接口,用来访问工具模型中的信息,以及向设备服务器发出命令。GEM连接支持根据SEMI E4 SECS-I标准的串行连接。其还支持根据SEMI E37标准的高速SECS消息服务单会话模式(HSMS-SS),其使用以太网连接与工具通信而不是与工具的串行通信端口通信。
主机GEM接口为本发明优选实施例中几种可用的接口中的一种。只有当在工具模型中配置时,该接口才存在。通过在Model Builder中打开模型、并且向Root(根)元素添加SecsToHostInterface,可以将主机GEM接口添加到模型。以下描述开发主机与工具Secs/GEM接口两者的过程。
定制接口如果客户端要求利用未作为标准客户端接口集合的一部分支持的协议的连接,则可以采用两种定制方式来建造通信网关。首先,网关可以使用并且连接至设备服务器,作为其“工具侧”连接,以如协议x所要求的那样连接客户端x,如图17所示。这种方法的优点在于实现者可以远离设备服务器。可替换地,可以编写对于新协议的定制接口,以如协议y所要求的那样与客户端y通信,如图17所示。该方法要求与设备服务器较紧密的集成,如果要将接口产品化,则这是有理由的。
本发明允许以如下两种方式之一添加任意数目的定制接口:直接到服务器中,或者作为.NET上的客户端。一般地,很少为主机应用建立定制接口。所建立的主机接口管理这些需求的大部分(如果不是管理全部需求的话)。
EDA接口独立SECS/GEM接口无法满足半导体工厂的未来需求,这是因为:
SECS不披露设备的结构,这使得无法确定设备的物理构成。
SECS不是可发现接口;应用无法查询设备来确定其功能。
SECS只支持单个客户端;不支持对于设备信息的同时多客户端访问。
SECS没有安全机制;在SECS中没有客户端授权与访问许可的概念。
按照设备数据获取(EDA)相关SEMI标准的要求,本发明的优选实施例实现HTTP/SOAP/XML接口,该接口结构的优点为:
跨平台、跨语言RPC机制
工业标准技术
提供多个连接(一对多)
广泛的工业支持保证对速度障碍的最终校正
通过防火墙安全地协商
支持.NET与J2EE客户端
图18显示EDA服务器/客户端消息流的概貌。E132身份验证负责安全套接字层与证书交换。身份验证还用来验证允许给定客户端与特定设备通信。E132的授权方面验证对服务作出特定请求的特定客户端被授权请求该服务。访问控制列表(ACL)项为描述对于设备哪些项可以被授权的数据结构。ACL项可以为两种类型:RoleAssignments或者PriviligeAssignments。角色允许一个人定义特定的特权集合。具有该角色的ACL项意味着特权集合。例如,可以设置OperatorRole Assignment,其描述与操作人员相关的特权。ACL项也可以为特权的确定列表。
EDA接口包括指定持续ACL访问设置的路径/文件名的属性。如果由于某种原因文件不存在,或者在读取ACL文件时有错误,则EDA接口将加载缺省ACL项。这允许缺省的但是可修改的ACL项集合。缺省ACL项包括如下4个内置PrivilegeAssignments、4个内置RoleAssignments、以及3个内置ClientID。PrivilegeAssignment IDs:E132Administrator(完全E132,E125),E 134Administrator(基本E132,完全E134,E125),E134PowerUser(基本E132,中等E134,E125),DefaultUser(基本E132,基本E134,E125)。RoIeAssignment IDs:E132Admin-(E132Administrator),E134Admin-(E134Administrator),E134Power-(E134PowerUser),Urn:semi-org:auth:anyPrinicipal-保留、缺省项。ClientIDs:E132Admin,E134Admin,E134Power。
任何其他clientID基本获得DefaultUser访问。E132管理员可以利用E132功能,修改访问控制列表。另外,可以利用E132Adm功能,本地地建立或者修改访问控制列表文件。客户端可以请求所建立的会话必须是持久的。这意味着如果由于某种原因设备停止,则该会话冻结。当设备重启时,重启该会话。
为了满足EDA相关SEMI要求,本发明利用以下构造块以求全面的EDA解决方案。
HTTP(s):超文本传输协议
SSL:安全套接字层(HTTPS中的“s”),具有WSDL:网络服务定义语言
SOAP:简单对象访问协议
EDA相关模式
EDA指定HTTP用做SOAP EDA消息的传输机制。因此,需要网络服务器或者网络服务器功能来接收到来的http消息。在本发明的优选实施例中,EDA使能设备服务器使用微软的IIS网络服务器。
本发明的EDA体系结构为服务器/客户端关系,其中客户端使用HTTP/SOAP网关。图19显示该配置的总体体系结构图。每个实现规范(SEMIE 132.1,E125.1,E134.1)都使用网络服务定义语言(WSDL)来确定地描述其接口。万维网联盟(W3C)描述WSDL为“一种XML格式,用来将网络服务描述为对包含面向文档或者面向过程的信息的消息进行操作的端点集合”。
对于每个WebService都有一个WSDL,其描述WebService的功能。客户端可以使用该WSDL来建立与网络服务对话的代理。当时,在EDA的情况下,对于每种EDA相关SEMI实现标准(SEMI E 132.1,E125.1,E134.1),有两组WSDL。一个WSDL用于设备,一个用于客户端。在所有情况下,设备的网络服务都实现设备WSDL指示的功能。客户端WSDL由设备用来生成与客户端通信的代理。该功能在EDA服务器中实现。类似地,客户端网络服务实现客户端WSDL指示的功能,并且使用设备WSDL来生成与设备服务器通信的代理。该客户端功能可从SEMI标准WSDL生成。
主机/客户端API
主机/客户端到服务器的通信由应用程序接口(API)管理,其定义外部应用通过.NET、DCOM、直接连接、间接地通过HTTP/SOAP、SECS、或者定制协议调用以与设备对象模型中的对象交互的方法。
接口IBaseObject在软件包Acs.EIB.framework中。IBaseObject定义所有对象共有的基本对象特征。软件包Acs.EIB.framework中的接口IBaseObject定义所有对象共有的基本对象特征。软件包Acs.EIB.framework中的接口INameable定义作为对象模型的一部分可见,并且具备具有子对象的能力的任何对象的最少特征。
如上所述,对象模型为分层数据模型。对象模型中的对象及其属性揭示了特定半导体制造工具所感兴趣的结构与操作数据。在运行时,本发明作为服务器动作,接收来自客户端应用的查询,并且向其发送关于CEM对象模型中的属性值的信息。
GetChildren()方法用来获得关于特定对象的子对象的信息。该方法返回该命令所针对的对象的所有子对象的数组。通过使用对象的对象指定符,可以找到对象。GetObject()方法从对象模型中检索单个对象。对象指定符为表示对象在CEM模型中从该节点开始的位置的字符串。其包含从当前对象到所希望的对象的路径上的每个对象的名称,由‘>’(SEMI E39格式)或者‘/’(CEM格式)隔开。例如:
INameable childObject=obj.GetObject(″Modulel>Submodule2″);
该例子从作为obj(请注意obj必须具有到INameable的有效引用)的子对象的对象Modulel检索称为Submodule2的子对象。
INameable接口提供GetChild()方法来检索到对象的直接子对象的引用。该方法要求要检索的子对象的名称。
本发明的对象模型提供了大量的属性来描述模型中的每个对象。对象模型中提供的属性基于SEMI CEM标准,并提供了某些附加属性。对于不适合现有属性之一的信息,可以为每个对象实例添加新属性。
对象模型中的属性必须包含来自源的值。属性源为提供在该属性中存储的数据的系统。一般地,属性值源为:来自XML文档的静态属性,从工具检索的动态属性,以及从主机应用设置的动态属性。
静态属性实际为从不改变的只读属性。CEM中定义的所有属性都被认为是只读属性。模型中其他属性也可以是静态的。请注意:当在工具上替换模块、重新配置工具、或者发生对于硬件的其他重大修改时,CEM属性实际可以改变。仍然认为这些属性是静态的。
动态属性为随时间变化的属性。这些属性必须具有改变属性值的源。该源可以在设备服务器内部,或者来自工具。动态属性可以为从主机只读或者可读写。只读属性只能由工具应用改变。不允许主机改变这些属性的值。可读写属性可以由主机或者工具应用改变。
IBaseObject接口提供GetAttributeNames方法来检索对象上可得的属性的名称的字符串数组。该数组将对于为对象实例定义的每个属性名称将包括一项。
检索属性值有几种可用方法。每个对象具有一组方法,其允许检索每个属性的值。另外,存在设置每个可读写属性的值的方法。例如,serviceState属性具有方法GetServiceState来检索serviceState属性的值。因为serviceState是只读的,所以不存在SetServiceState方法。
IBaseObject接口定义利用属性名称作为参数来获得与设置属性的方法。方法GetAttributeValue从对象检索单个属性的值。方法GetAttributeValues从对象检索多个属性的值。对于设置属性,存在类似的方法SetAttributeValue与SetAttributeValues。IBaseObject接口还定义检索或者设置多个对象的多个属性的方法。方法GetMultipleObjectAttributeValues检索多个对象中的多个属性的值,并且方法SetMultipleObjectAttributeValues设置多个对象中的多个属性的值。提供这些方法以减少请求,并且提供原子操作。
事件  主机/客户端API使人能够注册监听器,用于在设置对象模型中的对象的属性值的情况下进行通知。如果注册监听器以在设置属性值时接收通知,则在注册时对象将该监听器添加到列表,然后当设置属性值时通知监听器该属性的旧值与新值。主机应用通过调用AddAttributeSetListener来向属性添加监听器。然后,设备服务器通过执行监听器上的AttributeSet方法设备服务器通知客户端。
本发明的实施例还定义了几个事件对象。这些事件对象的每一个都基于IBaseEvent。API使得能够注册监听器,以在事件触发时进行通知。如果注册监听器已在事件触发时接收通知,则在注册时对象将该监听器添加到列表,然后当事件发生时通知监听器。监听器具有向事件附加报告的功能。报告包含当事件触发时应该提供的IBaseEvent属性的列表。通知将在报告中报告所请求的每个IBaseObject属性的值。主机应用通过调用AddEventListener,将监听器添加到属性。然后设备服务器将通过执行监听器上的EventTriggered方法,通知客户端。
配方(recipe)基于IAbstractModule接口的所有对的功能。对象必须以与SEMI E30标准中所指定的配方管理兼容的方式支持配方。主机应用通过调用GetRecipeExecutor检索到IRecipeExecutor的引用,来执行配方动作。IRecipeExecutor提供上载、下载、列出、删除、以及选择配方的方法。主机应用可以注册为配方的提供者。主机提供者为负责来自工具的配方上载与下载请求的主机应用。主机通过利用实现IToHostRecipeHandler的对象调用SetToHostRecipeHandler,注册为主机配方提供者。
WaferMaps基于IAbstractModule接口的所有对象都可以具有执行WaferMaps的功能。WaferMap对象包含如在SEMI E5标准(BinList、XDieSize等等)中指定的每个SECS元素相关WaferMaps的属性。如果存在主机提供信息的情况,则属性为可写的。主机应用通过调用GetWaferMapExecutor检索到IWaferMapExecutor的引用,来执行Wafermap动作。IWaferMapExecutor提供上载、下载、以及报告Wafermap错误的方法。主机应用可以注册为WaferMaps的提供者。主机提供者为负责来自工具的uploadSend(接收Wafermap)与downloadRequest(提供Wafermap)的主机应用。主机通过利用实现IToHostWaferMapHandler的对象调用SetToHostWaferMapHandler,注册为主机Wafermap提供者。
Command对象模型中的大部分对象都支持命令。对象上的命令可以分为两组。在第一组中为EIB实现的内部命令。这些命令存在于特定类型的所有对象上。在第二命令组中为远程命令。远程命令为必须由工具控制器软件处理的命令。可用的远程命令依赖于工具实现。通过在ApplicationRoot上调用对象服务GetServiceName、或者通过在对象实例上调用GetCommandNames,可以获得对于对象的可用命令的列表。类似地,通过在ApplicationRoot上调用对象服务GetServiceParameterData、或者通过在对象实例上调用GetCommandParameters,可以获得命令参数的列表。请注意:当请求命令与参数名称时,对象服务使用对象类型而非对象实例。本发明允许相同类型的对象具有不同的命令与参数。如果工具对象在相同对象类型上有不同命令,则对象服务方法不能返回正确信息。
本发明提供了执行命令的几种方法。从ApplicationRoot,可以在模型中的任何对象上执行对象服务ObjectAction。从对象引用,可以通过直接调用命令,执行在CEM标准中定义的任何命令。通过利用要执行的命令的名称调用ExecuteCommand,可以从对象引用执行所有命令。
工具/数据代理到服备器的通信
如图20所示,本发明的优选实施例包括SECS/GEM、.NET、以及定制接口,其使得能够在设备服务器与其他源或者数据代理(例如设备控制软件(内部的)、工具与工具组件(外部的))之间通信。
内部直接连接内部定制接口为直接连接到设备服务器的接口。提供一种容易使用的框架用于到设备服务器的直接连接。该框架提供一种系统,用来启动接口、连接定制接口到设备服务器、以及配置接口。
.NET接口.NET客户端接口允许在一个计算机上运行的具备.NET使能的程序使用对象串行化访问在不同计算机上运行的另一程序的对象与方法。对象串行化允许通过网络传递复杂数据结构,而不用编写任何代码来重新构造它们。这使装备服务器可用于以任何.NET应用编写的.NET客户端。
.NET远程接口为用来连接到本发明的设备服务器的最基本的网关。该框架允许对象在远程客户端与服务器应用之间相互交互。该外部接口利用.NET连接从工具或者数据代理连接到设备服务器。当启动外部接口时,接口应用将需要通过打开到设备服务器的连接,验证设备服务器正在运行。对于在对象模型内接口将向其提供数据或者从其接收命令的每个对象,所述接口将注册作为源。
关于.NET接口的更多信息在以上关于主机/客户端接口中描述。
SECS/GEM接口本发明的优选实施例包括“到工具”的SECS/GEM接口,其使得能够在设备服务器与依赖于SECS/GEM协议的工具或者其他数据代理之间进行通信。提供一组SECS/GEM接口,其使得能够在对象与依赖于SECS/GEM协议的其他应用(例如工具控制软件)之间进行通信。
还支持根据SEMI E37标准的高速SECS消息服务单会话模式(HSMS-SS)。利用HSMS-SS,可以使用以太网连接进行与工具的通信,而非使用工具的串行通信端口。该功能还使之能够在不使用工具的串行通信端口的情况下测试对象模型。
本发明的优选实施例通过实现最常用的GEM消息,提供GEM功能。可以使用较老的基于SECS的工具,并且将提供到主机的符合GEM的接口。
对象可以通过GEM接口从对象模型向主机发送数据。在GEM标准SEMIE30的实现所支持的SECS消息中使用指定的数据项。GEM接口在所支持的SECS消息中,传送对于确定的确认代码的特定值。通过在接口代码中指定这些值,本发明关于使用设备服务器的每个工具向主机呈现确认代码值的标准集合。从工具到对象模型的SECS/GEM接口使用这些相同的确认代码与值。
SECS/GEM接口被配置来允许与工具上符合SECS/GEM接口的通信。以下元素为SECS/GEM接口的一部分:
连接以下中的一个:GEMConnection,SIFl Connection(只在toTool中),LMConnection(只在toTool中),LoopbackConnection
ElementFormats(ToTool中要求toHos中不要求)
Clock可选
ProcessPrograms
WaferMapService
RemoteControl
Status Variables
EquipmentConstants
DataVariables
DataCollection
TraceDataCollection
Alarms
Terminal Services
CustomSources(只在toTool中)
InternalGEMIDs(只在toHost中)
UnrecognizedMessages
在与CEM EibModel模型定义相同的XML文件中(但是在XML文档中完全隔离的部分中),执行对主机GEM接口与工具SECS/GEM接口的配置。XML文档中存在的限制为:在工具的CEM模型中,没有嵌入任何接口的组件;并且利用完整的对象指定符,进行到CEM模型的接口中的所有连接。其优点在于允许容易地定义新接口。主要缺点在于正确地将SECS项链接到模型中的对象。在模型中四处移动对象要求重新链接受到影响的SECS/GEM项。其还要求在建立XML时在XML内大量的导航。请注意:当移动对象时,ModelBuilder将自动纠正接口与对象模型之间的所有链接。由此,只有当手工编辑模型时,这才是个问题。
为了配置对象模型的SECS/GEM接口,执行以下任务来完成配置:
指定XML文件的处理指令部分中接口的名称。
配置每个接口的通信参数。例如,对于每个接口正在使用HSMS-SS还是SECS串行端口连接,以及到工具的SECS连接为GEM连接还是SIFl连接。
对于从设备服务器到工具的SECS接口,指定SECS数据项的数据类型,并且配置可选功能,例如跟踪数据采集以及工具支持的预先定义的报告。
将状态变量、设备常量、数据变量以及采集事件映射到对象模型中的特定对象与属性。映射SECS变量与事件到EibModel对象与属性为设置SECS接口时较困难的配置任务之一。EibModel对象中的每个属性可以被绑定到一或多个SECS配置项。对于要向主机报告的任何事件或者变量,CEM模型必须包括对象与属性对。这些对象与属性对必须被链接到主机GEM接口(如果存在的话)以及工具SECS/GEM接口(如果存在的话)。
指定对于Equipment和/或EquipmentModule对象,主机支持哪些远程命令(如果有的话)。远程命令为必须发送给工具ECS以适当处理的任何命令。
指定模型中哪个对象为recipeExecutor(如果适用于该模型的话)。
指定模型中哪个对象为waferMap Executor(如果适用于该模型的话)。
指定异常管理器与为异常管理器定义的异常条件。映射SECS警报到EibModel ExceptionCondition对象是简单的。对于希望向主机报告的任何警报,对象模型必须包括ExceptionCondition对象。这些ExceptionCondition对象必须链接到主机GEM接口(如果存在的话)以及工具SECS/GEM接口(如果存在的话)。
SECS/GEM接口中的定制处理器本发明允许在工具SECS接口中定义定制消息处理器。定制消息处理器可以用来处理工具SECS接口不直接支持的任何SECS消息。工具SECS接口支持两种不同的定制消息处理器,一种用于命令,一种用于数据。EIB中的定制处理器可以以任何.NET语言编写。这包括C#、VB#、以及完全符合微软通用语言运行系统(CLR)的任何语言。
定制SECS命令处理器为从设备服务器接收远程命令、根据收到的命令构造定制SECS消息、并且发送该消息给工具的处理器。工具SECS接口允许定义一个定制SECS命令处理器。该命令处理器负责对于要求定制消息处理器的所有远程命令,构造并且发送定制SECS消息。
定制SECS消息处理器为从设备服务器接收数据请求并且利用定制SECS消息(同步数据请求)请求工具、或者从工具接收定制SECS消息并且更新数据(异步数据)、或者两者都执行的处理器。工具SECS接口可以定义任意数目的定制SECS消息处理器。
异步定制SECS消息处理器负责从工具接收定制SECS消息,并且异步地更新设备服务器中的信息。为了成为异步源,定制处理器必须直接地或者在内部类中也实现IAsyncrhonousSource接口。InitializeElement方法将需要注册为对象的异步源。如果定制处理器正在提供事件,则其应该调用SetAsyncrhonousSource,以传递其自身或者内部类。然后,当收到定制SECS消息时,定制SECS消息处理器将调用事件的触发器。如果定制处理器为属性源,则其应该利用属性名称以及其自身或者内部类调用SetAsyncrhonousSource。然后,当收到定制SECS消息时,定制SECS消息处理器对对象上的属性调用SetAttributeFromSource。关于处理事件与异步源的更多的细节将在以下对于工具/数据代理API讨论。
定制SECS消息处理器可以为同步源或者任意IBaseObject的可变同步源。同步定制SECS消息处理器负责当请求属性值时发送定制SECS消息。为了成为同步源,定制处理器必须直接地或者在内部类中也实现ISyncrhonousSource接口。InitializeElement方法将需要注册为对象的同步源。定制处理器必须实现在ISyncrhonousSource接口中描述的GetValue方法(直接地或者在内部类中)。这些方法将需要构造检索所请求的数据、发送它、以及返回来自回答的数据所需的定制SECS消息。通过抛出描述错误的异常,返回所有错误。可变同步定制SECS消息处理器在请求来自工具的值之外,还负责当设置属性时,利用SECS消息向工具发送关于属性的新值。
为了成为可变同步源,定制处理器必须直接地或者在内部类中也实现IMutableSyncrhonousSource接口。InitializeElement方法将需要注册为对象的可变同步源。除ISyncrhonousSource中的GetValue方法之外,定制处理器还必须实现IMutableSyncrhonousSource接口中描述的SetValue方法(直接地或者在内部类中)。这些方法将需要构造设置所提供的数据、发送它、以及接收回答所需的定制SECS消息。通过抛出描述错误的异常,返回所有错误。
定制接口本发明可以支持添加到工具上的任意数目的定制接口。内部定制接口为在设备服务器内运行的接口,如在图20中显示为接口z。
本发明允许以两种方式之一添加任意数目的定制接口:直接加到服务器中,或者作为.NET上的客户端。可以开发定制接口来处理独特的工具或者组件情况。
内部定制接口为在设备服务器内运行的接口。提供了使用框架的一种简单的方法,来将定制接口直接添加到服务器中。该框架提供了一种系统,用于启动接口、将定制接口连接到设备服务器、以及配置接口。定制内部接口必须以C#编写,并且编译到设备服务器在运行时可以定位的位置。
需要建立模式来表示定制接口。该模式描述定制接口定义的有效内容。置于模式中的信息量依赖于定制接口所需的配置量。模式必须在其中定义一个具有以Interface结束的名称的元素。例如,到Acme公司制造的划线工具的定制接口可以命名为AcmeScribeInterface。
在本发明的优选实施例中,对于定制接口,以下具有相关数据类型的属性为最低要求:
name(字符串):接口的名称(在Root上的所有子节点中必须唯一)
className(字符串):定义具有分析该定制模式的功能的XMLFactory的类名称。在模式中,该属性必须被声明为固定的,并且必须指定值。
对于定制接口,可以按照需要添加其他属性。接口元素的剩余内容只依赖于接口设计。在模式中可以定义任意数目的复杂类型。
XML工厂(Factory)为在负责构造与配置定制接口的定制接口中定义的类。该工厂将负责建立(最少的)接口的主对象(参见以下定制接口对象)。XML工厂必须实现IXMLFactory接口(参见定制接口文档中的IXMLFactory)。IXMLFactory接口定义工厂中必须实现的四个方法。
当设备服务器最初启动时,调用Initialize方法。在处理XML文档之前,工厂应该执行其所需的任何设置。对于本实例,将提供到ApplicationRoot对象的引用。该引用将允许工厂对EibModel模型的完全访问。
对于从XML文档中读取的每个元素,调用StartElement方法。EIB利用其从XML文档读取的所有元素,调用所有工厂。  你的工厂必须验证正在处理的元素对于工厂是有意义的。一般地,工厂将验证元素的命名空间匹配工厂所期望的命名空间。另外,你的工厂应该验证父辈Interface元素具有所期望的名称。如果名称不匹配,则工厂需要忽略当前的内容。这允许单个工厂利用不同的名称生成多个接口。
在从XML中读取的每个元素的结束处,调用EndElement。当达到元素的末尾时,调用所有工厂。工厂必须验证正在处理的元素对于工厂是有意义的。一般地,工厂将验证元素的命名空间匹配工厂所期望的命名空间。
在XML文档的结束处,调用EndDocument。在从文档中读出所有信息之后,调用EndDocument。工厂应该执行在从XML文档中读出所有信息之后必须发生的任何配置。最少,如果该接口的接口对象还没有被添加到ApplicationRoot,则该方法应该在ApplicationRoot上调用AddInterface。
到设备服务器的所有接口(内部的与定制的两者)都具有表示该接口的主对象。用于你的接口的该main对象必须扩展com.asyst.core.CommInterface。XMLFactory必须在正在读取XML文档时的某点上建立该对象。XMLFactory何时建立该对象不重要,只要其在EndDocument完成之前建立即可。com.asyst.core.CommInterface的基类定义接口的名称。该名称必须被设置为该接口的名称。它唯一地识别设备服务器中的接口的这一实例。请注意:定制接口必须扩展扩展C#.MarshalByRefObject的对象,或者扩展C#.MarshalByRefObject本身。
本发明的优选实施例在启动时通过读取描述工具模型以及到工具模型的所有接口的XML文档,加载定制接口。关于定制接口的配置信息必须被置于XML文档中。对于接口的XML文档内容依赖于模式以及定制接口实现。最少信息应该包括接口的名称。在优选实施例中,上述Model Builder可以执行添加与配置定制接口的步骤。
所提供的ASCII接口结构十分类似于To-Toll SECS接口,除了其是用于利用ASCII消息通信的工具。存在使用连接对象来对工具发送与接收消息的一组服务。然后,该连接对象使用端口来实际发送消息。一个显著的差异为ASCII接口要求定制代码。因为对于消息没有确立的格式,所以无法写出完整的实现。
实现了以下端口:
ASCIISerialPort-利用串行端口通信
ASCIITcpPort-利用TCP/IP连接通信
ASCIIPortConnection-没有连接逻辑的基本连接
ASCIIEstablishCommConnection-要求已确立通信连接的连接
ASCIIOnlineConnection-要求在线交换的连接。ASCIIEstablishCommConnection与ASCIIOnlineConnection都要求添加定制代码以正确发挥作用。
定义了以下服务:
DataCollectionService-用于异步数据采集(事件与变量)
EquipmentConstantService-用于检索与设置配置变量
StatusVariableService-用于检索同步状态数据
RemoteControl-用于发送命令
这些的每个都要求用于其的某些定制代码,以利用工具正确工作。RemoteControl是服务器中最充分开发的。对于某些工具,其只要求回答消息处理器。VariableStore、EventStore、以及CommandStore的定义支持这一点。对于Ascii接口,添加了称为AsciiInterface的模式。该模式定义了缺省支持的选项。该模式被设置来与Model Builder工作。
工具/数据代理API
工具到服务器的通信由描述外部工具通过对象、直接连接、通过SECS或者定制协议的间接连接调用的方法的应用程序接口管理。
如上所述,本发明的设备对象模型为分层数据模型。设备对象模型中的对象及其属性揭示了特定半导体制造工具所感兴趣的结构与操作数据。在运行时,设备服务器作为客户端动作,对工具或者组件数据代理请求获得或者设置值等等,以用来填充对象模型。
利用GetChildren()方法,可以检索关于特定对象的子对象的信息。该方法返回该命令所针对的对象的所有子对象的数组。也可以通过使用对象的对象指定符,找到对象。GetObject()方法从对象模型中检索单个对象。对象指定符为表示对象在CEM模型中从该节点开始的位置的字符串。其包含从当前对象到所希望的对象的路径上的每个对象的名称,由‘>’(SEMI E39格式)或者‘/’(CEM格式)隔开。例如:
INameable childObject=obj.GetObject(″Modulel>Submodule2″);
该例子从作为obj(请注意obj必须具有到INameable的有效引用)的子对象的对象Modulel检索称为Submodule2的子对象。
通过INameable类提供的GetChild()方法,可以检索到对象的直接子对象的引用。该方法要求要检索的子对象的名称。
本发明的设备模型提供了大量的属性来描述模型中的每个对象。所提供的属性为基于SEMI CEM标准,以及某些附加属性。对于不适合现有属性中的一个的信息,可以为每个对象实例添加新属性。
对象模型中的属性必须包含来自源的值。属性源为提供在该属性中存储的数据的系统。一般地,属性值的源为以下之一:
来自XML文档的静态属性
从工具或组件检索的动态属性
从主机应用设置的动态属性。
静态属性实际为从不改变的只读属性。CEM中定义的所有属性都被认为是只读属性。这些属性在工具的XML文档中设置。请注意:当在工具上替换模块、重新配置工具、或者发生对于硬件的其他重大修改时,CEM属性实际可以改变。仍然认为这些属性是静态的。必须通过编辑表示工具的XML文档来进行此类改变。
动态属性为随时间变化的属性。这些属性必须具有改变属性值的源。该源可以在设备服务器、主机应用或者工具内部。以下的描述显示了工具可用来提供属性数据源以及接收主机应用进行的改变的方法。
同步源每次请求属性的值时,同步源都从同步源获得值。该值从属性源立即检索。例如,温度的可观察属性将具有对于其值的同步源。工具必须注册作为该属性的源,从而当向对象查询该值时,其调用所注册的同步源。通过建立实现接口Acs.EIB.framework.ISynchronousSource的类、并且将其注册作为属性的源,工具应用做到了这一点。工具通过利用属性名称与提供源的对象调用IBaseObject对象上的SetSynchronousSource(),将该类注册为源。
所注册的同步源必须实现ISynchronousSource中的GetValue方法以检索(多个)属性值。现在每次请求属性值时,设备服务器都调用该对象。请注意:实现ISynchronousSource的对象可以为多于一个属性的源。
可变同步源可变同步源为还允许设备服务器改变属性值的同步源。每次请求属性的值时,可变同步源都从可变同步源获得值,并且每次设置属性的值时,可变同步源都在可变同步源设置该值。例如,MaxAllowedPressure的可观察属性将具有对于其值的可变同步源。工具必须注册作为该属性的源,从而当向对象查询该值时,其调用所注册的同步源,并且当设置该值时,向可变同步源通知新值。通过建立实现接口Acs.EIB.framework.IMutableSynchronousSource的类、并且将其注册作为属性的源,工具应用做到了这一点。
工具通过利用属性名称与提供源的对象调用IBaseObject对象上的SetMutableSynchronousSource,将该类注册为源。所注册的可变同步源必须实现IMutableSynchronousSource中的GetValue与SetValue方法以检索(多个)属性值。现在每次请求属性值时,设备服务器都将调用该对象。请注意:实现IMutableSynchronousSource的对象可以为多于一个属性的源。
异步源该接口用来允许IBaseObject对象包含对应于关于设备的数据变量的属性。关于设备的数据变量为当属性值改变时、由设备异步地更新的变量。如果属性与一或多个IBaseEvent对象同时改变,则IEventSource接口也应该由该源实现。通过调用IBaseObject.AddAttributeSetListener,使能IAsynchronousSource。使能IAsynchronousSource会调用IAsynchronousSource.Start方法之一。当不在需要属性时,通过调用IBaseObject.RemoveAttributeSetLIstener禁用IAsynchronousSource。禁用IAsynchronousSource会调用IAsynchronousSource.Stop方法之一。
有三种方法源客户端可以用来使属性保持最新。它们是:
基于事件地按照需要
总是
无关于事件地按照需要
基于事件地按照需要更新是时间效率最高的报告数据的机制,但是要求较复杂的IAsychronousSource。该系统假定实际的数据源为必须与之通信的独立的应用。另外,其对高带宽数据报告优化,其中配置与报告数据相比要求少量的带宽。该系统要求IAsynchronousSource跟踪到数据的引用的数目。其在IAsynchronousSource之外,还要求源实现IEventSource。
当源客户端根据客户端的需求更新一或多个属性时,源必须跟踪到IAsynchronousSource.Start以及IAsynchronousSource.Stop方法的所有调用。每次调用Start时,源必须检查属性的状态。如果还没有使能对于该属性的数据采集,则源必须执行设置数据采集所需的所有动作。所需的实际动作依赖于源。请注意:如果可以以多于一种的方式采集该属性的数据,则应该使能所有的方式(除非其他方式完全冗余,并且总是在同一时刻发生),从而该属性的值被尽可能经常地更新。一旦成功完成了所有动作,则调用IBaseObject.ConnectAsynchronousSource以通知IBaseObject源将开始提供数据。请注意:直至源利用IBaseObject.SetAttributeFromSource设置了属性值至少一次,才认为属性值是有效的。这样做是支持可能不能立即报告属性的当前值的源。每次调用Stop时,源都必须检查这是否是到属性的最后一个引用。如果是,则其应该执行终止采集数据所需的所有动作,然后其必须调用IBaseObject.DisconnectAsynchronousSource以通知IBaseObject源将不再提供数据。属性值将立即变为无效。
图21显示源必须采取的动作。请注意:该图没有详细显示在IBaseObject内采取的任何实际动作。
某些异步源可以连续提供数据,而不考虑对数据的兴趣。一旦这些源准备好开始提供数据,它们就应该调用IBaseObject.ConnectAsynchronousSource。然后,它们忽略Start与Stop方法(这些方法仍然必须被实现;它们只是不执行任何动作)。在任意时间,如果源停止提供数据,则它必须调用IBaseObject.DisconnectAsynchronousSource以通知属性其不再提供数据。
图22显示源必须采取的动作。请注意:该图没有详细显示在IBaseObject内采取的任何实际动作。
无关于事件地按照需要更新提供了源客户端复杂性与带宽要求之间的一种良好的折中。该系统假定实际数据源为必须与之通信的独立的应用。该系统不要求IAsynchronousSource跟踪到数据的引用的数目。该系统与基于事件的更新值之间首要区别为属性的所有可能源(事件等等)必须被使能,即使只有一或几个被要求满足该需要也如此。
当源客户端无关于事件地更新一或多个属性时,源将在第一个监听器添加到属性时接收到对IAsynchronousSource.Start的调用、以及当从属性去除最后一个监听器时接收到对IAsynchronousSource.Stop的调用。当调用Start时,源必须执行设置数据采集所需的所有动作。所需的实际动作依赖于源。请注意:如果可以以多于一种的方式采集该属性的数据,则应该使能所有的方式(除非其他方式完全冗余,并且总是在同一时刻发生),从而该属性的值被尽可能经常地更新。一旦成功完成了所有动作,则调用IBaseObject.ConnectAsynchronousSource以通知IBaseObject源将开始提供数据。请注意:直至源利用IBaseObject.SetAttributeFromSource设置了属性值至少一次,才认为属性值是有效的。这样做是支持可能不能立即报告属性的当前值的源。当调用Stop时,源必须执行终止采集数据所需的所有动作,然后其必须调用IBaseObject.DisconnectAsynchronousSource以通知IBaseObject源将不再提供数据。属性值将立即变为无效。
图23显示源必须采取的动作。请注意:该图没有详细显示在IBaseObject内采取的任何实际动作。
在许多情况下,异步源与外部系统通信。该通信系统经常可能失败(丢失与外部系统的连接)。希望异步系统不将通信失败报告为错误(异常)。生成异常应该限于Start或Stop中的无效信息。对于通信失败,仅记录通信失败并且高速缓存配置信息比较好。一旦恢复了通信,就可以将配置信息发送给外部系统。这允许主机数据客户端即使当通信失败时也订阅数据,然后当恢复了通信时开始接收数据。可能存在不希望如此或者这样不实际的情况。在这些情况下,通信故障应该生成异常。
跟踪源跟踪源为能够周期性地提供属性值的源。工具注册为该属性的跟踪源,从而当在属性上设置跟踪时,通知跟踪源。通过建立实现接口Acs.EIB.framework.ITraceSource的类、并且将其注册为属性源,工具应用作到了这一点。工具通过利用属性名称以及将提供源的对象调用IBaseObject上的SetTraceSource()方法,将该类注册为源。所注册的跟踪源实现ITraceSource中的start与stop方法,以开始与停止跟踪数据报告。现在当设置包括属性的跟踪时、或者当从属性去除跟踪时,设备服务器将调用该对象。请注意实现ITraceSource的对象可以为多于一个属性的跟踪源。
配方执行器基于IAbstractModule接口的所有对象都可以具有执行配方的能力。为了能够执行配方,对象必须有赋予它的IRecipeExecutor。具有配方源的对象可以以和SEMI E30标准中指定的配方管理兼容的方式处理配方。通过利用实现IToToolRecipeHandler的对象调用SetToToolRecipeHandler,工具相对于配方管理注册处理工具与主机之间的通信的IRecipeExecutor对象。
WaferMap执行器基于IAbstractModule接口的所有对象都可以具有执行WaferMap的能力。为了能够执行WaferMap,对象必须有在Model Builder中添加给它的WaferMap执行器功能。另外,其必须具有赋予它作为WaferMap工具源的处理器。具有WaferMap源的对象可以以和SEMI E5标准中指定的WaferMap管理兼容的方式处理WaferMap。通过利用实现IToToolWaferMapHandler的对象(处理器)调用SetToToolWaferMapHandler,工具处理器注册IWaferMapExecutor对象。
远程命令远程命令用来请求执行在工具上实现的命令。例如,可以使用远程命令来使工具实现命令调用的开始。如CEM标准所指定的,Equipment以及EquipmentModule对象的实例都可以处理远程命令。对能够处理远程命令的每个IAbstractModule,工具必须注册实现ICommandExecutor的对象。该对象必须实现ExecuteCommand方法以执行远程命令。该对象将负责对于其所注册的每个IAbstractModule处理所有远程命令。请注意:实现ICommandExecutor的对象可以为多于一个模块的源。
终端服务基于IAbstractModule接口的所有对象都可以具有实现终端服务的能力。具有终端服务源的对象可以以和SEMI E30标准中指定的终端服务兼容的方式处理终端服务消息。通过利用实现ITerminalDisplayHandler的对象调用SetTerminalDisplayHandler,工具对于终端服务注册处理工具与主机之间通信的ITerminalService对象。请注意:实现ITerminalDisplayHandler的对象可以为多于一个模块的源。
事件事件接口用来允许IBaseEvent表示在设备上生成的事件。在许多情况下,当事件发生时,事件也将更新模型中的一或多个属性。在这种情况下,源必须也实现这些属性的IAsynchronousSource接口。通过调用IBaseEvent.AddEventListener,使能IEventSource。使能IEventSource会调用IEventSource.Start方法。当不再需要事件时,通过调用IBaseEvent.RemoveEventListener,禁止IEventSource。禁止IEventSource会调用IEventSource.Stop方法。
源客户端可以使用三种方法来为事件以及与事件相关的数据提供源。它们是:
基于事件地按照需要
总是
无关于事件地按照需要
基于事件地按照需要更新是时间效率最高的报告数据的机制,但是要求较复杂的IEventSource。该系统假定实际的数据源为必须与之通信的单独的应用。另外,对高带宽数据报告优化,其中配置与报告数据相比要求少量的带宽。该系统要求IEventSource跟踪到事件以及事件中的数据的引用的数目。跟踪这些将只允许对每个事件报告所需的数据。
当源客户端根据客户端的需求更新一或多个事件时,源必须跟踪对IEventSource.Start以及IEventSource.Stop方法的所有调用。每次调用Start时,源必须检查事件的状态。如果还没有使能对于该事件的数据采集,则源必须执行设置事件采集所需的所有动作。如果事件具有该源也更新的一组属性,则源必须确定该事件是否也正在更新这些属性。如果该事件没有正在更新这些属性,则必须改变事件配置以另外更新属性列表。当在事件上指定一组属性时,只有在该事件(加上它们已经被使能的任何其他事件)上才要求更新属性,除非已经利用IAsynchronousSource.Start使能了属性的采集。所需的实际动作依赖于源。一旦成功完成了所有动作,则调用IBaseEvent.ConnectAsynchronousSource来通知IBaseEvent源将开始提供事件。存在这种水平的复杂度来最小化潜在地通过IEventSource与实际生成数据的应用之间的通信机制必须报告的数据(不是配置)。每次调用Stop时,源都必须检查是否这是对时间的最后一个引用。如果是,则其应该执行终止采集事件以及与事件相关的数据所需的所有动作。请注意:可以只对这一个事件终止对象/属性的数据采集。如果仍在其它事件上采集数据,则其必须继续这样做。如果未终止事件,则其也可以检查到与事件相关的每个对象/属性的引用。如果不存在对属性的引用,则其可以停止采集该属性的数据。一旦完成了所有配置,则其必须调用IBaseEvent.DisconnectAsynchronousSource以通知IBaseEvent源将不再提供事件。
图24显示不是IAsynchronousSource的IEventSource。该例子显示当将监听器添加到都由IEventSource提供来源(source)的两个不同事件时所发生的动作。IEventSource必须仅跟踪到每个事件的引用的数目,从而源在正确的时间断开。
图25与26显示对于作为两个属性的IAsynchronousSource的一个事件的IEventSource。该例子显示当将监听器添加到具有相同属性(图25)的以及具有不同属性(图26)的事件时所发生的动作。现在IEventSource必须跟踪到事件以及到属性的引用的数目。最少,其必须使能当添加监听器时(如图所示)报告每个特定事件上的属性。
图27显示也作为两个属性的IAsynchronousSource的两个事件的IEventSource。该例子显示当将监听器添加到具有这些属性的事件时所发生的动作。
图28显示当使能了异步供应的属性、随后使能包含该属性以及另一个属性的事件时发生的情况。请注意当在IBaseEvent上触发事件以更新属性时所执行的附加动作。实际上,即使当不存在属性设置的监听器时也总是这样。这没有在先前图中显示,这是因为其与那些图无关。
某些异步源可以连续地提供事件,而不考虑对事件的兴趣。一旦这些源准备好开始提供事件,它们就应该调用IBaseEvent.ConnectAsynchronousSource。如果源也提供属性,则其对每个属性也必须调用IBaseObject.ConnectAsynchronousSource。源可以忽略Start与Stop方法(这些方法仍然必须被实现;它们只是不执行任何动作)。在任意时间,如果源停止提供数据,则它必须调用IBaseEvent.DisconnectAsynchronousSource以通知IBaseEvent其不再提供事件。如果对象还为属性提供来源(sourcing),则其必须在每个属性上调用IBaseObject.DisconnectAsynchronousSource。
图29显示源必须采取的动作。请注意:该图没有详细显示在IBaseEvent或IBaseObject内采取的任何实际动作。
无关于事件地按照需要更新不是报告数据的有效机制,但是其要求较简单的IEventSource。该系统假定实际数据源为必须进行通信的分离的应用。该系统不要求IEvenSource跟踪到事件或者事件中的数据的引用的数目。通过不跟踪该信息,可能改变属性值的所有事件必须更新属性。
当源客户端按照客户端要求更新一或多个属性时,当第一个监听器添加到事件时,将调用IEventSource.Start;以及当从事件去除最后一个监听器时,将调用IEventSource.Stop。每次调用Start时,源必须执行设置事件采集所需的所有动作。如果事件具有该源也要更新的一组属性,则源必须执行配置该事件加上具有提供属性数据的能力的所有其他事件上的数据采集的所有动作。一旦成功完成了所有动作,则调用IBaseEvent.ConnectAsynchronousSource以通知IBaseEvent源将开始提供事件。每次调用Stop时,源必须确定是否仍然需要事件。如果事件提供当前被使能的该源所提供的任何属性,则事件必须保持被使能。如果对于事件没有保持属性,则执行终止采集事件以及与事件相关的数据所需的所有动作。属性仅被提供任何监听器都不再需要的Stop。如果仍然在其他事件上采集数据,则必须继续这样做。一旦完成了所有配置,其必须调用IBaseEvent.DisconnectAsynchronousSource以通知IBaseEvent源将不再提供事件。
图30显示不是IAsynchronousSource的IEventSource。该例子显示当将监听器添加到都由IEventSource提供来源的两个不同事件时所发生的动作。
图31与32显示对于作为两个属性的IAsynchronousSource的一个事件的IEventSource。该例子显示当将监听器添加到具有相同属性(图31)的以及具有不同属性(图32)的事件时所发生的动作。
图33显示也是两个属性的IAsynchronousSource的两个事件的IEventSource。该例子显示当将监听器添加到具有这些属性的事件时所发生的动作。请注意:当将监听器添加到第一事件时,必须使能两个事件源,这是因为两个事件都要更新属性值。在该例子中,只在需要时进行连接。
图34显示图33所示例子的轻微变形,其中当在外部源上使能事件时,可以连接事件的源。
图35显示当使能了异步供应的属性、随后使能包含该属性以及另一个属性的事件时发生的情况。
以上附图描述了在IBaseEvent上调用Trigger。该方法实际并不存在于IBaseEvent上。它确实存在于IBaseEvent的特定字类上。并非所有事件都支持从外部异步源触发事件。某些事件必须由替换手段触发。
以上结合几种实施例描述了本发明。这样做只是为了说明目的,本领域技术人员明白本发明的许多变化,并且其也落入本发明的范围之内。

Claims (26)

1.一种多客户端多协议设备服务器,用来与工具通信,包括:
多个主机/客户端接口,所述多个主机/客户端接口中的至少一个用来与制造执行系统通信;
多个工具接口,所述多个工具接口中的至少一个用来与该工具通信;以及
工具的设备对象模型,其中制造执行系统基于所述工具的设备对象模型与该工具通信,并且其中工具的属性能够被显示,属性值能够为了测试或者调试的目的而被改变,并且其中基于CEM标准的分层通用类库被用来为所述工具建立对象模型实例。
2.如权利要求1所述的多客户端多协议设备服务器,其中所述CEM标准是SEMI CEM标准。
3.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的至少一个用来与工具性能应用通信,并且其中工具性能应用基于所述工具的设备对象模型与工具通信。
4.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的至少一个用来与电子表格应用通信,并且其中电子表格应用基于所述工具的设备对象模型与工具通信。
5.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的至少一个用来与基于网络浏览器的远程诊断应用通信,并且其中基于网络浏览器的远程诊断应用基于所述工具的设备对象模型与工具通信。
6.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的第一个用来与制造执行系统通信,其中所述多个主机/客户端接口中的第二个用来与第二客户端通信,并且其中制造执行系统基于所述工具的设备对象模型、与第二客户端与工具通信同时地与工具通信。
7.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的至少一个用来接收对工具的物理或逻辑构成的查询,并且其中所述工具的设备对象模型用来对该查询做出响应。
8.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的至少一个用来接收对工具或其组件所处状态的查询,并且其中所述工具的设备对象模型用来对该查询做出响应。
9.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的至少一个用来传达发生了与工具相关的事件,并且其中在该事件的传达中使用所述设备对象模型。
10.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的至少一个包括GEM接口,其中制造执行系统通过所述GEM接口通信。
11.如权利要求1所述的多客户端多协议设备服务器,其中所述多个工具接口中的至少一个包括SECS/GEM接口,其中工具通过所述SECS/GEM接口通信。
12.如权利要求1所述的多客户端多协议设备服务器,其中所述多个主机/客户端接口中的至少一个包括.NET接口,其中制造执行系统通过所述.NET接口通信。
13.如权利要求1所述的多客户端多协议设备服务器,其中所述多个工具接口中的至少一个包括.NET接口,其中工具通过所述.NET接口通信。
14.一种通过多个协议建立工具与多个客户端之间的通信的方法,包括以下步骤:
配置多个主机/客户端接口中的至少一个与制造执行系统通信;
配置多个工具接口中的至少一个与工具通信;以及
定义工具的设备对象模型,其中制造执行系统基于所述工具的设备对象模型与工具通信,并且其中工具的属性能够被显示,属性值能够为了测试或者调试的目的而被改变,并且其中基于CEM标准的分层通用类库被用来为所述工具建立对象模型实例。
15.如权利要求14所述的建立通信的方法,其中所述CEM标准是SEMI CEM标准。
16.如权利要求14所述的建立通信的方法,还包括以下步骤:
配置所述多个主机/客户端接口中的至少一个与工具性能应用通信,并且其中工具性能应用基于所述工具的设备对象模型与工具通信。
17.如权利要求14所述的建立通信的方法,还包括以下步骤:
配置所述多个主机/客户端接口中的至少一个与电子表格应用通信,并且其中电子表格应用基于所述工具的设备对象模型与工具通信。
18.如权利要求14所述的建立通信的方法,还包括以下步骤:
配置所述多个主机/客户端接口中的至少一个与基于网络浏览器的远程诊断应用通信,并且其中基于网络浏览器的远程诊断应用基于所述工具的设备对象模型与工具通信。
19.如权利要求14所述的建立通信的方法,还包括以下步骤:
配置所述多个主机/客户端接口中的至少一个与第二客户端通信,其中制造执行系统基于所述工具的设备对象模型、与第二客户端与工具通信同时地与工具通信。
20.如权利要求14所述的建立通信的方法,其中所述多个主机/客户端接口中的至少一个用来接收对工具的物理或逻辑构成的查询,并且其中所述工具的设备对象模型用来对该查询做出响应。
21.如权利要求14所述的建立通信的方法,其中所述多个主机/客户端接口中的至少一个用来接收对工具或其组件所处状态的查询,并且其中所述工具的设备对象模型用来对该查询做出响应。
22.如权利要求14所述的建立通信的方法,其中所述多个主机/客户端接口中的至少一个用来传达发生了与工具相关的事件,并且其中在该事件的传达中使用所述设备对象模型。
23.如权利要求14所述的建立通信的方法,其中所述多个主机/客户端接口中的至少一个包括GEM接口,其中制造执行系统通过所述GEM接口通信。
24.如权利要求14所述的建立通信的方法,其中所述多个工具接口中的至少一个包括SECS/GEM接口,其中工具通过所述SECS/GEM接口通信。
25.如权利要求14所述的建立通信的方法,其中所述多个主机/客户端接口中的至少一个包括.NET接口,其中制造执行系统通过所述.NET接口通信。
26.如权利要求14所述的建立通信的方法,其中所述多个工具接口中的至少一个包括.NET接口,其中工具通过所述.NET接口通信。
CN200680010731.8A 2005-02-02 2006-01-31 多协议多客户端设备服务器 Active CN101151865B (zh)

Applications Claiming Priority (26)

Application Number Priority Date Filing Date Title
US64976405P 2005-02-02 2005-02-02
US64975805P 2005-02-02 2005-02-02
US64975905P 2005-02-02 2005-02-02
US64975505P 2005-02-02 2005-02-02
US64975705P 2005-02-02 2005-02-02
US64989805P 2005-02-02 2005-02-02
US64975605P 2005-02-02 2005-02-02
US64976505P 2005-02-02 2005-02-02
US64920705P 2005-02-02 2005-02-02
US64976805P 2005-02-02 2005-02-02
US64975405P 2005-02-02 2005-02-02
US60/649,756 2005-02-02
US60/649,768 2005-02-02
US60/649,757 2005-02-02
US60/649,755 2005-02-02
US60/649,759 2005-02-02
US60/649,765 2005-02-02
US60/649,763 2005-02-02
US60/650,441 2005-02-02
US60/649,758 2005-02-02
US60/649,898 2005-02-02
US60/649,754 2005-02-02
US60/649,207 2005-02-02
US60/649,764 2005-02-02
US11/107,508 2005-04-15
PCT/US2006/003282 WO2006083789A2 (en) 2005-02-02 2006-01-31 Multi-protocol multi-client equipment server

Publications (2)

Publication Number Publication Date
CN101151865A CN101151865A (zh) 2008-03-26
CN101151865B true CN101151865B (zh) 2013-01-30

Family

ID=39251334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680010731.8A Active CN101151865B (zh) 2005-02-02 2006-01-31 多协议多客户端设备服务器

Country Status (1)

Country Link
CN (1) CN101151865B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104238465A (zh) * 2013-06-21 2014-12-24 沈阳中科博微自动化技术有限公司 集成电路生产线主机与异类设备的通信方法
CN103607340B (zh) * 2013-10-23 2017-05-17 上海华力微电子有限公司 Secs/gem消息交换设备和方法
US10152987B2 (en) * 2014-06-23 2018-12-11 Google Llc Remote invocation of mobile device actions
US10663951B2 (en) * 2015-06-12 2020-05-26 Fuji Corporation Relay device and manufacturing system
US11605037B2 (en) 2016-07-20 2023-03-14 Fisher-Rosemount Systems, Inc. Fleet management system for portable maintenance tools
US10374873B2 (en) * 2016-07-22 2019-08-06 Fisher-Rosemount Systems, Inc. Process control communication between a portable field maintenance tool and a process control instrument
CN108965271A (zh) * 2018-07-02 2018-12-07 汕头超声印制板(二厂)有限公司 一种secs/gem通讯方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001057823A2 (en) * 2000-02-01 2001-08-09 Domain Logix Corporation Apparatus and method for web-based tool management

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001057823A2 (en) * 2000-02-01 2001-08-09 Domain Logix Corporation Apparatus and method for web-based tool management

Also Published As

Publication number Publication date
CN101151865A (zh) 2008-03-26

Similar Documents

Publication Publication Date Title
US10007256B2 (en) Multi-protocol multi-client equipment server
US8122434B2 (en) Methods and apparatus for control configuration control objects associated with a track attribute for selecting configuration information
US8127060B2 (en) Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8368640B2 (en) Process control configuration system with connection validation and configuration
US6754885B1 (en) Methods and apparatus for controlling object appearance in a process control configuration system
US7096465B1 (en) Process control configuration system with parameterized objects
EP1624351B1 (en) Dynamic schema for unified plant model
US8056056B2 (en) Methods and apparatus for configuring a process control system with a configuration editor executing on a digital data processing device
US7272815B1 (en) Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US7403984B2 (en) Automated tool management in a multi-protocol environment
CN101151865B (zh) 多协议多客户端设备服务器
CN101315558B (zh) 用于存取与过程控制系统有关的信息的设备及方法
CN101460910A (zh) 现场设备编辑工具
JP2008537818A (ja) モバイルデータシステムのためのアダプタアーキテクチャ
WO2010138412A1 (en) Control configuration with control objects that are fieldbus protocol-aware and that self-define tracked parameters
EP1849275B1 (en) Multi-protocol multi-client equipment server
US7756963B2 (en) Automated tool management in a multi-protocol environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: BIYA IP CO., LTD.

Free format text: FORMER OWNER: ASYST TECHNOLOGIES, INC

Effective date: 20100816

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA, USA TO: OTTAWA, CANADA

TA01 Transfer of patent application right

Effective date of registration: 20100816

Address after: ottawa

Applicant after: Asyst Technologies

Address before: American California

Applicant before: Asyst Technologies, Inc

C14 Grant of patent or utility model
GR01 Patent grant