具有集成安全控制系统的过程控制系统的制作方法

文档序号:6269440阅读:866来源:国知局
专利名称:具有集成安全控制系统的过程控制系统的制作方法
技术领域
本发明涉及对安全特性有特殊兴趣的控制系统。
有一些过程控制系统使用一个通用过程控制系统和另一个附加的安全关机计算机系统以符合过程控制系统控制的装置内的安全要求。在诸如IEC 61508(国际电工委员会标准61508)部分1至7,VDE 0801(德国技术标准0801)AK 1至6;DIN(德国标准化协会标准)0116,8.7章;DIN V19250,AK 1至6;EN(欧洲标准)298,9和10章;EN 61010-1;EN 50081-2;EN 55011;和EN 55022的文档化标准中制定了这种安全要求的标准。在诸如美国29 C.F.R.§1910.119的法规中也对过程控制安全要求制定了标准。
对于标准化要求,一个被称为″认证″的过程被用于确定某个系统的标准化可接受性。认证过程检查(a)系统设计,(b)组织在系统构造,修改和使用中的实践和(c)标准化要求之间的一致性。对于″认证″和IEC61508定义了四个层次的可接受性,这些层次被称作SIL(安全完整性层次),其中SIL1适合于具有某些次要风险的过程,而SIL4适合于具有高潜在风险的过程(例如自动控制公共交通系统或自动控制核电厂)。通常由一个经过训练的、具有对使用″经认证″系统的团体进行这种检查的可信度的″认证代理″完成″认证″;这种″认证代理″的一个例子是主要机构设在德国慕尼黑的TUV BAyem。
在提供可接受的控制解决方案时,在安全关机系统的较高风险过程中对健壮性和实时诊断完善程度的要求高于通用过程控制系统中对上述属性的要求。在操作技师修改重要参数的能力方面,安全关机系统通常比通用过程控制系统更加安全;在这点上访问安全关机计算机的数据空间要使用物理锁和处于安全监管下的钥匙。安全关机计算机系统设计采取与通用过程控制系统设计有某种程度的不同的过程;这导致系统操作和编程属性方面的差异。虽然同时使用这种具有其不同操作和编程属性的系统的方式通常是有效的,但仍然有缺点。工程师,超级用户和操作技师必须熟悉相关的不同操作和编程属性;并且在某些情况下,对整体有效控制两个系统的方式的综合理解被混淆成涉及不同操作和编程属性交互的特性。使用安全关机计算机系统的过程控制系统还允许在不同时间编译两个不同系统中使用的附属可能变体控制计算机执行的逻辑设置这是一种不以在一个统一机构控制下逻辑统一到一个时间点上的控制系统为特征的情况。″可能变体″是指可以期待在允许编程工程师访问的安全访问层次上产生改变的逻辑部分在这点上,尽管经常提供根据编译过程导出的逻辑,但只读存储器芯片(ROM)不是″可能变体″,除非对控制计算机逻辑进行的常规增量修改包含产生新ROM和改变ROM部件的过程。当管理复杂设施时,在一个统一机构控制下逻辑统一到一个时间点(即,装置的通用控制的所有可能变体源代码和装置的安全关机系统的所有可能变体源代码在相同编译实例中被编译成机器操作代码)上的控制系统是最期望的。最终,提供对两个不同系统的支持通常比支持一个系统更加昂贵;这种额外代价干扰了对资源的有效使用。
解决上述问题需要提供单独一个实现过程控制的安全特性和通用特性的统一系统。一个快速的解决方案是使用一个有安全能力的系统满足所有控制需要;然而由于每个I/O点上需要较高的资金,所以通常被用来控制设施并且提供安全关机的安全系统(经常在物理上三重冗余)是昂贵的。所以,虽然为单统一系统问题提供了技术解决方案,但用于所有控制的安全关机系统通常不是一个解决问题的有效办法。所以在解决上述问题时真正需要和期望的是提供一个经济上可行并且能够实现(a)安全过程控制和(b)通用过程控制的单统一系统。针对这个需要,本发明通过提供一个统一系统提出了一个解决方案,上述系统可以实现一个装置的通用过程控制并且提供了用于(a)实现燃烧器与点火设备安全关机和(b)实现至少符合安全完整性层次3(SIL1,SIL2,和SIL3)(当进一步与涉及控制系统的构造,修改和使用、可被认证代理接受的组织和工程过程联系起来时)的安全管理与安全完整性系统的特性。
下列提到的文档描述了在被修改成本说明书中描述的统一控制系统之前一个通用过程控制系统中的实施例在1996年9月10日提交(24Sederlund等人),标题为″具有可编程变量地址增量的扩展哈佛体系结构计算机存储器系统″并且授权给Sederlund,Edward R.;Lindesmith,Robert J.;Root,Larry A.;Dupree,Wayne P.;和Thomas,Lowell V.的美国专利5,555,424号中描述了在通用过程控制系统中使用的控制计算机的一个实施例。
在1996年12月10日提交(57Baca,Jr.等人),标题为″针对主动冗余控制计算机的输入信号解析方法″并且授权给Baca,Jr.,Eloy;Dupree,Wayne P.;Grinwis,Donald J.;Kanse,Johannes C.;Pelletier,DouglasP.;和Schulze,Oscar E.的美国专利5,583,757号中描述了在使用诸如24Sederlund等人提出的控制计算机的两个控制计算机的通用过程控制系统中的冗余控制计算机系统的一个实施例。
在1996年10月22日提交(15Sederlund等人),标题为″控制计算机的秘密接口″并且授权给Sededund,Edward R.;Thomas,Nadene T.;Lindesmith,Robert J.;和Cowles,Russell W.的美国专利5,568,615号中描述了实现对24Sederlund等人提出的控制计算机进行的数据访问的系统的一个实施例。
在1995年6月27日提交(69Glaser等人),标题为″具有三重冗余远程现场单元现场单元的过程控制接口系统″并且授权给Glaser,Robert S.;Hoy,Robert S.;Fernandez,G.Paul;和Grai,Timothy J.的美国专利5,428,769号中描述了提供用于24Sederlund等人提出的控制计算机的远程现场单元(也被简称为″远端″,″RFU″,或″远程单元″)的系统的一个实施例。
在1992年9月29日提交(66GIaser等人),标题为″高速功率分析器″并且授权给Glaser,R. Steven和Bade,Jeffrey M.的美国专利5,151,866号中描述了提供一个读取用于69Glaser等人提出的现场单元的配电系统中电流的接口的系统的一个实施例。
在以下专利中描述了一个系统的实施例,该系统提供一个用于Baca,Jr.等人的专利中描述的冗余控制计算机系统和对24Sederlund等人的专利中描述的控制计算机进行数据访问的系统的高速网关(a)1996年5月21日提交(Allbery,Jr.等人),标题为″能够使对应数据集合时间对齐的智能过程控制通信系统和方法″并且授权给Allbery,Jr.,James D.;Troisi,Peter A.;Johnson,Susan J.;Cullen,James H.;Butler,Richard L.;Ferreira,James P.;Ellison,Joseph;Patel,ChimanL.;Uban,James E.;和Schultz,Dale H.的美国专利号码5,519,603号;(b)1995年6月27日提交(45de Bruijn等人),标题为″在通信时间段期满使用新随机数在第一和第二计算机之间重新建立限时通信的安全通信系统″并且授权给de Bruijn,Ronny P.;Verboven,Marc L.K.;vanWeele,Leonardus A.;Vermeire,Roger R.;Schulze,Oscar E.;Schultz,Dale H.;和Bell,Brian G.的美国专利号码5,428,745号;和(c)1996年10月1日提交(70de Bruijn等人),标题为″通过检查与命令中标识的变量相关的允许指示符的状态确定是否向控制计算机发送命令的系统和方法″并且授权给de Bruijn,Ronny P.;van Weele,Leonardus A.;Verboveri,Marc L. K.;Vermeire,Roger R.;Schulze,Oscar E.;Bell,Brian G.;和Schultz,Dale H.的美国专利号码5,561,770号。
上述三个专利描述的系统在本说明书中还被表示成高速接口(或HSI)。
在1997年5月20日提交(van Weele等人),标题为″制造过程控制系统的操作员控制台″并且授权给van Weele,Leonardus A.;de Bruijn,RonnyP.;Vermelre,Roger R.;Zemedng,Christo;和Lenting,Ben的美国专利5,631,825号中描述了一个系统的实施例,该系统提供用于冗余控制计算机系统的人机接口和上述专利中描述的接口。
在1996年2月13日提交(Pressnall等人),标题为″主动冗余计算机化过程控制的信息显示系统″并且授权给Pressnall,Dana W.;Polishak,Jeffery T.;Felix,Bradley K.;Durisin,Michael J.;和Ellison,Joseph.的美国专利5,491,625号;与1995年4月18日提交(Van de Lavoir等人),标题为″全局过程控制信息系统和方法″并且授权给Van de Lavoir,Ronny;Follon,Marinus(Neerpelt,BE);和Ravenscroft,Ian.的美国专利5,408,603号中描述了提供对上述系统中应用程序代码的实时解释执行的系统的实施例。
在最优实施例和操作员控制台中配置一个提供人机接口的大尺寸图形浏览系统。在1998年3月10日提交(Clement),标题为″可编程图形面板″并且授权给John L.Clement的美国专利5,726,668号中描述了这个图形浏览系统。
在以下专利中描述了一个系统的实施例,该系统提供一个将来可用作Baca,Jr.等人的专利中描述的冗余控制计算机系统内的处理器的新型控制计算机和一种协同分布式系统内的使用方式(a)1997年8月5日提交(Dupree等人),标题为″大规模多路复用超标量哈佛体系结构计算机″并且授权给Dupree,Wayne P.;Churchill,Stephen G.;Gallant,Jeffry R.;Root,Larry A.;Bressette,William J.;Orr,III,Robert A.;Ramaswamy,Srikala;Lucas,Jeffrey A.;和Bleck,James的美国专利5,655,133号;(b)1999年9月7日提交,标题为″专用上下文循环计算机″并且发明人为Dupree,Wayne P.;Verniers,Gerrit;Lucas,Jeffrey A.;Root,Larry A.;和Churchill,Stephen G.的美国专利5,949,994号;和(c)1999年3月26日提交,标题为″使用实时调度逻辑和时间确定性体系结构的分布式计算机环境″并且发明人为Woods,Randy D.;Jachim,David M.;Dupree,Wayne P.;Verniers,Gerrit H.;Churchill,Stephen G.;和Fernandez,George P.的PCT专利申请WO 99/06634号。这些专利示出了在通用控制系统的一个假想实施例中的使用方式。
通过研究这里提供的涉及本发明的摘要和详细说明可以理解某些附加特性,其中在为了引入以经济的方式提供复合和统一的(a)通用过程控制系统和(b)安全关机计算机系统所必需的特性而修改如上所述的通用过程控制系统的过程中实现了上述附加特性。
本发明提供了一个过程控制系统,上述过程控制系统从一个受控装置接收输入信号并且使用输入信号确定至少一个输出信号,上述输出信号修改受控装置中至少一个对应控制设备的特征,上述过程控制系统的特征在于通过一个统一编译过程将用于装置的通用控制的源代码和用于装置的安全关机的源代码编译成上述控制系统的控制代码。
本发明还提供了一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程控制系统的特征在于一个应用程序实例,该实例具有至少一个安全完整性编程源代码部分和至少一个通用控制源代码部分;和一个具有安全完整性编程规则集合的编译译码器,该译码器将上述应用程序实例转换成上述机器操作代码。
本发明还提供了一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程控制系统的特征在于根据安全完整性编程源代码编译出的第一机器操作代码;和根据通用控制源代码编译出的第二机器操作代码;其中上述第一机器操作代码和上述第二机器操作代码在上述过程控制系统内的相同控制计算机上执行。
本发明还提供了一个控制计算机,上述控制计算机从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述控制计算机的特征在于估算上述控制计算机执行上述机器操作代码的实时能力是否基本上与上述控制计算机的设计能力完全一致的装置;和当上述实时能力不可接受时暂停上述机器操作代码的一个实时循环部分的执行的装置。
本发明还提供了一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且在一个控制计算机上执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程控制系统的特征在于
定义一个概括上述机器操作代码的非可变部分的特征的编译器签名数据数值的装置;向上述控制计算机加载上述编译器签名数据数值的装置;定义一个概括上述程序存储器部分内的上述机器操作代码的特征的实时签名数据数值的装置;比较上述实时签名数据数值与上述编译译码器签名数据数值的装置;和当上述编译译码器签名数据数值与上述实时签名数据数值不相同时暂停上述机器操作代码的实时执行的装置。
本发明还提供了一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程控制系统的特征在于一个将应用程序实例转换成机器操作代码的编译译码器;一个具有保存上述机器操作代码的存储器的控制计算机,其中上述控制计算机产生上述输出信号;上述编译译码器中的一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;一个第一处理单元步骤数据对象类型,该类型具有一个用于上述安全完整性编程部分中的安全域属性参数集合;和一个第二处理单元步骤数据对象类型,该类型具有一个用于在上述安全完整性编程部分之外的上述存储器中的正常操作属性参数集合。
本发明还提供了一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,其中一个附属的编译译码器被用来将应用程序实例转换成上述机器操作代码,上述过程控制系统的特征在于一个将应用程序实例转换成机器操作代码的编译译码器;
一个具有保存上述机器操作代码的存储器的控制计算机,其中上述控制计算机产生上述输出信号;上述编译译码器中的一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;上述编译译码器中针对上述安全完整性编程部分将上述应用程序实例的函数类型语句解释成输入和输出信号第一列表的装置;上述编译译码器中针对上述安全完整性编程部分并且以独立于上述函数类型语句的方式在上述应用程序实例中定义输入和输出信号第二列表的装置;上述编译译码器中比较上述第一列表中的数值和上述第二列表中的数值的装置;和上述编译译码器中在上述第一列表和上述第二列表包含的数值存在不同时禁止产生上述机器操作代码的装置。
本发明还提供了一个控制计算机,上述控制计算机从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,其中一个附属的编译译码器被用来将应用程序实例转换成上述机器操作代码,上述控制计算机在存储器中具有一个保存上述机器操作代码的非实时可变部分的程序存储器部分,上述控制计算机的特征在于上述编译译码器中的一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;上述编译译码器中针对上述安全完整性编程部分将上述应用程序实例的函数类型语句解释成输入和输出第一列表的装置;上述编译译码器中定义一个概括上述程序存储器部分的上述机器操作代码的特征的编译译码器签名数据数值的装置;上述编译译码器中针对上述安全完整性编程部分并且以独立于上述函数类型语句的方式在上述应用程序实例中定义输入和输出信号第二列表的装置;上述编译译码器中比较上述第一列表中的数值和上述第二列表中的数值的装置;上述编译译码器中在上述第一列表和上述第二列表包含的数值存在不同时禁止产生上述机器操作代码的装置;上述控制计算机中定义概括上述程序存储器部分中上述机器操作代码的特征的实时签名数据数值并且将上述实时签名数据数值与上述编译译码器签名数据数值相比较的装置;和上述控制计算机中当上述编译译码器签名数据数值与上述实时签名数据数值不相同时暂停上述机器操作码的实时执行的装置。
本发明还提供了一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程控制系统的特征在于一个将应用程序实例转换成上述机器操作代码的编译译码器;一个具有保存上述机器操作代码的存储器的控制计算机,其中上述控制计算机产生上述输出信号;上述编译译码器中的一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;和一个精减关机状态过程控制对象类型,该类型具有一个用于上述安全完整性编程部分的优先权属性参数,其中上述优先权属性参数支持多个优先级。
本发明还提供了一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程控制系统的特征在于一个控制计算机,这种控制计算机具有一个保存上述机器操作代码并且产生输出信号的存储器,上述存储器具有一个主存储器和一个影像存储器;比较上述主存储器中的数据数值与上述影像存储器中的对应数据数值的装置;和当上述比较装置确定上述主存储器中的上述数据数值与上述影像存储器中的上述对应数据数值不同时暂停上述控制计算机的装置。
从过程的角度看,本发明提供了一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包含以下步骤使用一个安全域规则集合和一个标准操作规则集合并且通过一个编译译码器产生上述机器操作代码;和将上述机器操作代码加载到一个控制计算机中执行以确定上述输出信号。
本发明还提供了一个控制过程,上述控制过程从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述控制过程的特征在于包含以下步骤根据安全完整性编程源代码编译出的第一机器操作代码;和根据通用控制源代码编译出的第二机器操作代码;和在相同控制计算机上执行上述第一机器操作代码和上述第二机器操作代码以便接收上述输入信号并且调整上述对应控制设备。
本发明还提供了一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包含以下步骤估算上述控制计算机执行上述机器操作代码的实时能力是否基本上与上述控制计算机的设计能力完全一致;和在上述实时能力不可接受时停止上述输出信号。
本发明还提供了一个过程,上述过程从制造设备接收输入信号并且在一个控制计算机中执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包含以下步骤估算上述控制计算机执行上述机器操作代码的实时能力是否基本上与上述控制计算机的设计能力完全一致;和当上述实时能力不可接受时暂停上述机器操作代码的一个实时循环部分的执行。
本发明还提供了一个从制造设备接收输入信号并且在一个控制计算机上执行机器操作代码的控制过程,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述控制过程的特征在于包含以下步骤定义一个概括上述机器操作代码的非可变部分的特征的编译器签名数据数值;向上述控制计算机加载上述编译器签名数据数值;在上述控制计算机中定义一个概括上述机器操作代码的上述非可变部分的特征的实时签名数据数值;比较上述实时签名数据数值与上述编译译码器签名数据数值;和当上述编译译码器签名数据数值和上述实时签名数据数值不同时暂停上述机器操作代码的实时循环部分以便通过与编译的机器操作代码一致的机器操作代码调整上述控制设备。
本发明还提供了一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包含以下步骤将一个应用程序实例转换成上述机器操作代码,上述应用程序实例具有至少两个处理单元步骤对象;在一个第一控制计算机中执行上述机器操作代码;在一个第二控制计算机中执行上述机器操作代码;在上述第一控制计算机中定义一个第一建议处理单元步骤以便将活跃处理单元步骤从当前处理单元步骤修改成一个新的处理单元步骤;在上述第二控制计算机中定义一个第二建议处理单元步骤以便将活跃处理单元步骤从当前处理单元步骤修改成一个新的处理单元步骤;在上述第一控制计算机和上述第二控制计算机之间双向发送上述第一和第二建议处理单元步骤以便各个控制计算机均包含两个建议处理单元步骤;在上述第一控制计算机中仲裁上述第一和第二建议处理单元步骤以确定下一个处理单元步骤;在上述第二控制计算机中仲裁上述第一和第二建议处理单元步骤以确定下一个处理单元步骤;和在各个控制计算机中将下一个处理单元步骤当作新的当前处理单元步骤来执行。
本发明还提供了一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,其中一个附属的编译译码器被用来将应用程序实例转换成上述机器操作代码,上述过程的特征在于包含以下步骤在上述编译译码器中,针对上述编译译码器中的一个安全完整性编程规则集合将上述应用程序实例的一个函数类型语句解释成一个输入和输出信号第一列表以便保证上述控制计算机,上述机器操作代码中的过程和结构,和安全完整性层次的要求之间的一致性;在上述编译译码器中针对上述安全完整性编程部分并且以独立于上述函数类型语句的方式在上述应用程序实例中定义一个输入和输出信号第二列表;上述编译译码器中,比较上述第一列表中的数值和上述第二列表中的数值;在上述编译译码器中,当上述第一列表和上述第二列表包含的数值存在不同时,禁止产生上述机器操作代码;和将上述机器操作代码加载到一个控制计算机中执行。
本发明还提供了一个由控制计算机实现的过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤在上述控制计算机中使用一个第一处理单元步骤数据对象类型,该类型具有一个安全域属性参数;和在上述控制计算机中使用一个第二处理单元步骤数据对象类型,该类型具有一个标准操作属性参数;本发明还提供了一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤使用一个精减关机状态过程控制对象类型编译上述机器操作代码。
本发明还提供了一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤使用一个逻辑操作符类型和一个安全域逻辑操作符类型并且通过一个编译译码器产生上述机器操作代码;和在一个控制计算机中执行上述机器操作代码以产生上述输出信号。
本发明还提供了一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤提供一个控制计算机,上述控制计算机具有一个主存储器,其中上述控制计算机产生一个过程控制信号;为上述控制计算机提供一个影像存储器;当进行实时读取访问时,比较上述主存储器中的数据数值和上述影像存储器中的对应数据数值;
当上述装置确定上述主存储器中的上述数据数值与上述影像存储器中的上述对应数据数值不同时暂停上述控制计算机;和以上述过程控制信号作为上述输出信号对上述控制设备产生影响。
本发明还提供了一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤通过使用一个嵌入到上述编译译码器内部的安全完整性编程部分将一个应用程序实例转换成上述机器操作代码,其中上述安全完整性编程部分保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;在一个第一控制计算机中执行上述机器操作代码,上述第一控制计算机具有一个主存储器和一个影像存储器,其中上述第一控制计算机读取上述输入信号并且根据第一仲裁输入数值产生一个第一过程控制信号;在一个第二控制计算机中执行上述机器操作代码,上述第二控制计算机具有一个主存储器和一个影像存储器,其中上述第二控制计算机读取上述输入信号并且根据第二仲裁输入数值产生一个第二过程控制信号;在上述第一和上述第二控制计算机之间双向发送上述输入信号;在上述第一控制计算机中根据从上述第二控制计算机发送的输入信号和上述第一控制计算机读取的输入信号确定上述第一仲裁输入数值;在上述第二控制计算机中根据从上述第一控制计算机发送的输入信号和上述第二控制计算机读取的输入信号确定上述第二仲裁输入数值;和将第一过程控制信号和第二过程控制信号合并成一个上述输出信号并传送到上述控制设备。
参照详细描述和附图可以完全理解本发明的细节。


