本发明总的来说涉及用于产生并执行复杂的计算机化过程(COMPRO)的一种方法,这些过程监视一个核动力设施的运行情况,更具体地说,这个方法用于产生表示设施的条件或状态的等式并执行这些等式以决定该设施是否正在设计条件之内运行和是否出现紧急情况。 COMPRO是一个计算机化的信息和控制系统,主要是用于帮助设施操作人员来监示和控制成套设备过程的执行,包括例如紧急情况运行、正常运行、异常运行和报警响应。COMPRO使设施操作人员能够以简单合理的方式来利用和跟踪这些过程。同时,COMPRO系统向设施操作人员提供并行的信息,使他们能知道工序或设施的整体状态。COMPRO可用于一切类型的成套设备运行过程。因为计算机很容易同时监视许多参数,所以大多数成套设备的运行过程非常适用于自动化。通过并行提供信息,COMPRO帮助成套设备操作人员根据整体成套设备响应来判断运行进度。
核动力厂在正常或紧急情况下的正式书面的成套设备运行过程是由有经验的专家事先编写的。这些过程不仅要用来指导设施操作人员按建议的工作程序工作,还要检测出反常的情况,并建议修改正常工作程序来处理这些反常情况。
监视复杂的运行过程执行情况的COMPRO或交互式计算机已经出现,见已公布的专利,例如美国专利4,803,039、4,815,014和5,068,080。在设计了执行复杂的运行过程的基本系统后,随后的专利集中在对基本系统的提高上,而没有涉及基本系统地基本软件结构。
基本软件的设计将系统参数(阀、泵、发动机)和条件硬编码在软件中。例如,注水阀可在一定流量条件之上运行,如100英尺/秒。这个条件经硬编码进系统软件,例如,“若阀输入>100,则阀条件为真”(If valve-input>100then valve-condition=True)。软件编译为可执行的、清楚地包括了决策步骤的源码。
然而,如果不得不改变一个参数,那么,系统源码也得改变,这样,还需要对整个系统的源码重新编译。由于在COMPOR系统进行这种类型的实施需要编辑、测试、验证和证实,所以重新编译费用极高。此外,系统设计者要编写和维护成千上万行计算机码,这是一项很艰巨的任务。
本发明的目的是在运行时建立并执行等式从而监视一个设施的运行情况。
本发明的另一个目的是不用重新编译系统源码就可修改条件。
本发明的第三个目的是用一个关系式数据库来存储等式的各项和等式之间的逻辑关系,并用这些关系来产生等式。
本发明的第四个目的是根据一个指示设施的物理特性和条件的关系式数据库产生复合等式和单一等式。
本发明的第五个目的是通过一个过程的每一个步骤来监视和排列该过程,同时监视指示该设施的整体运行情况的并行信息。
本发明的第六个目的是指导设施操作人员解决任何违例情况(该违例情况与一个步骤或一项并行信息有关)。
上述目的可以通过一个方法达到,该方法利用一个关系式数据库和管理系统来存储包括描述符、逻辑状态和调整点在内的过程信息。描述符、状态和调整点连在一起构成单一和复合等式,这些等式说明了传感器数据将会被怎样赋值。一旦产生了等式,这些等式就被分别分析和编译成可执行的表达式。经编写的入口条件等式被求值和监视以判定设施是否出现了违例情况。一旦出现违例情况,COMPRO会向设施操作人员提议一个预定的工作程序或一个过程,并显示出来。系统继续监视和对等式求值,并只在设施操作人员对一个提示做出反应时才进入下一过程/步骤。
过程信息等式的各项作为系统程序的输入而不是程序中保存的码。这样,可以在不需要改变软件码的情况下改变等式。将包括等式各项在内的所有过程信息(这些信息会根据软件码而改变)分离出来,在程序信息或调整点的值改变时就不需要修改源码。
本系统的优点是很明显的。本发明通过将过程信息和调整点存储在关系式数据库中,从而减少了系统的整体复杂性。由于修改存储在关系式数据库中的程序信息远比修改源码容易得多,所以这有利于系统的维护。本发明还利于按用户要求改制用户接口,并能直接应用外语,因为在数据库中的字符串可以用任何语言输入。
图1是本发明的系统框图;
图2A表示在COMPRO系统中实现的许多过程步骤中的一个;
图2B表示作为一系列的表存储在关系式数据库中的一个过程步骤;
图3是产生和执行等式的框图;
图4是说明等式建立过程的流程图;
图5是被连接的单一等式和一个被连接的复合等式的字符串实例;
图6表示一个程序栈;
图7是产生和执行复杂运行过程的流程图;以及
图8表示在一个显示屏幕上显示的信息。
图1为系统硬件和软件模块的总体情况。软件模块最好在买得到的Sun Micro System工作站(Sun-3或Sun-4工作站)上执行,图中为CPU100。通过输入装置104,例如鼠标器、键盘式能感觉或检测到人的触模的触模显示器。用户输入102被输入至CPU100。CPU100将输出送至如打印机或显示器等输出装置106。CPU100操作系统最好是SUNOSR108(3.03版本)。CPU100将过程信息存储在使用关系式数据库管理系统112的磁盘存储装置110上的一个关系式数据库内。
一个关系式数据库就是一批相关的信息。本发明的关系式数据库包括一系列合理地相互关联的表。图2A展示了包括若干步骤的一组过程中的一个例子,每一步骤包括了若干等式,这些等式存储在关系式数据库内。图2B为图2A的过程EO的步骤1,作为关系式数据库中的一系列表而存储。
在图2A中,给过程EO的步骤1赋值以验证蒸汽发动机管是否断裂。过程EO步骤1的子步骤a首先检查泵A运行指示器,看泵A是否正在运行。接着,过程EO步骤1的子步骤b检查指示蒸汽发动机增压装置压力的增压装置传感器,判定它是否大于50%。最后,读出蒸汽发动机压力传感器,看压力是否小于1000psia。过程EO的步骤1指示,如果a)泵A正在运行;和b)增压装置压力大于50%;且c)蒸汽发动机压力小于1000psia,则蒸汽发动机管已断裂。就是说,只有全部等式都为真,管才是断裂的。这时,COMPRO在输出装置106上显示出向设施操作人员提供的步骤,操作人员可执行这些步骤来纠正蒸汽发动机管已断裂的状况,如使泵A停止运行等。
图2B展示了一张步骤表的部分内容,该表存储过程编号,如EO、步骤号、子步骤号、(DSS)实体键和OR_标记。一个过程包括若干步骤,而若干步骤又包括若干子步骤。若干子步骤还可以包括若干子子步骤,但在本例中未示出。
图2B中的步骤表的DSS实体键指向DSS实体表中的实体。DSS实体表包括一个描述符编号、一个正状态和一个负状态,以及一个调整点。描述符编号指向描述符表中的一个入口。
描述符表包括一个描述符名、该描述符的一个计算机变量名以及一个指向单位表的单位号。DSS实体表的正状态号和负状态号分别指向正状态表和负状态表中的入口。DSS实体表中的调整点包括编号。
正状态表包括正状态号、正状态和状态等式。正状态是由DSS实体表中的正状态号指出,并且标识一排正状态表。正状态是对所代表的逻辑状态的肯定描述,比如“大于”或“小于”,并且仅仅用作显示的目的。状态等式对被由确定的等式的每一项求值的等式的一种形式进行标识,例如〔计算机变量名〕<〔调整点〕。
负状态表包括负状态号和负状态。负状态号由DSS实体表中的负状态号指出。负状态是对所代表的逻辑状态的否定描述,比如“不大于”或“不小于”,并且仅仅用作显示的目的。
单位表包括单位号和单位名。单位号由描述符表中的单位号指出。单位名是描述符的单位,例如psia,并且仅仅用作显示的目的。
根据步骤表,过程EO的步骤1仅仅包括三个子步骤a、b和c。每个子步骤是一个根据存储在其它表中的内容形成的等式。形成的每个等式分别代表过程EO、步骤1、子步骤a、b和c的条件,如图2A所示。DSS实体键指向DSS实体表,它描述图2B所示的每个表之间的关系,以形成等式。
关系式数据库管理系统112,例如INGRESTM或ORICLE,是可以在市场上买到的软件系统,它帮助管理存储在图2B所示的表中的信息。INGRESTM自动提供四种功能:1)接受用户发出的数据和指令;2)从数据库中检索信息;3)更新数据库;以及4)将数据格式化并向用户输出数据。所得到的这些功能减少了管理数据库所需的编码量。本领域的熟悉INGRES、UNIX和C语言的一般技术人员都可以提供合适的软件来使用这些功能,例如对图2B所示的数据库进行存取、装入和维护。
INGRESTM帮助存储和检索所有产生一个过程所需的数据,比如入口条件、步骤、子步骤、描述符、状态和调整点。设施专业人员按上述方式利用INGRESTM功能把过程信息存储到表中,并且确定图2A所示的表之间的相互关系。INGRESTM也能提供其它的功能,比如查看数据库的当前内容,搜寻特定数据,修改数据,删除旧数据以及增加新数据。在INGRESTM中可以选择各种报表,以产生数据库内容的硬拷贝报表。
除了自动地提供检索、增补、修改和删除数据的功能之外,INGRESTM也能保证数据的完整性。在更新数据时,数据的一致性自动得到保护,并且记下所有数据库活动正在进行的记录,因此例如软件或硬件发生故障,数据库能全部恢复其原始状态。由INGRESTM进行的检验也能保护数据库的完整性。每次更新可以对照一组约束条件来检验,这组约束条件是由系统设计专家设定的,以确保有效的输入。
如图1所示的本发明具有三个主要的软件模块:1)维护关系式数据库114(维护114);2)建立和维护过程116(建立116);以及3)处理过程118(处理118)。这三个软件模块帮助设施操作人员通过将存储在数据库中的内容变换成可执行的软件等式,产生过程和执行过程。这三个软件模块中的每一个都最好用带有SQL(标准询问语言)的C语言编写。
这三个软件模块中的每一个都是独立可执行的程序。维护114和建立116最好以脱机方式运行,这就是说,这些模块在系统软件实际执行之前执行。处理118是在对核动力设施开始实际监视时联机执行。处理118采用可以买到的实用软件UNIXTM,如lex122和yacc124,用来在运行时间根据存储的关系式数据库中的数据将等式公式化和编译等式,并执行这些等式。lex122和yacc124在运行时间的编译等式过程中,而不是在编译系统源码时的编译等式过程中起作用。lex122是一个词法分析程序产生装置,而yacc124是一个编译写入系统。本领域的一般技术人员懂得如何使用这些实用软件来对字符串进行语法分析和编译。
软件模块也采用窗口系统126,比如可以买得到的Windows4GL,用于脱机数据输入和输出,以及采用Open Windows来执行处理过程模块118。Windows 4GL在建立116帮助设施专业人员与INGRESTM关系式数据库进行通信。Windows4G L与SunOS108进行通信,以便允许设施专业人员建立用户接口格式,将数据输入进关系式数据库,并从关系式数据库中检索数据。通过提供直观编辑程序和其它功能。窗口4GL有助于程序员进行窗口管理,直观编辑程序使程序员能相互配合地设计和测试格式和菜单,从而在每次应用时产生任意数目的窗口,还使程序员能相互配合地将域、按钮、位表和其它直观单元置入窗口。维护114使用UNIXTM答案来更新数据库。
软件模块维护114是一个实用软件,用来帮助数据库管理员对数据库和磁盘存储装置110进行日常维护操作,如记日记和检查点,保证在磁盘存储器110内存储的数据库的完整性和数据库是否是最新的。维护116不验证在关系式数据库内的入口,但保证数据库本身是当前数据库,并且不会被未经授权存取的人更改。如果数据库没有得到正确的维护,执行复杂的运行过程就可能会不准确。因此数据库的准确性是系统正确执行的一个重要部分。本领域的一般技术人员能利用先前提到的并通过UNIX答案而获得的数据库维护功能,用INFRES命令来使维护114运行。
软件模块建立116是将过程信息装入关系式数据库的一个实用软件,使它能在处理118中执行。要输入的过程信息包括,例如步骤号、子步骤号、描述符名、计算机变量名、调整点、单位、等等,如图2B所示。设施专业人员使用一系列格式,这些格式由窗口系统126显示出来。这些格式会组织过程信息,这样,类似的信息会成为同样格式的部分。本领域的一般技术人员按如前所述通过INGRES能执行或能获得的功能,可将过程信息装入数据库。
软件模块处理118代表COMPRO系统的联机处理功能。处理118包括产生和执行复杂运行过程等式来监视核动力设施。图3展示了用于产生可执行的软件等式的处理118的软件模块。数据结构编码程序200通过关系数据库管理系统112从磁盘存储装置110的关系式数据库中产生过程信息202。
数据结构编码程序200基本上将磁盘存储装置110内存储的数据库内容拷贝到本机存储器内。将数据库内容拷贝到本机存储器内是为了减少存储在磁盘存储装置110内的数据库的来回传输时间。如INGRES关系式数据库具有更快些的联机存取能力,那么就不需要数据结构编码程序200。C数据结构很容易被来回传输,因此不会降低系统速度。所以,通过使用来规定本机存储器,来自关系式数据库的数据以C语言数据结构存储,例如“Struct”和指示字或“Char * pointer”,它们实施表式结构,并在提供存储过程信息的存储器的同时保持各表之间的相互关系。就是说,将用于关系式数据库存储的图2B表格式保存在本机存储器内。
使用SQL和INFRES提供的命令,如SELECT从磁盘存储装置110中读出数据库表和相关信息,如表之间的相互关系。存储在关系式数据库中的表和表之间的关系按照其用途由设施专业人员事先规定。通过利用C数据结构法将这些表读入本机存储器。例如,一位设施专业人员会通过建立列,给每列标上符号,并给每行、列插入适当的数据等步骤,建立和规定一张表,如图2B所示的步骤表。本领域的一般技术人员即能检查该步骤表,并做出相应的C语言数据结构来保存这些信息。
对存储关系式数据库内的每张表都应重复同一处理。然后,利用如SQL命令SELECT来将存储在磁盘存储装置110的表内容读出并存入相应的C数据结构。因此,本领域的一般技术人员可以用INGRES和SQL提供的手段来规定C数据结构和C/UNIX软件,将存储在磁盘存储装置110的数据库中的数据拷贝到本机存储器内。如果表中任何地方都没有入口,就会输入零或C语言的“null”或缺省至处理118模块开始执行的时候。
在数据结构编码程序200将数据库内容存入本机存储器后,等式编码程序204就会编写每一个等式或数字表达式,如图4的流程图所示。图4所示等式编码程序204建立先前硬编码入系统软件的每一个等式。
有两类等式:复合等式和单一等式。一个复合等式包括若干单一等式。对于过程EO步骤1的图2A所示的每一个条件(子步骤a、b和c),通过将一个描述符、一个逻辑状态,如需要的话还有一个或数个调整点连在一起,建立一个相应的单一等式。
一个描述符代表许多阀、泵、发动机、跳闸断路器或存储在关系式数据库中的核动力设施的类似物理特征中的一个。例如,如图2A所示,过程EO、步骤1、子步骤a的条件的描述符是“泵A”。同样,过程EO、步骤1、子步骤b和c的描述符分别是“增压装置压力”和“蒸汽发动机(S.G)压力”。这些描述符存储在描述符名下的一个描述符表C数据结构内。描述符表C数据结构由存储在DSS实体表C数据结构中的描述符编号指出,该结构由步骤表C数据结构的DSS实体关键码指出。存储在描述符表C数据结构内的计算机变量名表示一个对在对设施传感器扫描时得到的一个传感器值的唯一的标识符。
每一个等式的逻辑状态说明描述符与调整点值之间的关系。逻辑状态可以是:例如<、>、=、AND和NOR,等等。图2A所示过程EO、步骤1、子步骤b的逻辑状态是“大于”。过程EO、步骤1、子步骤a的逻辑状态是真或假,因为泵要么正在运行,要么没有运行。这仅是通过检查泵A的开关接通/关断传感器来判定的。
图2B所示的正状态表数据结构存储每一个等式的一个状态等式。通过规定正在比较什么项和用一个逻辑运算符来进行项之间的逻辑比较,例如“<”,状态等式确定等式的格式。如图2B所示,过程EO、步骤1、子步骤b的逻辑状态(状态等式)的一个例子是“>”,与过程EO、步骤1、子步骤c相反,子步骤c是一个“<”逻辑状态。
DSS实体表的调整值是表示一个条件的号,在该条件下相应的描述符将是真或假。如图2A所示,过程EO、步骤1、子步骤b和c的调整点值在调整点下分别作为50和1000存储在DSS实体表C数据结构内。
等式编码程序204通过对一个步骤和子步骤相关联的等式的每次出现检索C数据结构300而开始工作。例如,一个指示字指向一个C数据结构“Struct”表(如图2B所示步骤表)。过程编号和步骤号的C数据结构作为变量被读出和存储。
在302由等式编码程序204产生一个复合等式的标号。例如,从步骤表C数据结构中读出第一过程号。过程号存储在一个复合等式字符串内,该字符串后面是一个“:”。从步骤表数据结构中读出步骤号,将它转换成一个安符串并存入复合等式符串的“EO:”之后。将“:=”插入到复合等式字符串内的步骤号之后,给出“EO:1:a:=”,其中EO:1:a是一个标号,它将存储等式的结果。
在304从C数据结构中读出下一个过程和步骤号,并在306与变量过程号和步骤号相比较。如果过程号或步骤号是不一样的,那么表明是复合等式的结尾。在308复合等式就会被存入一个文件(未示出)内。这个将包括全部单一和复合等式的文件将被送到一个语法分析程序和编译程序。在310复合字符串将被设置成C语言“null”在312,如果过程编号和步骤号指向步骤表C数据结构的结尾,如C语言结构所指出的那样,则等式编码程序在314退出。否则,在302等式编码程序给下一个复合等式产生一个标号。
如果在306判定下一过程编号和步骤号一致,则在316读出复合等式的逻辑运算符并存入复合字符串。例如,读出存储在过程EO、步骤1、子步骤a的步骤表c数据结构内的OR标记入口。如果结果是C语言“null”,则在复合等式字符串结尾不添加任何东西,如果结果是真,就在复合等式字符串结尾添加字符记号“”(或逻辑运算)。如果结果是假,就在复合等式字符串结尾添加字符记号“&”(与逻辑运算)。在此例中,OR标记为null。这时,在复合字符串结尾不添加任何东西。
接着,在318给一个单一等式产生一个标号。例如,一个指示字会指向步骤表C数据结构中的入口,它表明一个代表过程EO、步骤1、子步骤a的一个等式。通过从C数据结构名读出过程编号字符串“EO”,在318产生一个单一等式标号,并将它存入变量字符串。“EO”还添加到复合等式字符串的结尾。然后,将一个“:”输入到变量字符串和复合等式字符串的下一个可用空间。从步骤表数据结构中读出步骤号,并将它转换成字符,存入变量和复合字符串内下一个位置。将另一个“:”也插入到变量和复合字符串内下一个位置。然后从步骤表数据结构中读出子步骤号并存入变量和复合等式字符串中。将一个“:=”存入变量等式字符串内,并位于子步骤号之后。每一个等式都以包含过程和步骤号的一个标号开始,而如果不是一个复合等式,则只有子步骤号。通过语法分析程序和编译程序利用该标号来存储等式的结果,一个“:”分隔开代表字符的这些编号中的每一个。
在320,一个描述符、逻辑运算符和一个或数个调整点连在一起形成一个单一等式。例如,根据DSS实体关键码指示字和值,从DSS实体表C数据结构中读出一个正状态号。在DSS实体表C数据结构中的正状态号是对存储在正状态表中的正状态号值的一个指示字。根据正状态号指示字和值,将状态等式字读入一个字符串。如果状态等式符串包含〔计算机变量名〕,就从描述符表C数据结构中读出计算机变量名,并用它来替代〔计算机变量名〕。如果状态等式包含〔调整点〕,就从DSS实体表C数据结构中读出调整点,并用它来替代〔调整点〕。然后将状态等式字符串存入变量字符串。因此,这个连接起来的字符串等式包含一个描述符、一个逻辑运算符和调整点。
在此例中,通过读出DSS实体关键码来读出计算机变量名,该关键码是对在DSS实体表中一个DSS实体关键码值的一个指示字。该指示字会指向在DSS实体表中的第一组入口。根据DSS实体关键码指示字和值,将存储在DSS实体表C数据结构中的描述符编码读出。在DSS实体表数据结构中的描述符编号是对存储在描述符表C数据结构中的描述符编号值的一个指示字。根据描述符编号指示字和值,将存储在描述符表C数据结构中的一个计算机变量名读出,并将它替代进状态等式字符串中。
在此例中,根据DSS实体关键码指示字和值,将调整点值从DSS实体表C数据结构中读出。过程EO、步骤1、子步骤a和b的调整点值分别为50和1000。这些值会被转换成字符串并替代入状态等式字符串中。
一旦将状态等式字符串存入变量字符串中,其结果是过程EO、步骤1、子步骤a的一个等式。在变量字符串中的经连接的等式就在320被存入一个文件(未示出)中,一旦产生了所有的等式,该文件就会被输送至一个编译程序和一个语法分析程序。稍后会说明编译程序、语法分析程序、yacc和lex在本申请中所起的作用。
在320将变量字符串存入一个文件之后,就在304读出下一个过程编号和步骤号,并与上一个过程编号和步骤号进行比较。如果比较的结果为真,就产生了所有的过程/步骤的单一等式。因此,在308将复合等式存入文件,并在310设置成“null”。
用上述关于子步骤a的同样方式产生代表过程EO、步骤1、子步骤b和c的等式。实际上,通过上述同样方法来产生每个入口条件、过程/步骤和并行信息的所有单一和复合等式。所得出的过程EO、步骤1的单一和复合等式字符串见图5。
每个单一等式的结果会是真或假。这个结果有助于判定一个核动力设施是否正在正确地运行。图5所示的复合等式的求值说明一个蒸汽发动机管在图2A所述过程中是否断裂。如果求值的结果是真,就会给出一个警告或违例事故通知,指出为了更正蒸汽机的断裂要执行什么过程,如切断泵或降低压力。
由等式编码程序204建立每个等式后,编译程序206开始从等式编码程序204中读出包括所有单一和复合等式字符串的文件。语法分析程序208与强有力的UNIXTX实用软件lex122和yacc124一起编译栈210、表214和216。语法分析程序208对由等式编码程序204作为字符串产生的等式进行语法分析。语法分析程序208能处理简单和复杂的表达式。本领域的一般技术人员能使用可买得到的UNIX实用软件lex和yacc来分析和编译字符串。
用UNIXTM实用软件lex122来限定被语法分析程序208识别的“记号”。这些记号包括不同类型的可容许的变量、运算符(即:=、+、-、*、/、<、>,等等)、函数和内部常数。另一个UNIXTM实用软件yacc124则提供了用于限定一个输入流或由用户定义的等式的规则和结构的一个通用工具。lex122是一个低级例行程序,由yacc1244用来从由用户定义的等式202中选择记号以便按照输入结构规则组织这些记号。这样,当yacc124承认在系统定义等式中的规则时,编译程序206调用基于lex122和yacc124的函数来产生程序栈210、入口指示表214和记号表216。
编译程序继续使用语法分析程序208、lex122和yacc124来运行每一个等式。注意:由等式编码程序204产生的字符串等式没有预定的内容,而是由核动力成套设备的系统设计师来决定的。编译程序遵循由预先限定的逻辑所引入的顺序,这是系统灵活性的一个关键。
利用普通的运算步骤,编译程序建立一个记号表216、一个程序栈210和一个入口指示表。图5的单一等式和复合等式的程序栈210见图6。可以看到一个等式的第一个入口是存放结果位置的标号。下一个是逻辑运算符,其余两个入口是操作数。对复合等式也是用类似安排,所有的逻辑运算符后面紧接着就是操作数,如图6所示。
如以上所讨论的,程序栈210包含在此称之为伪指示和操作数名的可执行指示。这些伪指示包括:(ⅰ)运算符或执行一组由运算符组成的原函数的请求,以及任何集合函数;(ⅱ)请求运行其他用户限定的程序段;和(ⅲ)请求将地址或值从记号表推入前后关系栈212。
入口指示表214包括对在编译结尾的程序栈的指示字。入口指示字指向并行信息等式、入口条件等式和过程/步骤等式。记号表216包括对临时变量、常数和内部函数的指示字。图1和图7所示处理过程118根据前后关系栈212、入口指示表214和记号表216执行并对存储在程序栈210的等式求值。
图7是由软件模块处理118执行的联机处理流程图。数据结构编码程序200在400将存储在磁盘存储装置110的关系式数据库取出,并拷贝到本机存储器402。等式编码程序204通过图3和图4所示方法在404建立所有逻辑等式。
首先在406通过判定入口条件单一等式和复合等式的每一个是真还是假,对入口条件等式求值。利用入口指示表214、程序栈210、前后关系(数据)栈212和记号表216,进行等式求值或执行等式。执行从入口指示表214开始,该表指向入口条件等式的起点。利用如普通的逆反波兰表示法型栈执行方法来对等式求值或执行等式。例如,用图6所示程序栈来执行单一等式EO:1:a、EO:1:b和EO:1:c和图5所示复合等式。在执行中,用记号表216来取得用于执行和存储结果的变量的实际值,该记号表是从变量名到该变量存储地点的相互参照。用数据栈212来存储经修正的变量和中间结果。
在这点,只对入口条件等式进行求值,以判定设施是否出现违例事故(410)。如果没有出现违例事故,就会继续对入口条件等式进行求值(406)和监视求值的结果(408),直到在核动力设施存在一个违例条件时,发出一个故障信号。系统设计专业人员决定需要什么入口条件等式来发出一个违例事故信号。这些等式由系统设计专业人员事先建立,并且取决于要监视的什么样的设备,如核动力设施、火力发电设施或化学处理设施。
在410,一旦由一个过程的所有入口条件等式指出发生一个违例事故时,根据过程标题,在412设定过程和步骤号。然后取得过程并显示给操作人员。例如,如果所有等式a、b和c如图8所示,均为真,那么会执行过程EO、步骤1,因为在程序栈210,等式a、b和c紧随过程标题EO、步骤1。例如,过程EO、步骤1可以要求关闭泵A,如果是这样的话,就会通过显示屏幕向成套设备操作人员发出一条消息,告诉他将泵A关闭。同样,如果紧随过程E1的所有并行信息等式的求值结果均是真,就会执行过程E1。
在412,一旦过程编号和步骤号被设定,就对与该过程有关的所有等式进行注值(414)。求值过程与前述对入口条件等式求值一样。在416判定当前的过程编号和步骤号,以指出目前正在执行的是什么过程的什么步骤。参照存储在本机存储器内的当前的过程编号和步骤号来做判定。
尽管在414对该过程步骤所有的等式都进行了求值,但在418只对与该步骤有关的那些等式进行监视。监视包括连续不断重查等式和产生相关消息直到引发该消息的条件消失或操作人员取消该消息为止。尽管对与这些步骤有关的等式都进行了求值(执行了),但对这些步骤的其它结果的任何一个都不进行监视。
在418,过程的行动步骤被显示在如图8所示的显示装置500中的当前步骤框502内。当前步骤框502中所显示的文本是预期的行动或设施操作人员的反应。每一步骤包括一项高级说明,它描述了要完成的任务。如果高级任务(步骤)需要多个行动,就会规定出子任务(子步骤)。紧跟着每个任务或子任务,给出预期的反应或结果。写出了行动步骤,这样设施操作人员就能直接按清单顺序进行工作。该显示包括所有预期的条件、实现过程所述目的所需的核查或设施操作人员应采取什么行动。
在418将显示一个提示,说明操作人员应采取所建议的行动。提示会如图8所示在用户提示504位置显示,并将连续地显示直到操作人员访问该提示为止(424)。
在418,除显示这些行动步骤和提示外,还检查该步骤,以判定是否得到预期的反应。如果没有得到预期的反应,就是存在违例事故,输出装置106在图8所示的当前步骤框502内显示紧急事故指示422。在当前框502还显示出是否没有得到设施操作人员选择的所建议的反应。几乎在当前步骤框502中显示的所有行动步骤都包括一些紧急事故行动说明。如果没有紧急事故,系统就进入如图8所示的未来步骤506所显示的下一步骤或子步骤,并且在414对当前过程等式再次求值。
在系统进行下一步骤或上过程之前需要有一个用户反应。在如图8所示的用户提示504中显示一个提示,它建议执行418或422的步骤,操作人员对该设施可作出反应。在424一旦设施操作人员做出反应,就检查该反应,以判定操作人员是否希望继续所建议的行动。如果设施操作人员愿意继续所指出的行动,例如,下一有关步骤或过程的部分,如提示418或422所显示的,在412将所显示的过程编号和步骤号设置为所指出的值。如果在428设施操作人员选择退出对当前过程的监视,则程序退回到对入口条件进行求值和监视的406。
在对当前过程步骤等式进行求值和监视的同时,也对所有并行信息等式进行求值(430)。求值再次象先前就有关入口条件等式求值所讨论的那样进行。并行信息包括:例如,标号、警告、折页、参数和顶状态变化,这些变化曾经开始,但在退出当前正在进行的过程步骤时并未完成。并行信息还包括全局的或连续控制的参数,这些参数需要在不止一个单独的过程步骤中被监视,例如,将一个蒸汽发动机压力维持在一定的值。并行信息等式被存储在关系式数据库内,并以与图2A和2B所示的过程/步骤等式类似的方式产生。
在432以与上述类似的方式判定过程编号和步骤号,这样,被执行的并行信息就与当前执行步骤相关。一些并行信息是全局的,而且总是被求值。如一个完成了过程步骤(或子步骤)、一个标志或警告包括应被连续控制的一个参数(432),系统就会监视该参数,直至有关的任何等式求得的值均为假为止(434)。
在434监视并行信息等式求值的结果,以判定是否出现违例事故(436)。如果并行信息中一个过程的所有相关等式均为真,那么那个过程就出现了一个违例事故。如果在并行信息出现了一个违例事故(436),就会如图8所示在并行信息506向操作人员发出一个报警消息。并在用户提示504向操作人员显示出一个提示,给出应采取的所建议的行动。在438,于如图8所示的用户提示504显示提示后,尽管有违例事故,但还是继续对并行信息等式进行求值(430)。
设施操作人员能完全控制COMPRO系统的运行过程。没有设施操作人员的同意,系统没有任何理由进入下一步骤或过程。同时执行过程/步骤和并行的信息循环。418、422和440显示指出要执行的修正过程和步骤的提示。系统会等待设施操作人员的反应;然而,会继续并行地执行过程/步骤和并行的信息循环。只有当设施操作人员在图8所示的用户提示504对所显示的提示424、426做出反应后,系统才会进入下一步骤或过程。如果操作人员退出该过程,就会在428停止对过程和进行信息的监视,系统退回到对入口条件等式进行求值和监视,查找系统违例事故(406)。