专利名称:使用网络客户机的分布式控制系统中的指定的控制器的自动检测的制作方法
技术领域:
本文公开的主题大体涉及控制系统,并且更具体而言,涉及分布式控制系统。
背景技术:
控制系统常常与过程系统结合起来使用,诸如制造或生产过程,以调节和/或监测过程的各种运行参数。例如,控制系统可调节过程的某些输入参数的值,以便将一个或多个目标输出参数(例如流率、功率输出等)驱动到期望值。一些控制系统还可对操作者提供呈视觉反馈的形式的过程数据,诸如通过借助于人机接口(HMI)来输出某些选定的数据点,人机接口可包括使用显示装置所显示的图形用户界面。这可使得操作者基本实时地监测和评估过程性能参数成为可能,并且如有必要,在某些参数偏离预期范围或规范的情况 下采取修正措施。可使用分布式控制系统(DCS)体系结构来实现某些控制系统。在DCS中,控制元件可分布在整个过程的各种位置处,而非布置在集中的位置处。例如,诸如传感器、促动器、子控制器等等的各种控制构件可分布在整个过程中,但是可与DCS的主控制器进行网络化通信。在某些DCS中,由于冗余和安全问题,可提供多个控制器,其中仅一个控制器在任何给定时间是指定的控制器。例如,如果当前指定的控制器出故障或离线,则可选择另一个控制器作为指定的控制器。在这样的系统中,指定的控制器可起到对用作客户机的HMI提供过程数据的服务器的作用。但是,基于冗余的控制器的一些HMI客户机可能无法检测指定的控制器的变化,以及无法连接到该指定的控制器。因而,操作者可能必须手动地在HMI客户机和指定的控制器之间重新建立连接,这可能是耗时和不方便的。另外,需要操作者手动地标识指定的控制器的变化以及手动地将HMI重新连接到指定的控制器上,可导致数据或信息丢失,这可带来潜在的安全问题。
发明内容
在一个实施例中,一种控制系统包括多个控制器。多个控制器中的各个配置成在被选择为指定的控制器时,对人机接口(HMI)客户机提供过程数据。多个控制器的第一控制器是当前指定的控制器,并且配置成与HMI客户机通信。控制系统还包括指定的控制器选择逻辑,该指定的控制器选择逻辑配置成检测当前指定的控制器和HMI客户机之间的通信的中断,探询多个控制器中的各个的响应,确定多个控制器中的哪个首先响应,以及选择首先响应的控制器作为下一个指定的控制器。在另一个实施例中,一种系统包括过程。该系统还包括包含基于网络的人机接口(HMI)的客户机装置。另外,系统包括与客户机装置和过程进行网络化通信的分布式控制系统,其中,分布式控制系统配置成控制该过程。分布式控制系统包括多个控制器,多个控制器中的各个配置成在用作指定的控制器时,对客户机装置的基于网络的HMI提供来自过程的数据。另外,分布式控制系统包括指定的控制器选择逻辑,该指定的控制器选择逻辑配置成检测之前指定的控制器和基于网络的客户机之间的通信的中断,探询多个控制器中的各个的响应,以及将当前指定的控制器选择为首先响应于探询的控制器。客户机装置配置成自动地与当前指定的控制器建立通信,以获得来自过程的数据。在又一个实施例中,提供一种其上编码有指令的有形的计算机可读介质。指令包括用于确定指定的控制器和基于网络的客户机之间的通信是否中断的机器可读代码,其中,指定的控制器在之前从冗余的控制系统的多个控制器中选择出来。指令进一步包括用以探询多个控制器中的各个的响应的机器可读代码。指令进一步包括用以标识多个控制器中的哪个首先响应于探询的机器可读代码。最后,指令包括用以选择首先响应的控制器作为新指定的控制器的机器可读代码。
当参照附图来阅读以下详细描述时,本发明的这些和其它特征、方面与优点将变得更好理解,在附图中,相同符号在所有图中表示相同部件,其中
图I是描绘了根据本发明的实施例的、具有控制系统的过程系统的框图;
图2是示出了根据本发明的实施例的、图I的控制系统的框图,该控制系统包括多个控制器和自动检测和通信模块;
图3示出了图2中示出的控制系统的控制器中的一个的更详细的视 图4是示出了自动检测和通信模块可如何相对于图2的控制系统的第一控制器、第二控制器和第三控制器以及HMI客户机以通信的方式布置的图解;
图5是描绘了根据本发明的实施例的、可通过自动检测和通信模块在图4的第一控制器上实现的过程的流程 图6是描绘了根据本发明的实施例的、可通过自动检测和通信模块在图4的第二控制器上实现的过程的流程 图7是描绘了根据本发明的实施例的、可通过自动检测和通信模块在图4的第三控制器上实现的过程的流程图;以及
图8-9示出了屏幕图像,该屏幕图像可显示为HMI客户机的图形用户界面的一部分,图形用户界面包括指示指定的控制器的图形要素。
具体实施例方式下面将对本发明的一个或多个具体实施例进行描述。为了致力于提供对这些实施例的简明描述,在说明书中可能不会对实际实现的所有特征进行描述。应当理解的是,在任何这种实际实现的开发中,如在任何工程或设计项目中那样,必须作出许多特定于实现的决策来达到开发者的具体目的,诸如服从系统相关的约束及商业相关的约束,其可随不同的实现而改变。此外,应当理解的是,这种开发工作可能是复杂和耗时的,但对受益于本公开的普通技术人员来说,这种开发工作将不过是设计、生产和制造的例行任务。当介绍本发明的多种实施例的要素时,冠词“一”、“该”和“所述”意于表示存在一个或多个该要素的意思。术语“包括”、“包含”和“具有”意于为包括性的,并且表示除了列出的要素之外可存在附加的要素的意思。如下面进一步论述的那样,某些实施例提供用于实现冗余的控制系统来控制过程的技术。例如,控制系统可包括以冗余的方式配置的多个控制器。初始,指定的控制器可对网络客户机提供过程数据。如果与指定的控制器的通信中断,则可实现检测模块来标识下一个指定的控制器。例如,在一个实施例中,模块配置成在检测到指定的控制器离线之后,探询所有控制器的响应。将首先提供响应的控制器建立成新指定的控制器。然后,模块对网络客户机指示新指定的控制器,网络客户机与新指定的控制器建立连接,以继续接收过程数据。照这样,网络客户机可自动地检测指定的控制器且与其连接,而不需要在指定的控制器离线时手动地重新建立连接。考虑到前述要点,图I描绘了过程系统10的实施例,过程系统10包括轮机系统12和负载14。轮机系统12利用燃气轮机16来驱动负载14,负载14可为配置成通过轮机系统12的旋转输出来产生功率的任何适当的装置,诸如外部机械负载或功率发生设备。仅以示例的方式,在一些实施例中,负载14可包括发电机、航空器的推进器等等。在继续之前,应当理解,仅以示例的方式示出了图I的过程系统10具有轮机系统12。实际上,现在公开的技术可适用于任何其它类型的过程系统10。例如,在其它实施例中,过程系统10可包括制造系统、分批过程系统、温度控制系统、防喷系统或设备控制(例如设备的平衡)系统,诸 如锅炉控制、水处理等等。仅以示例的方式,在其中过程系统10包括防喷系统的实施例中,参考标号12可指示防喷装置。轮机系统12可使用液体燃料或气体燃料,诸如天然气和/或富含氢的合成气体,以使轮机系统12运行。在自持操作中,空气在供应给燃气轮机16的燃料喷嘴(未示出)之前,可被压缩机18接收和加压。燃料喷嘴可吸入燃料供应,混合燃料与接收到的空气,并且将空气-燃料混合物分配到燃烧器19中。空气-燃料混合物的燃烧可在燃烧器19内产生热的加压气体,然后加压气体被引导通过轮机区段20,轮机区段20可包括围绕沿着燃气轮机16的旋转轴线延伸的轴22而设置的轮机叶片。在排气传送通过轮机区段20时,气体可迫使轮机叶片旋转轴22,从而驱动负载14旋转。图I中示出的轮机系统12还包括静态起动器子系统24,可在轮机系统12的起动序列期间利用静态起动器子系统24(例如当燃气轮机16从大体固定的位置初始启动时)。例如,在起动序列期间,静态起动器子系统24 (可包括发电机)可用作可变速度AC驱动系统,该AC驱动系统将发电机作为同步马达来驱动,以使燃气轮机16根据期望的速度分布而加速,该速度分布提供关于轮机16的期望的起动状况。例如,在一个实施例中,期望的起动状况可为这样的起动状况,即,其中轮机16达到使其通过其本身的燃烧过程而能够独立于静态起动器子系统24来进行自持操作的速度。一旦达到期望的速度,静态起动器子系统24就可与发电机脱离,而燃气轮机16则继续独立于静态起动器子系统24而操作。如图I中示出的那样,轮机系统12还包括可为分布式控制系统(DCS) 28的一部分的传感器26和控制构件27。也就是说,虽然在图I中示出为与DCS 28分开,但是传感器26和控制构件27可通过网络30通信耦合到DCS 28的一个或多个控制器上,控制构件27可包括I/O模块、促动器、子控制器、逻辑控制器、现场装置、网络构件等等,网络30可包括局域网(例如LAN、以太网)、无线网络(例如基于802. 11标准的无线网络),或诸如现场总线网络协议(例如IEC 61158)的工业控制网络协议。因而,控制系统28在不是其所有构件都必须布置在中心位置处的意义上而分布。例如,现场装置和控制器可彼此远离地定位,并且I/O模块可配置成过滤和/或调节在控制器和现场装置之间交换的信号。在示出的实施例中,I/o模块由参考标号25表示。DCS 28的控制器可实现控制算法,控制算法控制系统10,以达到期望的结果或输出(例如功率输出)。如下面进一步详细地论述的那样,DCS28可包括配置成以冗余的方式操作的多个控制器。系统10还可包括一个或多个人机接口(HMI) 32,人机接口 32可通信耦合到控制系统28上。例如,可在具有显示器(例如IXD显示器)的计算装置上实现HMI 32,该显示器配置成以图形用户界面(GUI)的形式提供HMI 32。如下面更加详细地论述的那样,在一个实施例中,HMI 32可包括客户机侧网络应用程序,其从DCS 28的用作服务器的活动的或指定的控制器中取来数据。因而,来自由系统10执行的过程的数据可从DCS 28的指定的控制器服务于HMI 32。照这样,操作者可通过HMI 32来观察和监测系统10的性能,而且,在一些实施例中,操作者还可通过HMI 32来提供输入,以手动地调节系统10的一个或多个参数。在一个实施例中,HMI 32可实现为基于网络的接口,基于网络的接口可利用JAVA、XML (可扩展标记语言)、CSS (层叠样式表)、AJAX (异步JavaScript和XML)、DHTML (动态超文本标记语言)等等,或这样的技术的任何组合。在一个实施例中,HMI 32可为利用基于AJAX和DHTML的网络构架的、基于网络的HMI,该网络构架使用在DCS 28的控制器上实 现的嵌入式网络服务器。如所示出的那样,HMI 32可通过网络34通信耦合到DCS 28上。网络34可包括任何适当的网络协议,诸如局域网(LAN)和/或无线网(例如802. 11标准)。另外,HMI 32可在物理上定位成相对紧邻系统10 (例如视觉的接近),或者可位于远处。可在任何适当的计算装置上提供HMI 32,该计算装置包括桌上型计算机、工作站计算机、笔记本计算机、平板计算机、个人数字助理(PDA)、移动电话等等。参照图2,进一步详细地示出了图I的DCS 28。如所示出的那样,DCS 28可包括配置成以冗余的方式操作的多个控制器36。例如,在任何给定时间,选择控制器36中的一个作为指定的控制器。用于HMI客户机32的数据由指定的控制器提供,HMI客户机32可为实现基于网络的接口的基于网络的客户机。如上面论述的那样,在一些传统的控制系统中,即使在出于冗余目的而提供多个控制器时,HMI客户机也可能无法自动地检测指定的控制器状态的变化,而且操作者可能必须手动地在HMI和新指定的控制器之间重新建立连接,以便继续接收数据。在图2示出的DCS 28中,提供自动检测和通信模块40。模块40(也可称为指定的控制器选择模块或逻辑)配置成在检测到指定的控制器离线之后,探询所有控制器的响应。将首先提供响应的控制器建立成新指定的控制器。应当注意,在一些情况下,新指定的控制器可为与之前指定的控制器相同的控制器。然后模块40对基于网络的HMI 32指示新指定的控制器,并且HMI 32自动地与新指定的控制器建立连接,以继续接收数据。另外,虽然在图2中示出了与控制器36中的各个分开,但是自动检测和通信模块40所实现的逻辑实际上可分布在DCS 28的所有控制器36中。如所示出的那样,控制器36中的各个可通过网络30通信耦合到轮机系统12的过程I/o模块(一个或多个)25上,并且可与传感器26和控制构件27通信。另外,控制器36中的各个通过网络34通信耦合到基于网络的HMI 32上。因而,控制器36中的各个接收来自系统10的过程数据,并且能够在被选择成指定的控制器的情况下将数据服务于HMI 32。虽然网络30象征性地被描绘成控制器36和轮机系统12 (例如传感器26和控制构件27)之间的单一路径,但是网络30可表示在各个控制器36和轮机系统12之间的单独的相应的网络路径。例如,第一路径可存在于控制器36a和轮机系统12之间,第二路径可存在于控制器36b和轮机系统12之间等等。图3示出了根据一个实施例的、图2的DCS 28的控制器36中的一个。如上面论述的那样,自动检测和通信模块40可分布在所有控制器和/或HMI客户机(一个或多个)32中。因而,如图3中示出的那样,可提供模块40所实现的逻辑的一部分作为控制器36的一部分。控制器36另外包括嵌入式网络服务器应用程序44,其有时称为“微型”网络服务器。网络服务器44可基于任何适当的实时操作系统。例如,在一个实施例中,嵌入式网络服务器44可为微核操作系统,诸如QNX操作系统,其可得自作为加拿大的安大略沃特卢的动态研究公司(Research in Motion Ltd. , of Waterloo, Ontario, Canada)的子公司的 QNX软件系统公司。仅以示例的方式,嵌入式网络服务器应用程序44可基于QNX Slinger网络服务器软件。网络服务器44可为嵌入式环境提供HTTP服务器,并且可为DHTML和SSI (服务器端包含)功能提供支持。如能理解的那样,DCS 28的所有控制器36可以类似的方式实现。当图3中示出的控制器36是指定的控制器时,来自系统10的数据可用于呈动态网页形式的基于网络的·HMI客户机32。另外,虽然未在图3中示出,但是控制器可包括各种适当的硬件构件,诸如配置成执行控制算法的处理器,以及配置成存储程序的存储器,诸如模块40和网络服务器44。参照图4,示出了包括三个控制器Cl (36a)、C2 (36b)和C3 (36c)的DCS 28的实施例,其中,三个控制器C1-C3配置成实现三模冗余操作模式。虽然在这里提到三个控制器,但是应当理解,术语冗余可指具有至少2个控制器(例如2至n,其中,η是任何数量的附加的控制器)的系统。为了一般地描述控制器C1-C3的操作,基于网络的HMI客户机32首先可与指定的控制器的网络服务器44建立通信,仅以示例的方式,假设指定的控制器初始是控制器Cl。起初,基于网络的HMI客户机32可使用对应于控制器Cl的通信端口的互联网协议(IP)地址来与控制器Cl的网络服务器44建立通信。在一个实施例中,HMI客户机32所实现的网络构架可允许来自系统10所实现过程的实时数据从控制器Cl服务于HMI客户机32。仅以示例的方式,在一个实施例中,HMI客户机32可利用JavaScript或VBScript激活的软件模块来与控制器Cl的网络服务器44通信,以使用AJAX技术来获得实时数据。取来的数据可在基于网络的HMI 32中定期地基于可配置的刷新率来更新。仅以示例的方式,刷新率可介于大约I秒-15秒之间。自动检测和通信模块40可配置成检测DCS28的各个控制器36的状态,以便确定哪个控制器36是当前指定的控制器。例如,在上面描述的启动过程的语境中,模块40可标识控制器Cl作为指定的控制器,并且将标识控制器Cl作为指定的控制器的信息(诸如装置名称、IP地址或其组合)提供给HMI 32。如下面更加详细地论述的那样,当指定的控制器(例如Cl)由于任何原因(例如由于故障、功率损耗、网络线路问题等)而离线时,自动检测和通信模块40配置成实现用于选择下一个指定的控制器(例如C2)以及将这个信息提供给HMI客户机32的过程。因而,HMI客户机32可自动地切换,以与下一个指定的控制器通信。另外,虽然图4中示出了仅三个控制器C1-C3,但是应当理解,其它实施例可包括任何期望数量的控制器。考虑到前述要点,下面在图5-7中进一步详细地示出自动检测和通信模块40所实现的逻辑。如上面描述的那样,模块40所实现的逻辑可分布在所有控制器(在这个示例中为控制器C1-C3)中。因此,图5中示出的逻辑46可表示模块40的、在控制器Cl中实现的部分,图6中示出的逻辑48可表示模块的、在控制器C2中实现的部分,并且图7中示出的逻辑50可表示模块的、在控制器C3中实现的部分。参照图5,表示模块40的、在控制器Cl中实现的部分的逻辑46开始于步骤52处。在步骤52处,控制器Cl (36a)初始是指定的控制器,并且对HMI客户机32提供数据。决策逻辑54确定控制器Cl的通信路径(例如通往HMI客户机32和/或轮机系统12的路径)是否中断。例如,控制器Cl的通信路径可由于许多原因而中断,诸如构件或控制器故障、网络错误、功率损耗等。如果没有检测到中断,则逻辑46回到步骤52,并且控制器Cl仍然是指定的控制器。如果检测到中断,则逻辑46从决策逻辑54继续到步骤56、58和60中的各个,在步骤56、58和60中,分别探询控制器C1、C2和C3,而且它们的后续步骤(例如步骤62、64、66)可并行地发生。例如,探询步骤可包括查验(pinging)控制器C1-C3中的各个并等待响 应。从步骤56,在决策逻辑62处作出关于是否从控制器Cl接收到响应的确定。如果没有从控制器Cl中获得响应,则逻辑46从决策逻辑62回到步骤56,并且继续探询Cl。同时,从步骤58,在决策逻辑64处作出关于是否从控制器C2接收到响应的确定。如果没有从控制器C2中获得响应,则逻辑46从决策逻辑64回到步骤58,并且继续探询C2。而且同时,从步骤60,在决策逻辑66处作出关于是否从控制器C3接收到响应的确定。如果没有从控制器C3中获得响应,则逻辑46从决策逻辑64回到步骤66,并且继续探询C3。根据控制器C1-C3中的哪个首先响应来自步骤56-60的探询,执行步骤68、70或72中的一个。例如,如果控制器Cl首先响应,则决策逻辑62前进到步骤68,在此处,逻辑46停止探询控制器C2和C3,并且再次将控制器Cl设定成指定的控制器。在这种情况下,新指定的控制器与之前指定的控制器相同,而且基于网络的HMI 32继续与控制器Cl通信,并且从控制器Cl获得数据。如果控制器C2首先响应,则决策逻辑64前进到步骤70,在此处,逻辑46停止探询控制器Cl和C3,并且将控制器C2设定成指定的控制器。在这种情况下,基于网络的HMI32切换其通信路径,以与控制器C2通信,并且从控制器C2获得数据。如果控制器3首先响应,则决策逻辑66前进到步骤72,在此处,逻辑46停止探询控制器C2和Cl,并且将控制器C3设定成指定的控制器。在这种情况下,基于网络的HMI 32切换其通信路径,以与控制器C3通信,并且从控制器C3获得数据。如将理解的那样,在控制器C1-C3上实现的逻辑46、48和50可与彼此通信,从而有效地构成模块40。在一个实施例中,可使用JavaScript代码或另一种其它适当的编程或脚本语言来实现逻辑46、48和50。参照图6,表示模块40的、在控制器C2中实现的部分的逻辑48开始于步骤76处。在步骤76处,控制器C2 (36b)初始是指定的控制器,并且对HMI客户机32提供数据。决策逻辑78确定控制器C2的通信路径(例如通往HMI客户机32和/或轮机系统12的路径)是否中断。如果没有检测到中断,则逻辑48回到步骤76,并且控制器C2仍然是指定的控制器。如果检测到中断,则逻辑48从决策逻辑78继续到步骤80、82和84中的各个,在步骤80、82和84中,分别探询控制器C2、C1和C3,并且它们的后续步骤(例如步骤86、88、90)可并行地发生。例如,探询步骤可包括查验控制器C2、Cl和C3中的各个并等待响应。从步骤80,在决策逻辑86处作出关于是否从控制器C2接收到响应的确定。如果没有从控制器C2中获得响应,则逻辑48从决策逻辑86回到步骤80,并且继续探询C2。同时,从步骤82,在决策逻辑88处作出关于是否从控制器Cl接收到响应的确定。如果没有从控制器Cl中获得响应,则逻辑48从决策逻辑88回到步骤82,并且继续探询Cl。而且同时,从步骤84,在决策逻辑90处作出是否从控制器C3接收到响应的确定。如果没有从控制器C3中获得响应,则逻辑48从决策逻辑90回到步骤84,并且继续探询C3。根据控制器C1-C3中的哪个首先响应来自步骤80-84的探询,执行步骤92、94、98中的一个。例如,如果控制器C2首先响应,则决策逻辑86前进到步骤92,在此处,逻辑48停止探询控制器Cl和C3,并且再次将控制器C2设定成指定的控制器。在这种情况下,新指定的控制器与之前指定的控制器相同,而且基于网络的HMI 32继续与控制器C2通信,并且从控制器C2中获得数据。如果控制器Cl首先响应,则决策逻辑88前进到步骤94,在此处,逻辑48停止探询控制器C2和C3,并且将控制器Cl设定成指定的控制器。在这种情况下,基于网络的HMI32切换其通信路径,以与控制器Cl通信,并且从控制器Cl中获得数据。如果控制器3首先响应,则决策逻辑90前进到步骤98,在此处,逻辑48停止探询控制器C2和Cl,并且将控制 器C3设定成指定的控制器。在这种情况下,基于网络的HMI 32切换其通信路径,以与控制器C3通信,并且从控制器C3中获得数据。接下来,参照图7,表示模块40的、在控制器C3中实现的部分的逻辑50始于步骤102处。在步骤102处,控制器C3 (36c)初始是指定的控制器,并且对HMI客户机32提供数据。决策逻辑104确定控制器C3的通信路径(例如通往HMI客户机32和/或轮机系统12的路径)是否中断。如果没有检测到中断,则逻辑50回到步骤102,并且控制器C3仍然是指定的控制器。如果检测到中断,则逻辑50从决策逻辑104继续到步骤106、108、110中的各个,在步骤106、108、110中,分别探询控制器C3、Cl和C2,并且它们的后续步骤(例如步骤112、114和118)可并行地发生。例如,探询步骤可包括查验控制器C3、C1和C2中的各个,以及等待响应。从步骤106,在决策逻辑112处作出关于是否从控制器C3接收到响应的确定。如果没有从控制器C3中获得响应,则逻辑50从决策逻辑112回到步骤106,并且继续探询C3。同时,从步骤108,在决策逻辑114处作出关于是否从控制器Cl接收到响应的确定。如果没有从控制器Cl中获得响应,则逻辑50从决策逻辑114回到步骤108,并且继续探询Cl。而且同时,在步骤110处,在决策逻辑118处作出关于是否从控制器C2接收到响应的确定。如果没有从控制器C2中获得响应,则逻辑50从决策逻辑118回到步骤110,并且继续探询C2。根据控制器C1-C3中的哪个首先响应于来自步骤106、108和110的探询,执行步骤120、122和124—个。例如,如果控制器C3首先响应,则决策逻辑112前进到步骤120,在此处,逻辑50停止探询控制器Cl和C2,并且再次将控制器C3设定成指定的控制器。在这种情况下,新指定的控制器与之前指定的控制器相同,而且基于网络的HMI 32继续与控制器C3通信,并且从控制器C3中获得数据。如果控制器Cl首先响应,则决策逻辑114前进到步骤122,在此处,逻辑50停止探询控制器C2和C3,并且将控制器Cl设定成指定的控制器。在这种情况下,基于网络的HMI32切换其通信路径,以与控制器Cl通信,以及从控制器Cl中获得数据。如果控制器C2首先响应,则决策逻辑118前进到步骤124,在此处,逻辑50停止探询控制器Cl和C3,并且将控制器C2设定成指定的控制器。在这种情况下,基于网络的HMI 32切换其通信路径,以与控制器C2通信,并从控制器C2中获得数据。如根据上面关于图5-7所提供的描述能理解的那样,由模块40执行的逻辑46、48或50的一部分可取决于在通信中断时,哪个控制器在提供数据(例如指定的控制器)。例如,如果在发生中断时,控制器C2是指定的控制器,则执行图6中的逻辑48所描绘的过程,以确定下一个指定的控制器。参照图8-9,示出了描绘上面描述的基于网络的HMI 32的实施例的屏幕截图。如上面论述以及图8中示出的那样,基于网络的HMI 32可实现为网络浏览器128中的网页130。以示例的方式,可使用互联网浏览器(Internet Explorer)、火狐浏览器(MozillaFirefox)、苹果浏览器(Apple Safari)或任何其它适当的网络浏览器软件来实现网络浏览器128。网页130可包括各种要素,诸如窗口 132、状态条134、导航选项136和指定的控制器指示器138。在示出的实施例中,窗口 132可配置成显示关于轮机系统12的某些构件或子控制器的操作模式。状态条134可配置成显示关于某些参数的值,诸如速度(以RPM为单位)和功率输出(以兆瓦为单位)。导航选项136可允许操作者导航不同的窗口(例如 由不同的网页或网页内的不同框表示),以访问关于系统10的不同方面的数据。指示器138可告知操作者(例如HMI的用户)关于控制器C1-C3中的哪个是当前指定的控制器。例如,在图8中,指示器138示出了控制器Cl是当前指定的控制器。网络浏览器128的地址栏还可指示对应于控制器Cl的IP地址140。在与控制器Cl的通信中断的情况下,图9示出如果控制器C2被选择为新指定的控制器,网页130可如何更新的示例。例如,如图9中示出的那样,指示器138现在指示指定的控制器已经从Cl变成C2。另夕卜,网络浏览器128的地址栏还示出了对应于控制器C2的更新的IP地址140。如将理解的那样,本文仅以示例的方式提供与从分布式控制系统中的冗余的控制器组中自动地选择指定的控制器有关的上述的多种技术。因此,应当理解,本公开不应理解为仅限于在上面提供的示例。另外,应当理解,可按任何适当的方式来实现上面论述的技术,包括硬件(例如适当地配置的电路)、软件(例如通过计算机程序,其包括存储在一个或多个有形的计算机可读介质上的可执行代码),或者通过使用硬件和软件元件两者的组合。因而,如本文所用,术语“代码”可表示可存储在机器可读存储介质(例如硬盘、硬盘驱动器、光学驱动器、闪速存储器等)中供处理器执行的机器可读代码(例如可由计算机和/或处理器读取的)。本书面描述使用示例来公开本发明,包括最佳模式,并且还使本领域任何技术人员能够实践本发明,包括制造和使用任何装置或系统,以及实行任何结合的方法。本发明的可取得专利的范围由权利要求限定,并且可包括本领域技术人员想到的其它示例。如果这样的其它示例具有不异于权利要求的字面语言的结构要素,或者如果它们包括与权利要求的字面语言无实质性差异的等效结构要素,则它们意于处在权利要求的范围之内。
权利要求
1.一种控制系统,包括 多个控制器,各配置成在被选择为指定的控制器时对人机接口(HMI)客户机提供过程数据,其中,所述多个控制器中的第一控制器是配置成与所述HMI客户机通信的当前指定的控制器;以及 指定的控制器选择逻辑,其配置成检测所述当前指定的控制器和所述HMI客户机之间的通信的中断,探询所述多个控制器中的各个的响应,确定所述多个控制器中的哪个首先响应,以及选择首先响应的控制器作为下一个指定的控制器。
2.根据权利要求I所述的控制系统,其中,所述指定的控制器选择逻辑对所述HMI客户机标识所述下一个指定的控制器,以及其中,所述HMI客户机在接收到其身份之后,自动地与所述下一个指定的控制器通信。
3.根据权利要求2所述的控制系统,其中,标识所述下一个指定的控制器包括提供与所述下一个指定的控制器的通信端口对应的互联网协议地址到所述HMI客户机。
4.根据权利要求I所述的控制系统,其中,所述HMI客户机包括基于网络的HMI客户机。
5.根据权利要求I所述的控制系统,其中,各个控制器包括嵌入式网络服务器应用程序。
6.根据权利要求I所述的控制系统,其中,所述过程数据作为动态网页从所指定的控制器传送到所述HMI客户机。
7.根据权利要求I所述的控制系统,其中,所述当前指定的控制器和所述下一个指定的控制器包括同一控制器。
8.根据权利要求I所述的控制系统,其中,所述指定的控制器选择逻辑分布在所有所述多个控制器中。
9.根据权利要求I所述的控制系统,其中,所述指定的控制器选择逻辑包括JavaScript编程代码。
10.一种系统,包括 过程; 客户机装置,包括基于网络的人机接口(HMI);以及 分布式控制系统,与所述客户机装置和所述过程进行网络化通信,其中,所述分布式控制系统配置成控制所述过程,并且包括 多个控制器,各配置成在用作指定的控制器时,对所述客户机装置的基于网络的HMI提供来自所述过程的数据;以及 指定的控制器选择逻辑,其配置成检测之前指定的控制器和所述基于网络的客户机之间的通信的中断,探询所述多个控制器中的各个的响应,以及把当前指定的控制器选择为首先响应于探询的控制器; 其中,所述客户机装置配置成自动地与所述当前指定的控制器建立通信,以获得来自所述过程的数据。
11.根据权利要求10所述的系统,其中,所述多个控制器包括第一控制器、第二控制器和第三控制器,以及其中,所述指定的控制器选择逻辑分布在所述第一控制器、所述第二控制器和所述第三控制器中。
12.根据权利要求11所述的系统,其中,所述指定的控制器选择逻辑的第一部分存储在所述第一控制器的存储器中,以及其中,所述指定的控制器选择逻辑的所述第一部分配置成 当所述第一控制器是所述之前指定的控制器时,确定所述客户机装置和所述第一控制器之间的通信是否中断; 如果所述客户机装置和所述第一控制器之间的通信中断,则探询所述第一控制器、所述第二控制器和所述第三控制器的响应; 确定所述第一控制器、所述第二控制器和所述第三控制器中的哪个首先响应于所述探询;以及 选择首先响应的控制器作为所述当前指定的控制器,并且停止对其余的控制器的探询。
13.根据权利要求12所述的系统,其中,所述指定的控制器选择逻辑的第二部分存储在所述第二控制器的存储器中,以及其中,所述指定的控制器选择逻辑的所述第二部分配置成 当所述第二控制器是所述之前指定的控制器时,确定所述客户机装置和所述第二控制器之间的通信是否中断; 如果所述客户机装置和所述第二控制器之间的通信中断,则探询所述第一控制器、所述第二控制器和所述第三控制器的响应; 确定所述第一控制器、所述第二控制器和所述第三控制器中的哪个首先响应于所述探询;以及 选择首先响应的控制器作为所述当前指定的控制器,并且停止对其余的控制器的探询。
14.根据权利要求13所述的系统,其中,所述指定的控制器选择逻辑的第三部分存储在所述第三控制器的存储器中,以及其中,所述指定的控制器选择逻辑的所述第三部分配置成 当所述第三控制器是所述之前指定的控制器时,确定所述客户机装置和所述第三控制器之间的通信是否中断; 如果所述客户机装置和所述第三控制器之间的通信中断,则探询所述第一控制器、所述第二控制器和所述第三控制器的响应; 确定所述第一控制器、所述第二控制器和所述第三控制器中的哪个首先响应于所述探询;以及 选择首先响应的控制器作为所述当前指定的控制器,并且停止对其余的控制器的探询。
15.根据权利要求10所述的系统,其中,所述基于网络的HMI与所述当前指定的控制器的网络服务器通信,并且获得来自所述过程的、作为动态地产生的网页的数据。
16.根据权利要求15所述的系统,其中,所述基于网络的HMI配置成使用异步JavaScript和XML (AJAX)网络应用程序来获得来自所述过程的数据。
17.根据权利要求15所述的系统,其中,所述网络服务器包括至少部分地基于实时操作系统的嵌入式网络服务器。
18.根据权利要求15所述的系统,其中,所述客户机装置包括计算机工作站、笔记本计算机、个人数字助理(PDA)、移动电话、平板计算机或它们的某个组合。
19.根据权利要求15所述的系统,其中,所述过程包括燃气轮机系统。
20.一种其上编码有指令的、有形的计算机可读介质,其中,所述指令包括 用于确定指定的控制器和基于网络的客户机之间的通信是否中断的机器可读代码,其中,所指定的控制器是之前从冗余的控制系统的多个控制器中选出的; 用以探询所述多个控制器中的各个的响应的机器可读代码; 用以标识所述多个控制器中的哪个首先响应于所述探询的机器可读代码; 用以选择首先响应的控制器作为新指定的控制器的机器可读代码。
全文摘要
本发明主题为“使用网络客户机的分布式控制系统中的指定的控制器的自动检测”。在一个实施例中,一种控制系统包括多个控制器。多个控制器中的各个配置成在被选择为指定的控制器时,对人机接口(HMI)客户机提供过程数据。多个控制器中的第一控制器是当前指定的控制器,并且配置成与HMI客户机通信。控制系统还包括指定的控制器选择逻辑,该指定的控制器选择逻辑配置成检测当前指定的控制器和HMI客户机之间的通信的中断,探询多个控制器中的各个的响应,确定多个控制器中的哪个首先响应,以及选择首先响应的控制器作为下一个指定的控制器。
文档编号G05B23/02GK102902262SQ20121026335
公开日2013年1月30日 申请日期2012年7月27日 优先权日2011年7月27日
发明者S.武雷, M.R.费尔普斯, R.萨拉斯瓦特, R.巴拉苏布拉马尼亚姆 申请人:通用电气公司