图1从现有技术角度对具有安全关机能力的过程控制系统中所需的现有技术关键技术领域提供了综述。
图2从统一系统角度对具有基于本发明的安全关机能力的过程控制系统中所需的关键技术领域提供了综述。
图3A提供了一个控制计算机的模块图。
图3B将图3A的模块图扩展成在针对一个控制计算机的输入和输出信号″Can″的位置上包含若干电路部件。
图4提供了一个主动冗余控制计算机系统的模块图。
图5提供了一个被连接到控制计算机的总线结构的链接电路的模块图。
图6提供了有关在控制计算机的Hz1时域执行的程序任务的顺序的流程图。
图7提供了说明在与主动冗余控制计算机互换对应的输入信号时在控制计算机中执行的过程Dog的流程图。
图8提供了说明在与主动冗余控制计算机互换对应的输入信号时在控制计算机中执行的过程Fox的流程图。
图9A和9B以模块流的形式示出了控制计算机中配置的程序(P)存储器RAM电路,ROM电路,和影像电路。
图10示出了在比较程序(P)存储器RAM和ROM电路与影像电路,数据(D)存储器电路与影像电路,Q存储器&C存储器(Q&C存储器)电路与影像电路时用于存储器和影像存储器诊断的比较器电路。
图11A和11B以模块流的形式示出了控制计算机中配置的数据(D)存储器电路和影像电路。
图12以模块流的形式示出了控制计算机中配置的Q存储器&C存储器(Q&C存储器)电路和影像电路。
图13A和13B示出了母板,I/O驱动器板,I/O板,和中间板电路。
图14提供了数字输出地址验证电路。
图15对美国专利5,583,757号中的图8(c)进行了修改,其中在根据上述美国专利提出的方法得到的最优实施例系统中消除了某些用于输入信号仲裁的条件逻辑(以前在以任务B模式运行控制计算机时执行)。
图16对美国专利5,583,757号中的图8(c)进行了修改,其中改变了根据上述美国专利提出的方法得到的最优实施例系统中的某些用于输入信号仲裁的条件逻辑。
图17对美国专利5,583,757号中的图8(f)进行了修改,其中改变了根据上述美国专利提出的方法得到的最优实施例系统中的某些用于输入信号仲裁的条件逻辑。
图18对美国专利5,583,757号中的图8(h)进行了修改,其中在根据上述美国专利提出的方法得到的最优实施例系统中消除了某些用于输入信号仲裁的条件逻辑(以前在以任务B模式运行控制计算机时执行)。
图19概述了控制程序的Hz1子部分的实时执行。
图20提供了与图19的综述对应的链接仲裁细节。
图21A和21B提供了控制计算机的模块流程图,其中示出了执行诊断方法时对接受认证的系统而言具有重要性的部件。
图22提供了关于可执行机器操作代码的流程图,上述机器操作代码使一个控制连接与一个网络控制器接口,而上述网络控制器使控制计算机与一个远程现场单元接口。
图23A-23E提供了一个关于可执行机器操作代码的流程图,上述机器操作代码被用来在控制计算机对一个远程现场单元进行诊断。
图24提供一个关于可执行机器操作代码的流程图,上述机器操作代码使一个网络控制器电路与一个远程现场单元接口。
图25提供了一个关于可执行机器操作代码的流程图,上述机器操作代码为网络控制器电路提供从网络控制器向一个远程现场单元发送信息的方法。
图26提供了一个关于可执行机器操作代码的流程图,上述机器操作代码为网络控制器电路提供将信息从一个远程现场单元接收到网络控制器中的方法。
图27提供了一个关于远程现场单元中的可执行机器操作代码的流程图,其中示出了与网络控制器电路进行通信的过程中的信号交互和信号应答。
图28提供了一个关于远程现场单元中的可执行机器操作代码的回送功能的流程图,其中示出了与网络控制器电路进行通信的过程中的信号交互和信号应答。
图29提供了一个关于远程现场单元中的可执行机器操作代码的数字输出信号功能的流程图,其中示出了与网络控制器电路进行通信的过程中的信号交互和信号应答。
图30提供了一个关于可执行机器操作代码中模拟输出跟踪信号功能的流程图。
图31提供了在两个控制计算机分别执行与其它控制计算机版本不同的应用程序时有关可执行机器操作代码内的模拟输出跟踪信号功能的流程图。
图32提供了一个关于在左控制计算机和右控制计算机之间交换数据和仲裁数据的可执行机器操作代码的流程图。
图33A和33B提供一个关于可执行机器操作代码的流程图,上述机器操作代码实现了被操作技师用来改变针对控制计算机的主控制单元的输入的处理单元步骤。
图34A1-34A3和34B-34E提供了一个关于可执行机器操作代码的流程图,上述机器操作代码对最优实施例中使用的串行图形系统进行诊断。
图35提供了一个关于监视看门狗的可执行机器操作代码的流程图。
图36A和36B提供了一个关于实现Hz10中的DIREAD(数字输入读取)和DIFREAD(数字输入字段数值读取)功能的可执行机器操作代码的流程图。
图37提供了一个关于实现Hz10中的AIREAD(模拟输入读取)和AIFREAD(模拟输入字段数值读取)功能的可执行机器操作代码的流程图。
图38A-38E提供了一个关于实现控制计算机中的校验和与影像存储器启动诊断的可执行机器操作代码的流程图。
图39提供了一个关于实现控制计算机启动过程中的P存储器校验和计算的可执行机器操作代码的流程图。
图40提供了关于实现控制计算机启动过程中的Q存储器校验和计算的可执行机器操作代码的流程图。
图41A和41B提供了一个关于实现在正常Hz1循环期间实时执行的诊断集合的可执行机器操作代码的流程图。
图42A和42B提供一个关于图41A和41B的可执行机器操作代码的第一嵌套流程图,上述可执行机器操作代码被用于实现在一个正常Hz1循环期间实时执行的诊断集合。
图43A和43B提供一个关于图41A和41B的可执行机器操作代码的第二嵌套流程图,上述可执行机器操作代码被用于实现在一个正常Hz1循环期间实时执行的诊断集合。
图44A和44B提供了一个关于诊断测试DO守护电路的可执行机器操作代码细节的流程图。
图45提供了一个关于实时诊断DO守护电路的可执行机器操作代码的流程图。
图46提供了一个关于在正常Hz1循环期间用于Can地址测试的可执行机器操作代码的流程图。
图47提供了一个关于在正常Hz1循环期间用于板地址测试的可执行机器操作代码的流程图。
图48提供了一个关于定位和索引能够完成SIL1,SIL2或SIL3下的操作;在系统中有混合(SIL和非SIL)板的情况下暂停Hz1循环执行;在系统中有混合板的情况下预先激活一个针对DO守护电路的选通脉冲;并且在系统中有混合板的情况下对控制计算机进行诊断通信的I/O板的可执行机器操作代码的流程图。
图49提供了一个关于可执行机器操作代码的流程图,上述可执行机器操作代码实现图43A和43B中用于正常Hz1循环期间实时执行的诊断集合的可执行机器操作代码的第三嵌套流程图,上述第三嵌套流程图测试板上的通道地址。
图50提供了一个关于可执行机器操作代码的流程图,上述可执行机器操作代码实现图43A和43B中用于正常Hz1循环期间实时执行的诊断集合的可执行机器操作代码的第四嵌套流程图,上述第四嵌套流程图测试设置和复位数字输出的能力。
图51提供了一个关于可执行机器操作代码的流程图,上述可执行机器操作代码实现图53中用于正常Hz1循环期间实时执行的诊断集合的可执行机器操作代码的第五嵌套流程图,而上述第五嵌套流程图用于测试模拟输出设置功能。
图52提供一个关于监视自诊断的执行的可执行机器操作代码的流程图。
图53提供一个关于可执行机器操作代码的流程图,上述可执行机器操作代码被用于确定在非SIL级系统中是否应当选通守护电路。
图54提供一个关于可执行机器操作代码的流程图,上述可执行机器操作代码被用于确定在SIL1,SIL2或SIL3级的系统中是否应当选通守护电路。
图55提供了关于应用程序走向的总体Hz1控制循环描述。
图56提供了一个关于用″处理单元″概念修改的应用程序走向的总体Hz1控制循环描述。
图57提供了一个关于应用程序走向的总体Hz1控制循环描述,上述应用程序走向经过″处理单元″概念的修改并且得到进一步修改以显示出具体涉及Hz1执行过程中的SEQUENCE的控制计算机执行逻辑。
图58提述了涉及应用程序走向的总体Hz1控制循环的处理单元步骤模型,上述应用程序走向经过了″处理单元″概念的修改,并且还根据Hz1执行过程中的SEQUENCE对上述环境进行了修改。
图59针对处理单元步骤模型环境中的伪码例子图解了在有关控制计算机执行的逻辑的数据库中发生的改变的性质。
图60针对控制计算机图解了一个系统环境数据流图例。
图61针对控制计算机图解了实时执行数据流图例。
图62A和62B针对控制计算机图解了一个主动冗余控制计算机数据流图例。
图63A,63B,和63C针对控制计算机图解了第一层次嵌套实时执行数据流图例。
图64针对控制计算机图解了第二层次嵌套诊断实时执行数据流图例。
图65针对控制计算机图解了第二层次嵌套I/O处理实时执行数据流图例。
图66针对控制计算机图解了第二层次嵌套仲裁实时执行数据流图例。
图67针对控制计算机图解了第二层次嵌套通信实时执行数据流图例。
下列11个段落针对最优实施例提供了系统综述。
最优实施例提供了一个过程控制系统,上述过程控制系统从一个装置(制造设备)接收输入信号并且执行机器操作代码以便使用输入信号确定至少一个输出信号,上述输出信号修改装置中至少一个相应控制设备的特征,在该装置中在相同编译实例内编译用于装置的通用控制的源代码和用于装置的安全关机系统的源代码(在系统综述的第五段落中进一步讨论对控制设备特征的修改)。这有助于实现理想的结果,即通过使用相同语言表示用于装置的通用控制的源代码和用于装置的安全关机系统的源代码,在一个时间点上将针对控制和操作的所有附加修改实现成一个统一的整体;其中的一个好处是通常非常好地可以在负责上述装置的组织中的一个责任机构的控制下检查和测试系统中不同功能和特性之间的所有交互事宜。
编程工程师在高级编程语言环境中将控制概念的一个通用集合(控制模式)表示成一个源代码文件,上述源代码文件被称为具有至少一个安全完整性编程(SIP)子部分的应用程序。一个附属编译译码器被用来根据编译译码器中的安全完整性编程规则集合将应用程序实例转换成控制计算机机器操作代码实例,上述安全完整性编程规则集合保证机器操作代码中的控制计算机,过程和结构与安全完整性编程子部分的源代码的SIL要求之间的一致和配合。在一个实施例中,由于安全关机逻辑和通用过程逻辑均具有非常类似的操作和编程属性,所以针对(a)安全完整性编程部分和(b)在安全完整性编程部分外部编译并且用于通用过程控制目的的代码(即不需要结合SIL要求的代码)使用公共语言允许进一步提高效率。将具有至少一个SIP部分和至少一个非SIP部分的整个应用程序编译成相同编译实例中的控制计算机机器操作代码允许一个控制系统在一个统一机构的控制下在一个时间点上成为一个逻辑统一实体。机器操作代码具有一个不可变部分和一个可变(数据)部分,其中可变(数据)部分从编译译码器产生的实例开始,并且接着在控制计算机的各个循环中被修改以反映受控装置在任何具体时刻的性质。
过程控制系统使用一个第一控制计算机和一个第二控制计算机,其中各个控制计算机具有一个主存储器和一个影像存储器。一个双向通信通道将第一控制计算机连接到第二控制计算机并且被用来进行输入信号的双向传输。
在第一控制计算机中根据第二控制计算机发送的输入信号和第一控制计算机读取的输入信号确定第一仲裁输入数值;淂卧诘诙刂萍扑慊中根据第一控制计算机发送的输入信号和第二控制计算机读取的输入信号确定第二仲裁输入数值。
在各个控制计算机针对仲裁输入数值执行应用程序的机器操作代码并导出一个过程控制信号之后,第一过程控制信号和第二过程控制信号(分别来自第一和第二控制计算机)被合并成一个同时从两个控制计算机传送到适当控制设备的输出信号。由于输出信号改变了门栅元件的位置或控制设备的动态性质,因而输出信号修改了控制设备的特征。这个方面的例子包含一个阻流阀,阻流阀具有诸如打开(导流)或关闭(非导流)的可选特征;一个模拟阀,模拟阀的门栅特征被定义成某个具体位置,涉及某个范围内的多个相对位置,例如19%打开,25%打开或73%打开;和一个泵,这个泵的特征可以是接通(泵送流体)或不接通(不泵送流体)。控制设备的特征本身定义了装置的某些实时操作属性,例如针对一个管道内部流动的流体的打开交叉截面属性本身就被锁到阀的特征位置上,例如被打开,关闭,或(在模拟阀的情况下)被打开一个相对百分比;泵被加力输送原料的特征或泵未被加力输送原料的特征影响泵位置上的装置内部的压力和动能属性。
在产生一个输出信号时,(1)各个控制计算机定义一个数字地址和一个数字数值集合,上述集合包含至少一个针对各个输出信号的数字数值;(2)一个与计算机处理器相连的第一数模电路在数字数值集合涉及一个模拟输出信号的情况下将数字数值集合转换成一个单独的模拟信号,或者在涉及数字输出信号的情况下将数字数值转换成数字信号;(3)一个多路复用电路使第一数模电路与附属输出电路接口;(4)一个被连接到控制计算机处理器的第二数模电路将多路复用电路的数字地址转换成一个地址数值模拟信号;(5)一个模数电路使第二数模电路和控制计算机处理器接口以便将地址数值模拟信号转换成一个地址数值数字信号集合;并且(6)比较地址数值数字信号集合和数字地址集合。如果地址数值数字信号集合和数字地址集合未被确定是相同的,则控制系统的输出被设置到故障保护位置上,直到控制计算机处理器中的机器操作代码暂停装置的实时操作(除非使控制设备保持在故障保护模式下)并且成功执行全部的启动诊断操作。一个现场控制设备的故障保护环境被定义成当从控制系统输入到设备的信号(用于在现场设备内部定位元件,其中现场设备修改受控制的装置的实时属性,例如管道的有效打开交叉部分)具有零电压值,零模拟数值,和/或假逻辑数值时的现场设备位置。
一组母板也被用来使各个控制计算机处理器与输出电路(,如下所述,通常位于被表示成″Can″的机柜内)接口,并且在各个母板上还提供一个中间板。母板和中间板均提供″守护″电路,其中″守护″是电路的一个非常可靠的结构,设计属性和有效元件,″守护″允许电路(a)提供加力输出(作为一个正常操作输出),或者(b)在实时出现具体操作情况(事件)时以清晰,直接和准确闭锁的方式强制停止提供加力输出,其中保持停止状态直到明确解除。在提供涉及实现通过认证的系统的特性时,在各个母板上布置一个″Can守护″电路,并且在各个中间板上布置一个SIL中间板DO(数字输出信号)守护电路(这里简称为DO守护电路)。在控制计算机中还提供一个看门狗电路(″看门狗″),看门狗电路向控制计算机处理器提供一个复位连接以便在(a)控制计算机不按规定时间输出预定事件或(b)从某个诊断电路输入信号的情况下暂停控制计算机中机器操作代码的实时执行。Can守护电路具有一个RC电路,RC电路被连接到一个活动脉冲接收器,使得Can守护在一组从控制计算机输出的第一脉冲不能使RC电路中的电容器与某个阈值数值之间保持距离时产生一个输出(即Can守护″触发″)的情况下暂停向受控装置提供其输出信号。DO守护电路实现一个闭锁守护(一个与″Can守护″分离的守护)以便在控制计算机的输出指示控制计算机进行非标准操作的情况下禁止Can的所有数字输出;在这点上DO守护电路电路具有一个被连接到活动脉冲接收器的RC电路,这使得Can守护实现了一个输出(即Can守护″触发″)以便在控制计算机输出的一组第二脉冲不能使RC电路中的电容器与某个阈值数值之间保持距离的情况下暂停向受控装置提供数字输出信号。控制计算机执行一个机器操作代码子集产生第二脉冲,上述机器操作代码子集被设计得足够复杂以便控制计算机只在出现以下情况时才产生相应结果,即完全符合其设计能力的概率超过一个非常高的概率阈值。计算机以要求完全运行其实时初始化测试的方式对DO守护电路的守护输出作出应答以便允许回过来从Can提供加力数字输出。应当注意,在标准和通用的实践中,数字输出信号被用于快速和有效地将一个受控装置配置到某个故障保护环境中;在即将明确禁止一个模拟输出信号将受控装置跃迁到故障保护结构中的位置上的情况下,数字输出信号经常被实现成一个在控制计算机和接收模拟输出信号的现场控制设备之间打开连接的开关。
系统提供了一个SEQUENCE数据对象类型以便用于(1)编程工程师在计算机中编制的应用程序源代码,其中源代码被编译成机器操作代码以便用于控制计算机中,(2)通过计算机实现的、将源代码编译成机器操作代码以便加载到控制计算机中的过程中,和(3)操作技师在操作期间与控制计算机进行的引导式交互中。在这点上,一个SEQUENCE实际上被设计成一个将应用程序的数据模式与一组充当某个处理单元的物理部件关联起来的信息逻辑构造,其中上述物理部件是受控制系统控制的装置(例如一个锅炉和一组与锅炉相关的阀)的一部分。SEQUENCE还被表示成编译译码器内部的一个数据逻辑对象类型和控制计算机内部的一个数据类型。
编译译码器(其中SIP规则集合是编译译码器的一个子集,部分,和/或″片断″,而编译译码器是保证各个控制计算机,各个控制计算机中执行的机器操作代码内的过程和结构,和SIL要求之间的一致和配合的相邻和/或非相邻计算机执行编译译码器逻辑的集合)内部的计算机执行逻辑的SIP(安全完整性编程)规则集合提供了计算机实现的逻辑,其中执行上述计算机实现的逻辑以便保证(a)具有(1)针对SIP部分中的编译而定义的数据变量的形式和(2)针对SIP部分中的编译而定义的应用程序语句形式的应用程序逻辑与(b)针对(1)适合于所操作的装置的SIL层次和(2)用于装置控制的控制计算机而定义的SIL专用约束之间的一致性。在这点上,SIP规则集合解释应用程序的具体实例中的一个函数类型语句,其中函数类型语句被编译成用于SIP部分中各个应用程序语句的SIP的一个SIP变量列表。编译译码器SIP规则集合中的逻辑的一个第二部分接着将一个SIP部分中使用的各个SIP变量与该部分中的编码相比较以保证(a)SIP变量列表中没有其数值被确定不在一个单独SIP部分的范围内的SIP变量;(b)SIP列表中的每个SIP变量均被用于至少一个SIP部分中;并且(c)人事部在语句内部对用于某个SIP部分的非SIP变量的使用所作结论,其中一个基于SIP变量的语句部分使用这些非SIP变量。在实现第三个目标时,提供一个SIP逻辑操作符类型(例如SIPAND和SIPOR)通知编译译码器已经对某个计算机语句中非SIP变量的使用作出结论,使得SIP规则集合完全适用于语句的其余部分。编译译码器中逻辑的一个第三部分在一个SIP部分中的代码不符合SIP变量,SIP变量列表和SIP部分内的一致性要求的情况下禁止产生机器操作代码。编译译码器中逻辑的另一个部分定义了一个抽取程序存储器(控制计算机中的一部分通用存储器,其中机器操作代码不随时间推移实时改变)机器操作代码特征的编译译码器签名数据数值;这个签名数据数值被用于针对编译译码器产生的机器操作代码实时验证机器操作代码的完整性。
SEQUENCE数据对象类型具有一组附属属性,例如(a)一组涉及受控装置的处理单元步骤(例如″离线维护″处理单元步骤,″设备测试″处理单元步骤,″排气″处理单元步骤,″初始点火并加热″处理单元步骤,″全压″处理单元步骤,″稳定输出压力操作″处理单元步骤,″压力缓降″处理单元步骤,和″产品放电″处理单元步骤),(b)一组报警(例如,″水箱水位高″报警,″压力低″报警),(c)″当前活跃时间″处理单元步骤(SSTEP中的STIME),(d)SEQUENCE中的″关机″状态,(e)SEQUENCE中的″紧急″状态,和(f)SEQUENCE中″正被使用的原料配方″。另外,提供具有一个安全域属性参数的第一处理单元步骤数据对象类型以便用于SIP部分;并且提供具有一个正常操作属性参数集合的第二处理单元步骤数据对象类型以便用于SIP部分的外部。还提供一个被划分优先权的精减关机状态过程控制对象类型以便使用。在这点上,精减关机状态过程控制对象类型是一个识别SEQUENCE中如下所述的情况的对象,即期望对附属装置中的处理单元进行″关机″,但必须以一种精减并且受限的方式,即按照使系统经济损失最小的要求实现系统中的安全和保险操作状态。在管理多层次的关机命令时,提供一个精减关机状态过程控制对象类型,其中优先权属性参数支持五个优先级。在关于系统中使用的软件的详细讨论部分中提供了对SEQUENCE性质的更细节的讨论。
在实时执行环境下在控制计算机中提供了可执行逻辑,这种可执行逻辑定义了一个抽取程序存储器(控制计算机中的一部分通用存储器,其中机器操作代码不随时间推移实时改变)中机器操作代码特征的实时签名数据数值,并且将实时签名数据数值与前面已经概括描述的编译译码器签名数据数值相比较。当编译译码器签名数据数值和实时签名数据数值不同时控制计算机暂停机器操作代码的实时执行。控制计算机在进行读取访问时比较主存储器(控制计算机中的部分通用存储器,其中机器操作代码不随时间推移实时改变)中的数据和影像存储器中的数据以确定其数值上的差异;当确定主存储器中的数据数值与影像存储器中对应数据数值不同时暂停控制计算机。
下列段落提供了对实时,Hz1,Hz10和Hz100的讨论。
实时计算机处理被概括地定义成一个计算机处理方法,其中一个事件在一个实际时间限制内产生一个规定的反应,并且在外部条件和实际时间环境内并且根据外部条件和实际时间明确控制计算机动作。作为过程控制领域内的一个相关分类,实时计算机控制处理涉及完成相关过程控制逻辑,判定和过程控制判定程序所固有的大量操作,上述过程控制判定程序的功能是监视并修改一个实现实时过程的受控装置(如这里描述的″处理单元″),其中以相当高的频率周期性执行过程控制判定程序,上述频率的周期通常在10毫秒和2秒之间,尽管也可以使用其它的时间周期。在使用其中一个单独的解决方案实例需要足够计算时间的″高级″控制程序的情况下,有必要使用较大的周期(应当以等于或低于相关变量测量频率的频率确定控制元件设置的变化)。在最优实施例中,控制计算机每秒执行一次的实时逻辑(一个Hz1实时循环部分)被称作Hz1逻辑,控制计算机每秒执行十次的实时逻辑(一个Hz10实时循环部分)被称作Hz10逻辑,控制计算机每秒执行一百次的实时逻辑(一个Hz100实时循环部分)被称作Hz100逻辑,其中Hz代表″赫兹″,通常表示每秒一个循环的频率。
下列段落针对最优实施例讨论了左控制计算机和右控制计算机。
下列主题描述了冗余概念,并且在一个冗余控制计算机集合上配置最优实施例。通过控制计算机上的一个物理开关将冗余集合中各个控制计算机的数据库中的一个第一基础逻辑标识符被定义到其数据库上,开关的一个位置将控制计算机定义成″左″控制计算机并且另一个位置将控制计算机定义配对的″右″控制计算机。如果使用三个控制计算机(象在一个远程现场单元中那样),还提供一个将控制计算机定义成″中间″控制计算机的开关。
下列段落讨论了冗余,仲裁冗余和主动冗余。
过程控制系统中的″冗余操作″,过程控制系统中的″仲裁冗余″操作和过程控制系统中的″主动冗余″操作是三个相关的操作方法。在这点上,根据若干个具有健壮设计特点的方案配置实时控制计算机机器。冗余涉及提供至少两个基本上可以同时执行过程控制逻辑(具有控制计算机执行的逻辑的形式)并且实现控制所需的活动的控制计算机机器;然而在严格的意义上冗余操作不满足两个控制计算机机器的动作之间的显式协同的要求,也不会主动引导两个控制计算机机器对现场设备的控制。一组冗余控制计算机机器可以在没有数据数值实时协同或没有任何互诊断的情况下尽可能控制相同装置上的判定;实际上某些安全关机系统设计方案在″通用控制″系统中所有与状态有关的事情均明确涉及安全问题的情况下倾向于使用至少两个总体上独立的系统影响对一个只关心″安全″的系统(可以具有三个独立的安全子系统,所有子系统均在安全关机系统具有独立的机构)的控制。
可选地,冗余参照是指提供在一个某些现象表明主过程控制系统″有麻烦″的情况下进行快速″接管″的备份计算机和过程控制系统。(当期望协同时)操作冗余设备的机器之间的协同需要提供″仲裁″以便能够定义哪个(些)主要机器实际影响对装置控制元件的控制,哪个(些)机器充当后备和/或″第二意见″表决方以利于保证主要机器采取适当的动作,以及使用什么数值影响控制元件的位置。在一个仲裁形式中,后备机器优先选择改写一个主动操作装置的从属主要机器中定义的数值以便(a)在控制被转移到一个后备机器的情况下控制的传送不对现场控制设备产生″扰动″,并且(b)控制机构的转移不对现场控制元件带来不期望的瞬变。在另一个仲裁形式中,一组机器对被发送到现场的数值进行表决,其中一个机器在其它机器的密切监视下向现场设备传送表决的数值,并且这组机器还可以具有″表决″提供使现场控制元件进入后备状态的输出电压的机器的能力。仲裁也可以视不同现场设备的情况而定,其中(a)在不止一个机器没有对输入数值(涉及某些输出信号的确定)或输出信号进行仲裁的情况下向现场设备提供那些输出信号;(b)在左机器和右机器的输入数值之间的差异不超出一个限定值的情况下在接受一个机器的输入数值(涉及某些输出数值的确定)之后确定那些输出信号,其中在超出限定值的情况下机器忽略一个共同的数值;并且(c)在左机器和右机器的输入数值之间的差异不超出一个限定值的情况下在接受一个机器的输入数值(涉及某些输出数值的确定)之后确定那些输出信号,其中在超出限定值的情况下两个机器均具有把现场设备驱动到故障保护模式的能力。最好对现场设备实现主动冗余;在这点上,″主动冗余″意味着至少两个分离的控制计算机同时将其输出控制电压施加到相同输出线上的一个具体现场控制设备。尽管现场设备驱动电路中″阻抗″(DC电路上的稳定性)或″阻抗″(在DC电路瞬变期间)上的所有电压的影响会使较低的电压影响驱动现场设备的电压的稳定性,然而这个主动冗余方案意味着所施加的最高电压定义了现场设备的状态。在最优实施例中,(a)某些主动冗余输出信号来自于根据两个机器之间尚未被仲裁的输入数值确定的输出;(b)某些主动冗余输出信号来自于根据接受左机器的输入数值之后的输入数值确定的输出,只要在左机器和右机器之间的差异不超出一个限定值,其中在超出限定值的情况下机器忽略一个共同的数值;(c)某些主动冗余输出信号来自于根据接受左机器的输入数值之后的输入数值确定的输出,只要在左机器和右机器之间的差异不超出一个限定值,其中在超出限定值的情况下两个机器均具有把现场设备驱动到故障模式的能力;(d)某些主动冗余输出信号来自于根据接受右机器的输入数值之后的输入数值确定的输出,只要在左机器和右机器之间的差异不超出一个限定值,其中在超出限定值的情况下机器忽略一个共同的数值;并且(e)某些主动冗余输出信号来自于根据接受右机器的输入数值之后的输入数值确定的输出,只要在左机器和右机器之间的差异不超出一个限定值,其中在超出限定值的情况下两个机器均具有把现场设备驱动到故障模式的能力。在最优实施例中,Hz10和Hz100操作以执行实时代码、面向通用或安全的逻辑部分中的第一种情况″(a)″为特征;Hz1″通用操作″通常以第二种情况″(b)″和第四种情况″(d)″为特征;Hz1″面向安全″的操作以第三种情况″(c)″或第五种情况″(d)″为特征。对于输入信号仲裁,在最优实施例的设计中实现了某些对Baca,Jr.等人的美国专利5,583,757号中描述的模拟输入信号仲裁方法的修改;在图15,16,17和18中概述了这些对该专利中的信息的修改,并且在本说明书的另一部分中进一步进行了讨论。通过将该专利中的信息与针对图55-58进行的讨论相比较可以理解处理单元步骤管理中的其它改变。
下列段落讨论了应用程序。
编程工程师在高级编程语言环境中将控制概念的一个通用集合(控制模式)表示成一个源代码文件,上述源代码文件被称为应用程序。编译译码器影响控制一个编译实例将应用程序转换成机器操作代码实例以便加载到控制计算机中。
下列段落讨论了编译译码器。
编译译码器是计算机执行的软件,这种软件通过使用软件编译技术,词法分析技术,注解清除技术,宏替换技术,带规则语句分析技术,中间目标代码产生技术,汇编代码产生技术,机器操作代码形式的标准子程序链接技术,和/或二进制机器代码产生技术将高级源代码语言软件(例如应用程序)转换并翻译成机器操作代码。
下列段落讨论了机器操作代码。
机器操作代码是通常以二进制形式载入计算机以便计算机能够在使用机器代码定义计算机电路中的传导通路并且数据被引用,使用,修改或被计算机电路进行电子处理期间执行特定功能的机器代码和数据。机器操作代码具有一个不可变部分和一个可变(数据)部分,其中可变(数据)部分从编译译码器产生的实例开始,并且接着在控制计算机的各个循环中被修改以反映受控装置在任何具体时刻的性质。
下列段落讨论了故障保护概念。
一个现场控制设备的故障保护环境被定义成当从控制系统输入到设备的信号(用于在现场设备内部定位元件,其中现场设备修改受控制的装置的实时属性,例如管道的有效打开交叉部分)具有零电压值,零模拟数值,和/或假逻辑数值时的现场设备位置。
下列段落讨论了术语″守护″。
″守护″是电路的一个非常可靠的结构,设计属性和元件,″守护″允许电路(a)提供加力输出(作为一个正常操作输出),或者(b)在实时出现具体操作情况(事件)时以清晰,直接和准确闭锁的方式强制停止提供加力输出,其中保持停止状态直到明确解除。
下列段落针对最优实施例讨论了单元操作,单元过程,处理单元,和SEQUENCE概念。
在介绍最优实施例中控制计算机执行的逻辑和控制计算机程序中上述SEQUENCE对象的使用时,简要回顾了涉及本领域和化学工程技术的两个术语。传统概念″单元操作″(在化学处理中使用和实现的一种物理变化过程,例如过滤,蒸发,或热传递)和″单元过程″(通过化学反应在原料中进行的一种转化,例如氧化,水解,酯化,聚合,或硝化)定义了必须执行以便实现从″初始″原料到″成品″原料的期望增量转化的功能活动。通常通过使用一个在操作中将初始原料转换成成品原料(在微观和宏观两个方面)的装置进行这些物理转变和化学变化;借助并组织涉及至少一个″单元操作″或″单元过程″的执行的部分装置有利于在一个最小的″处理单元″(例如反应堆,分馏塔,结晶器,干燥器,贮油罐,分馏单元,萃取单元,或蒸发器)中达到所述的实施例中的控制目的。在一个化学制造总厂中,在相应的″处理单元″集合中集中有效地执行若干连续并且并行的″单元操作″和″单元过程″,从而将许多″初始原料″转换成″成品原料″(其中从具体环节观察来自一个″处理单元″的″成品原料″经常是下一个″处理单元″的″初始原料″)。工程和操作人员通常在一组这样的″处理单元″构成的环境中使用和管理这种工厂装置的操作以实现这些连续和并行″单元操作″与″单元过程″的操作,其中在宏观方面″原始″(″初始″)原料被转换成″最终″(″成品″)原料。在例子中,当一组操作技师″正在启动″工厂中的″反应堆″″处理单元″时,这组技师可能正在第一″蒸馏塔″″处理单元″上″进行维护″并且正在与第一蒸馏塔并行排列的第二″蒸馏塔″上″操纵运行″。但是也需要理解的是,由于化学制造工厂通常通过提供一个由连接容器,管道,泵,阀,仪器和电线构成的大型装置使得能够实现内部流体移动,所以″处理单元″不会在一个诸如化学制造工厂(最优实施例的应用目标)的装置内以物理上分离和限定的方式保持空闲。所以″处理单元″的定义是理论的,逻辑的(在头脑中和电子电路实现环境中)和概念性的,这种定义在物理方面不是清晰和明确的。在这个例子中,当一个带有阀门的管道将一个反应堆连接到一个缓冲罐时,反应堆,管道,阀门,和缓冲罐被构造成一个统一并且联结的物理装置;可以方便地将反应堆看成是一个第一″处理单元″并且将缓冲罐看成是一个第二″处理单元″,但是由于(a)在阀门内部没有对两个″处理单元″进行清晰和明确的物理间隔,并且(b)肯定不期望在具体时刻以实时方式将阀门的控制分成两个部分,所以为了使处理单元包含用于管理和控制目的的阀门(和管道),需要接受这样的事实,即必须从工艺角度出发在理想和现实之间作出选择。
″处理单元″是一种有用的抽象,这种抽象涉及一个彼此互连并且即使属于大型成套物理设备的一个部件也可以被当作统一的整体来操作的物理设备域(一个大型装置中的一个子集装置部分)。然而这种有用的抽象发现(1)当复杂装置正执行实时原料加工和处理时一组原料处理域内存在一种有用的关联协同关系,并且(2)所有这样的域均在其自己拥有的环境内具有反映并概括其附属″处理单元″的状态的性质,其中这种状态涉及其实时动态状态。在控制计算机对一个装置进行控制时,SEQUENCE是映射到受控制的装置内部的″处理单元″抽象域的数据逻辑对象;并且SEQUENCE数据逻辑对象具有一组以数据逻辑方式概括实时附属给SEQUENCE的″处理单元″的操作状态的特征的属性。在这点上,SEQUENCE的某些属性是一系列处理单元步骤(其中在一个具体的实时时刻只有一个处理单元步骤是″主动的″);一组报警;一个配方;当前处理单元步骤处于主动状态的时间;一个声音信号状态(或声音信号状态集合-在大型系统中使不同类型的事件具有不同的声音信号音频,并且可选地,具有附属预编程音频通知);一个紧急状态;一个关机状态;一组可以修改装置的物理尺寸,属性和特征的控制元件(例如通过打开或关闭阀门,向泵加压或减压修改管道通路内部流动的流体的打开交叉截面属性);和一组从位于装置内的传感器得到的测量,其中上述传感器可以将诸如温度,压力,液面,阀门位置,和/或轴转动速率的装置属性转换成电压或数字消息以便被存储在控制计算机的数据库中。应当注意,在最优实施例中,来自装置中一个传感器的一个测量可以″属于″许多个SEQUENCE,但是一个控制元件最好″属于″唯一一个SEQUENCE并且在这个SEQUENCE中计算其实时定位数值以作为(通常为模拟或数字)输出数值和信号(即使在其它SEQUENCE的逻辑中引用了为控制元件计算的输出数值)。虽然SEQUENCE对象的某些属性具有属于受控装置的物理部分的物理表现形式(例如发送器,阀门和螺线管),但其它属性(例如处理单元步骤,报警,紧急状态,关机状态,或配方)本质上是涉及SEQUENCE数据对象各个方面及其物理装置的附属″处理单元″部分的数据指示符-这些其它属性在装置内部没有直接的物理表现形式。还应当注意,某些SEQUENCE的″处理单元″(例如由涉及诸如″水冷却″,″压缩空气″,″工业用水″,或″电能″的实用系统的SEQUENCE对象定义的处理单元)被有效地物理分散到整个装置中并且与许多其它″处理单元″接口。在使用过程控制时,还针对有关受控装置的操作的其它方面定义了某些SEQUENCE(例如以周期性方式对帐户系统进行的通信管理),所以在没有直接影响装置的实时控制的情况下定义了某些用于组织有关装置操作的实时总体管理的辅助报告的SEQUENCE。在这点上,将一个应用程序(一个包含涉及受控装置的控制程序的文档化源代码的用户语言文件)的具体实例转换成系统中实时控制计算机的机器操作代码的编译译码器通过继承所有已定义的SEQUENCE提供了一个完整的属性变量集合,从而大大缩减了当一个SEQUENCE被定义成用于实时管理的通用数据逻辑对象时编程工程师为概括编程所需的数据集合所花费的时间。
所以SEQUENCES允许以一组逻辑对象的形式为过程控制程序的具体实例定义一个逻辑主线,上述逻辑对象组针对以同时或彼此相对独立的方式执行其操作循环的单元操作,单元过程,和统一应用程序定义了处理单元域。SEQUENCE之间往往存在边界,其中需要被过程控制系统控制的装置的动态操作中有缓冲容量或同时循环。虽然在引用单独的数据对象(与索引一系列对象相反)时使用术语SEQUENCE似乎有些不直观,但该术语是在发明人从事制造业的经历中演变出来的,其中最初是涉及具体″单元过程″的处理单元步骤序列(例如,反应堆具有在例子被称为′维护′,′重要仪器自动测试′,′加载第一部件′,′调整温度′,′增加第二部件′,′冷却′,′放电′,和′清除′的处理单元步骤″序列″,其中′清除′处理单元步骤终止在′重要仪器自动测试′处理单元步骤上,除非以执行′维护′处理单元步骤为终止;在这种情况下反应堆″处理单元″被映射成控制程序中的一个SEQUENCE数据逻辑对象,并且SEQUENCE以连续处理单元步骤集合作为其一个属性)。
当实现链接一个对装置进行计算机控制的具体过程控制程序的第一基础步骤时,编程工程师概括出一组SEQUENCE以表示一个受控装置中的处理单元集合(涉及″单元过程″和″单元操作″);并且如前所述,这是某种程度的判断和工艺描述。虽然定义的SEQUENCE具有以串行方式执行的逻辑,但没有必要使控制计算机中涉及SEQUENCE的逻辑执行顺序以和装置中″处理单元″的相对位置明确对齐的节奏推进;然而在这点上编程工程师必须总是考虑到在某个实时时刻定义的数据的影响并且其后立即引用。
系统的控制计算机程序中由控制计算机执行的逻辑至少每实时秒一次完成所有的控制计算机执行的逻辑。在一秒内控制计算机执行的逻辑从受控装置读取所有模拟输入和数字输入以作为测量结果,以串行方式调整各个SEQUENCE中逻辑的执行(即SEQUENCE 1,SEQUENCE2,...,SEQUENCE N),定义所有针对受控装置的模拟输出和数字输出,调整通信,并且准备在下一个实时秒开始时读取所有模拟输入和数字输入。
下列段落针对最优实施例讨论了控制计算机任务。
如美国专利5,583,757号(Baca,Jr.等人)所述,针对控制计算机自身的可选操作模式使用逻辑名称利于使用两个冗余处理器。。在这点上,各个控制计算机的数据库中涉及冗余集合中控制计算机的状态的第二基础逻辑标识符在其数据库中被定义成一个由″任务″表示的操作模式。在最优实施例中任务A(任务Alpha)定义了一个操作模式,在此模式下成员控制计算机中执行控制程序的全部逻辑或逻辑子集正被转移到任务A控制计算机上。
任务B(任务baker)定义了一个操作模式,在该模式下执行控制程序的数字和模拟输出没有产生,但从其它方面看控制计算机实质上正在作为一个完整的成员加入控制过程。
任务C(任务Charlie)定义了一个操作模式,在该模式下成员控制计算机中的动态数据(数值实时改变的数据)正在被转移到任务C控制计算机上。
任务D(任务Dog或″这个Dog″)定义了一个操作模式,在该模式下控制计算机正在作为一个完整的成员和任务F中的控制计算机一起加入控制过程并且正在与任务F中的控制计算机的逻辑循环同步。
任务E(任务Echo或任务Eagle)定义了一个操作模式,在该模式下,如果控制计算机被初始化成独立的系统或者当前状态在任务D但从未进入任务F状态,则控制计算机正在执行不含主动成员控制计算机的控制过程。
任务F(任务Fox或″这个Fox″)定义了一个操作模式,在该模式下控制计算机或者正在作为一个完整的成员和任务FD的控制计算机一起加入控制过程,或者控制计算机已经在任务F的状态下并且当前正在独立执行。
任务6定义了一个操作模式,在该模式下控制计算机正在从一个低速接口获得有关应用程序源代码新实例的新机器操作代码版本。
任务8定义了一个操作模式,在该模式下控制计算机正在从高速接口(HSI)获得有关应用程序源代码新实例的新机器操作代码版本。
任务4(DEBUG任务)定义了一个操作模式,在该模式下控制计算机已经暂停其装置的Hz1,Hz10,和Hz100控制,但是继续运行基础的操作系统,操作系统允许检查控制计算机存储器内部的数据库和程序数值。
任务F计算机的一个″成员″或″邻居″计算机通常多数是任务D或任务B计算机。反之,任务D或任务B计算机的一个″成员″或″邻居″计算机通常多数是任务F计算机。在非常罕见并且通常是不期望的情况下,即在任务F和任务D的伙伴关系因其双向通信″主″链接的损伤而受到破坏时,当前的任务F计算机继续执行任务F并且当前的任务D计算机改变到任务E。
根据在执行控制程序的逻辑中实现的判定可以确定左或右控制计算机的任何任务,也可以通过人机交互将其强制到一个任务上。左和右数据定义通常不在操作中被修改,并且只能通过人机交互来改变;然而应当注意执行控制程序的逻辑实质上立即改变了机器的任务状态,并且在两个左控制计算机或两个右控制计算机试图执行主动冗余操作的情况下执行将控制设备导入故障保护状态的逻辑(一个被用来保证受控装置安全操作的过程)。在执行控制程序的逻辑中还有诊断报警(其中附属逻辑定义了紧急和关机状态标志),当在两个控制计算机中出现其它不可接受的左,右,和任务状态组合时发出报警。总之,在一个主动冗余系统中,执行控制程序的逻辑最好执行一套检查各个控制计算机的状态和控制计算机全体状态的诊断以便(a)保证基本上总是存在涉及安全操作的必要调整,并且(b)在没有涉及安全操作的必要调整时采取即时动作使装置中的风险最小化。
下列段落针对最优实施例讨论了Can,Can母板,和I/O电缆驱动器板。
在最优实施例中,装置(受控)的全部输入信号和输出信号的各个子集通过一个相应的母板连接到各个控制计算机;并且任何具体子集中的输入信号,输出信号和母板经常物理排列在本发明人称之为″Can″的机柜内。在这点上,一个″Can″经常拥有输入板,输出板,母板,相应的电源,和用于处理子集中信号的″左″控制计算机和″右″控制计算机的超越控制开关。涉及一个″Can″实例的数值与″左″控制计算机和″右″控制计算机的数据库中的数值相同,并且在诊断和仲裁状态确定操作中被用来调整″左″控制计算机和″右″控制计算机的数值。在最优实施例中,对于受控装置中与测量和控制设备电子传输的总共400个信号,一个″Can″通常分别为100个模拟输入信号,100个数字输入信号,100个模拟输出信号和100个数字输出信号保留现场接口电路。正如通过认真研究本说明书描述的最优实施例可以理解的,由于″左″控制计算机和″右″控制计算机均具有其自己唯一,独立,和不同的、用于处理通过″Can″被传送到控制计算机和受控装置的100个模拟输入信号,100个数字输入信号,100个模拟输出信号,和100个数字输出信号的板组,所以一个″Can″保留了用于处理总共800个信号的现场接口电路。当从三重冗余远程现场单元接收信号时,仍然认为存在一个虚拟″Can″(表示远程现场单元)并且针对所有通过这种方式管理的信号使一个″Can″数据库的数值与″左″控制计算机和″右″控制计算机的数据库的数值相同。不管是否信号以双重冗余或三重冗余的方式被传送到装置(受控),均以不考虑接口方法的这种差异的方式执行″左″控制计算机和″右″控制计算机之间的仲裁过程;然而必须通过不同的可执行逻辑来解释某些涉及信号的诊断以便在″左″控制计算机和″右″控制计算机的数据库中适当地总体概括出系统的全面状态。在这点上,在单个″Can″的母板上将大部分守护电路排列在被称作″中间板″的板子上。
除了将现场IO板连接到控制计算机的″Can″母板之外,各个控制计算机均具有一个在控制计算机访问的所有″Can″母板和控制计算机之间提供一个接口的I/O电缆驱动器板。这个I/O电缆驱动器板拥有模数和数模转换电路并且与一个在″Can″母板和控制计算机之间提供数据和信号交换的控制总线接口。
请注意,这里对存储器容量的表示使用″K″代表1024个16位字的能力。
图1从现有技术角度对具有安全关机能力的过程控制系统中所需的现有技术关键技术领域提供了综述96。总体上过程控制系统使用一个通用过程控制系统和一个第二附加安全关机计算机系统以便符合针对过程控制系统控制的有用装置带来的风险的安全要求。通用过程控制系统使用一个通用程序编译译码器95根据应用程序89产生机器操作代码;机器操作代码被载入控制计算机92;并且控制计算机92通过I/O电路90接口以便影响监视装置84中的控制。一个第二附加安全关机计算机系统使用一个安全程序编译译码器94根据为安全问题而设置的安全程序716产生机器操作代码;机器操作代码被载入安全控制计算机93;并且安全控制计算机93通过I/O电路91接口以便影响监视装置84中的控制,从而符合针对过程控制系统控制的有用装置带来的风险的安全要求。
图2从统一系统角度对具有基于最优实施例系统的安全关机能力的过程控制系统中所需的关键技术领域提供了综述。应用程序713具有至少一个SIP分段712和至少一个非SIP分段(未示出-一个″非SIP分段″也被表示成一个″通用过程控制分段″,并且根据另一种解释,是应用程序713中未被包含在SIP分段712中的部分)。一个单独的编译译码器85将一个应用程序编译成控制计算机82的机器操作代码。编译译码器85以一个SIP(安全完整性编程)规则集合86作为编译译码器内部的计算机执行逻辑的子集(其中SIP规则集合是编译译码器的一个子集,部分,和/或″片断″,而编译译码器是保证各个控制计算机,各个控制计算机中执行的机器操作代码内的过程和结构,和SIL要求之间的一致和配合的相邻和/或非相邻计算机执行编译译码器逻辑的集合)。在一个实施例中,提供SIP规则集合的具体语句在编译译码器内部是相邻的;在一个可选实施例中,虽然通过把认证机构把当作完全虚拟的部分的方式来设计,管理和检查非相邻实施例中的语句,但提供SIP规则集合的语句仍被编码成非相邻的形式以便检查具体SIL的要求满足认证机构的规定。在相邻或非相邻编码中,SIP规则集合提供计算机实现的逻辑,其中执行上述逻辑以便保证(a)具有(1)针对SIP部分中的编译而定义的数据变量的形式和(2)针对SIP部分中的编译而定义的应用程序语句形式的应用程序逻辑与(b)针对(1)适合于所操作的装置的SIL层次和(2)用于装置控制的控制计算机而定义的SIL专用约束之间的一致性。在一个实施例中,SIP部分712被分成独立的应用程序文件,其中各个文件均具有一个不同于用于应用程序的通用过程控制分段的安全访问代码的特殊SIP安全访问代码。在另一个实施例中,SIP部分712具有一个在编译各个SIP部分时产生的校验和,其中校验和被记录到一个校验和文件中并且还被载入控制计算机存储器以便利于审计。在另一个实施例中,在第一次编译扫描和第二次编译扫描中分别产生校验,其中将第一次扫描校验和与第二次扫描校验和同校验和文件中前面的编译实例保存的校验和相比较,从而验证从第一编译实例到任何后续编译实例的SIP部分代码中的一致性,其中上述任何后续编译实例不包含负责编程工程师通过有关校验和文件中存储的校验和的特别保护实用程序以并发修改方式对SIP部分内容进行任何改变之后的编译实例。如果第一次扫描校验和,第二次扫描校验和与前面的编译实例保存的校验和之间的比较结果表明所有三个校验和不相同,则编译过程不产生被加载到控制计算机中的统一机器操作代码。
如上述,SIP(安全完整性编程)规则集合提供计算机实现的逻辑,其中执行上述逻辑以便保证(a)具有(1)针对SIP部分中的编译而定义的数据变量的形式和(2)针对SIP部分中的编译而定义的应用程序语句形式的应用程序逻辑与(b)针对(1)适合于所操作的装置的SIL层次和(2)用于装置控制的控制计算机而定义的SIL专用约束之间的一致性。在这点上,SIP规则集合解释应用程序的具体实例中的一个功能类型语句,其中函数类型语句被编译成用于SIP部分中各个应用程序语句的SIP的一个SIP变量列表。编译译码器SIP规则集合中的逻辑的一个第二部分接着将一个SIP部分中使用的各个SIP变量与该部分中的编码相比较以保证(a)SIP变量列表中没有其数值被确定不在一个单独SIP部分的范围内的SIP变量;(b)SIP列表中的每个SIP变量均被用于至少一个SIP部分中;并且(c)人事部在语句内部对用于某个SIP部分的非SIP变量的使用所作结论,其中一个基于SIP变量的语句部分使用这些非SIP变量。在实现第三个目标时,提供一个SIP逻辑操作符类型通知编译译码器85已经对某个计算机语句中非SIP变量的使用作出结论,使得SIP规则集合86完全适用于语句的其余部分。两个操作符SIP逻辑操作符类型为SIPAND和SIPOR。在这点上,一个例子语句是结论(SIP)如果<没有SIP变量的子句>SIPAND<有SIP变量的子句>
在上述语句中,由于以和一个完全满足SIP严格要求的子句合并的方式定义SIP结论变量的数值,所以″有SIP变量的子句″替代″没有SIP变量的子句″中的任何结论以保证不违反安全操作要求;通过AND逻辑操作符中的SIP前缀触发向严格SIP形式的转变。
编译译码器中逻辑的一个第三部分在一个SIP部分712中的代码不符合SIP变量,SIP变量列表和SIP部分内的一致性要求的情况下禁止产生机器操作代码。编译译码器85中逻辑的另一个部分定义了一个抽取程序存储器(控制计算机中的一部分通用存储器,其中机器操作代码不随时间推移实时改变)机器操作代码特征的编译译码器签名数据数值;这个签名数据数值被用于针对编译译码器产生的机器操作代码实时验证机器操作代码的完整性。
提供具有一个安全域属性参数的第一处理单元步骤数据对象类型以便用于SIP部分;并且提供具有一个正常操作属性参数集合的第二处理单元步骤数据对象类型以便用于SIP部分的外部。还提供一个被划分优先权的精减关机状态过程控制对象类型以便使用。在这点上,精减关机状态过程控制对象类型是一个识别SEQUENCE中如下所述的情况的对象,即期望对附属装置中的处理单元进行″关机″,但必须以一种精减并且受限的方式,即按照使系统经济损失最小的要求实现系统中的安全和保险操作状态。在管理多层次的关机命令时,提供一个精减关机状态过程控制对象类型,其中优先权属性参数支持五个优先级。
在管理SIP变量,SIP部分,和SIP处理单元步骤时,三个关键技术如下所述1.针对一个SIP分段的各次编译确定一个源代码层次的CRC32,其中通过一个在具体负责人控制下的变更管理系统修改该部分中的源代码。
2.必须在一个SIP部分中明确计算向编译译码器指定和定义成SIP处理单元步骤的所有处理单元步骤(一个SIP处理单元步骤可能不是先被定义到编译译码器并且接着被定义成SIP部分中进行的逻辑计算)。
3.在机器操作代码数据集合中防止一个操作技师人工改变所有的SIP变量。
在一个最优实施例中,影像存储器电路88被加到控制计算机92中以产生一个″新″控制计算机82。在这点上,最优实施例使用两个具有影像存储器电路88的控制计算机以便更加经济地提供在一个具有三个控制计算机的可选实施例中实现的功能;然而应当注意,在三个控制计算机被用来控制装置84并且各个控制计算机具有识别三个计算机中任意一个中出现的存储器故障的诊断系统和方法的情况下使用基于编译译码器85的机器操作代码的好处是不需使用影像存储器部分88(即不受前面的纠错代码存储器的限制)。当控制计算机82不提供一组工作脉冲保证守护87中的RC电路内的电容器与某个阈值数值之间保持距离时,最优实施例使用I/O电路83中的守护87产生故障保护输出;控制计算机执行一个机器操作代码子集产生上述脉冲,上述机器操作代码子集被设计得足够复杂以便只在控制计算机完全符合其设计能力的概率超过一个非常高的概率阈值时才产生相应结果。换言之,机器操作代码子集足够复杂以便以较高的统计置信度或超过某个高统计概率阈值的概率保证控制计算机的各种内部部件,寄存器和分支电路正确并且按照其向认证机构描述的设计操作。
现在参照图3A,有关控制计算机82的最优实施例的模块图如控制计算机10所示。控制计算机10包含一个中央处理器和控制单元(″CPU″)12。根据这里的一个实施例,CPU 12基于Radstone Technology PLC的MIPROC处理器,这是一种哈佛体系结构处理器。然而应当理解,可以有条件地使用其它CPU电路或微处理器,而且本发明的原理不仅限于任何具体的CPU构造或集成。还应当理解,在可以通过ASIC(专用集成电路)技术(并且被认证代理认可为接受认证的实施例)在某个实施例中实现的适当应用中,计算机10中的所有电路均可以被集成到一个单独的微型计算机芯片中。
根据哈佛体系结构结构,计算机10包含数据和数据影像存储器14,程序和程序影像存储器16,和一个适用于所有这些存储器的分离总线结构。计算机10也包含Q&C存储器和Q&C影像存储器36,上述存储器从程序和程序影像存储器16接收诸如Q-操作(GLOP)和C-操作(C_OP)信号的控制信号。在这点上,数据存储器和数据影像存储器14中的64K(和64K影像)通过与这个存储器的非影像部分连接的数据总线18(″B″总线)和数据存储器地址总线20传送数据。64K(和64K影像)程序存储器和程序影像存储器16通过与这个存储器的非影像部分连接的程序存储器数据22(″PM总线″)和程序存储器地址总线24(″PC总线″)传送数据。320K(和320K影像)Q&C存储器和Q&C影像存储器36通过与这个存储器的非影像部分连接的数据总线18(″B″总线)传送数据。在最优实施例中,程序和程序影像存储器16的64K程序存储器被表示成4组存储器前16K程序存储器ROM被表示成″Lo P ROM″;后16K程序存储器ROM被表示成″Hi P ROM″;前16K程序存储器RAM被表示成″LoP RAM″;剩余16K程序存储器RAM被表示成″Hi P RAM″。
计算机10也包含一个索引中断电路26,该电路允许CPU 12通过数据总线18访问数据。更具体地说,索引中断电路26提供一个根据8个地址模式中的一个导出的16-位地址。通过要执行的指令选择寻址模式。I/O电缆驱动器板601通过数据总线18使CPU 12与附加″Can″接口,并且拥有A/D转换器607tkg D/A转换器605。看门狗电路603被双向内连到数据总线18并且被单向(接收)连接到控制计算机10的存储器以便从存储器比较操作(如下所述)接收输入。索引中断电路26也被链接到优先权中断总线30。看门狗电路603向CPU 12提供一个连接CLK HLT以便在(a)从索引中断26输出一个预定事件并且CPU 12没有通过数据总线18及时接收或(b)在从存储器检测到一个比较差错信号1230,1072,938的情况下暂停控制计算机10中机器操作代码的实时执行。在任务C操作中,CPU 12初始化看门狗603的操作。应当注意,虽然分别示出了差错比较线路938,1072和1239,但在连接到看门狗603之前在可选实施例中可以并联这些线路中的任何两个或所有线路。在在初始化时,CPU 12向存储器16,36和14发送测试模式以便强制一个差错条件并且校验涉及线路1230,1072和938的操作。在任务B,D,E和F中,监视线路1230,1072,和938以确定一个存储器比较差错。一个通过线路938发送的差错提示即时发送CLK HLT连接信号以暂停CPU 12;一个通过线路1230或1072发出的差错当成员控制计算机在任务D,E或F中以可接受的方式操作时发出CLK HLT并且成员控制计算机看门狗603允许发出CLK HLT信号。看门狗603寻找数据总线18上里程碑数值以保证图19的程序2500正按照其预定的方法和里程碑之间的一个预定实时增量执行。还监视涉及Hz10与Hz100操作的开始和停止选通脉冲的初始到达。当识别出涉及里程碑到达,Hz10开始/停止选通脉冲到达和Hz100开始/停止选通脉冲到达的不可接受的操作时按照针对线路1230和1072讨论的方式实现条件关机。与前面对应的是,一个双机系统中的看门狗603电路具有一个进行固定位置状态通信的独立通信链接。
虽然计算机10使用16位总线结构,但应当理解其它适当总线宽度也可以有条件地被用于适当的应用。类似地,也可以有条件地改变数据和数据影像存储器14,Q&C存储器和Q&C影像存储器36,以及程序和程序影像存储器16的存储容量。如下所述,程序和程序影像存储器16可以使用随机访问存储器(″RAM″),电可编程只读存储器(″EPROM″),或二者的组合存储程序指令和操作系统。例如,EPROM被用来存储操作系统和不太可能改变的子程序,而RAM被用来存储更容易更新的子程序。程序和程序影像存储器16也可以在适当应用中使用其它诸如EEPROM和闪速存储器的适当存储器电路。
如图3A所示,计算机10也包含一个控制总线28,一个优先权中断总线30,和一个可编程接口34。可编程接口34为可编程端口632提供用于输入和输出操作的端口632。换言之,可编程接口34被用来从各种传感器接收代表模拟和数字数值的输入信号,并且被用来发送一或多个控制设备的输出信号。另外,可编程接口被用来接收和发送通信信号。然而在最优实施例中通过控制总线28(图4中示出的链接324a,b和网络控制器328a,b以类似的方式与I/O电缆驱动器板601的链接和网络控制器接口)处理多数I/O。
图3B将图3A的模块图扩展成在针对一个控制计算机的输入和输出信号″Can″的位置上包含电路部件668。从图3A中提出I/O电缆驱动器板601以便进一步说明通过带状电缆680到如母板(1)681和母板(N)682所示的一组母板的连接。母板1具有Can地址守护电路691和中间板689,其中中间板689上排列有一个被表示成DO守护电路688的守护电路。母板N也具有Can地址守护电路683和中间板684,其中中间板684上排列有一个被表示成DO守护电路685的守护电路。这里DO守护电路统一表示″SIL中间板数字输出守护电路″。各个Can地址守护电路683,691上的一个RC电路被连接到一个活动脉冲接收器以便在作为控制计算机的第一脉冲的寻址输入不能使RC电路中的电容器与一个阈值数值之间保持(相差)一定距离的情况下暂停从其Can向受控装置提供输出。DO守护电路688,685实现一个守护以便在控制计算机的一个输出命令表明控制计算机10的非标准操作的情况下停止Can的所有数字输出(DO);在这点上,DO守护电路具有一个被连接到某个活动脉冲接收器的RC电路,使得在控制计算机的一组在线第二脉冲不能使RC电路中的电容器低于一个阈值数值的情况下产生一个DO守护输出1915(即,守护″触发″)以暂停从其Can向装置84提供数字输出信号(通过开关687,690),其中控制计算机通过执行一个机器操作代码子集来产生第二脉冲,其中上述机器操作代码子集被设计得足够复杂以便仅在控制计算机完全符合设计能力的概率超过一个非常高的概率阈值时才产生第二脉冲。也可以实现AO守护连接1913a,b以便根据需要停止向装置84控制元件提供模拟输出信号(通过开关695,697)。
参照图4描述了在冗余控制计算机系统中使用控制计算机10的情况,其中提供了主动冗余控制计算机系统310的一个模块图。系统310包含一对主动冗余控制计算机10a和10b,上述控制计算机最好均与控制计算机10相同。各个控制计算机10a,b从一或多个诸如远程现场单元314a-314b的远程现场单元接收公共输入数据。如光纤316a-316d的使用情况所示,这些远程现场单元远离主动冗余控制计算机10a,b(注意图4中表示光纤链接的交叉影线的用法)。在这点上,美国专利5,428,769号(69Giaser等人,如前所述)详细描述了诸如控制计算机10a,b的一对主动冗余控制计算机与输入/输出设备之间的通信和控制链接,其中上述输入/输出设备与装置84直接相连,并且通过由一个现场计算机单元314(诸如流速传感器318和温度传感器320)处理的信号控制装置84。可选地,本地现场仪器被用来更加直接地将控制计算机10a,b与输入传感器和控制设备连接起来;在这种情况下与现场计算机单元314的使用方式不同的是以双重不是三重冗余模式来处理信号。在双重冗余的情况下,按照后面描述的方式在两个控制计算机10a,b之间仲裁输入信号(通过I44a,44b),并且输出信号(通过O 45a,45b)同时出现在一个连接到某个控制设备的线路上,其中使用一个运算放大器在两个电压施加到相同导线的情况下保持输出电路的稳定性。
虽然与单决策控制计算机相比两个主动工作控制计算机10a,b的冗余方式具有某些容错优点,但应当理解本发明的原理不仅限于由两个主动冗余控制计算机组成的结构。因而可以期望在适当的环境下在图4中出现两个控制计算机10a,b的地方使用三个控制计算机。
在本实施例中,控制计算机10a,b最好并行处理一部分向一或多个远程现场单元来回发送的信号和另一(第二)部分通过直接链接(即不通过远程现场单元314)向两个控制计算机来回发送的信号。各个控制计算机10a,b根据通过这两个方案从现场接收的数据独立作出决策。在使用一部分输出信号的情况下控制计算机10a,b作出的决策确定了最终被适当远程现场单元导向具体输出设备(例如阀门,泵马达和反应堆加热器)的输出信号数值;在使用第二部分输出信号的情况下控制计算机10a,b作出的决策确定了最终被导向具体输出设备(例如阀门泵马达和反应堆加热器)的输出信号数值。在这点上,图4中示出了泵322以便图解一种由系统310控制的输出设备。
虽然输出信号数值可以在两个主动冗余控制计算机10a,b达成一致,但应当理解也可以将两套独立的输出信号数值传送到远程现场单元314a-314b。在这点上,可以仲裁从一个远程现场单元314接收输入数值,在这种情况下应当不必统一或仲裁输出数值。这是由于两个控制计算机10a,b会利用相同的过程控制程序工作并且在相同的仲裁输入数值集合上操作。
为利于输入信号仲裁或协商过程,在控制计算机10a,b之间提供一个并行通信链接324。并行通信链接324被称作″主″链接,理由是该链接允许在控制计算机之间直接传送数据和定时信号。还应当注意,左控制计算机10a被标记成″Dog″,而右控制计算机10b被标签成″Fox″。这些关于控制计算机10a,b的可选操作模式的逻辑名称如前所述。因此图4示出了被包含在控制计算机10a中或与其相连的链接电路324a,以及被包含在控制计算机10b中的链接电路324b。由于这些链接电路最好在构造上相同,所以链接电路324a-324b在这里被统称为链接电路324。这里使用相同的命名方法统一引用主动冗余过程控制系统310中的其它最好是相同的部件。在控制计算机10a,b暂时不能通过主链接324通信的情况下,所有这些控制计算机继续其在某个模式下的操作,其中假定它们是单独工作的。
虽然各个控制计算机10a,b作出独立的决策,但任务F中的控制计算机在其过程控制程序循环(例如一个单秒周期)开始时向任务D中的控制计算机发送一个定时信号,从而提示任务D中的控制计算机也开始一个新的过程控制程序循环。由于控制计算机10a,b在其自己的时钟振荡器下工作,所以由任务D中的控制计算机对这个程序循环定时信号进行的检测和解释周期性地使控制计算机保持相对同步。然而应当理解,任务D中的控制计算机的程序循环通常比任务F中的控制计算机的程序循环滞后一个时间段,在该时间段中任务D中的控制计算机发送并且接着检测程序循环定时信号(例如20微秒到1-2毫秒)。
如前所述,中央处理单元12最好基于哈佛体系结构,理由是这种体系结构允许在相同时钟周期内获取一个操作码指令和这个指令的操作数数据。这是由于基于哈佛体系结构的控制计算机包含物理上分离的指令和数据存储,并且所有这些存储具有其自己的地址和连接到中央处理单元的数据线。相反,对于基于冯诺依曼体系结构的控制计算机,通常用若干个计算机时钟循环来获取,解码和执行一个指令。
各个控制计算机10a,b包含一个网络控制器328a-328b以利于和远程现场单元314a-314b通信。各个网络控制器328a-328b通过光纤332,334依次连接到一或多个中断电路330。中断电路330从远程现场单元314a-314b向网络控制器328传送输入信号。类似地,中断电路330从网络控制器328向适当的远程现场单元314a-314b传送输出信号。在具有许多远程现场单元314的大型过程控制系统310的情况下,应当注意若干个中断电路330被串联起来以构成一个围绕网络控制器328的通信环。另外,一个第二层次的中断电路330也可以被连接到构成通信环的中断电路以便在控制计算机10a,b和系统310中需要的各个远程现场单元314之间进行双向信号通信。而且,还应当注意网络控制器328最好能够使用光纤332,334在通信环层次上与中断电路330进行双向通信。
如图4所示,中断电路330a最好被连接到远程现场单元314a的左控制计算机电路336a和远程现场单元314b的左控制计算机电路336b。类似地,中断电路330b最好被连接到远程现场单元314a的右控制计算机电路340a和远程现场单元314b的右控制计算机电路340b。通过这种方式,左控制计算机314a从远程现场单元314中的所有左控制计算机电路336接收输入信号,右控制计算机314b从远程现场单元中的所有右控制计算机电路340接收输入信号。因此应当理解在控制计算机10a,b和远程现场单元314之间提供两个独立的基于光纤的通信网络,即使各个控制计算机被连接到各个远程现场单元也是如此。
虽然远程现场单元314的中间控制计算机电路338a-338b不与任何控制计算机10a,b直接通信,但中间控制计算机电路338却与其相应的远程现场单元中的左和右控制计算机电路直接通信。另外,在使用三个控制计算机10的情况下,应当理解中间控制计算机电路338可以直接与这个第三控制计算机通信。如图4所示,中间控制计算机电路338接收左和右控制计算机电路从诸如流速传感器318和温度传感器320的各种传感器收到的所有对应输入信号。类似地,中间控制计算机电路还被连接到各个诸如泵322的输出设备,其中左和右控制计算机电路被连接到上述输出设备。
通过一或多个诸如输入电路342a的输入电路和一或多个诸如输出电路343a的输出电路建立这些输入和输出连接。在这点上,各个左,右和中间控制计算机电路包含对应的输入和输出电路。通过这种方式,远程现场单元314中的各个左,右和中间控制计算机电路能够执行初始输入信号仲裁和最终输出仲裁。例如,由诸如输入电路342a的各个对应输入电路处理来自流速传感器318的输入信号。接着,左,右和中间控制计算机电路依次通过串行通信线路交换对应的流速输入信号。各个左,右和中间控制计算机电路接着对流速输入信号的值作出独立的判定。最终,左控制计算机电路336a向左控制计算机10a发送其流速数值,同时右控制计算机电路340a向右控制计算机10b发送其流速数值。
虽然左和右控制计算机电路最好执行一个初始仲裁过程,但应当理解这些控制计算机电路可能产生不同的结果。这种差异的起因可以是对应输入电路的操作或远程现场单元314中的控制计算机电路暂时不能彼此通信。另外,在远程现场单元314包含的一个或多个控制计算机电路的操作中也可以出现故障。虽然各个左,右和中间控制计算机电路最好从各个输入传感器接收数据,但也可以为所有这些控制计算机电路提供独立但对应的传感器以测量任何指定的输入参数。在这种情况下,传感器自己可以产生不同的输入数值,即使它们被用来观测相同的物理现象。因此应当理解左控制计算机10a和右控制计算机10b可以接收对应输入信号的不同数值,例如对应流速信号的数值。
虽然控制计算机10a,b可以从一或多个远程现场单元314接收所有其输入信号,但它们也可以从直接连接的输入电路板接收输入信号以作为远程现场单元314的候选或对从远程现场单元接收的输入信号的补充。因而所示的控制计算机10a包含一个输入电路板44a和一个输出电路板45a。远程现场单元314a中的输入电路板342a被用来接收模拟输入信号,而输入电路板44a被用来接收数字输入信号。然而应当理解远程现场单元314a-314b和控制计算机10a,b均被提供了模拟和数字输入电路板以及模拟和数字输出电路板。
各个控制计算机10a,b也可以包含IFS电路46以便通过高速接口(一个HSI)与智能前端通信系统48通信。前端通信系统48在控制计算机10a,b和一个厂域或局域网50之间提供一个智能接口。换言之,前端通信系统48提供了一个从控制计算机10a,b向一或多个诸如操作员工作站52的网络实体快速传送输入和/或输出数据的方式。类似地,前端通信系统48允许操作员向一个或所有控制计算机10a,b发送命令信号。
前端通信系统48包含IFS电路46a-46b,IFQ电路54,和前端计算机56。IFS电路46为控制计算机10中包含的双端口数据存储器的″秘密″端口(秘密端口)提供一个接口,而IFQ电路54为前端计算机56的Q-总线提供一个接口。在一个实施例中,前端计算机56最好是使用数字设备公司的实时ELN操作系统的MICROVAX 3400计算机。前端通信系统48也在IFS电路46a-46b和IFQ电路54之间提供光纤通信链接。在这点上,至少一个光纤58a允许从IFS电路46a向IFQ电路54传送信号,而另一个光纤60a允许从IFQ电路向这个IFS电路传送信号。还应当注意,通过包含一个附加IFQ电路54和前端计算机56组合在前端通信系统48中提供冗余。在1996年5月21日提交,标题为″能够使对应数据集合时间对齐的智能过程控制通信系统和方法″的美国专利5,519,603号(Allbery,Jr.等人);1995年6月27日提交,标题为″当通信时间段超时之前使用新随机数在第一和第二计算机之间重新建立限时通信的安全通信系统″的美国专利5,428,745号(45de Bruijn等人);和1996年10月1日提交,标题为″通过检查与命令中标识的变量相关的使能指示符的状态确定是否向控制计算机发送命令的系统和方法″的美国专利5,561,770号(70de Bruijn等人)中可以发现有关前端通信系统48的进一步描述。前面在本申请中为了说明本发明的使用方式已经对这些专利有所表述;在本说明书中它们描述的系统被表示成高速接口(或HSI)。
参照图5,其中示出了链接电路324的模块图。链接电路324被连接到一端的控制计算机10的数据总线18和控制总线28,而链接电路被连接到另一端的带状连接器64。这里应当注意,为了在控制计算机之间的主链接324内建立冗余,可以在各个控制计算机10a,b上提供两个相同的链接电路324。
链接电路324包含被标记为″双向缓冲区″的图符66,其中双向缓冲区被连接到控制计算机10的数据总线18。在一个实施例中,双向缓冲区66包括两个8位缓冲区,这些缓冲区能够在数据总线18上接收和发送数据。链接电路324也包含控制电路70,该电路被连接到控制计算机10的控制线28。在这点上,控制电路70包括一个可编程阵列逻辑″PAL″电路。为了有选择地访问链接电路324包含的一个或多个其它电路,控制电路70被用来解码控制线28上发送的信号。例如,当将在数据总线18上发送或接收数据时,控制电路70向双向缓冲区66发送一个使能信号和一个输入/输出信号。
链接电路324也包含一组输出缓冲区74和一组输入缓冲区76。输出缓冲区74包括三个八位组锁存器,而输入缓冲区包括三个八位组三态缓冲区。输出缓冲区74中的两个锁存器被用来向带状连接器64提供一组16位输出数据线,而剩余锁存器被用来向带状连接器一组8位代码线。类似地,输出缓冲区76中的两个缓冲区被用来从带状连接器64提供一组16位输入数据线,而剩余缓冲区被用来从带状连接器提供一组8位代码线。链接电路324也可以包含一个回送电路78,该电路在输入数据/代码线80和输出数据/代码线782之间互连。回送电路提供一个测试链接电路324的功能的路径。回送电路78包括三个八位组三态缓冲区。
虽然回送电路324也可以包含一个向控制计算机10的中央处理单元12发送中断信号的附加线路,但不需要在主链接324上使用中断信号。在这点上,各个控制计算机10a,b包含一个精确恒温振荡器以作为若干不同时域的精确时钟频率信号源。例如,振荡器被用来递增一个12位加法计数器,上述加法计数器提供一个实时时钟″RTC″。当RTC超时时,产生一个中断信号以建立一个Hz1200时域(即每0.83毫秒一个中断)。还提供一个Hz1200程序将RTC调整到需要的指令循环数量以便产生下一个Hz1200中断。更具体地说,一个被称作INTCYC的计数器的值被加到RTC计数器的当前值上以便调整中断延迟。接头,Hz1200程序测试一个被称作CC300的计数器的值以确定执行一个Hz300中断程序的时间是否已到。
为了在Hz300时域中提供相位锁定,从一个精确的晶振产生一个60Hz方波信号。通过读取一个提供60Hz相位锁定的电压比较器来检测跃迁。由于应当在每第5个Hz300中断时检测一次60Hz跃迁,所以建立一个被称作CYCLE的计数器对Hz300中断循环进行计数。一个被称作LAST的存储器位置被用来保存最近一次HZ300中断中比较器进行的60Hz检测的位值。每当检测到一次从低到高的60Hz跃迁时,执行下列测试。如果在CYCLE为4时检测到60Hz跃迁,由于进行了一次早期检测,INTCYC的值加1。如果在CYCLE为5时检测到60Hz跃迁,则理想条件成立并且不执行时钟信号校正。如果在CYCLE为6时检测到60Hz跃迁,由于发生了一次后期检测,INTCYC的值减1。在这三个条件的任何一个条件均被满足之后,CYCLE被清零。如果在CYCLE为任何其他数值时检测到一个60Hz跃迁或没有检测到上述跃迁,则进行相位锁定直到上述测试连续检测到两个理想条件。
然而应当注意,在任务D中的控制计算机10内不执行60Hz相位锁定。而是将一个固定数值用于INTCYC计数器。另外,通过在一个被称作PHZ的位为低时切换PHZ在Fox和Dog控制计算机10a,b中产生一个伪Hz150时域,或者在Hz150的情况下两个控制计算机10a,b切换主链接324代码线的一个SSTART线路。Dog控制计算机(例如,控制计算机10a)立即读取SSTART线路,并且Dog控制计算机将相位校正在Hz150上以便锁定到Fox控制计算机(例如控制计算机10b)的频率上。通过使RTC计数器中的当前数值+/-64来实现这个相位校正。根据Dog是滞后还是领先Fox,每隔Hz150便在正或负方向上进行这种快速调整。
当一个控制计算机第一启动时,它最好开始任务D,并且通过监视主链接324代码线上的一个FBOS(Fox第二启动)位来等待一个第二启动″BOS″信号。在两个控制计算机10a,b进行一次第二启动(即一个新的Hz1循环实例)时切换这个位。一旦检测到FBOS信号,Dog控制计算机便开始运行其正常的第二过程控制时序以便与Fox控制计算机同步。如果没有检测到Fox控制计算机,则在一个适当的时间段(例如5秒)之后,Dog控制计算机增加一个操作(E)任务,其中假定其是当前唯一工作的控制计算机。
参照图6,其中示出了有关在Hz1时域中执行的程序任务的顺序的流程图。在这点上应当注意,这个流程图没有描述Hz1时域中的所有可能执行的任务(例如驱动数据显示)。这个流程图只是被用来提供一个对被编程到控制计算机10中的任务序列的综述;后面结合图19和20讨论了更加详细的41步骤过程。在一个单Hz1循环实例开始时,各个控制计算机10通过网络控制器328与远程现场单元314进行双向通信(步骤500)。更具体地说,控制计算机向远程现场单元314发送适当的输出信号,其中在最近的Hzi循环实例中(即前一个秒内)确定了上述输出信号。接着,控制计算机请求远程现场单元314为当前Hz1循环实例发送其仲裁输入信号。
如步骤502所示,串行通信板(未示出)在光纤串行通信链路35(如图4所示)上彼此进行通信。使用另一个串行通信链路(未示出)以类似于网络控制器328a,b的方式向其它控制计算机传送过程状态数据;但串行通信链路具有其自身特定的电路和特定于其具体通信任务的固件。虽然这个数据通常被当作计算出的数值同等对待,但应当注意这个数据也可以被看作是另一种形式的、需要按下述方式解析的输入数据。
接着,控制计算机10从任意输入被直接连接到控制计算机的输入电路读取输入信号(步骤504)。AIF和DIF信号表示从现场仪器接收的输入信号数值。AOT和DOT信号表示被用来校验发送到在物理上控制装置84的输出设备(例如泵,阀门和开关)的输出信号的反馈信号。不管输入信号的来源如何,还应当注意输入信号通常包括一组模拟输入″AIP″信号,一组数字输入″DIP″信号,一组模拟输出跟踪″AOT″信号,和一组数字输出跟踪″DOT″信号。
假定控制计算机10具有一或多个与其相连的输入/输出″I/O″电路板(例如输入电路44a),则执行一个测试以确定控制计算机是否能够与这些I/O电路正常地通信(步骤506)。接着,接收的输入信号经过诸如线性化和定标的编程处理步骤的处理(步骤508)。接着控制计算机10准备适当的输入信号完好报告(步骤510)。在这点上,报告各种问题位。
控制计算机10接着通过主链接324交换经过处理的现场输入信号,并且仲裁/解析交换的信号(步骤512)。后面结合图7A-8B的流程图描述了这个主链接324上的信号交换方法。接着如美国专利5,583,757号(baca,jr.等人)和本说明书图15,16,17,和18所述的方式进行仲裁。
一旦执行完所有这些过程,当一个具体控制计算机内存在任务E时有条件地执行Al/DI COPY步骤514以处理两个控制计算机10a,b均不在主动冗余模式下运行的情况。控制计算机10接着运行已编程的SEQUENCE,上述SEQUENCE根据经过交换,仲裁/解析的输入数值确定必要的输出数值(步骤516)。最终,如步骤518所示,控制计算机10发送任何直接连接到控制计算机的I/O电路所需的模拟和数字输出″AO″和″DO″信号。这里,控制计算机可以执行任何不要求在Hz1循环实例(例如一秒)内执行或完成的剩余Hz1任务。例如,在Hz1循环实例的剩余时间内当向其它控制计算机发出请求时可以从控制计算机10a,b中的一个控制计算机转移一个过程控制程序以实现程序加载。接着如返回线路520所示,控制计算机返回到初始位置以等待下一个Hz1循环实例的开始。
参照图7和8,示出了一组流程图122,124以图解主动冗余控制计算机10a,b所进行的如步骤126-166所述的对应输入信号互换。图7示出了当前在任务D中的控制计算机(例如控制计算机10a)使用的主链接方法122。类似地,图8示出了当前在任务F中的控制计算机(例如控制计算机10b)使用的主链接方法124。因此,图7和8示出了在时间和操作上有相互关系的方法。
Dog控制计算机10a通过在链接电路324的输出数据/代码线782的数据线上发送一个链接任务编号来开始主链接324交换(步骤126)。在一个实施例中,任务编号被用来表示一组要交换的数据字的初始地址。通过这种方式,利用由一个数据列表中应当互换的对应存储器地址位置构成的链接列表对各个控制计算机10a,b进行编程。
接着,Dog控制计算机10a在其输出数据/代码线782内的″发送″代码线上设置一个起始位以便使Fox控制计算机10b知道Dog控制计算机10a已经就绪(步骤128)。如上所述,由于控制计算机10a,b之间存在密切的定时关系,Fox控制计算机10b知道开始寻找来自Dog控制计算机10a的链接任务编号和起始位的时间(判定动作130)。一旦接收到这个起始位,Fox控制计算机便设置其起始位(步骤132)。Dog控制计算机10a寻找Fox的起始位(判定动作134),并且通过清除其起始位并且等待Fox的起始位被清除来作出响应(步骤136);如果Fox的起始位没有清除,则停止该模块的执行直到超时提示Hz1循环继续。
其间,由于主链接方法的定时关系得到严格约束,Fox控制计算机10b向控制计算机10a发送其链接任务编号(步骤138)并且清除其起始位(步骤140)。一旦完成这两个步骤,Fox控制计算机10b开始向Dog控制计算机10a发送第一块数据(步骤142)。在一个实施例中,这批数据包括多达10个16位数据字,一个表示这10个数据字有效的″良好″状态字,和一个针对这批发送数据的校验和。
Dog控制计算机10a检测Fox起始位的清除并且立即开始接收Fox的上述链接任务编号和成批数据(步骤144)。Dog控制计算机10a接着为其自身计算从Fox控制计算机10b接收的数据的校验和(步骤146)。其后,Dog控制计算机10a立即向Fox控制计算机10b发送其成批数据(图7中示出的步骤148)。这批数据包含多达10个16位数据字,关于这批数据的有效性的″良好″状态字,一个关于这批Dog数据的校验和,和Dog计算出的关于Fox的那批数据的校验和。
Fox控制计算机10b接收Dog的成批数据(步骤150),并且为其自身计算接收数据的校验和(步骤152)。Fox控制计算机10b接着向Dog控制计算机10a发送这个计算出的校验和(步骤164)。在Dog控制计算机10a发送其成批数据之后,Dog控制计算机接着等待一段预置的时间以便接收Fox计算出的关于Dog的成批数据的校验和(步骤156)。在这点上应当注意,这个时间段和主链接方法中的其它适当等待时间均与其完成这些步骤所需的中央处理单元指令的数量有关。
接着,如图7和8所示,两个控制计算机10a,b对得到的交换数据进行一系列比较(步骤158-160)。这些比较包含(a)链接任务编号比较,(b)随Fox的成批数据发送的校验和与Dog计算的有关这批数据的校验和之间的比较,和(c)随Dog的成批数据发送的校验和与Fox计算的有关这批数据的校验和之间的比较。假定所有这些比较均匹配,则确定互换成功(判定动作162),并且Dog控制计算机10a开始与下一个链接任务编号进行另一个主链接324交换(步骤164)。如果确定交换不成功,则Dog控制计算机开始与不成功交换中使用的相同链接任务编号进行另一个主链接324交换(步骤166)。通过这种方式,Dog控制计算机10a试图重复相同的主链接324交换直到成功,试图失败达到预定数量,或分配给主链接324交换的时间段超时这三种情况中的任意一种情况首先出现。Fox控制计算机10b使用类似的过程。
通过前面的描述应当理解,可能出现Dog控制计算机10a确定链接成功但Fox控制计算机10b确定链接不成功的情况。在这种情况下,Dog发送下一个链接任务编号,而Fox发送最近的链接任务编号。考虑到执行主链接324交换的速度,最好在交换数据之后执行链接任务编号之间的比较。因此,Dog控制计算机10a不检测Fox是否通过前面的交换发送一批数据,直到其发送了下一个批数据。对于链接任务编号的错误匹配,Dog控制计算机10a可以重复与前面的链接任务编号的主链接交换以便Fox控制计算机10b有机会成功接收这批数据。否则,错误匹配在这个具体Hz1循环实例的其余部分中继续存在。
正如在针对图3A的讨论中注意到的,程序和程序影像存储器16,数据和数据影像存储器14,和Q&C存储器和Q&C影像存储器36均为计算机10提供存储器。
主动冗余控制计算机系统310中的各个计算机10使用多个分离物理存储器在各个控制计算机10中建立一个主存储器和一个必需的影像存储器。由于16位地址利于连续处理并且可以针对机器操作代码实时动态变更的性质自然地划分机器操作代码域,使用多个存储器在冗余控制计算机系统310的操作效率和安全性方面也有好处。在控制计算机10的最优实施例中,图9A,9B,10,11A,11B,和12的电路899,999,1099,和1199提供了图2的影像存储器区域88的一个实际功能部分。
现在描述这些存储器部件和子系统的构造和协同操作方面的详细内容。在察看图9A,9B,10,11A,11B,和12的细节时,除非没有注意,一个″通信链接″图符通常由16个并行的物理线路构成,其中每个线路传导一个代表如图3A所示的0(FALSE)数据逻辑数值或1(TRUE)数据逻辑数值的电压。
图9A,9B,和10详细示出了程序和程序影像存储器16(图3A)。在图9A和9B(程序存储器RAM和ROM电路899)中,ROM地址缓冲区902,影像ROM地址缓冲区904,影像RAM总线复用器806,和RAM总线复用器804被连接到PC总线24。通过RAM总线复用器804和影像RAM地址缓冲区806,这两个元件通过通信链接824,822链接起来以分别作为程序RAM 801和影像程序RAM 802的输入。注意RAM影像总线复用器806反置其针对通信链接822的输出。程序存储器RAM 801通过通信链接826被连接到总线复用器922和收发器845。对程序存储器ROM使用类似的连接方案,其中以类似方式互连ROM地址缓冲区902,影像ROM地址缓冲区904,程序存储器ROM 906,程序存储器影像ROM910,通信链接940和(反转)829。程序存储器ROM 906也通过只读链接921被连接到总线复用器922;程序存储器影像ROM 910通过只读链接914连接到总线复用器926,并且影像程序RAM 802通过链接828连接到总线复用器926和缓冲区812。总线复用器922链接到PM总线22(图3A);总线复用器926通过链接954输出到图10所示的比较器电路,并且收发器845输出到数据总线18(图3A),而数据总线18具有一个到缓冲区812的反转连接。控制PLD 847和影像控制PLD 849通过如链接819,827,825,823,833,835,837,831,839,和841所示的控制线控制程序和程序影像存储器16中的许多操作。注意数据总线18的一个写操作被写到程序存储器RAM 801和影像程序RAM 802,其中通过缓冲区812使针对影像程序RAM 802的写信号和地址信号产生数据逻辑反转。
现在参照图10讨论比较器电路999。比较器电路999被复制成三个物理实例以便计算机10用于(a)程序和程序影像存储器16,(b)数据和数据影像存储器14,和(c)Q&C存储器和Q&C影像存储器36。换言之程序和程序影像存储器16具有一个基于比较器999的比较器电路,数据和数据影像存储器14具有一个基于比较器999的比较器电路,而Q&C存储器和Q&C影像存储器36具有一个基于比较器999的比较器电路。被表示成主数据线22,1034,1124和影像数据线954,1036,1122、从三个存储器系统中的每一个到其三个独立和分离比较器999实例的输入示出了针对与图9A,9B,11A,11B和12的比较器999相同的电路的物理分离实例(参见图21A和21B的比较器元件946,1074和1210)的链接。比较器寄存器908和比较器寄存器924均通过数据总线18(图3A)接收一个测试模式,当从解码器923激活运行/测试线路952时,该测试模式被用于确认比较器925,运行/测试多路复用电路928,和测试多路复用电路930的可靠性。比较器寄存器908使用通信链接918与测试多路复用电路928接口,而比较器寄存器924使用通信链接940与测试多路复用电路930接口。测试多路复用电路930通过通信链接936输出到比较器925,而测试多路复用电路928通过通信链接934输出到比较器925。比较器和差错位锁存器927接着通过对应于特定比较器的比较差错线路(图3A中任何物理上不同的线路938,1072和1230)向看门狗603输出一个信号,其中看门狗当在(a)读取程序和程序影像存储器16,(b)读取数据和数据影像存储器14,或(c)读取Q&C存储器和Q&C影像存储器36之间出现数据错误匹配时暂停控制计算机10的实时执行。通过来自COMPAR EN线路843,1039,1121的可编程逻辑设备输入使能一个最优实施例中的电路。
在这点上,SIL3安全关机系统认证过程中的若干要求需要检测缓冲输出阻塞,解码器故障,多路复用电路误选,和导致存储器访问差错的类似故障。CPU 12不能单独执行这些任务;然而通过使用CPU 12和图9A,9B,和10的电路针对程序和程序影像存储器16实现影像存储器功能和附属判定以便(a)保证一个系统的操作可适当预测,(b)提供硬件检测程序存储器RAM和ROM读取故障,(c)提供测试差错检查硬件的方法,(d)向看门狗603发送一个差错信号938指示一个差错已经发生,(e)当在暂停CPU 12之后重新启动时允许从CPU 12发出一个命令清除电路中的锁存差错标志,和(f)当发生存储器访问差错时锁存一个LED指示符″ON″。如图所示通过分别合并(a)图10电路与图11A和11B电路和(b)图10电路与图12电路,可以针对数据和数据影像存储器14和Q&C存储器和Q&C影像存储器36分别实现等价功能。
结合控制计算机10中执行的逻辑(机器操作代码)也可以使用程序和程序影像存储器16得到通过SIL认证的系统。下面段落讨论了某些允许的技术。
以下面方式检测地址线阻塞状况。程序存储器ROM 906在影像程序存储器ROM 910中具有一个反转复制复本。当发生地址线路阻塞时,由于从不同地址位置读取数据并且对应于相同输入地址的数据实例在发生线路阻塞之后可能立即改变,所以不将程序存储器ROM 906的输出与影像程序存储器ROM 910进行比较。
当在发生ROM读取差错的情况下设置一个差错信号时,控制计算机10底板的地址线路被缓冲,反转并且连接到影像程序存储器ROM910(对影像程序存储器ROM 910编程使其数据被反转);影像程序存储器ROM 910输出被发送到比较器逻辑,主ROM缓冲区输出被发送到比较器,PLD 847发出比较使能843,并且在检测到比较差错的情况下发出差错信号938。
当在选择了错误的地址总线的情况下设置一个差错信号时,检查在选择PC总线24或数据存储器地址总线20时发生的错误地址总线选择。程序存储器电路899包含程序存储器RAM 801的一个复制复本(影像程序存储器RAM 802)。当发生一个错误地址总线选择时,通常不将程序存储器RAM 801的输出与程序存储器影像RAM 902输出进行比较。
在检测PLD 847解码故障时,来自控制PLD 847和影像控制PLD 849的指令中的有效差异通常导致发出差错信号938。
当不将程序存储器906,801的输出与影像程序存储器910,802的输出进行比较时检测通过总线复用器922或总线复用器926多路复用的数据中的差错。
按照根据前面的描述应当发现的方式,当试图读取所寻址的被写入″位置″时通过使用比较器946探测程序存储器电路899上会导致程序存储器RAM的RAM写差错的故障。
为了实现比较差错信号报告,通过使用控制计算机底板将比较差错信号938连接到看门狗603和″比较/配置″缓冲区1049。
控制计算机10在启动时以及软件测试之后执行下列初始化过程(a)将所有寄存器,多路复用器和缓冲区设置到运行模式,并且(b)清除与程序和程序影像存储器16差错信号有关的位。
安全认证过程表明需要检查测试电路以确定其是否正常工作。需要在程序和程序影像存储器16正在系统中被使用的同时实现测试。所以使用程序和程序影像存储器16允许控制计算机10检查比较器,而比较器被用来检查程序存储器和相应的影像存储器。在一个实施例中,控制计算机10中的软件(执行逻辑和/或执行机器操作代码)在第一次将控制计算机初始化到任务D或任务B中时测试比较器。在另一个实施例中中,软件在第一次将控制计算机初始化到任务D或任务B中时测试比较器,并且还根据一个小于或等于24小时的预置时间表测试比较器。寄存的数值由控制计算机10的逻辑(执行机器操作代码)定义并且被输入到比较器的寄存器以便结合运行/测试信号952和测试模式信号957的发出进行测试。控制计算机10设置其寄存器中的比较差错条件以确定比较器946是否正常工作。控制计算机10还用表明程序和程序影像存储器16牌测试模式的指示符设置看门狗以便测试中故意产生的差错不会暂停CPU 12。
现在来到图11A和11B并且参照图10,其中描述了数据和数据影像存储器14。虽然在研究涉及图9A,9B和10材料之后应当明白数据和数据影像存储器14中的缓冲区1004,1008,1006,1010,数据RAM 1012,数据影像RAM 1014,影像数据缓冲区反相器1020和收发器1016的许多操作细节,但数据和数据影像存储器14也示出了MA寻址锁存器1002,上述锁存器把地址锁存到数据和数据影像存储器14对数据和数据影像存储器14的各个写操作进行诊断,其中通过数据总线18(图3A)将输出发送到CPU 12。
在使用通过链接1052与秘密接口2791(图21A和21B)接口的秘密BI-DIR缓冲区1018和影像秘密缓冲区反相器1022时示出了图9A和9B之间的第二差异。正如前面的背景讨论中提到的,在1996年10月22日提交,标题为″控制计算机秘密接口″的美国专利5,568,615号(15Sederlund等人)中描述了在24Sededund等人的专利中描述的用于实现对控制计算机的数据访问的系统的实施例。专利描述了用于一个耦合的秘密接口2791,上述智能前端通信系统将多个主动冗余控制计算机连接到一个计算机网络。各个主动冗余控制计算机中的秘密接口2791包含一个存储与物理过程相关的动态数据并且将数据传送到与计算机网络通信的前端计算机的多端口存储器。多端口存储器也包含一个存储前端计算机及其主动冗余控制计算机之间发送的消息的邮箱部分。秘密接口2791也包含一个守护电路,该电路最终控制前端计算机向多端口数据存储器中的特定存储器位置写入信息的能力。在最优实施例中,数据和数据影像存储器14具有如专利中描述的针对秘密端口电路的链接和接口(有关综述参见关于美国专利5,568,615号的图3);然而显然可以在不具有这种接口功能的系统上配置数据和数据影像存储器14。通过使用秘密控制线1033,1037,秘密BI-DIR缓冲区1018和影像秘密缓冲区反相器1022可以发现与秘密板之间的关系。图21A和21B中进一步示出了秘密接口2791(秘密端口)及其链接。
在″比较/配置″缓冲区1049中出现第三个差异,其中上述缓冲区鉙一个位,这个位涉及任何差错信号938,1230,1072,并且在诊断时发送上述差错信号;″比较/配置″缓冲区1049还包含一个涉及数据和数据影像存储器14的设计实例并且提示进行系统配置诊断的签名代码。
注意,控制线1021,1023,1029,1035,1037,1043,1027,1031,1033,1025,1041,1061,和1039管理通过控制PLD 1051和影像控制PLD1053实现的数据和数据影像存储器14的电路1099中的操作。
SIL3安全关机系统认证过程中的若干要求需要检测缓冲输出阻塞,解码器故障,多路复用电路误选,和其它导致存储器访问差错的类似故障。CPU 12不能单独执行这些任务;然而在数据和数据影像存储器14的帮助下,控制计算机10的CPU 12和逻辑被用来实现影像存储器功能和附属判定以保证系统的操作是可适当预测的。安全认证要求检测任何的数据和数据影像存储器14存储器访问差错。这种差错的产生原因是存储器部件,缓冲区或PLD解码中的故障。如果发生差错,则板上错误检测通过差错线路1072通知看门狗603采取适当动作。错误检测将保证各个控制计算机10存储器读取正确并且保证错误数据不被发送到控制计算机10数据总线上。
在实现错误检测时,在数据和数据影像存储器14中提供硬件以检测读取差错;差错信号1072被发送到看门狗603以指示数据存储器电路1099中存在一个差错(并且看门狗603按照本说明书后面讨论的方式采取适当动作);控制计算机10在启动时清除数据存储器电路1099上的锁存差错标志;并且当发出差错信号时一个LED指示符被锁存成″ON″(与程序和程序影像存储器16中的情况一样)。
按照通过研究图9A,9B和10应当发现的方式,当检测到(a)数据存储器故障,(b)缓冲区控制线故障(c)从影像数据存储器1014和数据RAM 1012读取的数据中的错误匹配,(d)地址总线1032,1030线路差错或(e)存储器读取地址位置差错时均发出差错信号1072。
比较器1074的实时启动和测试按照与针对程序存储器和影像程序存储器16中的比较器946讨论的方法基本相同的方式进行。
现在来到图12并且参照图10,在Q&C存储器电路1199中描述了Q&C存储器和Q&C影像存储器36。虽然在研究涉及图9A,9B和10的材料之后应当明白Q&C存储器和Q&C影像存储器36的许多细节,但电路1199还示出了传送Q&C存储器地址的地址缓冲区116以便在维护操作中利于诊断。Q/C存储器电路1199访问并影像控制计算机10中的C存储器110和Q存储器108。Q/C存储器寄存器&可编程逻辑设备611和Q/C存储器影像寄存器&可编程逻辑设备612向这些图中的其它功能部件输出控制信号。
有选择地向Q/C/D寄存器&PLD 611和Q/C/D影像寄存器&PLD 612内部的三个不同寄存器发送控制和寻址信号,其中包含从程序和程序影像存储器16发送的Q操作(Q_OP)信号。控制线1129,1127,1125,1121,1131,1133,和1123的功能是管理来自CPU 12和存储器108,110,593,和594的数据的接口。Q存储器108存储了一个最终定义了计算机10实现的具体程序的有序存储器地址序列。与已经被编译和链接的传统程序形成鲜明对比的是,在程序和程序影像存储器_和Q&C存储器和Q&C影像存储器36之间唯一分割计算机10的应用程序。在这点上,程序和程序影像存储器16被用来存储在各种应用程序中使用的一个有限公共子程序集合的指令,或操作码。因而程序和程序影像存储器16可以包含若干不同的算术和逻辑子程序,例如使两个数值相加,和IF...THEN表达式。
相比之下,Q存储器108存储与这些子程序相关的地址信息。更具体地说,Q存储器108以一个有序序列的形式存储这些子程序的地址,例如一个子程序的第一指令的地址,以便定义控制计算机应用程序。Q存储器108最好还存储这些子程序所需的任意参数的地址。这些参数或操作数位于数据和数据影像存储器14或C存储器110与C影像存储器594中。对于这种存储应用程序的职责划分,应当理解程序使用的子程序只需被一次性存储,即使在整个程序中重复使用它们也是如此。因而计算机10中的应用程序只需要最小的存储容量。Q存储器108的使用还具有其它的优点。例如,由于避免了正常的子程序开销(例如在堆栈中压入一或多个地址),所以执行速度提高了。
由C寄存器或Q/C/D寄存器&PLD 611中的D寄存器控制和访问C存储器110;并且由C寄存器或Q/C/D影像寄存器&PLD 612中的D寄存器控制和访问影像C存储器594。C存储器110存储数据数值,并且C存储器110和C影像存储器594扩展存储容量,否则会由数据和数据影像存储器14来提供。然而就象使用影像C存储器594和影像C寄存器那样,C寄存器被用来允许按照被程序指令自动改变的增量来访问C存储器110。根据所使用的指令,按照1,2或4的地址增量访问C存储器110和C影像存储器594。
注意不允许将Q/C/D寄存器模块611中的D寄存器以及Q/C/D影像寄存器模块612中的影像D寄存器和涉及数据和数据影像存储器14的寄存器混淆在一起。使用Q/C/D寄存器模块611中的D寄存器和Q/C/D影像寄存器模块612中的影像D寄存器以便在不必将地址指针传入和传出存储器的情况下访问C存储器中两个不同的数据列表。换言之,C寄存器中包含的计数器指向C存储器中一个数据列表的地址(其中一个大于1的地址增量会比较有意义),而D寄存器中包含的计数器指向C存储器电路中另一个数据列表的地址(其中地址增量1是适当的)。
在图12中还应当注意的是,Q存储器108和C存储器110通过缓冲区112被连接到数据总线18。影像Q存储器593和影像C存储器594通过缓冲区620被连接到数据总线18。因此应当理解,通过Q操作和C操作控制信号有效地多路复用了针对Q存储器108和C存储器110的写入和读取操作。还提供地址缓冲区116以便向一个逻辑分析仪调试设备连接器提供Q,C,或D寄存器的当前地址。也可以由CPU 12通过缓冲区112读取Q,C,或D寄存器的当前地址。根据Q存储器108中的有序地址序列定义了计算机10实现的步骤这一事实,Q,C或D寄存器的当前地址提供了另一个确定已编程操作的当前状态的方式。
控制计算机10安全认证需要Q/C存储器电路1199检测所有的存储器差错。当存储器部件,缓冲区和/或解码器出现故障时产生这些差错。如果发生差错,则板上错误检测通过差错信号1230通知看门狗603采取适当动作。
按照通过研究图9A,9B和10应当发现的方式,当检测到(a)读取差错,(b)硬件差错,(c)硬件故障,(d)存储器地址线路差错或(e)解码器差错时均发出差错信号1230。比较器1210的实时启动和测试按照与针对程序存储器和影像程序存储器16中的比较器946讨论的方法基本相同的方式进行。
读者应当注意,由于空间利用方面的考虑在图13A,13B,21A和21B中没有遵循图3A-12中使用的线路图符约定。
图13A,13B和14描述了涉及守护和地址确认电路的电路细节,上述守护和地址确认电路被配置到母板集合中将控制计算机10a,b连接到输入和输出电路的各个母板上。各个中间板684,689(图3B)具有一个SIL中间板DO(数字输出信号)RC定时器和守护1902(DO守护电路688,685的关键部件),而RC定时器和守护具有一个禁止各个″附属″数字输出的DO守护连接1915a,b;一个具有持续时间和定时器复位的RC定时器1904;和一个根据定时器复位从控制计算机10接收预定事件输出的连接1906。当接收到预定事件时RC定时器1904被重新设置成最大时间(完全电容器放电)并且充电到持续时间上限(打开开关1928的充电阈值数量);如果通过短时延定时器实现持续时间(即在连接1906上的信号D使RC定时器1904中的电容器放电以便有效地将RC定时器1904重新设置到最大时间之前将电路充电到打开开关1928的充电阈值数量)并且预定事件尚未被接收,则将DO守护连接1913(a,b),1915(a,b)接通到开关687,690,695;697以便禁止数字输出(如图3B的讨论中需要注意的,也可以是模拟输出)。
各个母板还具有Can地址守护电路683,691和Can地址确认电路1922。参照示出了母板电路1901的图13A和13B,在产生输出信号时,各个控制计算机10针对各个输出信号定义了一个数字地址和一个数字信号附属集合;一个被连接到控制计算机10的第一数模电路1908将涉及输出板地址的数字信号集合转换成一个单独的模拟信号;并且多路复用电路1910将第一数模电路1908连接到附属CPU电路1912。通过类似的方式,第二数模电路1914将涉及Can标识符的数字地址转换成一个CanID地址数值模拟信号;并且通过多路复用电路1910和电路1912将CanID地址数值模拟信号连接到计算机10。如果确定地址数值数字信号集合与数字地址不相同,则在定时器超时后通过开关687,690(图3B)终止Can的数字输出;接着由计算机10监视DO守护状态数值1916,并且计算机10在成员控制计算机不活跃(如果成员活跃则控制计算机10进入任务4)的情况下停止通过链接1906向下一个实时秒中的所有Can发送十六进制数值D(从板选择地址集合B1...B8中的计算机10接收的解码器1918输出);并且在各个Can中没有D数值的情况下跳开系统中所有开关1928以便停止图3B中配置的所有数字输出(以及,在一个可选实施例中的所有模拟输出)。由于仅当所有启动测试成功完成时才由计算机10提供D数值,所以在使用计算机10监视DO守护状态数值1916和针对一个DO守护状态数值1916变化指示的应答的情况下,通过开关1928对任意数字输出的释放最终均会锁存到对系统中所有数字输出进行故障保护的位置上,直到计算机10从任务4重新启动。
进一步考虑导致开关1928终止通过DO守护连接1913(a,b),1915(a,b)提供数字输出的动作,Can地址守护电路683,691实现了使用守护定时器1306(以类似于RC定时器1904的方式操作)响应Can使能信号从而向开关1928提供Can守护和输出守护信号1308的方式。所以在开关1928上,当在控制系统的任意部分中进行Can寻址或板寻址时在本地发现的任何差异均会导致对受影响输出的即时故障保护,其原因是至少系统中所有数字输出的Can和后续故障保护均发生在很短的时间内。
在允许控制计算机10及其附属逻辑明确测试母板681,682地址的完整性时,在中间板685,688上安装一个10状态DIP开关1307。开关1307被设置到控制计算机10的逻辑中标识的母板的逻辑地址上以便寻址可通过母板访问的所有电路。Can地址确认电路1914与附属电阻器和运算放大器1303共同产生与开关1307设置成正比的电压1305。
控制计算机10的逻辑(执行机器操作代码)中的一个自测试程序读取通过多路复用器1910和电路1912返回的各个电压,将其与根据母板的数字地址期望的电压相比较,并且在电压超过容差的情况下采取动作暂停向所有Can提供B1...B8中的D。
Can地址确认电路1914和比较器1922提供了一个机制,该机制在允许访问涉及母板681,682的数字输出板并且通过接收板选择信号B1...B8重新设置板上RC定时器和守护1902之前适当的母板681,682正在被访问。电路由一个梯形电阻器,Can地址开关,运算放大器,窗口比较器和另一个运算放大器构成。当安装这个板子时,板地址开关必须象在主母板681,682上那样对应于相同的开关位置。对于梯形电阻器中的各个级段,梯形电阻器的电压增量为1.5v+/-0.5v。这个电压接着变成信号Can_ID(参照本说明书中前面定义的术语″Can″)。当一个具体Can中的DO正被访问时,控制计算机必须首先使用一个VREF数值,该数值比具体的CAN_ID电压低大约一个二极管电压降(0.6-0.7V)。假定VREF数值不超出CAN_ID电压+/-一个二极管电压降,则比较器1922不会将其输出接地。假定窗口比较器1922不接地并且允许执行控制计算机10中的逻辑,则在从解码器1918发出D时根据D的发出″重新设置″RC定时器1904以便继续控制DO守护连接1913(a,b),1915(a,b)。在以类似于板地址电压的方式确认通道地址电压时还通过复用器1910将通道地址电压1999传送到控制计算机10。
现在参照图14,提供数字输出地址验证电路1701以便进一步说明锁存器1302中的电路。电路1701检测是否已经″尝试″一个未使用的DO板地址。两个CMOS反相器和几个二极管与电阻器构成一个用于说明的简单锁存器电路。在每一秒内,用信号1906中的D数值设置电路1701的锁存器和RC定时器1904并且将其强制成″正常工作″状态。在数值中没有定义DO板选择解码器的未使用输出A,B,C和F。由于必须从计算机10发送一个数值以便A,B,C或F具有一个特定数值,所以逻辑TRUE或逻辑FALSE均指示发生了一个地址差错。如果使能任何未使用的DO地址线路(TRUE或FALSE),则锁存器1302不发出DO板选择OK1703。控制计算机10的逻辑(执行机器操作代码)中的一个自测试程序通过多路复用器1910和电路1912读取电路1701的输出1703;并且在输出为低的情况下系统有效地停止锁存器1302和RC定时器1904的重新设置。LED#2 1705使能关于输出1703的状态的一个可见指示。LED#21705在检测到故障时点亮。
在最优实施例中,一个诸如温度测量或压力测量的现场信号通过一个输入板上的一个输入通道被输入到一个控制计算机中,其中上述输入板通过一个酵Can母板681,682和I/O电缆驱动器板601被连接到控制计算机10。控制计算机10的各个实例具有其分离和不同的现场信号接口电路集合,所以两个这样的电路集合与其相应的冗余控制计算机10a,b并行操作以保证重要电路的安全性。一个从现场输入的信号被连接到两个通道,并且可以在两个控制计算机之间比较各个通道的数据数值(最终在控制计算机10的各个实例内对其进行数据逻辑定值)。接着通过一个反向″控制计算机到I/O驱动器卡到局部母板到输出板到输出通道″并行电路集合产生输出信号,其中各个输出通道输出的电压被并行施加到相应的现场控制设备。输出电路使用一个运算放大器稳定由同时施加到相同电线上的多个电压在两个控制计算机执行这种同时施加时引入到现场控制设备的任何阻抗相关电流。美国专利5,428,769号(69Glaser等人)描述了消除任何阻抗不稳定性的系统和方法,这种不稳定性会通过三个被同时施加到相同电线上的电压在三个控制计算机或现场接口计算机执行这种同时施加时被引入到现场控制设备中。当两个控制计算机的硬件执行同时施加时,一个运算放大器被用来消除任何被引入的不稳定性。
正如本说明书在前面提到的,在这里描述的系统中实现了对Baca,Jr.等人的美国专利5,583,757号中描述的模拟输入信号仲裁方法的某些修改;在图15,16,17和18中概述了对该专利中公开的信息的这些修改。
图15提供了对美国专利5,583,757号内的图8(c)的修改,其中修改了输入信号仲裁中的某些条件逻辑(当控制计算机10在任务B模式中工作时执行的逻辑)。
图16提供了对美国专利5,583,757号内的图8(e)的修改,其中修改了输入信号仲裁中的某些逻辑。如方法步骤2201和2202所示,AIF变量被修改成AIF的绝对值。
图17提供了对美国专利5,583,757号内的图8(g)的修改,其中修改了输入信号仲裁中的某些逻辑。如方法步骤2301和2302所示,AIF变量被修改成AIF的绝对值。
图18提供了对美国专利5,583,757号内的图8(h)的修改,其中修改了输入信号仲裁中的某些条件逻辑(当控制计算机10在任务B模式中工作时执行的逻辑)。
所述实施例的控制程序中的机器操作代码的实时执行每秒进行一次。图19提供当Hz1步骤2502实时开始时有关控制程序的Hz1子部分的执行概况的综述2500,其中Hz1步骤2502定义了涉及Hz1循环的秒的开始。
VERCHK Hz1步骤2504接着在执行控制程序机器操作代码和被用来产生控制程序机器操作代码的应用程序源代码的控制计算机10之间进行版本检查。
RMUX Hz1步骤2506接着在Hz1控制程序机器操作代码循环中被执行以便将控制计算机10a,b连接到美国专利5,428,769号(69GIaser等人)中介绍并且在这里进一步描述的远程现场单元。
图22中概述的方法可以在各个控制计算机10中实现RMUX Hz1步骤2506。如图22所示,在方法步骤2802中,控制计算机针对被传送到一个远程现场单元的各个数字输出计算出一个″返回数字输出数值″作为数字输出的应答通过网络控制器328A,B传送到远程现场。在检查方法中的步骤时,例如在方法步骤2801中,″NC″代表69Gtaser等人的专利中描述的网络控制器卡328A,B。如果在控制计算机10中不验证接收的方法2800的校验和,则为通信定义一个″损坏″状态并且通过中断通信将差错通知到远端,其中远程现场单元314I/O的相关实现使用″仍然通信″的控制计算机的数值。在控制计算机中,在装置84的控制中使用受影响的远程输入信号的成员数值直到它们(也)被认定是不可接受的。术语″BPAI″,就象在步骤2806中使用的,表示″板问题模拟输入″。在对RMUXHz1步骤2506中执行的方法的进一步讨论中,图23A-23E提供了涉及诊断数值的远程现场单元诊断信息方法(在控制计算机中执行),其中通过网络控制器328A,B板从远程现场单元314a,b接收诊断数值。
回到图19,现场远程单元诊断Hz1步骤2507根据图23A-23E的流程来执行。观察图23A-23E,象在步骤2903中那样引用C存储器,如图12所示的那样引用64K C存储器110,附属的C影像存储器594也是如此。如图23A-23E中描述的方法的步骤2901中所示的MPXCTR数值被用作环境指示符,该指示符对6秒时间段内来自远程现场单元的诊断数据的多路复用的控制如下所述数值0指示正在检查远程现场单元中左计算机(336A,B)的数值;数值1指示正在检查偶数编号的Can的输入仲裁比较问题的数值;数值2指示正在检查远程现场单元中中间计算机(338A,B)的数值;数值3指示正在检查来自远程现场单元中左,中间和右计算机的现场问题摘要数据(例如DO可能被缩短,Als表明有问题);数值4指示正在检查远程现场单元中右计算机(340A,B)的数值;而数值5指示正在检查奇数编号的Can的输入仲裁比较问题的数值;象在方法步骤2902中那样,变量CINCRM和RSTATI是确定存储器中保存图23A-23E中描述的通用方法内的状态和诊断数据的存储位置。
图24提供了在以较高的层次在网络控制器328A,B中执行以便能够在远程现场单元314a,b和控制计算机10之间提供接口的通用方法。应当注意,网络控制器328a,b使用其自身的计算机处理器执行这个程序。参照图24中的步骤3001,对远程现场单元314 IO的引用类似于图22的步骤2803中术语的使用。这个程序在与远程现场单元314接口时处理网络控制器328A,B中执行的方法的通用状态,从初始化3001中的初始化开始经历一系列象在步骤3003,3004,3005,3006,3007,和3008中那样从输入的数据库中检索数据并且象在步骤3009,3010,3011,3012,3013,和3014中那样向控制计算机发送来自输入的数据库的数据的步骤。在那些步骤中,将″控制CPU″称作控制计算机10 CPU 12。应当注意,一个过程在步骤3015和3016中执行以便从控制计算机检索数据并且将其存储在一个输出数据库中以便传递到远程现场单元。如步骤3003所示输入数据库保存从远程现场单元314检索的数据。
正如图24描述网络控制器328A,B中将网络控制器328A,B信息传送到控制计算机的方法那样,图25和26涉及网络控制器328A,B和远程现场单元314a,b之间的接口,其中图25描述从网络控制器328A,B向各个远程现场单元发送信息的方法。在这点上,在图24的步骤3015和3016中提到的输出数据库是被传递到远程现场单元314的信息的来源。在图25中如步骤3101所示从远程现场单元IO输出模块访问这种信息。还应当注意,在和3102和3103中用一个第二查询信号应答一个查询信号,其中第二信号对第一信号进行数据逻辑应答以便在远程现场单元314中埋进一步的检查,从而保证在正确寻址和识别的远程现场单元314和网络控制器之间交换数据。
图26描述了在网络控制器328A,B中执行以便从远程现场单元314a,b接收数据并且存储在图26的步骤3201提到的输入模块中的信息的方法。
图22和23A-23E描述了在控制计算机中与远程现场单元314a,b接口的方法,图24,25和26描述了与远程现场单元接口的网络控制器板328A,B中的方法,图27,28和29描述了远程现场单元314中将控制系统当作一个已认证的安全关机系统与之接口的方法。于是象在图25的步骤3102和3103中介绍的那样,在图27中步骤3301和3302示出了信号的交互和信号的应答。在图28中进一步扩充了步骤3303中包含的方法;在图29中进一步描述了图27的步骤3304中的方法(其中″DO″表示数字输出和返回的数字输出数值)。参照图34,术语UART表示步骤3401,3402和3403中提到的通用异步接收器和发送器。在图29中,在步骤3501和3502中提到了远程现场单元计算机对返回DO数值的应答(以前针对步骤2802中控制计算机10的方法的叫法)。
在与远程现场单元交换信息之后(返回到图19),PC到PC Hz1步骤2508实现了从一个控制计算机系统对到另一个附属过程控制系统对的通信以便(a)交换并且(b)针对可能在其单独控制下的不同过程部分以彼此协同的方式操作系统。按照美国专利5,583,757号(Baca,Jr.等人)的栏10,行30-40中描述的那样进行这种通信交换。
DIIN Hz1步骤2510接着在Hz1步骤2508之后将数字输入读取到各个控制计算机10a,b中的实时数据库内,并且接着以类似于AIIN Hz1步骤2512中的方式获得模拟输入。
在模拟输入和数字输入数值读取之后,在实现诊断的SIP诊断Hz1步骤2514中执行一个程序以保证输入/输出数值正被正常地访问。这个程序(也被称作″电压键″)通过检查经过多路复用器1910的CAN_ID电压的各个实例检查各个母板以便进行正确寻址。
按照类似的方式在下面VREF Hz1步骤2516中执行一个诊断以确定输入/输出板是否用一个反射信号对来自各个控制计算机10a,b的输出信号作出适当的响应-进一步使用一个程序来保证涉及输入/输出信号的板子正在被各个控制计算机正常地访问。
在最近板问题诊断Hz1步骤2517中,查询所有I/O板诊断数据以识别出具有板问题的系统中编号最高的板子以便利于维护操作。
在AOT Hz1步骤2518和DOT Hz1步骤2520中,AO(模拟输出)跟踪和DO(数字输出)跟踪电压当其出现在控制计算机10的输出电线上并且主动地将信号驱动到相同现场设备(最好以主动冗余方式)时被读取成数据数值。″主动冗余″导致同时从各个冗余控制计算机10a,b(或现场控制计算机)向现场设备施加输出电压。当按照69GIaser等人的专利中描述的方式使用三重冗余远程现场单元314时,从各个主动冗余现场控制计算机向现场设备施加三个输出电压(其中按照69GIaser等人的专利描述的方式保证阻抗稳定性)。当双控制计算机10a,b(在69Glaser专利的栏6行20-24中说明并且如其中的图1所示的控制计算机14)直接向现场设备产生模拟和数字输出时,从各个主动冗余现场控制计算机向现场设备施加两个输出电压(由一个运算放大器保证阻抗稳定性)。在后一种(双机)情况下,跟踪数值所根据的是并行且同时通过相同电线向模拟或数字现场设备施加两个电压。跟踪数值被读取到各个控制计算机10中以便进一步与输出数值进行比较,其中上述具体控制计算机正在发送上述输出数值并且上述输出数值可用来确定单个控制计算机在从按照统一系统方式工作的两个控制计算机10a,b导出的信号中所占的比重。在三重现场控制计算机的情况下,跟踪数值所根据的是并行且同时通过相同电线向模拟或数字现场设备施加三个电压;按照69Glaser中描述的方式监视和管理跟踪数值。跟踪数值测量从计算机控制系统施加到受控装置84中一个控制设备的电压。继续到ARBLNK Hz1 Step 2526及其TrackArb步骤2604,如果诊断数据显示没有板问题并且两个控制计算机10a,b涉及一个具体现场设备的模拟输出跟踪电压数值彼此相差不超过1.5%,则在两个控制计算机的数据库中使用左控制计算机的模拟输出跟踪电压数值。如果诊断数据显示有一个板问题,则使用没有板问题的控制计算机10的模拟输出跟踪电压数值。如果诊断数据显示没有板问题并且两个控制计算机10a,b的模拟输出跟踪电压数值相差超过1.5%,则在两个控制计算机的数据库中使用最低模拟输出跟踪电压数值。
如果诊断数据显示没有板问题,两个控制计算机10a,b的模拟输出跟踪电压数值相差超过1.5%,两个模拟输出跟踪电压数值超出模拟输出数值的容差,并且一个控制计算机处于任务B模式中,则在两个控制计算机的数据库中使用来自不处于任务B中的控制计算机10的模拟输出跟踪电压数值。如果诊断数据显示没有板问题,两个控制计算机10a,b的模拟输出跟踪电压数值相差超过1.5%,两个模拟输出跟踪电压数值超出模拟输出数值的容差,一个控制计算机处于任务D模式中而另一个控制计算机处于任务F模式中,则在两个控制计算机的数据库中使用两个控制计算机10a,b中最低的模拟输出跟踪电压数值。图30提供了关于可执行机器操作代码中通过图31流程图3700中的任务B程序步骤3601进行的模拟输出跟踪信号管理的流程图3600,其中图31提供了当一个控制计算机处于任务B时可执行机器操作代码中的模拟输出跟踪信号功能的流程图。
现在考虑数字输出的情况,如果诊断数据没有指示板问题并且两个控制计算机10a,b涉及一个具体现场设备的数字输出跟踪逻辑数值相互一致,则在两个控制计算机的数据库中使用左控制计算机的数字输出跟踪电压数值。现在考虑数字输出的情况,如果诊断数据没有指示板问题并且两个控制计算机10a,b涉及一个具体现场设备的数字输出跟踪逻辑数值不一致,则在两个控制计算机的数据库中一个零数字输出跟踪电压数值。如果诊断数据显示有一个板问题,则使用没有板问题的控制计算机的数字输出跟踪电压数值。如果两个控制计算机中的诊断数据显示有一个板问题,则使用一个零数字输出跟踪电压。
在板检查计数Hz1步骤2521中,如果超出一个阈值则为了进行维护或切换到任务4为具有诊断问题的板子定义一个总数。
在Hz1循环的下一个AOFCPY Hz1步骤2522中,已经获得的AO(模拟输出)跟踪和DO(数字输出)跟踪数值成复制到数据存储器和影像数据存储器14中以便进行″原始″形式的访问。在这点上,在ARBLNK Hz1步骤2526中仲裁模拟跟踪数值和数字输出逻辑数值并导出跟踪数值以便用于控制程序的逻辑中。单个控制计算机10a,b在ARBLINK Hz1步骤2526的仲裁之前读取的″原始″数值的一个单独复本被用于排除故障。
Hz1循环继续从AOCPY Hz1步骤2522前进到MONITOR Hz1步骤2524以便执行涉及各个控制计算机的附属硬件的诊断检查。某些这样的诊断对各个Hz1循环只执行一次;某些这样的诊断需要完全执行若干个Hz1循环,并且在各个通过MONITOR Hz1步骤2524的Hz1中实现了一部分这样的具体诊断。在MONITOR Hz1步骤2524中执行的一个方法实现了对I/O电缆驱动器板601上的A/D 607和D/A 605的检查(图3A和3B)。这个方法根据实时分秒时钟的数值每秒计算一个测试数值,使得测试数值在D/A数值范围的最小数值开始,在整个小时内逐渐增加并且在小时结束时达到D/A数值范围的最大数值。这个测试数值被D/A605输出并且被A/D 607转换,其中将转换的数值与输出的测试数值相互比较以确定电路工作正常。
MSIVAL Hz1步骤2525是一个确定用于Hz1步骤2536中的输入按钮有效性和准确性判断的数值的诊断确定步骤。
MLA实时链接Hz1步骤2575的第一个实例则收集用于使其它系统能够估测控制计算机CPU利用率并且确定Hz1循环中可用空闲时间的数据以便被加载程序不会因过大而影响使用。
在诊断检查Hz1步骤2524之后,在ARBLNK Hz1步骤2526中通过主链接324在控制计算机10a,b之间进行数据交换以便如Baca,Jr.等人的美国专利5,583,757号(参见Baca,Jr.等人的专利中的图1的元件24a和24b)中描述的那样交换数据并且能够针对(a)用于控制元件定位的数值和(b)仲裁诊断进行仲裁。在本说明书中针对图15-18讨论了根据对该专利中的仲裁处理的讨论得出的某些修改。在ARBLNK Hz1步骤2526的讨论中,图20提供了ARBLNK 2600的详细内容。
ARBLNK Hz1步骤2526从执行″改变许可″位仲裁的OUTCPARBHz1步骤2602开始。在这点上,通过将感知到的数值改变意向与一个改变许可位进行比较允许部分总有在软件中人工替换输出数值的能力(即,操作技师输入一个用于替换通过执行控制计算机程序的实时逻辑定义的数值的数据的能力)。″改变许可″位仲裁步骤保证左和右控制计算机10a,b均同意向一个控制设备输出某个具体的人工替换数值。
在OUTCPARBHz1步骤2602之后,TrackArb步骤2604 Hz1步骤如上所述针对步骤2518和2520仲裁模拟和数字输出跟踪数值。
在链接MCU缓冲区Hz1步骤2606中,针对与人工输入触摸面板和控制计算机数据库接口的输入缓冲区中的数值执行管理和协同逻辑。管理和协同逻辑的执行假定两个计算机均″同意″并且在处理某个人通过触摸板提供的输入时使用相同的数据。在MCU改变协同Hz1步骤2608中,引入输入缓冲区被认为有用的数值以便在控制计算机的数据库中用于控制。在这点上,还评估许可并且对这种引入之前定义的改变的数量进行范围检查。
如图55-59所述,接着执行Hz1循环步骤2609a和2609b以便仲裁来自Hz1 SCU步骤2536的SCU过程单元步骤改变输入和过程单元步骤改变。
接着,通过一个类似于输出改变许可数值仲裁的步骤,在INPUT CPARB Hz1步骤2610中仲裁模拟和数字输入改变许可数值。在这点上,在某些情况下可以人工替换和定义进入过程控制程序的具体输入信号的数值。在某些情况下这允许在修复仪器期间不通过仪器就可以向控制程序提供有效模拟的数值。这样的一个例子是外部空气温度,其中一个数值变化不太频繁并且正被进行正常操作但处于修复状态的计算机监视。然而在某些信号对于控制计算机程序的安全完整性部分的操作至关重要的情况下不能通过这种方式接受上述信号;在过程控制程序的数据模式中定义一个改变许可以便在某些情况下实现某个输入数值的人工替换功能并且在其它情况下不实现该特性。控制程序中的INPUT CP ARB Hz1步骤2610(仲裁这些改变许可数值)保证两个计算机同意由其共同实现操作技师试图进行的数值输入,其中上述两个计算机或者接受人工替换,或者拒绝人工替换。在此之后,如Baca,Jr.等人的美国专利5,583,757号和此后描述的为用于安全完整性编程而作出的修改中所定义的,在INPUTARB Hz1步骤2612中对所有输入信号进行仲裁。
最终在LINK REMAINING Hz1步骤2614中,ARBLNK Hz1步骤2526以允许在控制计算机10a,b之间交换两个控制计算机的通用协同所需的其它数据作为结束。
图32提供了对ARBLNK Hz1步骤2526中执行的,用于在左控制计算机和右控制计算机之间交换数据和仲裁数据的方法的综述。查看图32,在检查的图32,缩写″LCC″表示″左控制计算机″,缩写″RCC″表示″右控制计算机″。左和右控制计算机10a,b的密切同步利于不使用中断在Hz1步骤2526中进行数据块交换;在这点上控制计算机按照Hz 300的频率每秒150次对齐其机器操作代码中的相对位置。
MLA实时链接Hz1步骤2575的第二个实例收集用于使其它系统能够估测控制计算机CPU利用率并且确定Hz1循环中可用空闲时间的数据以便被加载程序不会因过大而影响使用。
在这个步骤之后,如果不执行Hz1步骤2608(即如果没有起作用的成员),则在POSTLINK Hz1步骤2530中将人工触摸板接口中保存的任何数值变化记录到控制计算机的输入缓冲区中。
当一个具体控制计算机内存在任务E或任务F时有条件地执行AICOPY Hz1步骤2528以便在控制计算机10a,b不同时在主动冗余模式中执行控制程序的情况下处理数字和模拟输入仲裁的输出。
如图55-59所示,步进Hz1步骤针对这个Hz1循环的所有SEQUENCE完成所有的过程单元步骤改变。
在MDW PROCESSOR Hz1步骤2552中执行如1996年5月21日提交,标题为″能够使对应数据集合时间对齐的智能过程控制通信系统和方法″并且授权给Allbery,Jr.等人的美国专利5,519,603号;1995年6月27日提交,标题为″当通信时间段超时之前使用新随机数在第一和第二计算机之间重新建立限时通信的安全通信系统″并且授权给de Bruijn,Ronny P.等人的美国专利5,428,745号;1996年10月1日提交,标题为″通过检查与命令中标识的变量相关的使能指示符的状态确定是否向控制计算机发送命令的系统和方法″并且授权给de Bruijn,Ronny P.等人的美国专利5,561,770号;1996年10月22日提交,标题为″控制计算机的秘密接口″并且授权给Sededund,Edward R.等人的美国专利5,568,615号;和1997年5月20日提交,标题为″制造过程控制系统的操作员控制台″并且授权给vanWeele,Leonardus A.等人的美国专利5,631,825号中所述的过程控制数据写入程序。参照美国专利5,568,615号的栏17,行25-42中描述的唯一标识符,在最优实施例中由Fox和Dog控制计算机独立评估涉及一个数据写入消息(MDW)的版本标识符。
在最优实施例中MSI是″MCU″和SCU″接口″面板的缩写,该面板是一个含有MCU和SCU触摸板以及一组液晶字符变量显示器的物理面板,其中驱动上述液晶字符变量显示器显示在MSIHz1步骤2534的机器操作代码中执行的逻辑的结果。MCU Hz1步骤2532,MSI Hz1步骤2534,和SCU Hz1步骤2536将数值驱动到人机图形接口以便通过字符形式向操作技师呈现数据并且获得任何已经在主缓冲区中建立并且用于下一个Hz1循环的数值。在这点上,查询两类实际输入触摸板(在所述的实施例中每个Can母板内的一个MSI支持两个SCU触摸板接口,1个MCU触摸板接口和10个液晶数值显示器)。第一种触摸板(在本说明书中也被称作″MCU″,即主控制单元的缩写)提供一个针对过程控制机器的数据库的通用接口(通过输入缓冲区),并且一个第二SCU类型接口区域具有若干个专用于本说明书其它部分中描述的SEQUENCE对象的属性的输入按钮。涉及状态强制转换的特定输入的例子包含诸如报警,紧急状态强制转换,关机状态强制转换,该SEQUENCE中执行的具体过程单元步骤内的变化,和在该SEQUENCE中输入新配方的输入按钮。针对SCU触摸板数值入口执行一种仲裁(Hz1步骤2609a和2609b)。控制计算机10a,b共享有关SCU记录的信息并且处理记录,即使当执行SCU缓冲区读取程序时只有一个控制计算机实际定位出SCU记录也是如此。被输入到当前由一个Fox/Dog开关选择的MSI的SCU数据在经过Hz1步骤2525中测量的信号的验证之后被两个控制计算机使用;如果验证失败,则向操作技师查看的显示器输出一个差错代码。实时控制程序的下一个部分(如下所述的READKEY 2538)读取任意中止按键或硬件按键的状态,上述按键被提供给系统以便人们激活和替换受保护的功能。在这点上,按键始终在附属具体制造工厂的负责监督人的控制下。(在这个操作之后,处理计算机程序的实时逻辑评估和仲裁通过执行执行逻辑或操作人借助″SCU″(SEQUENCE控制单元)触摸板提供的输入定义的任何关机决定以便两个计算机根据需要按照统一并且一致的方式实现关机。)继续有关MSI Hz1步骤2534的讨论,执行逻辑以便在不对操作技师提供到″MSI″接口的输入进行任何查询的情况下驱动字符显示器的数值。然而在针对MCU(2532)和SCU(2536)Hz1步骤与MSI物理面板接受新数值进入工作过程控制系统的控制计算机10a,b的数据库时,检查一系列存在状态位。存在不同类型变量的存在状态位。一个存在状态位允许为该变量类型的一个变量定义一个非零数值。在这点上,针对应用编程工程师在编译涉及机器操作代码的应用程序源代码时定义的各个SEQUENCE提供一个SEQUENCE存在状态位。通过类似的方式,应用程序工程师为各个过程单元步骤提供一个存在状态位。还为模拟和数字常数产生存在状态位,其中模拟和数字常数被定义成控制方案中用于所产生的特定定时器和被发送到其它系统的数值的增益。根据被控制计算机计算出来并且被控制计算机实时动态变化的模拟和数字数值的情况为所定义的报警指定存在状态位(注意数值可以动态变化,但存在状态位是实时固定的)。当Fox或Dog计算机已经暂停并且接着重新启动时,存在一个涉及两个计算机中数据库的调整并且必须解决的问题。在这点上,开始操作的计算机通常从执行针对受控装置84的过程控制程序的计算机接收动态数据的数值。在″即将上线″的计算机的启动过程中,一个处理过程从运行状态的计算机向新计算机传送数据立功受奖者必须为此提供某个时间块用于进行这种处理。在两个计算机不能具有一个经过对齐的数据库期间如果没有提供一个约束仲裁的某些方面的变量,则(在启动期间)扰乱了控制计算机10a,b中的仲裁过程。在这点上,提供一个数字变量,其中当″新成员″控制计算机10即将从″已建立″控制计算机10接收一秒可变动态数据的数值时该变量将控制装置84的计算机中的Hz1循环代码的执行挂起一秒。在后续的一秒中,″已建立″的计算机返回到执行Hz1循环代码和Hz10与Hz100代码的正常操作状态。根据前面的描述应当理解,在正常过程控制逻辑不执行Hz1逻辑的相邻序列中不期望出现一系列的秒。因此当在一秒内没有足够时间将″已建立″的操作和控制计算机的实时数据链接到即将在线的新计算机时,即将在线的新计算机暂停执行并且在60秒内禁止并且阻塞这个控制计算机重新启动进入Hz1循环。这个对即时重新启动的限制使得被引入控制装置84的控制计算机中的实际挂起间隔时间量最小。
图33A和33B更详细地示出了在SCU Hz1步骤2536中将控制计算机10连接到SCU的方法。在这点上,步骤4201和4202示出了变量USTEP和变量LSTEP。这两个变量分别表示″步骤地址上限″和″步骤地址下限″。在步骤4203中,变量STEPCP表示″步骤改变许可″,这是控制计算机的数据库中一个控制操作技师将活跃过程单元步骤从控制计算机在任何具体时刻定义的过程单元步骤改变成操作技师期望的新过程单元步骤的过程的变量。
在方法步骤4204中,注释中有关″优先权″的表示部分涉及JSTEP功能调用(表示一个精减关机对象类型);根据由报警类型或操作技师输入定义的某些紧急状态指示符有条件地将JSTEP功能调用指定到活跃状态上。有关一个活跃JSTEP功能调用状态的定义替换SEQUENCE中任意的过程单元步骤保持状态以便将装置84的动态状态修改到一个用于定义被认为比″正常″操作具有更低风险的操作状态的过程单元步骤上。在这点上,装置84的动态和所有状态在某些紧急情况下可能使得动态流体操作的完全和立即停止不属于安全的动作过程,而一个风险较少的中间操作状态(例如在没有限制的情况下系统内部流体流动速率的受控冷却和受控减速)以最优的方式定义了一个最好的方案(作为降低所有控制元件活力的候选方案)以便在假定不能持续正常操作的情况下实现装置84的最安全操作。帮助理解JSTEP功能调用实现的方案的一个例子是一架在飞行过程中经受强烈机身振动的飞机;在这种情况下最好的纠正措施通常不是立即停止所有引擎的工作,而是将引擎负载降低到中等的程度以便在某种程度上减少机身压力并且实现受控着陆。因而实际上在飞机上实现了一个″精减″(即受″约束″,″限制″和″节制″)的工作关机。类似地,当被声明为TRUE并且Hz1,Hz10,和Hz100执行中的应用程序提供响应JSTEP功能调用切换到一个过程单元步骤的计算机执行逻辑时,控制计算机10根据JSTEP功能调用实现受控装置84的一个″精减″(即受″约束″,″限制″和″节制″)操作关机。因而JSTEP功能调用是SEQUENCE的一个属性和数据逻辑对象,并且用来以装置84被控制计算机10控制的特征操作方式开始一个精减关机修改。这样,JSTEP功能调用便构成了一个精减关机状态过程控制对象。在实现多级关机命令时,本发明提供了一个精减关机状态过程控制对象类型,该类型具有一个支持多个(即5个)优先级的优先权属性参数。
继续图19的Hz1循环,READKEY Hz1步骤2538执行用于估测一个硬件中止开关的状态,MSI面板的Fox/Dog选择开关(定义在针对该Can的MSI/MCU/SCU接口中显示哪个成员的数值)的位置,和MCU按键(用于修改某些变量)的逻辑。
ADCCHKHz1步骤2540协同本地生成的、使一个计算机开始暂停操作的诊断的动作。
在RHM Hz1步骤2542中,获得已经在远程现场单元314a,b中计算的诊断数据的状态以便处理来自一个处理信息系统的数据请求。
在COMMUNICATION SECTION Hz1步骤2544中,建立与其它控制计算机的高优先权通信以便在Hz1步骤2508中传输数据。
接着为了在一个新成员正在执行任务D或B时进行启动操作执行有条件Hz1旁路步骤2545以便实现必要的调整(即放松实时同步)。这个程序的目的是在必要情况下提供额外的时间以便协同某个正在启动的计算机和正运行(任务E或F)的计算机。如果在这个程序执行时没有完成协同数据的传送,则在运行计算机中将涉及Hz1步骤2546和2548之间的间隔的代码的执行空置一秒。此间可以向新成员传送协同数据。
MLA实时链接Hz1步骤2575的第三个实例收集用于使其它系统能够估测控制计算机CPU利用率并且确定Hz1循环中可用空闲时间的数据以便被加载程序不会因过大而影响使用。
这里,实时处理计算机代码执行所有涉及从START SEQUENCEHz1步骤2546开始的SEQUENCE的代码。在这点上,各个SEQUENCE通常有四个代码子部分被执行。第一个代码子部分涉及所有可能适于具体SEQUENCE的特殊计算。各个SEQUENCE中的第二个代码子部分定义了该SEQUENCE的报警。第三个代码子部分涉及SEQUENCE的过程单元步骤终止逻辑和过程单元步骤定义逻辑的执行。第四个代码子部分涉及确定具体SEQUENCE的输出并且分成两个子片段。第一个子片段涉及附属于该SEQUENCE的所有数字输出的定义,第二个子片段涉及附属于这个具体SEQUENCE的模拟输出。SEQUENCE逻辑的执行通常占用Hz1执行中的最大单时间片,并且它执行受控装置84的一个具体实例的特定逻辑,其中由负责装置的管理的控制工程师实际编写上述特定逻辑。
在所有SEQUENCE逻辑执行如END SEQUENCE里程碑2548所示的结束点上,MLA实时链接Hz1步骤2575的第四个实例收集用于使其它系统能够估测控制计算机CPU利用率并且确定Hz1循环中可用空闲时间的数据以便被加载程序不会因过大而影响使用。
接着ADIAG状态Hz1步骤2549处理具有16位形式的模拟数值以便在应用程序可以引用的变量中存储状态数据。
SGCOPY Hz1步骤2550a接着提供与Clement的专利中描述的图形接口之间的通信。图34A1-34A3和34B-34E提供了在SGCOPY Hz1步骤2550a中执行的方法中的详细内容。在这点上,″图34″将图34A1-34A3和34B-34E表示成一个统一的方法。在讨论″图34″时,如方法步骤4401所示,″SG″涉及1998年3月10日提交,标题为″可编程图形面板″并且授权给John L.Clement的美国专利5,726,668号(Clement)中描述的串行图形系统概念。在方法步骤4402中C-REG表示C寄存器,同样在方法步骤4403中D-REG表示D寄存器。在说明书中这些寄存器如图21A和21B中的图符104和106所示。类似地,在步骤4406中E-REG表示如图?和21B中元件2713所示的E寄存器;在方法步骤4405中X-REG表示如图21A和21B中元件2712所示的X寄存器。在步骤4408中CC格式表示适合于控制计算机的数据库并且抽取变量ADIAG的特征的控制计算机格式,其中变量ADIAG是一个周期性从串行图形系统接收的36位变量。
执行串行SG状态Hz1步骤2550B以便处理串行图形面板上的图形灯动作。
MTHTST Hz1步骤2554,HW诊断Hz1步骤2556,实时CSUM Hz1步骤2557,和WDSTATUS Hz1步骤2559涉及针对单个控制计算机10a,b的诊断测试和完好测试,其中(a)测量功率等级和基准电压并且与可接受基准数值相比较,(b)执行内部测试以保证CPU 12根据签名程序产生一个可预测结果,其中签名程序确认系统中逻辑和算术电路的正当操作。在实现HW诊断Hz1步骤2556时,监视看门狗603的方法如图35所示。在这点上,象在步骤4501中那样,WD表示看门狗603。在步骤4501中,用″心跳″表示可以肯定在看门狗603中每秒交替一次并且通过数据总线18被传送到CPU 12的信号。在步骤4501中在CPU 12中估测这个来自看门狗603的可预测信号的数据逻辑应答。在步骤4502中,如本说明书前面讨论的,看门狗603超时标志与数据存储器电路1099上的锁存差错标志相同。就象比较计算机中执行的控制程序机器操作代码和被载入计算机的程序那样,REAL-TIME CSUM大约至少每3个小时便再次确认CRC,其中通过在和一个在最近实时时刻确定的CRC一起加载时使用一个附属于逻辑的CRC(循环冗余检查)交叉检查来进行上述比较。
在DOOUT Hz1步骤2558和AOOUT Hz1步骤2560中,向附属于控制计算机的现场接口硬件产生数字输出,并且通过附属模拟输出处理硬件向现场设备输出模拟输出信号。
BULB Hz1步骤2562的程序激活和停止用于向操作技师描述过程控制系统中不同数据数值的状态的发光灯。
PROGLNK Hz1步骤2564执行实现与本说明书中所示的任务A或任务C相关的活动的逻辑。
接着在DDIAG Hz1步骤2566中针对单位数据执行一个诊断摘要程序将涉及系统通用操作的诊断数据简化成关键的单个数字(TRUE或FALSE)基准数值以便用于应用程序中的可选访问。
实时控制逻辑的HZ-INFINITY Hz1步骤2570进行普通通信,其中不必在任意一秒内实现这种通信,而是在实时过程控制逻辑的一秒中的一个具体Hz1循环的执行过程拥有的时间内进行这种通信。
MIFDRV Hz1步骤2568是第一个在HZ-INFINITY Hz1步骤2570中执行以便采用和使能与美国专利5,519,603;5,561,770;5,568,615;和5,631,825号中描述的过程控制通信接口之间的数据交换的程序。这个程序也在各个Hz10循环中执行。
在此之后,执行ENDSS Hz1步骤2572中的一个最终程序选通如美国专利5,519,603;5,428,745;5,561,770;5,568,615;和5,631,825号中所述的过程控制通信接口以便向接口通知Hz1循环结束。
接着计算机通过HZ-INFINITY Hz1步骤2570操作结束Hz1执行(同时继续其它Hz10循环和Hz100循环执行)以便等待下一个实时秒的开始并且通过BEGINNING OF SECOND Hz1 Step 2502开始下一个Hz1循环。
象Hz1循环的逻辑执行那样,在控制计算机中的Hz10或Hz100中执行的逻辑按照适当的间隔时间间歇执行。在这点上,除非在本说明书中另有所述,Hz10逻辑在Hz10或Hz100时间帧中没有发生仲裁的情况下处理信号以便读取信号,处理导出的逻辑并且输出信号。
在图36A,36B和37中描述了涉及安全方面的Hz10时间帧逻辑。图36A和36B描述了涉及DIREAD(数字输入读取)功能的逻辑,图37是涉及AIREAD(模拟输入读取)的逻辑;在各个Hz10循环中也执行MIFDRV Hz1步骤2568的逻辑。DIREAD表示数字输入的读取,在控制计算机中执行图36A和36B的逻辑以便允许监视和读取Hz10或Hz100中的数字输入。如果在一个具体的读取帧内发生一个数字输入中的变化,则立即捕捉到变化并且用于Hz1逻辑中的执行。在这点上,在Hz10和Hz100逻辑循环中使用DIREAD和DIFREAD(正如获得的数据被用于Hz1中那样)以便数字输入按照最新的形式在需要时随时可用并且没有延迟(即不等待一个完整的一秒Hz1循环完成和下一个Hz1循环开始)。在这点上,可以在开始发生变化的相同秒内对数字输入变化作出响应,以便在经过认证的安全关机系统所需的时间帧内实现控制计算机10a,b对装置84中的变化的快速应答。图36A和36B示出了实现涉及数字输入的功能的逻辑,图37示出了实现涉及模拟输入的类似功能的逻辑。如果在应用程序中针对一个数字输入定义了DIREAD,则通过编译译码器将DIH数值设置成TRUE;这控制了有关所声明的数字输入的仲裁和诊断。被设置成FALSE的DIH实现每秒一次对数字输入数值的仲裁和诊断,其中涉及在读取通过获得的数字输入数值之前在(例如)Hz10中获得的最近数字输入。如步骤4701,4702和4703所示,模拟输入被存储在一个AIF变量中。AIF代表″模拟输入现场″数值。步骤4704中的AIV表示″模拟输入电压″,这是一个仅仅被数字化但是尚未被定标到一个比例系数数值上的原始电压(在这点上,应当注意通过一个用于链接和通信的附属比例系数按照定点格式存储控制计算机10a,b的数据库中的模拟变量)。在图36A和36B中,在步骤4601探测和查询一个数字输入数值的上述变化。程序的目的是建立一个更新数字输入数据库中数值的系统以便在数值发生变化之后能够尽可能快地用于Hz1循环中。然而在这点上,由于Hz1循环每秒只执行一次,一个通过这种方式获得的数字输入实际上不会影响一个Hz10时间帧内的输出,但在获得数字输入的一秒时间内会产生影响。这优于前面每秒只查询一次数字输入并且接着在该秒内用于逻辑执行的情况。在这一点上,如果每秒只一次获得一个数字输入,则可以在(a)定义数字输入的条件在控制计算机控制的现场装置中实际发生改变的时间和(b)数字输入影响控制计算机的一个输出的时间之间存在一个两秒时间段(当在读取具体数字输入之后立即发生装置条件改变并且在数字输入读取之前立即使用数字输入时出现这种情况)。当每秒10次查询数字输入时,Hz1循环中在获得数字输入和数字输入影响对现场的数字输出之间可以存在的最大时间长度是一秒。类似地在图37中,如装置84中所示在1/10秒内将AIF数值更新成最近数值允许在发生更新的相同秒内将模拟输入监视的属性的数值改变用于控制计算机10。如果每秒只查询模拟输入一次,则一个模拟输入(在前一秒的模拟输入读取之后立即改变在装置84中测量的属性)不会影响一个输出,直到(a)前一秒的程序过期,(b)在下一秒中已经查询模拟输入,和(c)在后一秒中已经确定涉及模拟输入的模拟输出。在图36A和36B中方法步骤4602中的″que″表示从如图12中的图符108所示的Q存储器108进行的读取。类似地在图37中,在方法步骤4705中对Q列表的访问也指向Q存储器和图12中图符108上的Q存储器108中存储的信息。图12 Q存储器108被包含在图3A的Q&C存储器和Q&C影像存储器36中。
任务B定义了控制计算机10a,b中的一个特殊的运行状态。当一个控制计算机在任务B中时,除了所有输出被设置为零之外,该控制计算机执行实时过程控制程序(然而中止输出信号被设置成满额)。这个运行状态通过为操作人员提供一个保证新程序加载功能完整性的附加装置协助新过程控制程序实例的启动和检验。虽然在任务B中计算数字和模拟输出,但任务B控制计算机在所有时域中针对到达现场设备的输出提供零电压。任务B控制计算机中的中止输出被设置成满额以提供一个接地路径,从而防止执行任务B的控制计算机″停止″在受控装置中执行的制造过程。当操作技师从任务4开始任务B时,控制计算机执行启动诊断,执行任务C并且接着执行任务B。如果一个任务B控制计算机执行到任务D,则不会再次通过任务C,而是直接到任务D。虽然是在任务B中,但没有执行输出信号测试(即控制计算机中的监视程序既不执行DO测试也不执行AO测试)。如果任务F控制计算机诊断失败并且从属控制计算机在任务B中,则任务F控制计算机不会暂停。注意,如图13所述在SIL/SIP模式中通过DO守护在出现故障时对整个系统进行安全数字输出故障保护。如果一个控制计算机10在任务B中,则看门狗603将从属的任务F控制计算机当作独立的控制计算机对待(即看门狗603不暂停任务F控制计算机)。任务B控制计算机的过程单元步骤仲裁与任务D控制计算机的相同。根据左控制计算机到右控制计算机进行AI和DI仲裁,所以在右控制计算机中很好地执行了新程序加载。
在讨论AI和DI仲裁时,还应当注意到(如本说明书前面所述)对Baca,Jr.等人的美国专利5,583,757号中描述的模拟输入信号仲裁方法的修改;本说明书的图15,16,17,18和参照这些附图的讨论概述了针对上述专利公开的信息的修改。在这点上,图15和图18提供了对美国专利5,583,757号内的图8(c)和8(h)的修改,其中修改了当一个控制计算机处于任务B时输入信号仲裁中的某些条件逻辑。
在最优实施例中,各个输入和输出(I/O)信号以及过程控制数据库中某些其它类型的变量具有一个被编程工程师在应用源代码产生期间定义的附属改变许可数值。改变许可数值允许或禁止通过人机接口触摸板对实时执行的过程控制程序的数据库中一个具体变量进行修改。有时需要替换这个I/O信号功能,并且此时相应提供一个软中止物理按键;然而应当注意,在最优实施例中不使用按键替换过程单元步骤切换的改变许可。作为操作过程的方式和纪律,在责任人的监管下安全地维护软中止物理按键。当软中止物理按键被按下时,所有I/O改变许可数据数值被设置成1。这允许所有其数值得到一个通常禁止操作技师使用接口改变数值的程序保护的输入和输出信号,和没有得到保护的输入和输出信号处于人工控制状态。一旦恢复了软中止物理按键,则改变许可数据数值被恢复到编译时的状态。当通过MCU或操作员控制台52和美国专利5,519,603;5,428,745;5,561,770;5,568,615;和5,631,825号中描述的附属HSI实现任意编程保护的安全替换时,使用软中止物理按键。当使用时,软中止物理按键激活控制程序中一个适用于系统的两个控制计算机10a,b的调用。逻辑还提供过程单元步骤改变许可以防止通过MCU或SCU将一个SEQUENCE人工放入某个过程单元步骤中,并且编程工程师在应用程序产生期间也定义这些过程单元步骤改变许可。
在来自应用程序的控制程序的执行中明确计算中止信号(DA)(编程工程师分别并且明确地定义中止信号以便处理期望替换逻辑和电路以便有条件地将特定输出信号电压短路接地的某些情况)。中止信号被表示成一种数字输出信号,该信号被连到一个开关,上述开关使一个具体输出信号接地,并且在激活时,一个DA产生一个断路,这种断路消除现场设备与信号相关的电子能量,从而强制现场设备进入在计算时为其指定的故障位置。但是当数据库中中止信号具有一个″0″或″FALSE″数值时在最优实施例中中止信号被表示成一个非零高电压,并且当数据库中中止信号具有一个″1″或″TRUE″数值时在最优实施例中中止信号被表示成一个零电压;并且在数值计算之后立即把电压设置到开关上。这种中止信号处理不同于其它数字输出的处理,在最优实施例中上述其它数字输出在数据库具有一个数值″1″或″TRUE″时被表示成非零高电压,在数据库具有一个数值″0″或″FALSE″时被表示成零电压;在DOOUT Hz1步骤2558中将电压设置到开关上。通过为一个DA保护的所有连接输出提供一个接地路径,被了一个第二硬件中止按键来替换中止信号(替换编程DA安全动作)。在最优实施例中,按照与软中止按键类似的方式在责任人的监管下安全地维护硬中止物理按键。还应当注意,在最优实施例中,模拟和数字输出信号程序和电路为那些不存在(未被编译译码器识别)但位于确实存在的板子上(并且编译译码器已经为其建立一个存在状态位)的通道输出一个零信号。并且在最优实施例中在任意的Hz1,Hz10,或Hz100中计算和驱动中止信号及其附属数字输出。
提供一个检查以保证在用于最优实施例的控制计算机中启动仅涉及授权源代码程序的机器操作代码。为控制计算机提供一组切换开关,这些开关被用来提供一个涉及具体冗余配置控制计算机对的特定识别签名位模式。如果开关定义的数据数值与控制工程师编写的应用程序实例中指定并且被编译译码器定义到具体数据位置上的从属数值不匹配,则控制计算机10不能全部启动任务B或任务D操作模式的执行(并且隐含包括任务E或任务F)。控制计算机实现的控制程序在开始时验证应用程序实例中指定的从属数值与开关定义的数据数值匹配。如果这些数值不匹配,则控制计算机执行一个任务4并且向加载过程中使用的接口显示一个差错代码。
在提供一个过程控制系统和一个安全关机系统以作为一个集成混合系统时,通过在系统总体逻辑中实现一组技术来实现混合系统(a)控制可预测操作并且(b)在(1)涉及混合系统安全域和方面的功能与(2)涉及混合系统通用过程控制域和方面的功能之间提供有效逻辑独立的能力;在这点上,技术组合中不同个体技术的共同执行在确认系统整个可接受性和实用性方面达到必要的严密性,但单个技术经常以相对独立于其它技术的方式执行,并且在许多情况下可以按照任意顺序执行,只要各个技术的执行频率足够在总体系统中由单个技术解决的各个方面达到可接受的可预测性。通过以传统逻辑电路形式表示的逻辑实现某些技术,通过由实时CPU 12执行完成的逻辑实现其它技术,并且通过在编译译码器中完成的逻辑实现另外一些技术,其中编译译码器将应用程序源代码的一个实例转换成一个由控制计算机执行的相应机器操作代码实例。为了进行讨论,本说明书中的技术被组织成包括以下操作的通用类别(1)每当初始化任务D,任务E,任务F(或有条件的任务B)时各个控制计算机执行的启动诊断;(2)当任务D,任务E,任务F(或有条件的任务B)在完成初始化之后实时执行Hz1循环的同时各个控制计算机执行的运行时刻诊断,上述诊断涉及确认(a)启动诊断验证的条件继续可接受并且(b)输入和输出信号可以使用;(3)比较影像存储器和普通存储器数值;(4)执行主动冗余控制的两个控制计算机10a,b之间的过程单元步骤仲裁和调整;(5)当任务D,任务E,任务F(或有条件的任务B)在完成初始化之后实时执行Hz1循环的同时各个控制计算机执行的运行时刻诊断,上述诊断涉及确认编程工程师打算使用的应用程序机器操作代码就是正在使用的应用程序机器操作代码;和(6)在(a)涉及混合系统安全域和方面的功能和(b)涉及混合系统通用过程控制域和方面的功能之间强制独立和″必要的域隔离″。
读者应当注意,由于空间利用方面的考虑在图13A,13B,21A和21B中没有遵循图3A-12中使用的线路图符约定。
图21A和21B提供了一个有关最优控制计算机的模块流程图,其中示出了在执行诊断方法时对于一个经认证系统在满足可编程电子安全系统功能安全国际标准(IEC 61508)的要求的环境中使用控制系统实现可靠和安全的操作具有重要性的部件。
一个诊断子集被标识成启动诊断,其中各个控制计算机在通过任务C初始化任务D,任务E,任务F(或有条件的任务B)时执行上述启动诊断。应当注意,一个应用程序的″启动″与基础系统引导的不同之处在于涉及一系列实时启动应用程序具体实例的执行的操作。在这点上并且参照图21A和21B,控制计算机10a,b执行下列测试,其中下列任何测试的失败均导致具体控制计算机实际上没有能力进入任务F,任务E,或任务D状态通过每当在任务C期间启动CPU 12时计算涉及存储器内容的校验和来验证控制计算机程序存储器。通过每当在任务C期间启动CPU 12时计算涉及存储器内容的校验和来验证控制计算机Q存储器108,593。
如果在源应用程序中声明一个SIP数据逻辑数值则验证SIP(安全完整性程序)影像存储器板在安装时是否存在。在这点上,一个实施例中对SIP应用程序指示符的声明产生一个对所有硬件的检查以确认符合SIP要求的硬件处于使用状态(在实施例也支持使用不符合SIP要求的硬件执行一个未指定具有SIP部分的应用程序中的机器操作代码的结构的情况下)。
通过一个每当在任务C期间″启动″CPU 12时检查SIP加载信号灯是否正确的测试确认涉及所有存储器中正确加载的状态。当加载助理向控制计算机加载一个新应用程序时,如果所有涉及加载助理之间运行的测试的完整性测试均已通过,则SIP加载信号灯位置被初始化成5555并且被加载助理改变成AAAA,其中加载助理从网络50上一个机器操作代码源计算机向控制计算机10传送应用程序。LSI(低速接口)或HSI(高速接口)的任意读取访问均将位置数值修改到5555以防止通过一个加载系统进行捕捉和重新加载;这种操作必须使用经认证的加载软件(驻留在一个外部系统中)以符合控制计算机中其它功能要求的方式加载新机器操作代码。
如图9A和9B所示每当在任务C期间启动CPU 12时检查基于比较器电路999的程序和程序影像存储器16比较器的输出。
如图11A和11B所示,每当在任务C期间启动CPU 12时检查基于比较器电路999的数据和数据影像存储器14比较器的输出。
如图12所示,每当在任务C期间启动CPU 12时检查基于比较器电路999的Q&C存储器和Q&C影像存储器36比较器的输出。由于C&D存储器比较器的输出被连接到D-存储器比较器的输出,所以D-存储器比较器的故障也触发这个差错代码。
每当在任务C期间启动CPU 12时针对一个适合于SIL操作的正确软件版本指示符验证ROM 906,910。在最优实施例中使用EPROM技术实现ROM 906,910。
在任务C中执行的逻辑通过查询一个模拟状态验证指示符防止一个模拟程序在工厂过程控制系统中未经验证的启动。
在某些环境中,如果在PROLINK Hz1步骤2562期间没有足够时间进行链接,则任务F计算机在1秒(1个Hz1循环)的有限时间内不在装置84的控制中执行全部的Hz1循环。在一个F任务计算机向一个C任务计算机传送数据期间,F任务CPU 12不控制过程,但向C任务CPU 12发送启动数据。如果在前面的启动尝试期间任务F计算机挂起过程控制,则两个启动尝试之间的时间必须不小于1分钟。
将控制计算机10的数据库中的CPU ID与一个针对相同数值的物理开关设置进行比较以保证控制计算机的期望用途和已经加载的应用程序相互一致。
验证两个过程计算机中的CPU左/右开关被设置到相反数值上以便两个左过程计算机或两个右过程计算机不试图在装置84上执行控制。
将各个过程计算机的活跃链接列表与其相邻过程计算机的链接列表相比较以保证编译译码器和操作系统的版本匹配。
比较编译译码器和过程计算机操作系统的版本标识符是否相同。
将ROM(EPROM)的适当版本标识符与已加载应用程序的数据库中的版本号进行比较。
一个第二诊断子集被标识成运行时刻诊断,其中各个控制计算机在已经建立任务D,任务E,任务F(或有条件的任务B)中的操作之后执行上述运行时刻诊断。在这点上并且继续参照图21A和21B,控制计算机10a,b均执行下列测试,其中在满足可接受性要求方面的″失败″导致任何产生所示动作的下列测试。
处理器,索引中断&CPU支持测试(a)在主CPU 12寄存器(A,E,MA,X,字节交换)和总线(B,PM,PC,MA)上进行一个移动位测试并且(b)测试一个旋转SEQUENCE中的所有主要指令。当两个控制计算机10a,b按照主动冗余方式执行过程控制时,在8个子集(参照图42A和42B)中按照大约(但通常不低于)每5秒一次的频率执行上述全部诊断。当一个控制计算机10执行过程控制时,按照大约(但通常不低于)Hz1的频率执行这个诊断。当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了Q存储器108诊断。
在应用程序源代码被转换成机器操作代码时计算Q存储器108的一个典型校验和并且将其与编译译码器计算的一个附属校验和相比较。按照每4小时至少一次的频率执行这个诊断。如果存在一个邻居控制计算机,当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了P存储器906,801诊断。
在应用程序源代码被转换成机器操作代码时计算P存储器906,801的一个典型校验和并且将其与编译译码器计算的一个附属校验和相比较。按照每4小时至少一次的频率执行这个诊断。如果存在一个邻居控制计算机,当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了看门狗603暂停线路诊断。
监视看门狗603暂停线路的故障。当发出一个CLK HLT时控制计算机10中的看门狗603通过数据总线18与CPU 12通信。每秒检查一个状态字以确定是否已经尝试暂停看门狗603。如果看门狗603试图暂停CPU 12并且CPU 12继续执行,则CPU 12会通过在数据总线18上传送的状态字标识暂停决定。按照至少Hz1的频率执行这个诊断。当这个诊断确定存在一个问题时,控制计算机10暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了自诊断。
这个逻辑监视通过定义所有实时测试的一个签名数值设置的自测试的成功执行。将实时签名数值与一个固定值(定义可接受状态)相比较。按照至少Hz1的频率执行这个诊断。当这个诊断确定存在一个问题时,控制计算机驱动的所有数字输出均被降到故障保护模式中。
在下面关于功能选择线路诊断的诊断集合中(参照图43A和43B),当两个控制计算机10a,b按照主动冗余方式执行过程控制时,按照大约(但通常不低于)每5秒一次的频率执行上述诊断。当一个控制计算机执行过程控制时,按照大约(但通常不低于)Hz1的频率执行诊断。当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了Can地址线路(5301,5306)诊断。
各个Can母板具有一个DIP开关1399,这个DIP开关安装的位置与Can ID 1307相同。开关1307的设置产生一个通过电阻器网络的电压。控制计算机中执行的逻辑读取电压并且将其与期待数值相比较。
下列段落讨论了I/O板地址线路(5302,5307)诊断。
这个测试检查各个Can的母板上的所有10个板地址,读取通过板地址DAC 1908产生的电压并且将其与期待数值相比较。
下列段落讨论了DI板选择解码器(5302,5307)诊断。
使用I/O板地址测试验证DI板选择解码器1405的正确功能。这个测试还检测DI板选择线路之间的短路。
下列段落讨论了I/O通道地址线路(5303,5308)诊断。
这个测试检查各个中间板689,684上的所有13个通道地址,读取通过通道地址DAC 1501产生的电压并且将其与期待数值相比较。
下列段落讨论了5V DATAIN比较器测试诊断。
使用I/O通道地址测试(5303,5308),通过在发生从低于5V的通道地址到5V以上的第一通道地址的跃迁时检查比较器1398的输出中的偏移来验证5V DATAIN比较器1399的正确功能。
下列段落讨论了D1线路(5304,5309)诊断。
这个测试对D1线路进行一个回送测试。D1线路是最低有效设备选择线路并且主要被用来驱动所有DO和图形灯。
下列段落讨论了A/D转换器(5305,5310)诊断。
这个测试通过MUX 1912执行一个增强D/A和A/D转换器回送测试。根据时钟的秒和分钟导出用于回送测试的电压,所以电压每秒发生变化以保证为A/D转换器故障检测提供多个数据组合。
下列段落讨论了功能选择线路(部分5305,5310)诊断。
使用A/D转换器测试检测功能选择线路上的阻塞故障。使能MUX1912的功能选择代码被反转成MUX 1910的功能选择代码。
下列段落讨论了非法DO地址诊断。
如果寻址中间684,689上的一个非法DO板,则锁存器电路1302检测到不可接受的寻址。在Hz1中读取输出。按照至少Hz1的频率执行这个诊断。当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
在下面涉及DA现场短路诊断的诊断中,当诊断技术确定一个异常的存在时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量,在一个实施例中中输出一个报警和/或打印消息,并且数值被自动传送到其它系统。
下列段落讨论了看门狗603状态诊断。
为了验证看门狗603是否正确运行,″读取″看门狗603的心跳。按照至少Hz1的频率执行这个诊断。
下列段落讨论了远程现场单元RSTAT的诊断。
扫描各个远程现场单元的状态数值以便确定模拟和数字诊断数值和一个远程现场单元314诊断报警。按照每分钟至少一次的频率执行这个诊断。
下列段落讨论了串行图形ADIAG的诊断。
扫描涉及串行图形系统的状态数值以确定摘要数字诊断数值,任何难度性质,和一个串行图形诊断报警。
下列段落讨论了这个Can的功率诊断。
在母板681,682上测量各个Can的左供电线上的Can供电电压。通常从这个Can电源向左供电线供电。如果电压不在26和30伏之间则点亮一个图形灯。按照至少Hz1的频率执行这个诊断。
下列段落讨论了下一个Can的功率诊断。
通常从″这个″Can电源向左供电线供电。在母板681,682上测量各个Can的右供电线上的Can供电电压。通常从″下一个″Can电源(邻居Can)向右供电线供电。如果电压不在26和30伏之间则点亮一个图形灯。按照至少Hz1的频率执行这个诊断。
下列段落讨论了Can电池诊断。
在母板681,682上测量各个Can的左供电线上的Can供电电压。通常从″这个″Can电源向左供电线供电。
如果电压超过一个坡度阈值基准数值则点亮一个图形灯。按照至少Hz1的频率执行这个诊断。
下列段落讨论了AC功率诊断。
各个CPU 12监视从一个供电监视器板产生的AC功率信号。按照至少Hz1的频率执行这个诊断。
下列段落讨论了AI比较和仲裁诊断。
在Hz1中比较左和右AIF数值。在有差异的情况下,选择故障保护数值并输出到装置84的控制设备。也考虑板故障。以至少Hz1的频率执行这个诊断并且报告一分钟内涉及任何具体模拟输入信号的情况。
下列段落讨论了DI比较和仲裁诊断。
在Hz1中比较左和右AIF数值。在有差异的情况下选择安全数值。也考虑板故障。按照至少Hz1的频率执行这个诊断。以至少Hz1的频率执行这个诊断并且报告一分钟内涉及任何具体数字输入信号的情况。
下列段落讨论了AO跟踪比较和仲裁诊断。
在Hz1中比较两个计算机10a,b的计算AO数值和测量AO跟踪(AOT)数值。在有差异的情况下选择较高的AOT数值。以至少Hz1的频率执行这个诊断并且报告一分钟内涉及任何具体模拟输出跟踪信号的情况。
下列段落讨论了DO跟踪比较和仲裁诊断。
在Hz1中比较两个计算机10a,b的计算DO数值和测量DO跟踪(DOT)数值。在有差异的情况下选择较高的DOT数值。以至少Hz1的频率执行这个诊断并且报告一分钟内涉及任何具体数字输出跟踪信号的情况。
下列段落讨论了DA跟踪诊断。
在Hz1中比较计算DA数值和在DA晶体管(AOT)上测量的相应电压降。以至少Hz1的频率执行这个诊断并且报告一分钟内涉及任何具体DA信号的情况。
下列段落讨论了AO测试诊断。
使用一个模拟信号,在80ms中使用5%的步进变化验证各个AO通道修改其输出的能力。以至少Hz1的频率执行这个诊断并且报告一分钟内涉及任何具体模拟输出信号的情况。
下列段落讨论了DO测试诊断。
使用一个50us测试脉冲验证各个DO通道改变输出状态的能力。以至少Hz1的频率执行这个诊断并且报告一分钟内涉及任何具体数字输出信号的情况。
下列段落讨论了DA现场短路诊断。
测量各个通道的数字中止晶体管上的电压降,其中在各个通道中应用程序定义了一个具有FALSE数值的数字中止变量(正常状态为晶体管导通)。一个低电压指示一个短路晶体管或现场中一个接地短路。按照每分钟至少一次的频率执行这个诊断。
下列段落讨论了硬件中止按键诊断。
在READKEY 2538中监视各个Can中硬件中止按键的电压降。在Hz1中执行这个诊断并且每3分钟至少报告一次。当这个诊断技术确定存在被发出以中止替换控制计算机决策的中止按键时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量,并且可选输出一个报警和/或打印消息。
下列段落讨论了Can I/O板诊断。
在Hz1中,在VREF 2516内测试所有定义的I/O板。如果一个板无法响应,则一个对应的板问题位被设置成TRUE。按照至少Hz1的频率执行这个诊断。如果超过固定数量(2)的板出现故障,控制计算机10暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了MCU地址诊断。
验证MCU指向Fox和Dog计算机中的相同地址。按照至少Hz1的频率执行这个诊断。如果地址不同则MCU变成″只读″。
下列段落讨论了MCU VREF测试诊断。
在MSIVAL 2525中读取MCU和SCU小键盘的5V供电电压并且与一个阈值比较。按照至少Hz1的频率执行这个诊断。如果供电电压偏差得无法接受则SCU变成″只读″。
下列段落讨论了CPU离线诊断。
验证相邻CPU 12a/b是否在线。按照至少Hz1的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。每秒150次检查成员(相邻)的损失,并且连续3次发现相邻丢失就确定一个CPU离线状态。类似地,相邻CPU的返回需要连续3次发现相邻CPU的出现以实现CPU在线状态。
下列段落讨论了主链接故障诊断。
检测并指示主链接324问题。按照至少Hz1的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了主链接超时诊断。
针对链接活动将全部用完或几乎所有可用时间将被用完,以及一个链接超时已发生或可能发生的情况定义一个指示。按照至少Hz1的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了主链接通信重试诊断。
记录主链接324通信故障和重试的数量并且使得数据可被控制计算机完好状态监视器使用。按照至少Hz1的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了Hz100过载诊断。
指示Hz100过载并且使信息可被用于控制计算机完好状态监视器。按照至少Hz1的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了Hz10过载诊断。
指示Hz10过载并且使信息可被用于控制计算机完好状态监视器。按照至少Hz1的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了Hz1过载诊断。
指示Hz1过载并且使信息可被用于控制计算机完好状态监视器。按照至少Hz1的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机10的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了Hz1剩余时间诊断。
指示在Hz1已经结束之后的剩余时间。按照至少Hz1的频率执行这个诊断以便为具体系统实例定义一个基准资源数值。
下列段落讨论了链接剩余时间诊断。
从允许的时间中减去用于仲裁(ARBLINK 2526)的时间以确定差值(或″剩余时间″)。按照至少Hz1的频率执行这个诊断以便为具体系统实例定义一个基准资源数值。
下列段落讨论了存储器诊断。
通过在4个存储器位置中存储数据,向那些位置写入一个测试模式,为进行比较读取测试模式,并且接着将初始数据回写到位置上执行一个存储器测试。按照每24小时至少一次的频率在任何存储器位置上执行这个可选诊断(由编程工程师在应用程序中明确选择)。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了CPU温度诊断。
使用供电板上的一个温度传感器读取CPU 12温度。按照至少Hz1的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了可编程图形诊断。
通过一个数据通信信号交换验证全部可编程图形处理器正在执行。按照每2分钟至少一次的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了串行图形诊断。
通过监视数据信号灯检测串行图形硬件和通信故障。按照每2秒至少一次的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了从第一″控制计算机″到″控制计算机″的通信诊断。
″在每个″控制计算机″到″控制计算机″端口上进行回送测试。按照每2秒至少一次的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机10的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了从第二″控制计算机″到″控制计算机″的通信诊断。
通过单独的消息指示任何操作中的故障(无响应,差值L/R)。按照每2秒至少一次的频率执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了从控制计算机到处理信息系统的通信诊断。
指示控制计算机到处理信息系统的通信问题或其它串行数据通信问题。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
在下面的远程现场单元314诊断直到远程现场单元DI短路接地诊断中,当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。当使用时,远程现场单元314(如美国专利5,428,769号所述)根据涉及异常的数据数值传送采取适当动作维护安全操作。
下列段落讨论了远程现场单元通信诊断。
指示远程现场单元314通信问题。按照每2秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元供电诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314供电问题。按照每6秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元FIO控制器诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314 FIO控制器问题。按照每6秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元AI板诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314 AI板问题。按照每6秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元DI板诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314 DI板问题。按照每6秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元AO板诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314 AO板问题。按照每6秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元DO板诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314 DO板问题。按照每6秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元输入仲裁诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314输入问题。按照每秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元输出仲裁诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314输出问题。按照每秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元FIO(现场输入/输出)控制器相邻通信诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314 FIO相邻通信问题。按照每6秒至少一次的频率执行这个诊断。
下列段落讨论了控制计算机-远程现场单元输出通信诊断。
通过评估从远程现场单元314传送的一个数据数值指示控制计算机-远程现场单元314输出通信问题。按照每秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元AO/DO环路阻抗诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314 AO/DO环路阻抗监视检测到的问题。按照每6秒至少一次的频率执行这个诊断。
下列段落讨论了远程现场单元DI短路接地诊断。
通过评估从远程现场单元314传送的一个数据数值指示远程现场单元314 DI的短路接地造成的问题。
下列段落讨论了A/D转换器(ADC)和D/A转换器(DAC)诊断。
使用模数转换器电路607读取各个母板681,682上的28v Can供电电压。使用使用605和VREF比较器1397进行相同的测量。比较测量数值以确定是否在预定容差范围内。每秒执行这个诊断。当这个诊断技术确定存在一个异常时,在控制计算机的数据库中改变一个被编程工程师使用的状态变量并且可选输出一个报警和/或打印消息。
下列段落讨论了看门狗603的程序流监视诊断。
编译译码器将里程碑指令插到Q-列表中。看门狗603监视执行这些里程碑的正确顺序和定时。按照至少Hz1的频率执行这个诊断。当这个诊断确定存在一个问题时,如果相邻计算机活跃便暂停控制计算机。
下列段落讨论了各个母板上的D/A和A/D转换器回送测试诊断。
这个测试通过一个与多路复用器接口母板有关的信号进行一个增强D/A和A/D转换器回送测试,其中不通过中间板684,689发送上述信号。根据时钟的秒和分钟导出用于回送测试的电压,所以电压每秒发生变化以保证检测到所有类型的A/D转换器故障。当这个诊断(每秒执行)确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出在2秒检测内均被降到故障保护模式中。
下列段落讨论了所有母板上的A/D转换器(ADC)和D/A转换器(DAC)诊断。
如果所有母板上的D/A和A/D转换器回送测试出现故障,控制计算机10暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了5V CPU供电电压诊断。
通过使用计算机供电板上的一个硬件比较器验证5伏供电电压在容差范围(±5%)内。按照至少Hz1的频率执行这个诊断。当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机10驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了CPU Can电压诊断。
通过使用供电板上的一个硬件比较器验证CPU Can供电电压>21.6V。按照至少Hz1的频率执行这个诊断。当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机10驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了CPU 60Hz时钟或晶振诊断。
使用实时时钟锁相环比较CPU 12时钟和实时时钟以确定在一个预定容差范围内。按照至少Hz1的频率执行这个诊断。当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了L/R DIP开关诊断。
如果向系统声明两个左或两个右计算机并且主链接工作,则一个(任务Dog)控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机驱动的所有数字输出均被降到故障保护模式中。
下列段落讨论了从″控制计算机″到″控制计算机″的通信诊断。
一个可选诊断可被应用程序用来监视重要″控制计算机″到″控制计算机″的通信链接并且在发生通信故障时暂停CPU 12。按照至少Hz1的频率执行这个诊断并且在连续出现预定数量之后这个诊断生效。当这个诊断确定存在一个问题时,控制计算机暂停其Hz1,Hz10,和Hz100循环的执行并且控制计算机10驱动的所有数字输出均被降到故障保护模式中。
图38A-54描述了执行和使用上述诊断的方式。在图38(使用图38A-38E)中,示出了作为存储器板和连接到系统的其它硬件″可以使用″的基础的启动诊断。在这点上,并且交叉参考图21A和21B中描述的元素,步骤4801(图38A中)使用WD表示看门狗603。在步骤4802中,术语Xsum P-mem表示对P-mem求校验和。P-mem表示程序存储器,在图21A和21B中P-mem包含图符801和906-P-mem区域的随机访问存储器和只读存储器。继续到图38B,步骤4804中的585表示包含P-mem的图21A和21B中描述的585板。由于586板所处的D存储器电路位置占用了图21A,21B,11A和11B中图符数据RAM 1012和影像数据RAM 1014的位置,步骤4805中的586板表示与图21A和21B中相同的板。继续到图38C,步骤4807引用一个Q存储器校验和,其中Q存储器在图21A和21B中位于587板上并且具有图符593和108。在图38C的步骤4808中示出的存储器比较器在图21A和21B被表示成图符1210,946和1074。继续到图38D,步骤4809引用″测试587 Q&C mem比较器reg″;这表示图21A和21B的587板,被表示成图符494,110,593和108的Q存储器108和C存储器110区域,和涉及存储器比较器1074的比较器寄存器。参照图38A,图39中进一步示出了步骤4802中的方法(进行校验和和程序RAM 906之间的比较)。参照图38C和步骤4807中描述的Q存储器校验和,图40示出了在启动诊断时执行这个具体步骤所使用的方法。
继续有关实时启动之后执行的诊断的讨论,图41A和41B示出了在Hz1循环环境中执行的诊断。在这点上,图41A,41B和图19之间的交叉比较利于理解被表示成VREF测试的步骤5107。这个方法由控制计算机执行的逻辑在图19的VREF Hz1步骤2516中执行测试。继续到图41A和41B的步骤5108,将A-D比较的入口与图19的步骤MONITOR对齐(Hz1步骤2524)。在图41A和41B中,步骤5113还示出并调整了图19中Hz1步骤2524所示的MONITOR操作。通过在图41A和41B的步骤5110中执行的MTHTST程序可以将图41A和41B的步骤5109中MTHTST入口与图19的Hz1步骤2554中的MTHTST入口相比较。图41A和41B的步骤5111中处理器测试的入口可以和图19的SELFDIAGN Hz1步骤2556相比较。在图41A和41B中,步骤5101和5102示出了两个用于处理处理器和索引卡测试的交替路径。如果一个控制计算机(即一个CPU 12)正在工作,或者如果一个控制计算机10a,b冗余集合正在工作,则以某种程度上不同的方式执行处理器和索引卡测试。图42A和42B中进一步描述这种情况,其中步骤5201开始执行涉及图41A和41B中步骤5101的程序,步骤5202扩充了图41A和41B中图例5102所示的步骤。如图42A和42B所示,不同处理器和索引卡测试涉及图21A和21B中分离和单个的卡上排列的寄存器。在图42A和42B上,步骤5203描述了图21A和21B中的CPU 12的SKBZ,SKBO和exec控制测试指令。在图42A和42B的元素5204和5205中,A寄存器,X寄存器和M寄存器对应于图21A和21B中被表示成图符2720,2712和2721的寄存器。类似地,在步骤5207和5208中,在索引中断板26上与CPU 12协作测试寻址模式。在图21A和21B中,MA Reg 2721与图42A和42B的模块5204,5205中的M-Reg和模块5207,5208中的MAR相同(在发明人的措辞中,″MA″所示的物理寄存器表示一种用途的″M-Reg″和第二种用于简化表示的″MAR″)。在图42A和42B的步骤5209和5210中,如图21A所示使用ALU 2790和E寄存器2713检查E寄存器,除法寄存器和乘法操作。在图21B的ALU 2725上执行步骤5213和5214的增强数学测试。进行步骤5211,5215,5217,5212,5216,和5218的″循环切换″测试以便在图21A的E Reg 2713和A Reg 2720上实现算术和逻辑位模式切换。
回到图41A和41B的讨论,步骤5101和5102中处理器和板测试的成功执行在从步骤5117开始执行的中间测试集合上终止;方案的性质仍然取决于一个或两个控制计算机是否正在控制装置84。在这点上,如步骤5103或5104所示执行中间测试。下面参照图43A和43B进一步讨论涉及步骤5103和5104的单个测试。在图43A和43B的步骤5311开始时详细描述了图41A和41B中的步骤5103,其中在一个唯一的控制计算机正在控制制造装置时完成所有五个中间测试;并且在图43B的步骤5306-5310中扩充如图41A和41B的步骤5104所述的中间测试轮换集合。在图46中进一步定义了在图43A和43B的步骤5301和5306中执行的测试。在图47中进一步定义了在图43A和43B的步骤5302和5307中执行的方法。在图49中进一步定义了在图43A和43B的步骤5303和5308中执行的方法。在图50中进一步描述了图43A和43B的步骤5304和5309实现的诊断。在图51中进一步描述了图43A和43B的步骤5305和5310实现的诊断。
如图43A和43B通过比较步骤5306-5310和步骤5301-5305所示,如果一个控制计算机可以用来受控装置84或如果有两个分离的控制计算机10a,b可用,则以不同的方式进行这些测试。参照图42A,42B,43A,和43B,当冗余系统可用时每隔若干秒就执行一次测试,以便在两个控制计算机10a,b按照主动冗余模式工作时有足够时间可以用来完成仲裁处理;当只有一个计算机可用时在各个Hz1循环的每一秒内均进行所有测试。
继续参照图41A和41B,在结束步骤5103或5104的中间测试之后,在步骤5112完成处理器测试并且查询中间守护选通。在图44A和44B中描述了这个具体测试的细节。参照图44A和44B,步骤表明根据″启动比较器中的中间读取″的指示激活中间读取比较器。图45中进一步示出了这个具体程序的细节。图45示出了中间板的访问。在这点上,并且如前所述,单个″Can″的母板将大部分守护电路排列在被称作中间板的板子上。继续图46的讨论,图46使用如步骤5602所示的方式执行的FSIPCN程序。在图47的步骤5702,图49的步骤5902,图50的步骤6002,和图51的步骤5601中示出了这个相同的程序。这个程序在图48中被示出并且执行这个程序以便在各个情况下确定相关的Can是否具有安全完整性编程(SIP)10板。在各个单独的中间板中图45中所述的MEZKIK程序也被称作子程序。在图46中,在步骤5601激活这个MEZKIK程序(图45的程序)。在图47中在步骤5701激活该程序。在图49中在步骤5901激活该程序。在图50中在步骤6001执行该程序。图41A和41B所述的自诊断以步骤5112和中间板的选通为结束;在执行MMZSTR或中间选通程序的图54中示出了自诊断的进一步的细节。图52示出了监视自诊断执行的监视程序,图53示出了一个确定是否应当通过使用图54的中间选通程序选通中间板的程序。该程序如涉及以下通用类别技术的细节描述所述(1)每当初始化任务D(或有条件的任务B)时各个控制计算机执行的启动诊断,和(2)当任务D,任务E,任务F(或有条件的任务B)在完成初始化之后实时执行Hz1循环的同时各个控制计算机执行的运行时刻诊断,上述诊断涉及确认(a)启动诊断验证的条件继续可接受并且(b)输入和输出信号可以使用。
如前所述,本说明书中的技术被组织成包括以下操作的通用类别(1)每当初始化任务D(或有条件的任务B)时各个控制计算机执行的启动诊断;(2)当任务D,任务E,任务F(或有条件的任务B)在完成初始化之后实时执行Hz1循环的同时各个控制计算机执行的运行时刻诊断,上述诊断涉及确认(a)启动诊断验证的条件继续可接受并且(b)输入和输出信号可以使用;(3)比较影像存储器和普通存储器数值;(4)执行主动冗余控制的两个控制计算机10a,b之间的过程单元步骤仲裁和调整;(5)当任务D,任务E,任务F(或有条件的任务B)在完成初始化之后实时执行Hz1循环的同时各个控制计算机执行的运行时刻诊断,上述诊断涉及确认编程工程师打算使用的应用程序机器操作代码就是正在使用的应用程序机器操作代码;和(6)在(a)涉及混合系统安全域和方面的功能和(b)涉及混合系统通用过程控制域和方面的功能之间强制独立和″必要的域隔离″。
在实现技术和类别3时,在影像存储器系统和通常使用的存储器数值之间进行的比较(前面第三项)是提供安全关机系统投入使用所必需的可预测性的重要因素。在这点上,图9A-12和3A及其附属讨论示出了比较器和差错信号锁存电路实现方面的细节。
在实现技术和类别4,即完成主动冗余控制的两个控制计算机10a,b之间的过程单元步骤的仲裁和调整时,在其完成主动冗余控制时在两个控制计算机10a,b之间仲裁和调整过程单元步骤。如前面SEQUENCE的定义所示,过程单元步骤(一个具体SEQUENCE的属性)有助于控制程序精确判定附属处理单元在任意具体时刻所处的状态。所以其数值使得根据正在接受控制的处理单元的状态是否一致来调整对上述具体处理单元进行主动冗余控制的两个控制计算机10a,b。为此,使用一个非常类似于针对模拟输入讨论的仲裁机制的仲裁机制在过程单元步骤中维护这个调整,其中上述过程单元步骤在两个控制计算机中被定义成活跃状态。该方案使用如美国专利5,583,757号所述的相同链接,按照与交换模拟输入或数字输入的数据相同的方式实际交换涉及各个正在接受控制的具体SEQUENCE的步骤属性的数据,并且使用一个应当可以理解的协议保证两个控制计算机10a,b在处理单元的适当步骤方面有相同的观点。注意,这里针对所定义的各个SEQUENCE定义了一个过程单元步骤,所以(象在实现中常见的那样)在两个控制计算机之间仲裁一组等于定义的SEQUENCE的数量(由于一个SEQUENCE在任意实时时刻总是具有唯一一个活跃过程单元步骤)的过程单元步骤。
另一个特性(技术和类别5)是在各个控制计算机执行Hz1循环时在各个控制计算机中执行运行时刻诊断,上述诊断涉及确认编程工程师(最初监管为实现装置84的控制而开发的逻辑)打算使用的应用程序机器操作代码实际上是被载入控制计算机的机器操作代码。在这点上,一个控制计算机510可以在其实时循环的执行期间通过某些手段修改其内部机器操作代码,其中通过使用一个维护接口面板控制实时计算机的本领域的技术人员通常可以理解上述手段。提供一个功能,该特性防止使用以不受编译译码器控制的任意方式修改过的机器操作代码。通过使用一个诸如CRC(循环冗余检查)的校验和实现这个功能,其中由编译译码器在第一次产生机器操作代码时产生上述校验和。后来在作为机器操作代码加载处理的一部分将控制计算机程序第一次加载到任务4中时将这个校验和载入控制计算机。当控制计算机退出任务4时,控制计算机针对不变的机器操作代码计算一个全面的校验和;并且在进入任务D,任务E,任务F或任务B之后控制计算机按照各个Hz1循环增量计算某个被载入其存储器中的校验和部分。在不超过三个小时的一段时间之后,处理全部不变机器操作代码以便计算出一个动态重新确定的校验和,这个校验和应当与控制计算机在加载时存储的校验和相同。接着根据最初加载的校验和与动态重新确定的校验和的比较结果暂停一个计算机中的Hz1循环,Hz10循环和Hz100循环的执行,其中在上述计算机中最初加载的校验和(根据编译译码器对机器操作代码的分析来加载)和动态重新确定的校验和(在控制计算机内部实时计算)之间有偏差。
最终的按键功能(技术和类别6)涉及使用逻辑安全域在涉及系统安全域的功能和涉及通用过程控制域的功能之间进行逻辑域隔离。在这点上,一部分控制程序机器操作代码具有一个防止操作技师随时修改的变量集合并且所有SIP变量被包含在这个集合中。在编程工程师或受控装置84的最终管理责任人的监管下使用一个软中止按键替换这个功能,但仅在情况非常特殊并且在非常有经验的人员的监视下才使用这种按键。
除了上述防止在编译时修改机器操作代码的系统之外,使用一个阻止除一个非常有限的特定位置集合的所有存储器写入的固件程序防止通过底层控制台修改机器操作代码。应用程序被分成两个域一个通用控制域(具有至少一个文件)和一个SIP控制域(具有至少一个文件)。如上所述,SIP文件具有一个涉及其源内容的校验和,并且使用SIP规则集合编译SIP文件。
最优实施例使用一个数字系统在装置84动态执行其功能时对装置84进行自动控制和保护。下列步骤概括了装置84的控制方案。
过程控制操作系统内部的操作步骤动作
1对装置84的测量进行采样。这是″数据抽样″按照一个Hz1,Hz10,或Hz100循环的时间间隔进行处理测量;并且接着将测量转换成控制计算机的数据库中的″输入数据″(应用程序明确定义了Hz10和Hz100输入和输出)。
2 使用控制计算机的数据库中的输入数据计算新输出条件并且将新输出条件当作″输出数据″更新数据库。
3 根据数据库中的新″输出数据″将″输出数据″转换成被传递到装置84中的控制单元的输出信号(以便修改装置84的属性)。输出信号规定所有传动装置的位置。
4 等待适当预定时间间隔的开始(即没有限制,Hz1为1秒,Hz10为.1秒,Hz100为.01秒)并且在操作步骤1″启动″。
表1在上述模型中,针对进出控制计算机数据库的输入和输出通过按照时间高度的计算机任务围绕一个数据库建立最优实施例。在这点上,存在一个用受控装置84实时状态的新样本更新数据库的不同时刻;在整个采样间隔内保持这个状态并且不进行更新,直到下一个循环到达。在表2和3中进一步解释了这个模型的术语″输入″和″输出″在最优实施例过程控制系统的环境中的意义。
输入 来自 数据现场(装置84中的传感器)AI,DI操作人MCU,SCU,操作员控制台通过过程控制系统进行″数据写入″(参考美国专利5,568,615;5,519,603;5,428,745和5,631,825号)通过网络控制器控制计算机的控制计算机AC,DC在计算机数值输入之外(例如一个先进控制系统)TA,TD
表2OUTPUTS Out-to Data现场(装置84中的控制单元)AO,DO,DA(中止信号)操作人报警,图形,操作员控制台流程图,通过(例如)打印机的事件消息控制程序 AC,DC,延迟时间计数(″计算机实现的′煮蛋定时器),过程单元步骤(通用过程控制域),SSTEP(SEQUENCE中对应数字标识符为SSTEP索引数值的当前过程单元步骤),Hz1循环中计算的通用状态和条件(这个数值与用于下一秒的控制决策的输入数据集互补)。
表3现在参照图55,其中描述了涉及应用程序走向的总体Hz1控制循环。在这点上,′输入′6601表示装置84中处理工厂传感器的输入样本。′输出′6603表示更新硬件AO,DO和DA以便修改装置84中控制单元的状态。′进入′6604到控制程序是操作所依据的数据集合,表示来自″这一秒″间隔的输入数据,常量和来自″前一秒″的计算结果(输出数据)。从控制程序′出来′6605是来源于表3的输出数据。在控制计算机中执行的机器操作代码的不变部分如生产工厂控制程序6606所示。
图55描述了通用模型;大型装置(诸如,没有限制,一个化学处理工厂)的整体自动化方案需要将整体分割成虚拟基准域以便人们意识到在操作决策方面或在开发进一步被编译成控制计算机实现的逻辑的应用程序时的软件源代码结构方面需要综合全面的考虑。在实现这个任务时,在较小的处理设备域的环境中将装置84称作″处理单元″(在最优实施例应用程序中被表示成SEQUENCE)以便分别为其定义一个操作过程。最优实施例应用程序术语SEQUENCE与操作这种″处理单元″的连续过程相关。″处理单元″的例子是″单元操作″(即执行诸如″蒸馏″或″裂解″的″单元操作″的″蒸馏塔″或″裂解炉″″处理单元″);″处理单元″的另一个例子是诸如″酯化反应器″的″单元处理″,其中可以包含若干个″单元操作″。在执行一个处理单元的实时操作时,(a)需要进行若干时间相关的活动将装置84中的设备带到一个有用并且动态稳定的生产(″运行″)状态,并且(b)需要进行若干时间相关的活动将装置84中的设备从″运行″状态带到一个″完全停止″状态。在被定义成过程单元步骤形式的SEQUENCE属性的增量状态实例中执行这些操作过程。所以过程单元步骤标识一个SEQUENCE在某个具体时刻完成的活动。单个处理单元的操作必须实时协同。在这个环境中SEQUENCE过程单元步骤是重要的。处理单元的SEQUENCE使用其过程单元步骤状态相互通知其当前活动。当其SEQUENCE通过被用来在一个扩展时间段上操作装置84的总体操作过程时过程单元步骤发生改变。这意味着在执行全部受控装置的操作过程的数字控制计算机的离散世界中必须认真规定过程单元步骤从第一个过程单元步骤实例改变到后续过程单元步骤实例的时间。
图56用″处理单元″概念修改了图55的模型。图56描述了涉及应用程序的总体Hz1控制循环。在这点上,′输入′6701表示装置84中处理工厂传感器的输入样本。′输出′6703表示更新硬件AO,DO和DA以便修改装置84中控制单元的状态。′进入′6704到控制程序是″借以工作″的数据集合。它表示来自″这一秒″间隔的输入数据,常量和来自″前一秒″的计算结果(输出数据)。从控制程序′出来′6705是来源于表3的输出数据。SEQn6706,SEQ2 6707,和SEQ1 6708中的SEQ表示应用程序中的不同SEQUENCE以便引入″处理单元″概念。通过比较图55和图56的模型,唯一的修改是将生产工厂控制程序(通过控制计算机执行的逻辑表示的应用程序)分成SEQUENCE。但是就定义一个具体数据逻辑对象将通常认识到的虚拟概念表示成控制计算机数据库(即,通过处理单元实现″单元操作″或″单元处理″的传统概念,其中处理单元对应于编程工程师在定义被编译成控制计算机10的机器操作代码的应用程序时使用的SEQUENCE数据对象)的意义而言,变革是深刻的。
如图57所示,具体涉及如图56所述的Hz1执行中的SEQUENCE的控制计算机执行逻辑被串行执行;SEQUENCE通常不是交换方式的′分时′计算机资源,而是以在一个实时控制系统中实现过程性逻辑专家系统的串行方式执行其单独的逻辑集合然而在这点上Hz10和Hz100操作中断了Hz1 SEQUENCE操作-Hz1循环以涉及其它Hz1活动的非交换方式继续执行。在Hz1循环中,首先分配计算机资源执行SEQUENCE(SEQUENCE)6708的过程,并且在结束时为SEQ2(SEQUENCE)6707分配计算机资源,等等。
对图57的研究指出,如果SEQ(SEQUENCE)1使得一个过程单元步骤转移到一个新过程单元步骤,则SEQUENCE 2和n在Hz1数据输入时可以具有一个涉及装置84性质的失配状态指示符。当进行″当前″Hz1循环的输入时,SEQ(SEQUENCE)2标识其完成的活动的新过程单元步骤数值不再适合来自装置84的数据样本。虽然在下面的Hz1循环中解决了这种失配,但在某些安全情况下的失配可以导致控制计算机系统不必要地命令关机。为了利于在一组SEQUENCE中进行良好协同的操作,提供一个涉及SEQUENCE中过程单元步骤改变的具体编程方法。
通过三个方式允许在最优实施例中从一个过程单元步骤转移到一个后续的过程单元步骤TERM操作,STEP操作,和JSTEP功能调用操作。
由在Hz1中检查当前过程单元步骤中的活动进程的各个SEQUENCE进行TERM操作。如果过程测量(从数据库得到)表明针对当前过程单元步骤指定的所有条件均已经满足,则过程单元步骤终止并且SEQUENCE按照数字排列进行到下一个过程单元步骤。过程单元步骤终止的条件属于该SEQUENCE的操作过程的一部分;如果终止条件满足,则在当前Hz1循环中建议一种跃迁。
当出现严重过程风险时也可以改变过程单元步骤以便实现紧急工厂关机预编程过程。在本说明书的另一个部分将JSTEP功能调用操作描述成一个优先过程单元步骤发起方(导致精减关机),其中不能通过一个″在步骤中停留″来阻止其进程。″在步骤中停留″是一个SEQUENCE属性,该属性在出现某些报警属性时激活并且阻止从一个过程单元步骤进入另一个过程单元步骤,即使这种进程的所有其它条件均已经满足也必须阻止。在这点上,报警是在最优实施例中有前提条件的可选过程单元步骤,并且″在步骤中停留″SEQUENCE属性的使用为能够在不同过程单元步骤环境中切换控制方案之前提供了决定报警条件的基础。
另一个改变过程单元步骤的方法是通过STEP命令,其中将前进到SEQUENCE中的任意指定过程单元步骤;其中TERM命令可用于从过程单元步骤x到过程单元步骤x+1的转移,STEP命令可用于从任意过程单元步骤x到任何其他过程单元步骤z的转移。在这点上,应用程序语句通常引用完整的跃迁(即,如过程单元步骤y′IF′过程单元步骤x′AND′转移条件中定义的开始过程单元步骤和结束过程单元步骤)以便仅从期望的前一个过程单元步骤进行转移。
由于需要在各个控制计算机定义的输出信号之间进行必要的同步,主动冗余控制计算机操作进一步增加了过程单元步骤进程的复杂性;需要一个仲裁控制计算机10a,b之间的差异的方法保证在基本相同的实时时刻在两个控制计算机10a,b的数据库中实际实现过程单元步骤状态的这种切换。满足这个要求的解决方案(a)首先允许在执行各个SEQUENCE的过程单元步骤控制计算机执行逻辑时建议一个过程单元步骤切换,(b)接着(在Hz1循环时间内)在两个控制计算机内部仲裁所建议的过程单元步骤切换,并且(c)根据各个控制计算机中针对存在建议过程单元步骤切换的各个SEQUENCE形成的仲裁结论实现建议的过程单元步骤切换。在这点上,各个SEQUENCE的控制计算机执行逻辑确定一个建议的过程单元步骤切换,但是建议的过程单元步骤切换不进入控制计算机10数据库,直到控制计算机已经对建议的过程单元步骤切换完成仲裁过程。适当的仲裁规则包含涉及″使用″″最安全″过程单元步骤的内容。当在新的一秒中执行SEQUENCE逻辑之前,并且恰好在主链接上的Fox和Dog数据交换之后完成Hz1循环中的过程单元步骤改变,以便在Hz1步骤链接剩余2614中进行输入信号仲裁。这种操作在SEQUENCE程序在START SEQUENCE 2546开始执行时提供了所有SEQUENCE使用的仲裁输入数据和仲裁过程单元步骤数据。
图58描述了过程单元步骤模型6900中进行这种处理的过程单元步骤切换方法。对于所有经过编程的SEQUENCE,模型6900允许SEQUENCE在两个控制计算机的Hz1循环期间具有涉及当前过程单元步骤的统一信息(这种方式还有效地协同了过程单元步骤切换的所有相关属性并且使用-例如SSTEP-SEQUENCE的当前过程单元步骤;STIME当前过程单元步骤中的时间;SHOLD-在只能被一个JSTEP替换的SEQUENCE中存在一个保持在过程单元步骤中的属性;MAX-除非通过JSTEP,否则在听到一个报警并且设置一个附属位之前一个过程单元步骤中允许的最大时间量;MIN-除非通过JSTEP,否则在其退出之前一个过程单元步骤中需要的最小时间量;和HOLD-存在一个只能被JSTEP替换的保持在当前过程单元步骤的属性)。在图58的其它考虑中,″建议PU步骤″6901,6902,6903,6904,6905,6906表示在所有三个分别描述的SEQUENCE逻辑部分中″建议″的过程单元步骤改变,其中图符6907中的SEQ1表示Fox中的SEQUENCE 1,图符6910中的SEQ1表示Dog中的SEQUENCE 1,图符6908中的SEQ2表示Fox中的SEQUENCE 2,图符6911中的SEQ2表示Dog中的SEQUENCE 2,图符6909中的SEQn表示Fox中的SEQUENCE n,图符6912中的SEQn表示Dog中的SEQUENCE n。输出6915是对应于输出6703的Fox输出,输出6920是对应于输出6703的Dog输出。″仲裁建议PU步骤″6941对应于图20中的步骤仲裁2609b。在模型6900中,图符6930中的″Sp.Calc/Alm″表示在Fox中对SEQUENCE n的特殊计算和报警的计算,图符6931表明确定″建议PU步骤″6906计算一个Fox Hz1循环中的过程单元步骤改变,并且AO/DO/DA 6932指示计算Fox中SEQUENCE n的模拟输出,数字输出和数字中止信号。
TERM和STEP命令没有超过(a)操作技师通过MCU,SCU或操作员控制台输入人工步骤改变命令,或(b)JSTEP的优先权。如果在相同的秒内有任何步进命令变成活跃状态,则JSTEP功能调用过程单元步骤具有最高优先权。如果在没有操作技师输入命令或没有JSTEP的情况下在相同的秒内有多个过程单元步骤切换命令变成活跃状态,则优先权仅仅涉及为一个主导SEQUENCE定义的最近过程单元步骤改变。仅在″建议步骤″中的数据指向的数值不同于SSTEP中包含的数值的时候才执行过程单元步骤切换。
有关一个活跃JSTEP功能调用状态的定义替换SEQUENCE中任意的过程单元步骤保持状态以便将装置84的动态状态修改到一个用于定义被认为比″正常″操作具有更低风险的操作状态的过程单元步骤上。在这点上,装置84的动态和所有状态在某些紧急情况下可能使得动态流体操作的完全和立即停止不属于安全的动作过程,而一个风险较少的中间操作状态(例如在没有限制的情况下系统内部流体流动速率的受控冷却和受控减速)以最优的方式定义了一个最好的方案(作为降低所有控制元件活力的候选方案)以便在假定不能持续正常操作的情况下实现装置84的最安全操作。当被声明为TRUE并且Hz1,Hz10,和Hz100执行中的机器操作代码提供响应JSTEP功能调用定义的过程单元步骤的计算机执行逻辑时,机器操作代码根据JSTEP功能调用实现受控装置84的一个″精减″(即受″约束″,″限制″和″节制″)操作关机。因而JSTEP功能调用上是SEQUENCE的一个属性和数据逻辑对象,并且用来以装置84被控制计算机10控制的特征操作方式实现一个精减关机修改。这样,JSTEP功能调用便构成了一个精减关机状态过程控制对象。在一个应用程序管理并容纳若干个不同的JSTEP功能调用脚本。然而更为重要的是在不同JSTEP功能调用可能性之间建立一个明确的优先权以便总是存在关机脚本的一个明确定义的优先权。所以为了选择管理多级关机命令的最重要JSTEP功能调用,最优实施例还提供一个精减关机状态过程控制对象类型,该类型具有一个优先权属性参数,其中优先权属性参数支持多个(例如五个)优先级。所以通用控制域中的JSTEP功能调用是一个特定SEQUENCE的属性并且在为该SEQUENCE定义的控制计算机执行逻辑中确定该属性。
SIP域包括在应用程序中包括至少一个SIP部分(文件)以便根据编译译码器内部的SIP规则集合进行编译。SIP规则集合提供涉及逻辑进程,数据类型和数据安全性并且符合SIL要求的编译。在不考虑编译译码器内部的SIP规则集合的情况下编译应用程序中的通用控制部分(至少一个文件)。如上所述,一个过程单元步骤需要在一个涉及SIP域成员的属性中具有一个标识符。JSTEP功能调用准备SEQUENCE以终止当前过程单元步骤并且通过输入命令中指定的关机步骤编号转移到用于ARBLINK2526中的仲裁的建议过程单元步骤列表中的一个关机过程单元步骤。在稍后的时刻在STEP ADVANCE 2531中完成实际的过程单元步骤改变。JSTEP功能调用具有超过通过MCU,SCU或操作员控制台输入的人工过程单元步骤改变命令的优先权,而人工过程单元步骤改变命令具有超过通过命令TERM和步骤建议的过程单元步骤改变的优先权。在实现涉及模型6900的仲裁时,通过下面方式控制优先权1.JSTEP功能调用具有最高优先权,其中如果为SEQUENCE的建议过程单元步骤设置标识不止一个JSTEP功能调用并且为各个JSTEP调用标识一个特定的过程单元步骤,则上述优先权属性确定要处理的JSTEP功能调用。如果为一个JSTEP调用标识的过程单元步骤是一个SIP变量,则可以在SIP域内部产生上述JSTEP调用。
2.操作技师过程单元步骤改变请求具有中等优先权(处理Hz1循环中最近建议的过程单元步骤改变)。
3.通过步骤或TERM命令编程的自动过程单元步骤改变具有最低优先权(处理Hz1循环中最近建议的过程单元步骤改变)。
在执行SEQUENCE控制程序期间,基于最优实施例中的上述规则划分过程单元步骤改变命令的优先权以便处理在一个单独Hz1循环实例中针对一个SEQUENCE的多个过程单元步骤改变请求,并且对一个单独的过程单元步骤改变请求进行仲裁处理。
上述优先权规则允许1.如果控制计算机执行逻辑通过激活JSTEP强制一个SEQUENCE进入某个″关机″过程单元步骤,则没有什么事情可以产生干扰同时既不存在另一个TERM或步骤定义的活跃过程单元步骤切换,也不存在通过MCU或SCU发出人工过程单元步骤改变请求的操作技师输入。
2.对于在相同Hz1循环实例中相同SEQUENCE有多个活跃JSTEP功能调用的情况,优先权规则是执行具有最高优先权的JSTEP功能调用(例如1-5,其中1最高,5最低)。
3.如果操作技师输入一个过程单元步骤改变请求(通过MCU,SCU,或操作员控制台)并且控制程序使一个预编程TERM或STEP过程单元步骤切换活跃,则先满足操作技师的请求。
4.对于相同SEQUENCE有多个TERM或STEP过程单元步骤切换语句活跃的情况,最近编程的语句被执行。
在一个单独控制计算机负责装置84的控制的情况下,不能进行过程单元步骤仲裁并且在不能利用仲裁的情况下根据上述最优实施例中的规则进行过程单元步骤切换。
下列最优实施例应用程序例子和图59针对上述讨论图解了在控制计算机实时执行逻辑的数据库中发生的改变的性质START SEQ(1)过程单元步骤(1)IF RESTART过程单元步骤(2)IF DM(1)DO(1)IF过程单元步骤(1)DO(2)IF过程单元步骤(2)END SEQ(1)START SEQ(11)过程单元步骤(11)IF RESTART过程单元步骤(12)IF过程单元步骤(2)
DO(11)IF过程单元步骤(11)DO(12)IF过程单元步骤(12)END SEQ(11)START SEQ(21)过程单元步骤(21)IF RESTART过程单元步骤(22)IF过程单元步骤(12)DO(21)IF过程单元步骤(21)DO(22)IF过程单元步骤(22)END SEQ(21)对于图59,下面通过图中的注释和标识符重申了上述伪码-涉及图59中一个具体数据变量的位置层次改变示出了从FALSE到TRUE或从TRUE到FALSE的切换;在这点上,所示的改变时间超过一秒的周期以便描述建议改变的时间与实现时间之间的对比关系-在实现中,改变是一个步骤函数。
START SEQ(1)过程单元步骤(1)7002 IF RESTART″RESTART″定义″图59″中的″秒1″(t0到t1)过程单元步骤(2)7003 IF DM(1)7001″DM″是一个″数字人工数值改变″-一个操作技师在任意时间改变的变量
DO(1)7004 IF过程单元步骤(1)7002″DO″是导致向装置84提供一个数字输出信号的″数字输出″DO(2)7005 IF过程单元步骤(2)7003END SEQ(1)START SEQ(11)过程单元步骤(11)7006 IF RESTART过程单元步骤(12)7007 IF过程单元步骤(2)7003″注意SEQUENCE 11可以表示SEQUENCE1中过程单元步骤(2)7003的状态″DO(11)7008 IF过程单元步骤(11)7006DO(12)7009 IF过程单元步骤(12)7007END SEQ(11)START SEQ(21)过程单元步骤(21)7010 IF RESTART过程单元步骤(22)7011 IF过程单元步骤(12)7007″还应注意SEQUENCE 11可以表示SEQUENCE11中过程单元步骤(12)7007的状态″DO(21)7012 IF过程单元步骤(21)7010DO(22)7013 IF过程单元步骤(22)7011END SEQ(21)前面涉及材料的信息,关于硬件特性的讨论,和关于软件特性的讨论(硬件和软件特性均涉及被编程工程师用来开发控制装置84的控制计算机执行逻辑的具体实例的控制计算机操作系统功能和应用程序功能)共同描述了构成总体系统的增量片段。共同实现所述实施例的多个逻辑片段被理解成数据流环境中的一个集合整体。图60-67通过在数据流图层次上描述许多上述逻辑部件的交互提供了一个视图,使得总体系统被理解成以满足一个SIL1,SIL2,和SIL3层次已认证系统的当前要求(和其它被认证代理批准的组织和质量控制要求)的形式实现一个具有通用过程控制能力和安全关机能力的集成过程控制系统。从讨论图60开始,在与表示装置84的现场7102交互并且与示出实时执行机构连接的主要和候选单元的图符7103上的高速计算机网关(HSI)交互的图符7101中示出了控制计算机的实时执行特征。在图符7104上示出了一个通过标准CPU驱动方法实现的低速通信接口(LSI)。图符7105示出了通过使用网络控制器板可以实现的与另一个控制计算机系统之间的接口。7106上的串行图形系统通过图34A1-34E所述的方法与实时执行机构7101接口。图符7107示出了与外部母板部件的接口。在图符7108中进一步示出了如图33A和33B所述的针对MCU和SCU的接口。图60描述了通用控制计算机系统环境的总体数据流图,其中实时执行机构或控制计算机操作系统位于中央点上。实时执行机构7101和低速通信部分7104之间的接口使用CISS表示变量类型。CISS表示″通信接口子系统″。还应当注意,可以在最优实施例中使用(在任意具体实例中)如图符7103所示的高速通信接口或如图符7104所示的低速通信接口,并且上述通信接口在任意具体控制系统实例中不会同时活跃。
继续讨论图61,通过一个针对图符7202的远程现场单元系统的接口在如图符7201所示的一个按主动冗余模式工作的控制计算机对之间的交互中示出了实时执行机构。在图61中,如前面图符7103所示,″CC″表示控制计算机,HSI表示高速接口。图62A和62B将图61中如图符7201所示的控制计算机分成如图符7301和7302所示的左控制计算机和右控制计算机。如前所述,图符7303和7304表示允许在两个控制计算机之间进行通信的网络控制器板。还应当注意,如7302所示的Fox控制计算机的通信和如7301所示的Dog控制计算机的通信基本相同并且图62A和62B上提供的空间无法重复描述所有这种要发生的类似通信。在图62A和62B中,″NCB″表示网络控制器板。缩写″WD″表示看门狗603并且缩写″SG″表示串行图形系统。参照图63A,63B和63C,其中对图符7302进行了内部扩充,并且描述了被指定成这个具体数据流图系列的右控制计算机CPU的Fox控制计算机CPU(注意数据流图也适合于Dog)。在这点上,在为控制计算机中特定任务指定的不同具体模块之间通过如图符7404所示的数据库隐含和明确地实现通信应用程序编码包含如图符7402所示的SEQUENCE编程,如图符7403所示的仲裁,如图符7404所示的输入/输出信号处理,如图符7405所示的诊断,两个系统之间如图符7406所示的同步,如图符7407所示的调试操作,和如图符7408所示的任务控制。图64表明将诊断图符7405扩充成其子部件。类似地,在图65中,I/O处理图符7404被扩充成一个附加数据流图,其中示出了各种数据流图子对象之间的交换。对于表示RESPAN的图符7701,RESPAN是最优实施例中的一个程序,该程序在现场测量设备(装置84中排列的用于测量具体数据的设备)的正常响应不产生线性特征跨越仪器的响应范围的数据时修改或改变一个模拟输入的性质以反映一个线性化信号。图符7702示出了涉及Hz10和Hz100循环的高速输出。图66描述了涉及图符7403、用于图63A中的仲裁的数据流图细节。在这点上,在数据块流7801中扩充处理单元(PU)步骤仲裁(如图55-59所示),其中在图符7802中处理传统输入仲裁,在图符7803中处理输出仲裁。图67提供了涉及图63B的数据流图中的通信图符7401的内部数据流图。这里应当注意,图符7901上的RMUX对象涉及控制计算机和远程现场单元之间的接口。图符7902上的应用程序数据存储驻留在图3A的数据和数据影像存储器14中。
已经通过图解方式描述了本发明。一旦了解前面公开内容的优点,本领域的技术人员显然可以在不偏离本发明的宗旨的前提下对这里描述的具体实施例进行修改。这种修改将被认为属于完全受所附的范围和宗旨限制的本发明范围之内。
权利要求
1.一个过程控制系统,上述过程控制系统从一个受控装置接收输入信号并且使用输入信号确定至少一个输出信号,上述输出信号修改受控装置中至少一个对应控制设备的特征,上述过程控制系统的特征在于通过一个统一编译过程将用于装置的通用控制的源代码和用于装置的安全关机的源代码编译成上述控制系统的控制代码。
2.一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程控制系统的特征在于一个应用程序实例,该实例具有至少一个安全完整性编程源代码部分和至少一个通用控制源代码部分;和一个具有安全完整性编程规则集合的编译译码器,该译码器将上述应用程序实例转换成上述机器操作代码。
3.一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程控制系统的特征在于根据安全完整性编程源代码编译出的第一机器操作代码;和根据通用控制源代码编译出的第二机器操作代码;其中上述第一机器操作代码和上述第二机器操作代码在上述过程控制系统内的相同控制计算机上执行。
4.一个控制计算机,上述控制计算机从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述控制计算机的特征在于评估上述控制计算机执行上述机器操作代码的实时能力是否基本上与上述控制计算机的设计能力完全一致的装置;和当上述实时能力不可接受时暂停上述机器操作代码的一个实时循环部分的执行的装置。
5.一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且在一个控制计算机上执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程控制系统的特征在于定义一个概括上述机器操作代码的非可变部分的特征的编译器签名数据数值的装置;向上述控制计算机加载上述编译器签名数据数值的装置;定义一个概括上述程序存储器部分内的上述机器操作代码的特征的实时签名数据数值的装置;比较上述实时签名数据数值与上述编译译码器签名数据数值的装置;和当上述编译译码器签名数据数值与上述实时签名数据数值不相同时暂停上述机器操作代码的实时执行的装置。
6.一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程控制系统的特征在于一个将应用程序实例转换成机器操作代码的编译译码器;一个具有保存上述机器操作代码的存储器的控制计算机,其中上述控制计算机产生上述输出信号;上述编译译码器中的一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;一个第一过程单元步骤数据对象类型,该类型具有一个用于上述安全完整性编程部分中的安全域属性参数集合;和一个第二过程单元步骤数据对象类型,该类型具有一个用于在上述安全完整性编程部分之外的上述存储器中的正常操作属性参数集合。
7.一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,其中一个附属的编译译码器被用来将应用程序实例转换成上述机器操作代码,上述过程控制系统的特征在于一个将应用程序实例转换成机器操作代码的编译译码器;一个具有保存上述机器操作代码的存储器的控制计算机,其中上述控制计算机产生上述输出信号;上述编译译码器中的一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;上述编译译码器中针对上述安全完整性编程部分将上述应用程序实例的函数类型语句解释成输入和输出第一列表的装置;上述编译译码器中针对上述安全完整性编程部分并且以独立于上述函数类型语句的方式在上述应用程序实例中定义输入和输出信号第二列表的装置;上述编译译码器中比较上述第一列表中的数值和上述第二列表中的数值的装置;和上述编译译码器中在上述第一列表和上述第二列表包含的数值存在不同时禁止产生上述机器操作代码的装置。
8.一个控制计算机,上述控制计算机从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,其中一个附属的编译译码器被用来将应用程序实例转换成上述机器操作代码,上述控制计算机在存储器中具有一个保存上述机器操作代码的非实时可变部分的程序存储器部分,上述控制计算机的特征在于上述编译译码器中的一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;上述编译译码器中针对上述安全完整性编程部分将上述应用程序实例的函数类型语句解释成输入和输出第一列表的装置;上述编译译码器中定义一个概括上述程序存储器部分的上述机器操作代码的特征的编译译码器签名数据数值的装置;上述编译译码器中针对上述安全完整性编程部分并且以独立于上述函数类型语句的方式在上述应用程序实例中定义输入和输出信号第二列表的装置;上述编译译码器中比较上述第一列表中的数值和上述第二列表中的数值的装置;上述编译译码器中在上述第一列表和上述第二列表包含的数值存在不同时禁止产生上述机器操作代码的装置;上述控制计算机中定义概括上述程序存储器部分中上述机器操作代码的特征的实时签名数据数值并且将上述实时签名数据数值与上述编译译码器签名数据数值相比较的装置;和,上述控制计算机中当上述编译译码器签名数据数值与上述实时签名数据数值不相同时暂停上述机器操作代码的实时执行的装置。
9.一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程控制系统的特征在于一个将应用程序实例转换成上述机器操作代码的编译译码器;一个具有保存上述机器操作代码的存储器的控制计算机,其中上述控制计算机产生上述输出信号;上述编译译码器中的一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;和一个精减关机状态过程控制对象类型,该类型具有一个用于上述安全完整性编程部分的优先权属性参数,其中上述优先权属性参数支持多个优先级。
10.一个过程控制系统,上述过程控制系统从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程控制系统的特征在于一个控制计算机,这种控制计算机具有一个保存上述机器操作代码并且产生输出信号的存储器,上述存储器具有一个主存储器和一个影像存储器;比较上述主存储器中的数据数值与上述影像存储器中的对应数据数值的装置;和当上述比较装置确定上述主存储器中的上述数据数值与上述影像存储器中的上述对应数据数值不同时暂停上述控制计算机的装置。
11.如权利要求2-9中任何一个所述的过程控制系统,上述系统具有一个具有一个主存储器和一个影像存储器的第一上述控制计算机,其中上述第一控制计算机执行上述机器操作代码以便读取上述输入信号并且根据第一仲裁输入数值产生一个第一过程控制信号;一个具有一个主存储器和一个影像存储器的第二上述控制计算机,其中上述第二控制计算机执行上述机器操作代码以便读取上述输入信号并且根据第二仲裁输入数值产生一个第二过程控制信号;一个双向通信通道,上述双向通信通道被连接到上述第一控制计算机和上述第二控制计算机以便能够双向传输上述输入信号;根据从上述第二控制计算机发送的输入信号和上述第一控制计算机读取的输入信号确定上述第一控制计算机中上述第一仲裁输入数值的装置;根据从上述第一控制计算机发送的输入信号和上述第二控制计算机读取的输入信号确定上述第二控制计算机中上述第二仲裁输入数值的装置;将第一过程控制信号和第二过程控制信号合并成一个上述输出信号并传送到上述控制设备的装置。
12.如权利要求3-9中任何一个所述的过程控制系统,上述控制计算机具有针对至少一个上述输出信号定义至少一个数字地址和一个附属数字信号集合的装置;一个向上述控制设备输出上述输出信号的输出电路;一个被连接到上述计算机处理器以便将上述数字信号集合转换成一个单独模拟信号的第一数模电路;一个将上述第一数模电路连接到上述输出电路的多路复用电路,上述多路复用电路具有一个接收上述数字地址的地址输入;一个将上述数字地址转换成一个地址数值模拟信号的第二数模电路;一个将上述第二数模电路连接到上述计算机处理器以便将上述地址数值模拟信号转换成一组地址数值数字信号的模数电路;比较上述地址数值数字信号集合和上述数字地址的装置;和在上述比较装置确定上述地址数值数字信号集合与上述数字地址不相同的情况下暂停上述机器操作代码在上述计算机处理器中的实时执行的装置。
13.如权利要求3,4和9中任何一个所述的控制系统,其中一个编译译码器根据一个应用程序实例编译出上述机器操作代码,上述编译译码器具有一个安全完整性编程规则集合,该规则集合保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;根据上述安全完整性编程规则集合编译一个第一过程单元步骤数据对象的装置;和以独立于上述安全完整性编程规则集合的方式编译一个第二过程单元步骤数据对象的装置;
14.如权利要求13所述的控制计算机,其中上述应用程序实例具有一个安全完整性编程部分,上述编译译码器还具有针对上述安全完整性编程部分将上述应用程序实例的函数类型语句解释成输入和输出信号的第一列表的装置;针对上述安全完整性编程部分并且以独立于上述函数类型语句的方式在上述应用程序实例中定义输入和输出信号第二列表的装置;比较上述第一列表中的数值和上述第二列表中的数值的装置;和在上述第一列表和上述第二列表包含的数值与其相应列表的数值存在不同时禁止编译上述机器操作代码的装置。
15.如权利要求13所述的控制计算机,其中上述编译译码器还包括编译一个精减关机过程控制对象类型的装置,其中上述类型具有一个优先权属性参数,而上述优先权属性参数支持多个优先级。
16.如权利要求3-9中任何一个所述的控制计算机,上述控制计算机具有一个主存储器和一个影像存储器;比较上述主存储器中的数据数值与上述影像存储器中的对应数据数值的装置;和当上述主存储器中的上述数据数值与上述影像存储器中的上述对应数据数值不同时暂停上述控制计算机的装置。
17.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包含以下步骤使用一个安全域规则集合和一个标准操作规则集合并且通过一个编译译码器产生上述机器操作代码;和将上述机器操作代码加载到一个控制计算机中执行以确定上述输出信号。
18.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包含以下步骤根据安全完整性编程源代码编译出的第一机器操作代码;和根据通用控制源代码编译出的第二机器操作代码;和在相同控制计算机上执行上述第一机器操作代码和上述第二机器操作代码以便接收上述输入信号并且调整上述对应控制设备。
19.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包含以下步骤估算上述控制计算机执行上述机器操作代码的实时能力是否基本上与上述控制计算机的设计能力完全一致;和在上述实时能力不可接受时停止上述输出信号。
20.一个过程,上述过程从制造设备接收输入信号并且在一个控制计算机中执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述处理的特征在于估算上述控制计算机执行上述机器操作代码的实时能力是否基本上与上述控制计算机的设计能力完全一致;和当上述实时能力不可接受时暂停上述机器操作代码的一个实时循环部分的执行。
21.一个控制过程,上述控制过程从制造设备接收输入信号并且在一个控制计算机上执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包括以下步骤定义一个概括上述机器操作代码的非可变部分的特征的编译器签名数据数值;向上述控制计算机加载上述编译器签名数据数值;在上述控制计算机中定义一个概括上述机器操作代码的上述非可变部分的特征的实时签名数据数值;比较上述实时签名数据数值与上述编译译码器签名数据数值;和当上述编译译码器签名数据数值和上述实时签名数据数值不同时暂停上述机器操作代码的实时循环部分以便通过与编译的机器操作代码一致的机器操作代码调整上述控制设备。
22.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码,上述机器操作代码确定至少一个输出信号,上述输出信号调整上述制造设备中的至少一个对应控制设备,上述过程的特征在于包含以下步骤将一个应用程序实例转换成上述机器操作代码,上述应用程序实例具有至少两个过程单元步骤对象;在一个第一控制计算机中执行上述机器操作代码;在一个第二控制计算机中执行上述机器操作代码;在上述第一控制计算机中定义一个第一建议过程单元步骤以便将活跃过程单元步骤从当前过程单元步骤修改成一个新的过程单元步骤;在上述第二控制计算机中定义一个第二建议过程单元步骤以便将活跃过程单元步骤从当前过程单元步骤修改成一个新的过程单元步骤;在上述第一控制计算机和上述第二控制计算机之间双向发送上述第一和第二建议过程单元步骤以便各个控制计算机均包含两个建议过程单元步骤;在上述第一控制计算机中仲裁上述第一和第二建议过程单元步骤以确定下一个过程单元步骤;在上述第二控制计算机中仲裁上述第一和第二建议过程单元步骤以确定下一个过程单元步骤;和在各个控制计算机中将下一个过程单元步骤当作新的当前过程单元步骤来执行。
23.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,其中一个附属的编译译码器被用来将应用程序实例转换成上述机器操作代码,上述过程的特征在于包括以下步骤在上述编译译码器中,针对上述编译译码器中的一个安全完整性编程规则集合将上述应用程序实例的一个函数类型语句解释成输入和输出信号第一列表以便保证上述控制计算机,上述机器操作代码中的过程和结构,和安全完整性层次的要求之间的一致性;在上述编译译码器中针对上述安全完整性编程部分并且以独立于上述函数类型语句的方式在上述应用程序实例中定义一个输入和输出信号第二列表;上述编译译码器中,比较上述第一列表中的数值和上述第二列表中的数值;在上述编译译码器中,当上述第一列表和上述第二列表包含的数值存在不同时,禁止产生上述机器操作代码;和将上述机器操作代码加载到一个控制计算机中执行。
24.一个控制计算机实现的过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤在上述控制计算机中使用一个第一过程单元步骤数据对象类型,该类型具有一个安全域属性参数;和在上述控制计算机中使用一个第二过程单元步骤数据对象类型,该类型具有一个标准操作属性参数;
25.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤使用一个精减关机状态过程控制对象类型编译上述机器操作代码。
26.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤使用一个逻辑操作符类型和一个安全域逻辑操作符类型并且通过一个编译译码器产生上述机器操作代码;和在一个控制计算机中执行上述机器操作代码以产生上述输出信号。
27.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤提供一个控制计算机,上述控制计算机具有一个主存储器,其中上述控制计算机产生一个过程控制信号;为上述控制计算机提供一个影像存储器;当进行实时读取访问时,比较上述主存储器中的数据数值和上述影像存储器中的对应数据数值;当上述装置确定上述主存储器中的上述数据数值与上述影像存储器中的上述对应数据数值不同时暂停上述控制计算机;和以上述过程控制信号作为上述输出信号对上述控制设备产生影响。
28.一个过程,上述过程从制造设备接收输入信号并且执行机器操作代码以便使用上述输入信号确定至少一个输出信号,上述输出信号修改上述制造设备中的至少一个对应控制设备的特征,上述过程的特征在于包含以下步骤通过使用一个嵌入到上述编译译码器内部的安全完整性编程部分将一个应用程序实例转换成上述机器操作代码,其中上述安全完整性编程部分保证上述控制计算机,上述机器操作代码中的过程和结构,以及安全完整性层次的要求之间的一致性;在一个第一控制计算机中执行上述机器操作代码,上述第一控制计算机具有一个主存储器和一个影像存储器,其中上述第一控制计算机读取上述输入信号并且根据第一仲裁输入数值产生一个第一过程控制信号;在一个第二控制计算机中执行上述机器操作代码,上述第二控制计算机具有一个主存储器和一个影像存储器,其中上述第二控制计算机读取上述输入信号并且根据第二仲裁输入数值产生一个第二过程控制信号;在上述第一和上述第二控制计算机之间双向发送上述输入信号;在上述第一控制计算机中根据从上述第二控制计算机发送的输入信号和上述第一控制计算机读取的输入信号确定上述第一仲裁输入数值;在上述第二控制计算机中根据从上述第一控制计算机发送的输入信号和上述第二控制计算机读取的输入信号确定上述第二仲裁输入数值;和将第一过程控制信号和第二过程控制信号合并成一个上述输出信号并传送到上述控制设备。
29.如权利要求17-21或23-27中任何一个所述的过程,其中上述执行机器操作代码步骤以冗余方式执行一个第一控制计算机中上述机器操作代码的第一实例和一个第二控制计算机中上述机器操作代码的第二实例。
30.如权利要求17-21或23-27中任何一个所述的过程,其中上述执行机器操作代码步骤以冗余方式执行一个第一控制计算机中上述机器操作代码的第一实例,第二控制计算机中上述机器操作代码的第二实例,和一个第三控制计算机中上述机器操作代码的第三实例。
31.如权利要求29所述的过程,其中通过主动冗余方式执行上述冗余机器操作代码,使得两个控制计算机同时向相同输出线上的一个相应的上述控制设备施加其输出控制电压。
32.如权利要求30所述的过程,其中通过主动冗余方式执行上述冗余机器操作代码,使得上述第一,第二和第三控制计算机同时向相同输出线上的一个相应的上述控制设备施加其输出控制电压。
全文摘要
一个过程控制系统,上述过程控制系统从一个受控装置接收输入信号并且使用输入信号确定至少一个输出信号,上述输出信号修改受控装置中至少一个对应控制设备的特征,其中通过一个统一编译过程将用于装置的通用控制的源代码和用于装置的安全关机系统的源代码编译成控制代码。
文档编号G05B19/042GK1353834SQ00808516
公开日2002年6月12日 申请日期2000年4月18日 优先权日1999年4月22日
发明者爱德华·R·塞德兰德, 厄恩斯特·W·奎勒, 赫尔穆特·A·贝泽尼, 约翰尼斯·C·坎斯, 罗伯特·J·林德史密斯, 约翰·L·克莱蒙特, 唐纳德·格林维斯, 小艾罗·贝卡, 丹尼斯·J·顿拉普, 布伦特·M·弗兰克, 奥古斯丁·K·特巴匝瓦 申请人:陶氏化学公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1