CN101968742B - 一种用于仿真***的内部互锁管理方法及装置 - Google Patents
一种用于仿真***的内部互锁管理方法及装置 Download PDFInfo
- Publication number
- CN101968742B CN101968742B CN 201010288680 CN201010288680A CN101968742B CN 101968742 B CN101968742 B CN 101968742B CN 201010288680 CN201010288680 CN 201010288680 CN 201010288680 A CN201010288680 A CN 201010288680A CN 101968742 B CN101968742 B CN 101968742B
- Authority
- CN
- China
- Prior art keywords
- interlocking
- emulator
- configuration
- condition
- trigger command
- 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
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 73
- 238000007726 management method Methods 0.000 title claims abstract description 45
- 230000009471 action Effects 0.000 claims abstract description 59
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims 2
- 238000000034 method Methods 0.000 abstract description 34
- 230000000694 effects Effects 0.000 abstract description 6
- 230000000875 corresponding effect Effects 0.000 description 48
- 230000006399 behavior Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 238000004519 manufacturing process Methods 0.000 description 16
- 239000004065 semiconductor Substances 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000004321 preservation Methods 0.000 description 7
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000012800 visualization Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000012467 final product Substances 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于仿真***的内部互锁管理方法,包括如下步骤:建立属性原型库;根据属性原型库,配置所述仿真设备之间的互锁信息;和将所述互锁信息发送给相应的仿真设备,所述仿真设备根据互锁信息执行相应的互锁动作。本发明还公开了一种于仿真***的内部互锁管理装置,包括属性原型库、配置模块和执行模块。本发明的用于仿真***的内部互锁管理方法及装置,对仿真***中仿真设备之间的互锁关系进行灵活配置,并且依据所配置的互锁关系,仿真设备仿真运行时完全模拟真实设备间互锁关系的功能,具有更强的有实时性、适应性强以及更好的仿真效果。
Description
技术领域
本发明涉及计算机应用技术及半导体领域,特别涉及一种用于仿真***的内部互锁管理方法及装置。
背景技术
随着集成电路芯片集成度的不断提升和芯片功能的不断提高,人们对工艺的要求越来越高。在半导体制造装备的研究、开发和测试工作中,包括硬件和软件的研发。开发软件中大部分是设备控制软件,这些软件在进行测试时,需要首先在仿真环境下进行验证,而单纯为某一个项目开发软件测试平台不仅耗时过大而且可重用性很差,为了提高软件测试的效率和准确定位***所存在问题,迫切需要一个通用的软件测试平台***。需要提供各项目使用的所有硬件的仿真程序,使开发出来的软件能在此基础之上运行,从而进行测试。
在半导体制造装备的研究、开发和测试工作中,仿真具有重要作用。一方面,由于生产过程控制本身的复杂性,对理论研究不断提出新的要求,而理论研究需提高设备的利用率。要借助于仿真工具;另一方面,面对各种***控制软件包,需要现成的仿真平台,全面反映算法在实际生产运行中的效果,得到有指导意义的算法改进策略、参数在线调整方法等。仿真平台的使用,能够准确测试设备控制***软件,可以减少控制***软件执行与集成电路制造工艺过程的失败,能解决集成电路工艺设备的工艺稳定性,工艺可靠性,减少设备维修时间,最大程度的提高设备的利用率。
互锁是防止在状态机中出现不希望的状态的方法,这种方法可以是包含电子、电气或机械中的设备或***。在多数应用中,互锁是当其被触发时,用于防止机器伤害其操作者或本身而停止机器动作的设备。
***的互锁要素包括了:
1)互锁探测器:包括探测温度、压力、位置传感器。
2)互锁控制设备:包括控制设备各项参数的设备。
3)互锁逻辑设计:设备间的动作时序、设备间的逻辑关系设计。
在面向半导体制造装备的功能仿真时,一般都是采用了互锁的逻辑设计,包含了设备间的动作时序和逻辑关系设计,由于完全是软件层面上的内容,因此也就是不同设备之间所具有的复杂耦合关系极其行为动作的联系。为了实现逻辑清晰的互锁关系,需要有准确清晰的管理方法和可配置以及可扩展性能的子***来支持。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一。特别提出了一种用于仿真***的内部互锁管理方法,在仿真运行时完全模拟真实设备间互锁关系的功能,实现对仿真***内部互锁关系的灵活配置和处理。
为达到上述目的,本发明一方面提出了一种用于仿真***的内部互锁管理方法,包括如下步骤:
建立属性原型库,所述属性原型库包括所述仿真子***和仿真设备的所有属性值,其中,仿真***包括多个仿真子***,所述仿真子***进一步包括多个仿真设备;
根据所述属性原型库,配置所述仿真设备之间的互锁信息;和
将所述互锁信息发送给相应的仿真设备,所述仿真设备根据互锁信息执行相应的互锁动作。
根据本发明实施例的用于仿真***的内部互锁管理方法,对仿真***中仿真设备之间的互锁关系进行灵活配置,并且依据所配置的互锁关系,仿真设备仿真运行时完全模拟真实设备间互锁关系的功能。该方法相对现有的仿真***的内部互锁管理方法,具有更强的有实时性、适应性强以及更好的仿真效果。
本发明另一方面提出了一种用于仿真***的内部互锁管理装置,包括:
属性原型库,所述属性原型库包括所述仿真子***和仿真设备的所有属性值,其中,所述仿真***包括多个仿真子***,所述仿真子***进一步包括多个仿真设备;
配置模块,用于根据所述属性原型库配置所述仿真设备之间的互锁信息;和
执行模块,用于将来自所述配置模块的互锁信息发送给相应的仿真设备。
根据本发明实施例的用于仿真***的内部互锁管理装置,对仿真***中仿真设备之间的互锁关系进行灵活配置,并且依据所配置的互锁关系,仿真设备仿真运行时完全模拟真实设备间互锁关系的功能。该装置相对现有的仿真***的内部互锁管理装置,具有更强的有实时性、适应性强以及更好的仿真效果。此外,本发明的内部互锁管理装置具有可扩展性,其可以与其他相关的子***以及一个完整的功能仿真平台配合使用。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的用于仿真***的内部互锁管理方法的流程图;
图2为根据本发明实施例的配置互锁条件及互锁触发命令的流程图;
图3为根据本发明实施例的配置互锁动作的流程图;
图4为图1中执行互锁关系的流程图;
图5为图4中判断互锁条件的流程图;和
图6为根据本发明实施例的用于仿真***的内部互锁管理装置的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
为了更好的理解本发明,下面参考附图描述根据本发明实施例的用于仿真***的内部互锁管理方法。
在一个实际的制造装备中包括多个子***,一个子***进而包括多个设备。因此,在利用仿真***对上述制造装备进行仿真时,仿真***内对应的具有仿真子***和仿真设备,上层层次鲜明的关系有助于实现仿真逻辑。该内部互锁管理方法可以用于多种仿真***中。在下面的描述中,以面向半导体制造装备功能的仿真***为例,需要理解的是本发明并不限于用于向半导体制造装备功能的仿真***。
如图1所示,本发明实施例的用于仿真***的内部互锁管理方法,包括如下步骤:
S101:建立属性原型库;
由于本发明实施例的内部互锁管理方法主要是在一个仿真***内实现,因此本方法的实现基于仿真***内各个仿真设备内部的设备参数、属性与行为之间的耦合关系,涉及一个仿真***内部不同仿真设备之间的逻辑关系和行为。
首先,需要建立属性原型库,包括仿真子***和仿真设备的所有属性值。由于上述仿真子***和仿真设备对应的是实际装备的子***和设备,因此,仿真子***和仿真设备的所有属性值可以表征实际装备的子***和设备的属性。
当需要对仿真***内的互锁关系进行管理时,可以直接从中调用所需的仿真子***和仿真设备的属性值。
S102:根据属性原型库,配置仿真设备之间的互锁信息;
在步骤101中建立的属性原型库的基础上,对仿真设备之间的互锁信息进行配置。
在用户配置的过程中,如果设备之间执行互锁动作存在互锁条件,则需要先配置互锁条件以及互锁触发命令。图2示出了配置互锁条件以及互锁触发命令的流程图。
如图2所示,首先从属性原型库中选择互锁动作所属的仿真子***,读取该仿真子***的属性值。仿真子***选择完成后,再从属性原型库选择所属的仿真子***中所属的仿真设备,读取该仿真设备的属性值。
如果该仿真设备已经被配置过互锁条件,则载入相应的配置信息。并且将该仿真设备的配置信息以可视化界面的形式呈现给用户,由用户决定对该配置信息的处理动作,包括对配置细心编辑修改或者删除。在对上述配置信息处理后,保存处理后的配置信息。
在本发明的一个实施例中,将仿真设备的配置信息以可视化界面的形式呈现给用户可以采用Visual C#实现。
如果该设备没有被配置过互锁条件,则对其重新开始配置。首先,配置的所属仿真设备的属性值,包括所属仿真设备的参数值或者状态值。然后,配置仿真设备间的互锁条件。
在配置互锁条件时,由于每个仿真设备都有不同的仿真设备参数和属性,进而每个仿真设备参数和属性又有不同的临界值,因此每个仿真设备的互锁条件非常复杂。具体而言,这些仿真设备的互锁条件可以交叉包含多个仿真设备的参数与属性。
为解决上述问题,可以采用以单一的文本字符来组合在一起,形成规范的字符串脚本。从而方便用户的操作和查看,也能够很好的解析出上述互锁条件对应的互锁逻辑。
根据对仿真***中可能存在的参数进行的需求分析,将仿真设备的参数分类如下:
INTEGER:32bit有符号整数;
DOUBLE:双精度浮点数;
STRING:字符串;
BOOLEAN:布尔型,
上述仿真设备的参数以字符串形式保存并解析。
当互锁条件为单个时,以互锁条件为pressure大于100为例,将pressure作为一个单一的字符串,大于“>”作为一个字符串,“100”作为一个字符串,然后将上述字符串组合为“pressure>100”的脚本。
当互锁条件为多个时,以互锁条件pressure小于200且flow大于100为例,先按照pressure小于200和flow大于100两件单个互锁条件进行配置,配置完成后采用三种逻辑“AND,OR,XOR”中的“AND”,再对下一个互锁条件进行配置,最后将这些字符串组合在一起变成“pressure<200 and flow>100”的脚本。
当添加完上述互锁条件后,需要设置一个触发该互锁条件的互锁触发命令,该命令是由用户自己添加。互锁触发命令包括由设备的参数或者属性满足某种条件来触发的命令。这就需要在仿真设备预留出存储空间,可以使用户将互锁触发命令添加到存储空间中。
以互锁条件为温度大于100和压力小于500为例,对其添加一个互锁触发命令“Message1”;或者互锁条件为关闭状态,添加一个互锁触发命令“Message2”。
配置完互锁触发命令之后,将互锁条件与互锁触发命令一一对应之后保存即可。在这个过程中如果用户需要修改和删除,选择相应的操作即可。
互锁条件采用XML文档来管理和保存,下面以互锁条件pressure大于100,pressure小于200且flow大于100为例,说明互锁条件的定义格式。
上述XML文档中各个元素的含义和约束如下:
<SubsysCplCondition>含义:代表整个互锁关系文档,为XML树结构的根节点,由于一个仿真子***具有很多的互锁关系,以链表的形式来存储这些互锁关系;
<CouplingCondition>含义:代表每一个配置的互锁条件,包含脚本与触发命令信息;
<script>含义:配置的脚本信息;约束:只能解析下列paramlist中的参数名称以及“and,or,xor”;
<couplingcommand>含义:触发互锁条件的命令;
<paramlist>含义:代表一个配置信息里的设备参数名称,由于可能涉及多个参数名称,因此以链表的形式来保存;
<string>含义:代表一个配置信息里的具体设备参数名称,均是字符串类型保存的。
对于互锁触发命令的定义格式将在下面与互锁动作的定义格式一并说明。
由于互锁行为的发生是触发命令触发启动。触发命令的类型包括控制命令和互锁触发命令。其中,控制命令来自所述仿真***所仿真的实际***。互锁触发命令由上述步骤中配置完成。当互锁条件及相应的互锁触发命令配置完成后,进一步配置由触发命令触发仿真设备的互锁动作。
图3示出了配置互锁动作的流程图。如图3所示,首先需要选择所属的仿真子***和仿真设备。如果该设备已被配置过,直接载入配置信息即可,并且将该仿真设备的配置信息以可视化界面的形式呈现给用户,由用户决定对该配置信息的处理动作,包括对配置细心编辑修改或者删除。
如果该仿真设备未被配置过互锁动作,则由用户选择触发命令的类型来触发的互锁行为,同时最后需要配置上述触发命令触发的其他设备相对应的行为。
当触发命令为互锁触发命令时,以互锁条件为阀门设备的温度大于100和压力小于500为例,该互锁条件具有一个相应的互锁触发命令“Message1”。当阀门满足互锁条件时,MFC设备的状态必须处于关闭,即MFC设备必须执行停止这个行为。
当触发命令为控制命令时,当阀门设备接收到控制命令为关闭时,MFC设备必须执行停止这个动作。
在配置触发命令和互锁动作时,会将触发命令和对应仿真设备以及仿真设备的行为一一对应,以一条数据格式来体现,同时将它们按照先后时间顺序暂时序列化存入仿真设备的存储空间。在这期间用户需要编辑或者删除都可以很方便的执行,直到用户保存该配置信息,才以链表的XML文件格式保存起来。
为了方便大量配置信息的归类和查找,采用表格的形式来管理。当用户配置完成之后觉得有需要修改的地方,可以编辑和删除这些配置信息,可以重复的对这些配置进行操作。
触发命令及互锁动作的命令与行为数据格式定义如下:
上述XML文档中各个元素的含义和约束如下:
<CouplingConfiglist>含义:代表整个命令与行为文档,为XML树结构的根节点。因为一个设备有很多的互锁关系,以链表的形式来存储这些互锁关系;
<CouplingConfig>含义:代表每一个配置的互锁命令与行为关系,包含互锁名称,触发互锁设备,触发互锁命令,涉及的设备以及设备的行为;
<couplingName>含义:互锁名称,由用户配置名称,便于区分;约束:不能区分大小写字母;
<couplingDeviceName>含义:触发互锁的设备名;
<couplingCommandName>含义:触发互锁的命令;
<devicename>含义:涉及到的仿真设备的名称;
<deviceAction>含义:涉及到的仿真设备行为。
在实际的半导体制造装备中,一个半导体制造装备子***会有若干设备,对于功能仿真来说,不同的设备之间的互锁关系交叉在一起就会非常复杂。为了避免这样的复杂,以单个子***为个体,分别保存其内部各自设备的互锁关系,包括互锁条件、互锁触发命令及对应的互锁动作。采用仿真子***的名称作为保存的文件名称,即方便了用户的查看,也简化了运行时的调用逻辑。
对于整个面向半导体制造装备功能仿真的互锁关系管理方法,在配置时,互锁关系条件的配置用单个文本组成规范的字符串脚本来实现,而互锁触发命令和互锁动作的配置以链表的形式来体现,同时将配置的信息以xml文件的格式保存在一起,XML文件格式具有简明、易维护的特点,有助于简化开发,方便用户的查找和读取。
通过上述对仿真设备之间的互锁关系的配置,以界面的方式给用户提供可视化的操作,用户可以完成对于半导体仿真设备间复杂互锁关系的编辑、删除管理功能;并且在配置过程中能够及时向用户提供信息提示,以供用户查看;在配置完成之后能够以一定数据格式将配置信息完整的保存和载入,方便用户重复操作。
S103:将互锁信息发送给相应的仿真设备,仿真设备根据互锁信息执行相应的互锁动作。
结合图4所示,在步骤102配置完成的基础上,用户可以很清晰获知配置的互锁信息,从而根据互锁信息执行相应的互锁动作。
在仿真子***中执行互锁动作,根据触发命令的不同,分为两种情况:
(1)触发命令为互锁触发命令
用户对配置过的仿真设备属性进行监视,同时对该仿真设备属性值进行判断是否满足互锁条件。当该设备属性值达到配置的互锁区间时,就满足了互锁条件,同时触发了互锁触发命令,将互锁触发命令以一种消息传递的方式传递给相应的仿真设备,以执行相应的互锁动作来满足用户的配置要求。
图5示出了判断互锁条件的流程图。如图5所示,首先获取互锁条件。当互锁条件为单个时,首先需要将配置之后形成的互锁条件脚本拆分成一个一个的子字符串,提取中间的判断关系字符,例如:“>”或“<”或“=”等。然后得到上述判断关系字符相关联的参数名称及参数值,即判断关系字符前面的设备参数名称和后面的该参数名称对应的值。因为仿真子***随时都在监视该仿真设备的参数值,将监视的该参数值与相应的仿真设备配置的属性值进行比较。例如将监视的该参数值与配置的参数名称对应的值比较,如果没有满足互锁条件,则重新去获取耦合条件进行判断,如果满足了互锁条件,则结束判断,执行下一步的操作。
当互锁条件为多个时,首先执行单个互锁条件的模式,得到需要判断的多个参数值,然后采用正则表达式的模式匹配进行判断。正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。
在本步骤中,采用正则表达式的模式匹配得到并且判断and,or,xor这3个条件,从左至右尽量多的精确的去匹配目标字符串,查找“and,or,xor”之间出现的所有单个互锁条件,最后将这些需要判断的参数值该用and的就用and,该用or的就用or,该用xor的就用xor,将监视的该参数值与仿真设备配置的属性值进行比较。例如将监视的该参数值与配置的参数名称对应的值比较。如果没有满足条件,则重新去获取耦合条件进行判断,如果满足了互锁判断条件,则结束判断,执行下一步的操作。
(2)触发命令为控制命令
将该控制命令与配置的命令进行轮询判断,如果该控制命令为被配置的命令,则将该命令传递给相应的仿真设备,执行该仿真设备对应的互锁动作。
在仿真子***中,互锁条件错综复杂,为了满足仿真实际***的条件,获取了准确的互锁关系条件是不够的,如何根据得到的互锁条件去执行设备的行为动作是个很关键的问题。因此,本发明实施例的内部互锁管理方法采用消息传到方式将触发命令传递给相应的仿真设备。
针对每一个仿真设备,都有一个或多个对外通讯接口与控制***进行通信,这些通信方式都是有具体的通信协议来支持的,在该***中,运用这些现成的通信协议来传递触发互锁关系的命令。其中,控制***集成于仿真***所仿真的实际设备之上。并且仿真设备库预留有传递上述触发命令的接口。
在配置互锁判断条件的时候,在每个互锁判断条件下加入一个触发互锁关系的互锁触发命令。上述命令实质上只是一个字符,根据这个命令名称来触发***互锁的行为动作。当仿真设备满足了互锁条件的时候,子***会根据配置的触发命令以当前仿真设备使用的通信协议在内部向仿真设备自身发送该条命令,该条触发命令其实只包含了命令的名称。当仿真设备受到这条命令之后,就如同收到外部控制***发送的控制命令一样,去执行相应的动作行为。
仿真设备接收到触发命令后,执行相应的互锁动作。在运行时,当设备满足了互锁条件触发了互锁条件命令或者在接收到控制命令时,必须快速的去查找该命令是否在配置过的命令链表中,同时,当命令满足要求之后,也需要快速的去查找对应的设备以及设备行为,这样就需要该子***必须实时准确的去执行这些操作。
在前面的配置过程中,所有的命令与行为配置信息都是有序的存储成了链表的形式,在运行的过程中,这些链表会读入***内存中,每一条配置信息都是有序排列的,相当于每一条配置信息都是有一个序号。因为所有的命令和行为采用字符串的格式来存储的,因此本发明实施例的内部互锁管理方法采用一种字符串快速查找的方法来实现。
在本发明的一个实施例中,上述字符串快速查找的方法采用是ELF Hash Function来实现。下面是一个ELF Hash Function实例:
当仿真设备得到一条命令名称时,可以立即通过该算法去命令列表中查找,如果该命令存在于配置的命令列表中则进行立即根据配置信息,得到涉及的设备名称以及设备动作,这时需要根据设备名称去设备链表中快速查找设备,并根据得到的设备动作执行下一步的行为。
由于一个仿真子***的互锁关系会非常复杂,很多互锁关系会在同一时间发生,这样对于该子***来说,所有的互锁行为必须实时并行的实现,因此采用多线程的方法来实现。
线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。每一条命令即为一个进程,判断互锁条件的逻辑行为是在***后台进行的,满足条件之后发送互锁触发命令的时候会完全遵循该设备使用的通讯协议,同时,接收命令也是相同得方式,为了线程之间的冲突,当两条命令之间发生冲突的时候,会遵循该通讯协议机制去避免通讯冲突。
通过采用多线程技术做到了所有的这些操作都是实时并行发生的,最自然的接近实际设备的情况,具有更好的仿真效果。
上述步骤中执行互锁动作运行部分对配置的内容加以逻辑上的实现,用户可以根据自己的配置内容,对反馈回来的仿真设备后续行为进行判断互锁关系是否正确,所有的耦合行为的产生都是实时发生,并行处理的,以做到与实际设备的尽量吻合。
根据本发明实施例的用于仿真***的内部互锁管理方法将***的互锁关系集成到统一的描述脚本中进行管理,能够灵活配置、删除、修改、保存仿真***内部互锁关系,并且在设备仿真运行时完全模拟真实设备间互锁关系的功能,具有实时性、适应性强、贴近实际的特点。由于不同的项目所需要的硬件不同,即使相同的硬件其使用方法也不同,本发明的内部互锁管理方法能够灵活配置来满足项目的需要,具有灵活配置和可扩展的功能方便用户的操作和使用,也便于和其他厂商或自身其他产品兼容。
本发明实施例还提出了一种用于仿真***的内部互锁管理装置。如图6所示,该装置100包括属性原型库110、配置模块120和执行模块130。
属性原型库110包括仿真子***和仿真设备的所有属性值。由于上述仿真子***和仿真设备对应的是实际装备的子***和设备,因此,仿真子***和仿真设备的所有属性值可以表征实际装备的子***和设备的属性。当需要对仿真***内的互锁关系进行管理时,可以直接从中调用所需的仿真子***和仿真设备的属性值。
配置模块120根据属性原型库110配置仿真设备之间的互锁信息。其中,互锁信息包括仿真设备的属性值、仿真设备之间的互锁条件和互锁触发命令和仿真设备之间的互锁动作。仿真设备的属性值进一步包括仿真设备的参数值和状态值。
在用户配置的过程中,如果设备之间执行互锁动作存在互锁条件,则配置模块120需要先配置互锁条件以及互锁触发命令。如图2所示,首先从属性原型库110中选择互锁动作所属的仿真子***,读取该仿真子***的属性值。仿真子***选择完成后,再从属性原型库110选择所属的仿真子***中所属的仿真设备,读取该仿真设备的属性值。
如果该仿真设备已经被配置过互锁条件,则配置模块120载入相应的配置信息。并且将该仿真设备的配置信息以可视化界面的形式呈现给用户,由用户决定对该配置信息的处理动作,包括对配置细心编辑修改或者删除。在对上述配置信息处理后,配置模块120保存处理后的配置信息。
如果该设备没有被配置过互锁条件,则对其重新开始配置。首先,配置模块120配置的所属仿真设备的属性值,包括所属仿真设备的参数值或者状态值。然后,配置仿真设备间的互锁条件。
在配置互锁条件时,由于每个仿真设备都有不同的仿真设备参数和属性,进而每个仿真设备参数和属性又有不同的临界值,因此每个仿真设备的互锁条件非常复杂。具体而言,这些仿真设备的互锁条件可以交叉包含多个仿真设备的参数与属性。
为解决上述问题,可以采用以单一的文本字符来组合在一起,形成规范的字符串脚本。从而方便用户的操作和查看,也能够很好的解析出上述互锁条件对应的互锁逻辑。
根据对仿真***中可能存在的参数进行的需求分析,将仿真设备的参数分类如下:
INTEGER:32bit有符号整数;
DOUBLE:双精度浮点数;
STRING:字符串;
BOOLEAN:布尔型,
上述仿真设备的参数以字符串形式保存并解析。
当添加完上述互锁条件后,配置模块120需要设置一个触发该互锁条件的互锁触发命令,该命令是由用户自己添加。互锁触发命令包括由设备的参数或者属性满足某种条件来触发的命令。这就需要在仿真设备预留出存储空间,可以使用户将互锁触发命令添加到存储空间中。其中,互锁条件采用XML文档来管理和保存
由于互锁行为的发生是触发命令触发启动。触发命令的类型包括控制命令和互锁触发命令。其中,控制命令来自所述仿真***所仿真的实际***。互锁触发命令由上述步骤中配置完成。当互锁条件及相应的互锁触发命令配置完成后,进一步配置由触发命令触发仿真设备的互锁动作。
如图3所示,配置模块120首先需要选择所属的仿真子***和仿真设备。如果该设备已被配置过,直接载入配置信息即可,并且将该仿真设备的配置信息以可视化界面的形式呈现给用户,由用户决定对该配置信息的处理动作,包括对配置细心编辑修改或者删除。
如果该仿真设备未被配置过互锁动作,则由用户选择触发命令的类型来触发的互锁行为,同时最后需要配置上述触发命令触发的其他设备相对应的行为。
配置模块120在配置触发命令和互锁动作时,会将触发命令和对应仿真设备以及仿真设备的行为一一对应,以一条数据格式来体现,同时将它们按照先后时间顺序暂时序列化存入仿真设备的存储空间。在这期间用户需要编辑或者删除都可以很方便的执行,直到用户保存该配置信息,才以链表的XML文件格式保存起来。
为了方便大量配置信息的归类和查找,采用表格的形式来管理。当配置模块120配置完成之后觉得有需要修改的地方,用户可以编辑和删除这些配置信息,可以重复的对这些配置进行操作。
在实际的半导体制造装备中,一个半导体制造装备子***会有若干设备,对于功能仿真来说,不同的设备之间的互锁关系交叉在一起就会非常复杂。为了避免这样的复杂,以单个子***为个体,分别保存其内部各自设备的互锁关系,包括互锁条件、互锁触发命令及对应的互锁动作。采用仿真子***的名称作为保存的文件名称,即方便了用户的查看,也简化了运行时的调用逻辑。
对于整个面向半导体制造装备功能仿真的互锁关系管理方法及其子***,在配置时,互锁关系条件的配置用单个文本组成规范的字符串脚本来实现,而互锁触发命令和互锁动作的配置以链表的形式来体现,同时将配置的信息以xml文件的格式保存在一起,XML文件格式具有简明、易维护的特点,有助于简化开发,方便用户的查找和读取。
通过上述配置模块120对仿真设备之间的互锁关系的配置,以界面的方式给用户提供可视化的操作,用户可以完成对于半导体仿真设备间复杂互锁关系的编辑、删除管理功能;并且在配置过程中能够及时向用户提供信息提示,以供用户查看;在配置完成之后能够以一定数据格式将配置信息完整的保存和载入,方便用户重复操作。
配置完成之后,执行模块130将来自配置模块120的互锁信息发送给相应的仿真设备。
结合图4所示,在配置模块120配置完成的基础上,可以很清晰获知配置的互锁信息,从而根据互锁信息执行相应的互锁动作。
在仿真子***中执行互锁动作,根据触发命令的不同,分为两种情况:
(1)触发命令为互锁触发命令
用户对配置过的仿真设备属性进行监视,同时对该仿真设备属性值进行判断是否满足互锁条件。当该设备属性值达到配置的互锁区间时,就满足了互锁条件,同时触发了互锁触发命令,将互锁触发命令以一种消息传递的方式传递给相应的仿真设备,以执行相应的互锁动作来满足用户的配置要求。
如图5所示,首先获取互锁条件。当互锁条件为单个时,首先需要将配置之后形成的互锁条件脚本拆分成一个一个的子字符串,提取中间的判断关系字符,然后得到上述判断关系字符相关联的参数名称及参数值,即判断关系字符前面的设备参数名称和后面的该参数名称对应的值。因为仿真子***随时都在监视该仿真设备的参数值,将监视的该参数值与相应的仿真设备配置的属性值进行比较。如果没有满足互锁条件,则重新去获取耦合条件进行判断,如果满足了互锁条件,则结束判断,执行下一步的操作。
当互锁条件为多个时,首先执行单个互锁条件的模式,得到需要判断的多个参数值,然后采用正则表达式的模式匹配进行判断。采用正则表达式的模式匹配得到并且判断and,or,xor这3个条件,从左至右尽量多的精确的去匹配目标字符串,查找“and,or,xor”之间出现的所有单个互锁条件,最后将这些需要判断的参数值该用and的就用and,该用or的就用or,该用xor的就用xor,将监视的该参数值与仿真设备配置的属性值进行比较。如果没有满足条件,则重新去获取耦合条件进行判断,如果满足了互锁判断条件,则结束判断,执行下一步的操作。
(2)触发命令为控制命令
将该控制命令与配置的命令进行轮询判断,如果该控制命令为被配置的命令,则将该命令传递给相应的仿真设备,执行该仿真设备对应的互锁动作。
在仿真子***中,互锁条件错综复杂,为了满足仿真实际***的条件,获取了准确的互锁关系条件是不够的,如何根据得到的互锁条件去执行设备的行为动作是个很关键的问题。因此,本发明实施例的内部互锁管理装置采用消息传到方式将触发命令传递给相应的仿真设备。
针对每一个仿真设备,都有一个或多个对外通讯接口与控制***进行通信,这些通信方式都是有具体的通信协议来支持的,在该***中,运用这些现成的通信协议来传递触发互锁关系的命令。其中,控制***集成于仿真***所仿真的实际设备之上。并且仿真设备库预留有传递上述触发命令的接口。
在配置互锁判断条件时,在每个互锁判断条件下加入一个触发互锁关系的互锁触发命令。上述命令实质上只是一个字符,根据这个命令名称来触发***互锁的行为动作。当仿真设备满足了互锁条件的时候,子***会根据配置的触发命令以当前仿真设备使用的通信协议在内部向仿真设备自身发送该条命令,该条触发命令其实只包含了命令的名称。当仿真设备受到这条命令之后,就如同收到外部控制***发送的控制命令一样,去执行相应的动作行为。
仿真设备接收到触发命令后,执行相应的互锁动作。在运行时,当设备满足了互锁条件触发了互锁条件命令或者在接收到控制命令时,必须快速的去查找该命令是否在配置过的命令链表中,同时,当命令满足要求之后,也需要快速的去查找对应的设备以及设备行为,这样就需要该子***必须实时准确的去执行这些操作。
在前面的配置过程中,所有的命令与行为配置信息都是有序的存储成了链表的形式,在运行的过程中,这些链表会读入***内存中,每一条配置信息都是有序排列的,相当于每一条配置信息都是有一个序号。因为所有的命令和行为采用字符串的格式来存储的,因此本发明实施例的内部互锁管理方法采用一种字符串快速查找的方法来实现。
在本发明的一个实施例中,上述字符串快速查找的方法采用是ELF Hash Function来实现。
当仿真设备得到一条命令名称时,可以立即通过该算法去命令列表中查找,如果该命令存在于配置的命令列表中则进行立即根据配置信息,得到涉及的设备名称以及设备动作,这时需要根据设备名称去设备链表中快速查找设备,并根据得到的设备动作执行下一步的行为。
由于一个仿真子***的互锁关系会非常复杂,很多互锁关系会在同一时间发生,这样对于该子***来说,所有的互锁行为必须实时并行的实现,因此采用多线程的方法来实现。通过采用多线程技术做到了所有的这些操作都是实时并行发生的,最自然的接近实际设备的情况,具有更好的仿真效果。
根据本发明实施例的用于仿真***的内部互锁管理装置将***的互锁关系集成到统一的描述脚本中进行管理,能够灵活配置、删除、修改、保存仿真***内部互锁关系,并且在设备仿真运行时完全模拟真实设备间互锁关系的功能,具有实时性、适应性强、贴近实际的特点。由于不同的项目所需要的硬件不同,即使相同的硬件其使用方法也不同,本发明的内部互锁管理方法能够灵活配置来满足项目的需要,具有灵活配置和可扩展的功能方便用户的操作和使用,也便于和其他厂商或自身其他产品兼容。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (10)
1.一种用于仿真***的内部互锁管理方法,其特征在于,包括如下步骤:
建立属性原型库,所述属性原型库包括仿真子***和仿真设备的所有属性值,其中,所述仿真***包括多个仿真子***,所述仿真子***进一步包括多个仿真设备;
根据所述属性原型库,配置所述仿真设备之间的互锁信息,其中,所述配置所述仿真设备之间的互锁信息包括:配置所述仿真设备的属性值,所述仿真设备的属性值包括所述仿真设备的参数值和状态值;配置所述仿真设备之间的互锁条件和互锁触发命令;配置所述仿真设备之间的互锁动作,所述互锁动作由触发命令触发启动,所述触发命令的类型包括控制命令和互锁触发命令,所述控制命令来自所述仿真***所仿真的实际***,其中所述配置仿真设备之间的互锁动作还包括:从所述属性原型库中选择所述仿真子***的属性;从所述属性原型库中进一步选择所述仿真子***中相应的仿真设备的属性;判断所述仿真设备是否已经被配置互锁动作;如果所述仿真设备未配置,则选择所述触发命令的类型,根据所述触发命令的类型配置相应的互锁动作;如果仿真设备已配置,则向所述仿真设备载入配置的互锁动作;保存所述互锁动作;和
将所述互锁信息发送给相应的仿真设备,所述仿真设备根据互锁信息执行相应的互锁动作,其中,所述仿真设备执行相应的互锁动作还包括:当所述触发命令的类型为控制命令,且所述控制命令为已配置的命令时,将所述控制命令发送给相应的仿真设备,所述仿真设备执行与所述控制命令对应的互锁动作;当所述触发命令的类型为互锁触发命令时,判断所述仿真设备的属性值是否满足互锁条件,当满足互锁条件时,触发与所述互锁条件对应的互锁触发命令,并将所述互锁触发命令发送给相应的仿真设备,所述仿真设备执行与所述互锁触发命令对应的互锁动作。
2.如权利要求1所述的内部互锁管理方法,其特征在于,所述配置仿真设备之间的互锁条件和互锁触发命令还包括:
从所述属性原型库中选择所述仿真子***的属性;
从所述属性原型库中进一步选择所述仿真子***中相应的仿真设备的属性;
判断所述仿真设备是否已经被配置互锁条件;
如果所述仿真设备未配置,则对所述仿真设备配置互锁条件和所述互锁条件对应的互锁触发命令;如果所述仿真设备已配置,则向所述仿真设备载入配置的互锁条件和互锁触发命令;
保存所述互锁条件和互锁触发命令。
3.如权利要求1或2所述的内部互锁管理方法,其特征在于,所述仿真设备包括
存储空间,用于根据配置所述互锁条件的先后顺序,以链表的XML文件格式存储所述互锁条件、与所述互锁条件对应的互锁触发命令和与所述互锁触发命令对应的互锁动作。
4.如权利要求1所述的内部互锁管理方法,其特征在于,所述判断仿真设备的属性值是否满足互锁条件还包括:
根据配置互锁信息,获取互锁条件;
将所述互锁条件拆分为单个的字符串,提取判断关系字符;
获取与所述判断关系字符相关联的参数名称及参数值;
当所述互锁条件为单个时,将单个参数值与相应的所述仿真设备配置的属性值进行比较,如果所述参数值达到所述仿真设备配置的属性值的互锁区间时,则判断所述仿真设备的属性值满足互锁条件,否则重新获取互锁条件;
当所述互锁条件为多个时,将多个参数值进行正则表达式的模式匹配以得到模式匹配后的单个参数值,将所述模式匹配后的单个参数值与相应的所述仿真设备配置的属性值进行比较,如果所述模式匹配后的单个参数值达到所述仿真设备配置的属性值的互锁区间时,则判断所述仿真设备的属性值满足互锁条件,否则重新获取互锁条件。
5.如权利要求4所述的内部互锁管理方法,其特征在于,当所述互锁条件为多个时,所述仿真设备采用多线程方式并行执行相应的多个互锁动作。
6.一种用于仿真***的内部互锁管理装置,其特征在于,包括:
属性原型库,所述属性原型库包括仿真子***和仿真设备的所有属性值,其中,所述仿真***包括多个仿真子***,所述仿真子***进一步包括多个仿真设备;
配置模块,用于根据所述属性原型库配置所述仿真设备之间的互锁信息,其中,所述互锁信息包括所述仿真设备的属性值、所述仿真设备之间的互锁条件和互锁触发命令和所述仿真设备之间的互锁动作,其中,所述仿真设备的属性值包括所述仿真设备的参数值和状态值,所述互锁动作由触发命令触发启动,所述触发命令的类型包括控制命令和互锁触发命令;和
执行模块,用于将来自所述配置模块的互锁信息发送给相应的仿真设备,其中,所述执行模块执行相应的互锁动作包括:当所述触发命令的类型为控制命令,且所述控制命令为已配置的命令时,所述执行模块将所述控制命令发送给相应的仿真设备;当所述触发命令的类型为互锁触发命令时,所述执行模块判断所述仿真设备的属性值是否满足互锁条件,当满足互锁条件时,触发与所述互锁条件对应的互锁触发命令,并将所述互锁触发命令发送给相应的仿真设备。
7.如权利要求6所述的内部互锁管理装置,其特征在于,所述配置模块配置互锁条件和互锁触发命令包括:
从所述属性原型库中选择所述仿真子***的属性;
从所述属性原型库中进一步选择所述仿真子***中相应的仿真设备的属性;
判断所述仿真设备是否已经被配置互锁条件;
如果所述仿真设备未配置,则对所述仿真设备配置互锁条件和所述互锁条件对应的互锁触发命令;如果所述仿真设备已配置,则向所述仿真设备载入配置的互锁条件和互锁触发命令;
保存所述互锁条件和互锁触发命令。
8.如权利要求6所述的内部互锁管理装置,其特征在于,所述配置模块配置互锁动作包括:
从所述属性原型库中选择所述仿真子***的属性;
从所述属性原型库中进一步选择所述仿真子***中相应的仿真设备的属性;
判断所述仿真设备是否已经被配置互锁动作;
如果所述仿真设备未配置,则选择所述触发命令的类型,根据所述触发命令的类型配置相应的互锁动作;如果仿真设备已配置,则向所述仿真设备载入配置的互锁动作;
保存所述互锁动作。
9.如权利要求6所述的内部互锁管理装置,其特征在于,所述配置模块判断仿真设备的属性值是否满足互锁条件包括:
根据配置互锁信息,获取互锁条件;
将所述互锁条件拆分为单个的字符串,提取判断关系字符;
获取与所述判断关系字符相关联的参数名称及参数值;
当所述互锁条件为单个时,将单个参数值与相应的所述仿真设备配置的属性值进行比较,如果所述参数值达到所述仿真设备配置的属性值的互锁区间时,则判断所述仿真设备的属性值满足互锁条件,否则重新获取互锁条件;
当所述互锁条件为多个时,将多个参数值进行正则表达式的模式匹配以得到模式匹配后的单个参数值,将所述模式匹配后的单个参数值与相应的所述仿真设备配置的属性值进行比较,如果所述模式匹配后的单个参数值达到所述仿真设备配置的属性值的互锁区间时,则判断所述仿真设备的属性值满足互锁条件,否则重新获取互锁条件。
10.如权利要求9所述的内部互锁管理装置,其特征在于,所述仿真设备根据控制命令或互锁触发命令执行对应的互锁动作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010288680 CN101968742B (zh) | 2010-09-21 | 2010-09-21 | 一种用于仿真***的内部互锁管理方法及装置 |
PCT/CN2011/071276 WO2012037796A1 (zh) | 2010-09-21 | 2011-02-24 | 用于集成电路制造设备的仿真平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010288680 CN101968742B (zh) | 2010-09-21 | 2010-09-21 | 一种用于仿真***的内部互锁管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101968742A CN101968742A (zh) | 2011-02-09 |
CN101968742B true CN101968742B (zh) | 2013-05-22 |
Family
ID=43547902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010288680 Active CN101968742B (zh) | 2010-09-21 | 2010-09-21 | 一种用于仿真***的内部互锁管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101968742B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012037796A1 (zh) * | 2010-09-21 | 2012-03-29 | 清华大学 | 用于集成电路制造设备的仿真平台 |
JP6051546B2 (ja) * | 2012-03-15 | 2016-12-27 | オムロン株式会社 | 情報処理装置、シミュレーション方法、およびプログラム |
CN111079280B (zh) * | 2019-12-10 | 2023-12-29 | 上海新力动力设备研究所 | 固体姿轨控发动机控制***快速原型仿真的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1845081A (zh) * | 2006-02-24 | 2006-10-11 | 北京博联伟图科技有限公司 | 一种嵌入式应用软件测试的过程监控方法 |
CN101398669A (zh) * | 2007-09-29 | 2009-04-01 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 一种互锁和报警的处理方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000267889A (ja) * | 1999-03-15 | 2000-09-29 | Hitachi Ltd | ソフトウェアのシミュレーション検証方式 |
JP2000322120A (ja) * | 1999-05-10 | 2000-11-24 | Okuma Corp | プログラムテスト機能を備えた加工制御装置 |
-
2010
- 2010-09-21 CN CN 201010288680 patent/CN101968742B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1845081A (zh) * | 2006-02-24 | 2006-10-11 | 北京博联伟图科技有限公司 | 一种嵌入式应用软件测试的过程监控方法 |
CN101398669A (zh) * | 2007-09-29 | 2009-04-01 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 一种互锁和报警的处理方法及*** |
Non-Patent Citations (2)
Title |
---|
JP特开2000-267889A 2000.09.29 |
JP特开2000-322120A 2000.11.24 |
Also Published As
Publication number | Publication date |
---|---|
CN101968742A (zh) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220064B (zh) | 一种数控***界面组态开发方法 | |
EP2688002B1 (en) | Design assistance device of a network system | |
US9557725B2 (en) | Apparatus and method for determining replacement compatibility of field devices in industrial process control systems | |
US7734357B2 (en) | System for operating an installation by editing graphic objects | |
CN102750301B (zh) | 针对aadl描述的综合化航电***模型的蓝图生成方法 | |
CN103809582B (zh) | 半导体制造工艺中控制***仿真测试方法和***及装置 | |
CN105635108A (zh) | 具有应用包分类器的防火墙 | |
JP6758274B2 (ja) | スキーマで表される必要条件を用いた自動プロセス制御ハードウェア工学 | |
CN105629926B (zh) | 用于工业控制器的输入/输出模块和方法 | |
US8776092B2 (en) | Multiple interface support | |
JP2008282363A (ja) | プログラマブルコントローラ、プログラム作成支援装置、コンピュータプログラム及びplcシステム | |
CN114237676B (zh) | 一种fpga逻辑更新方法、装置、设备及可读存储介质 | |
CN101968742B (zh) | 一种用于仿真***的内部互锁管理方法及装置 | |
JPWO2016121085A1 (ja) | システム管理装置及びシステム管理方法 | |
CN101957851B (zh) | 一种用于仿真***的配置数据的存储管理方法和装置 | |
KR20150066377A (ko) | Devs 기반의 시뮬레이션 프레임워크 시스템 및 이를 이용한 시뮬레이션 방법 | |
US8160843B2 (en) | Device and method for planning a production unit | |
CN101957878B (zh) | 一种原型器件库的构建及管理方法和装置 | |
CN100573376C (zh) | 工厂信息***及其更新数据的方法 | |
KR101648969B1 (ko) | 메시지 기반 테스트를 위한 테스트 서버 및 그 방법 | |
KR102237057B1 (ko) | 다중 센서 데이터 저장/리시뮬레이션 시스템 및 오류 예측 방법 | |
CN106293643A (zh) | 模型组态化的流水型产品制造装备软硬件一体化建模方法 | |
KR100918840B1 (ko) | 센서 네트워크를 구성하기 위한 타겟 센서 노드를 시험하는장치 및 그 방법 | |
CN109857638A (zh) | 一种测试***软件通用框架 | |
CN112559096B (zh) | 一种空间载荷输入数据解析***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |