发明内容
为克服现有技术的问题,本发明的目的是提出一种保持原系统功能和性能的冗余架构控制系统和方法,本发明所述系统和方法进一步拓展控制平台的应用领域,使其能够适应较为严酷和恶劣的应用环境。对原有系统进行改造,增加一套完全相同的硬件系统,使硬件系统冗余,同时保持原控制平台的功能和用法,确保使用原平台的工程师,基本不需做培训,就能使用改造后的系统。所述的系统保持原控制平台的性能,包括系统控制算法运算和处理能力、通讯实时性,以及系统的可靠性和稳定性。所述系统控制系统定期维护时,整个系统不用整体停机,生产仍然正常进行,提高控制系统的整体维护周期。所述系统和方法完全达到对原控制平台的改造目标。
本发明的目的是这样实现的:一种保持原系统功能和性能的冗余架构控制系统,包括:控制器、HMI服务器、多个操作员站、多个I/O从站、互为主从的两个交换机、通讯网络、现场总线;所述的冗余架构控制系统,逻辑上是一套控制平台,物理上是两套控制平台互为主从机,使整体硬件实现冗余;其中,
控制器冗余:设有两台控制器,可在冗余架构下以主机/从机的模式工作,也可在单机模式下工作,两台控制器之间设有专用数据同步链路;
HMI服务器冗余:设有两台HMI服务器均能提供人机界面交互服务,可在冗余架构下以主机/从机的模式工作,也可在单机模式下工作;
通讯网络冗余:设有两套独立的以太网络,分属2个通讯网段;
现场总线冗余:设有两套独立的现场总线;
I/O从站冗余:每个I/O从站设有两套互为主从的I/O卡件;
所述的HMI服务器中设置有HMI服务器Shell装置,所述的操作员站中设置有操作员站Shell装置,所述的控制器中设置有控制器Shell装置,所述的HMI服务器Shell装置、操作员站Shell装置通过通讯网络的两个通讯网段和两个交换机与控制器Shell装置连接,所述的控制器通过两套现场总线与I/O从站连接。
一种使用上述系统的保持原系统功能和性能的冗余架构控制方法,所述的各个站点启动和运行步骤如下:
a.控制器启动、运行步骤:
1)启动步骤:
操作系统启动,同时加载现场总线通讯程序;
控制器Shell程序启动;
现场总线通讯程序启动;
监控程序启动;
实时任务处理程序启动;
HMI通信程序启动;
同步程序启动;
2)运行步骤:
控制器的运行,是一个不断地循环往复的处理过程,控制器Shell程序需处理四种数据:
I/O从站的采集、处理数据:控制器Shell程序接收I/O从站的采集数据,判断是否为主的I/O卡件发过来的,若是,允许其传输到总线通讯程序;否则,忽略该I/O从站的采集数据,同时,接收总线通信程序发过来的I/O从站的采集数据,并将本控制器的主从状态封装进处理数据中,发给I/O从站;
实时任务处理数据:控制器Shell程序接收另一台控制器Shell程序发送的实时任务处理数据,判断是否为主控制器发过来的,若是,允许其传输到同步程序;否则,忽略该实时任务处理数据,同时,控制器Shell程序接收同步程序传输过来的实时任务处理数据,并将本控制器的主从状态封装进该实时任务处理数据中,发给另一台控制器;
HMI设定、处理数据:控制器Shell程序接收一台HMI服务器Shell程序发送的HMI设定数据,判断是否为主HMI服务器发过来的,若是,允许其传输到HMI通讯接口;否则,忽略该HMI设定数据,同时,控制器Shell程序接收HMI服务器传输过来的HMI设定数据,并将本控制器的主从状态封装进该HMI处理数据中,发给两台HMI服务器;
站点、现场总线和网络通讯的状态数据:控制器Shell程序接收另一台控制器Shell发送的状态数据,判断是否为主控制器发过来的,若是,允许其传输到监控程序;否则,忽略这些状态数据,同时,控制器Shell程序接收监控程序发送的状态数据,并将本控制器的主从状态封装进该状态数据中,发给另一台控制器;
b. HMI服务器启动、运行步骤:
1)启动步骤:
操作系统启动,同时加载现场总线通讯程序;
HMI服务器的Shell程序启动;
操作员站通讯接口和控制器通讯接口启动;
HMI服务程序启动;
HMI同步程序启动;
2)运行步骤:
HMI服务器的运行,是一个事件驱动的后台服务程序,HMI服务器的HMI服务器Shell程序需处理三种数据:
HMI中间数据:HMI服务器Shell程序接收另一台HMI服务器Shell程序发送的HMI中间数据,判断是否为主控制器发过来的,若是,允许其传输到同步程序;否则,忽略该中间数据,同时,HMI服务器的Shell程序接收HMI同步程序传输过来的HMI中间数据,并将本HMI服务器的主从状态封装进该中间数据中,发给另一台HMI服务器;
与操作员站交互的HMI数据:HMI服务器Shell程序接收操作员站Shell程序发送的HMI设定数据,直接将其传输到操作员站通讯接口,同时,HMI服务器Shell程序接收操作员站通讯接口传输过来的HMI设定数据,并将本HMI服务器的主从状态封装进该数据中,发给所有的操作员站;
与控制器交互的HMI数据:HMI服务器Shell程序接收一台控制器Shell程序发送的HMI处理数据,判断是否为主控制器发过来的,若是,允许其传输到控制器通讯接口;否则,忽略该HMI处理数据,同时,HMI服务器Shell程序接收控制器通讯接口传输过来的HMI处理数据,并将本HMI服务器的主从状态封装进该中间HMI处理数据中,发给两台控制器;
c.操作员站启动、运行步骤:
1)启动步骤:
操作系统启动;
操作员站Shell程序启动;
HMI画面服务接口启动;
HMI画面显示程序启动;
2)运行步骤:
HMI画面显示,是操作员站与整个冗余架构控制系统进行交互的接口,HMI处理数据定时刷新,HMI画面显示信息会不断得到更新;
所述的操作员站Shell程序只处理一种数据:
HMI处理数据:操作员站Shell程序接收HMI服务器Shell程序发送的HMI处理数据,判断是否为主HMI服务器发过来的,若是,允许其传输到HMI画面服务接口;否则,忽略该HMI处理数据,同时,操作员站Shell程序接收HMI服务器传输过来的HMI处理数据,并将HMI设定数据发给HMI服务器。
本发明与已有技术相比产生的有益效果是:本发明在各个站点中增加的Shell装置,使系统冗余后保持了与原系统完全一样的界面和操作方式,使用者完全感觉不到变化。两套互为备份的系统安全可以单独正常运行,甚至对原系统进行冗余改造时,原系统还可以正常运行,不受干扰。
1、本发明从硬件、软件两方面保持了原控制平台功能、用法以及性能的目标,保持了系统控制算法运算和处理能力、通讯实时性,以及系统的可靠性和稳定性;本发明在保证稳定性的前提下,不断改进完善系统性能,最大限度地满足应用需要的原则,充分应用了信号处理技术、网络通信技术、可靠的软件平台和软件设计技术和现场总线技术,采用了高性能的微处理器和成熟的先进控制算法,使其具有高速可靠的数据输入输出、运算、过程控制功能和联锁逻辑控制功能,能适应更广泛更复杂的应用要求,成为一个架构先进、结构灵活、功能更加完善的新型开放控制系统平台。
2、当本发明控制平台从冗余状态进入到单机工作状态定期维修时,可以一套控制系统工作,而另一套控制系统进行维修,整个系统不用整体停机,延长了系统的整体维护周期,使系统提高了生产效率,降低了整体生产成本。
具体实施方式
实施例一:
冶金自动化工程中现有的自动控制平台,应用与冶金行业的各个领域,性能优良,运行可靠,已经十分成熟,其基本组成如图1所示。系统有多个操作员站、HMI服务器,这些站点通过通信网络和通讯网络中的交换机与控制器连接,控制器通过现场总线与多个I/O从站连接。其中:
控制站:用于过程控制,实现物理位置、控制功能都相对分散的硬件设备。控制站中,以高性能微处理器为核心,进行多种过程控制运算和数字逻辑运算,并能通过现场总线与各个I/O从站交换信息,即获取I/O从站采集的现场数据,又通过I/O从站进行过程控制。
操作员站:具有实现工艺过程监视、操作、记录等功能,是以工业PC机为基础的人机交互设备。由于有多个操作员站,所以各个操作员站配备完全一致的软硬件系统,互为备用。操作员站配备了标准的操作台,使任何熟悉自己操作台的操作员,可以在另一个操作台上熟练的工作,而不会有任何生疏感。
I/O从站:为插接在工业现场的各种类型设备的数字终端的输入、输出接口板卡,用于采集并输入过程变量,以及按照控制站的控制要求,输出过程变量。所述的数字终端可以是工控计算机、单片机、可编程控制器等可以进行工业自动控制的数字化控制系统。现场总线连接至少一个I/O板卡,构成控制站的远程I/O从站。应当说明是,本实施例使用了板卡和卡件的概念,这两者是有区别的。卡件的实际意义是:I/O的物理接口。因此,说到两个卡件,可能是两个板卡上各有一个物理O/I接口,也可能是一个板卡上有两个物理I/O接口,甚至可以认为是两套数字终端。
现场总线:用于完成控制站与所有连接在现场总线上的I/O从站的通讯。现场总线可以是Profibus DP总线,或其他任何可以达到类似性能的总线系统。
通信网络:用于实现系统各个站点之间的相互通讯,将控制站、操作员站、构成一个完整的分布式控制系统的通讯网络。通讯网络可以是基于TCP/IP协议的网络,如10M/100Mbps的以太网,网络范围可以局域网或广域网,链路距离相对较长。也可以使用其他类型的宽带、长距离链路。
本实施例是一种保持原系统功能和性能的冗余架构控制系统,是对上述系统进行的冗余改造形成的新系统,如图2所示。本实施例包括:控制器、HMI服务器、多个操作员站、多个I/O从站、互为主从的两个交换机、通讯网络、现场总线;所述的冗余架构控制系统,逻辑上是一套控制平台,物理上是两套控制平台互为主从机,使整体硬件实现冗余。其中,
控制器冗余:在原一台控制器的基础上再增加一条控制器,设为两台控制器,互为备份,在冗余架构下以主机/从机的模式工作,一台控制器为主机时另一台为从机,或者相反,没有特定的主机或从机,只是在实际操作时任选一台设为主机,而另一台则为从机,而出现故障或其他原因,设置的主机不能正常工作时,则将原来的从机设置为主机。在一些情况下也可在单机模式下工作。例如,一台控制器出现故障时,另一台控制器可以单独运行,完全支持正常的工作。两台控制器之间设有专用数据同步链路,以便进行数据同步。在实际系统运行中,系统中的数据在不断变化,因此必须不断的进行系统的数据更新,由于是冗余系统,两套并行的系统中的数据必须完全一样,使两套系统的切换时不会对被控设备造成任何差错,否则不能达到系统冗余的效果。两台控制器中的任何数据变化都必须通知另一台控制器,近似于同时更新。为此专门设置了专用同步链路,使数据的快速更新不受到任何其他因素的干扰。
HMI服务器冗余:设有两台HMI服务器均能提供人机界面交互服务,可在冗余架构下以主机/从机的模式工作,也可在单机模式下工作。控制器冗余还不够,任何显示上的问题也会给被控设备造成控制的失误,另外,一个完整的系统没有HMI也是不能很好工作的。因此,HMI服务器冗余同样十分必要。
通讯网络冗余:设有两套独立的以太网络,分属2个通讯网段。长距离的通讯网络十分容易出现故障,因此设置两套独立的以太网络。在实际应用中甚至将两套独立的通讯网络布置在的不同的通道中,通过不同的路径连接在操作室中的操作员站、HMI服务器和在现场的控制器。防止任何意外的物理断点。
现场总线冗余:设有两套独立的现场总线。在生产车间现场环境的恶劣是必然的,因此,现场总线冗余更加必要。
I/O从站冗余:每个I/O从站设有两套互为主从的I/O卡件。冗余的卡件可以是两块板卡,也可以是一块板卡上的两个I/O接口,也可以是两套数字终端。
由于有多个操作员站可以互为备份,所以操作员站没有主机和从机之分。操作员站经过设置可以成为一个特殊的站点,称为工程师站。工程师站具有所有操作员站的功能,除此之外还可以用于控制应用软件组态、系统监视、系统维护的工程设备,同时具有对过程控制站控制应用软件的下载和上传功能。工程师站具有比普通操作员站更大的权限。
本实施例的关键在于所述的HMI服务器中设置有HMI服务器Shell装置,所述的操作员站中设置有操作员站Shell装置,所述的控制器中设置有控制器Shell装置,所述的HMI服务器Shell装置、操作员站Shell装置通过通讯网络的两个通讯网段和两个交换机与控制器Shell装置连接,所述的控制器通过两套现场总线与I/O从站连接。
本实施例采用以Shell机制为核心,构建冗余的软件架构,包括原控制平台的软件架构和冗余控制平台的软件架构,如图3所示。各个站点中的Shell装置成为控制器、HMI服务器,操作员站彼此之间通讯的中转枢纽。而且控制器之间的同步、HMI服务器之间的同步,以及整个平台的状态监控,均需借助Shell装置进行通讯,而在原控制平台中,控制器与HMI服务器,HMI服务器与操作员站,均直接使用彼此的接口进行通讯。
Shell机制的基本原理是:不直接干涉原控制平台中各个站点(包括控制器、HMI服务器以及操作员站)内部的软件运行,而是在各个站点软件的外部,建立一个壳(即Shell)装置,由其控制内部软件的输入数据来源,以及输出数据的流向。现以控制器和HMI服务器之间通讯为例,来理解Shell机制。原控制器和HMI服务器二者之间的通讯示意,如图4所示。本实施例所述控制器和HMI服务器之间的通讯,如图5所示。对比图4和图5,原控制器和HMI服务器的系统,被全部保留。采用Shell机制,只需修改原控制器和HMI服务器通讯接口的访问地址和端口,不需要修改原有程序的通讯数据的处理、程序逻辑和结构,使得原控制系统的运行与处理得以完整保存。因此,可以有效的保持原控制平台功能、用法以及性能。
控制器和HMI服务器上的Shell装置的处理逻辑基本相同:收到对方的数据后,判断对方是否为主,如为主机,则对数据放行,直接将数据透明地传输到对应的通讯程序;如为从机,则忽略该数据,此信息就无法到达通讯程序。其它站点的Shell程序的工作方式与其类似。
另外,通过Shell机制,原控制平台内部的系统,被完整地保留下来,其处理数据、逻辑和接口等,均未发生变化,确保原控制平台内部软件仍是一个独立的运行整体;同时,它又将两套原控制平台有机地结合在一起,数据均能实时共享,使两套原控制平台互为热备,相互协调,进一步提高系统的可靠性。因此,通过Shell机制,最大程度地实现了冗余架构无缝的植入。
本实施例还设置了监控机制,不断的检测系统是否正常工作。检查控制器、HMI服务器和各I/O从站的状态,以及通讯网络和现场总线的连接状态一旦出现问题,或报警或进行处理。
本实施例还设置了同步机制,保证两套并行的系统数据的同步。
本实施例还设置了网络通讯检测,采用心跳机制和ping相结合的方式检测网络的物理连接状态。
应当说明的是:本实施例中使用的平台和系统的概念。平台是系统的另一种称呼,概念与系统基本相同,但平台更强调可扩展性,系统强调环境和范围平台是一种泛指的系统,而系统则常指具有应用。系统和平台都包括硬件和软件。
实施例二:
本实施例是一种使用实施例一所述系统的保持原系统功能和性能的冗余架构控制方法,所述的各个站点启动和运行步骤如下:
a.控制器启动、运行步骤:
1)启动步骤:
实时Linux操作系统启动:加载实时Kernel和文件系统,运行所有设备驱动程序。
控制器Shell程序启动:为本控制器的现场总线通讯程序、监控程序、同步程序、HMI通讯程序等,与另一台控制器、两台HMI服务器建立通讯通道。
加载现场总线驱动,完成现场总线通讯的建立。
监控程序启动,做好实时监控各个应用程序的准备。
实时任务处理程序启动:开始根据接收的数据,实时地进行控制算法运算并将运算结果实时输出。
HMI通信程序启动:开始与HMI服务器通讯,实现人机界面信息的交换。
同步程序启动:开始(本身为主控制器时)向另一台从控制器同步控制算法的运算结果。
2)运行步骤:
控制器的运行,是一个不断地循环往复的处理过程,控制器Shell程序需处理四种数据,数据流图如图6所示:
I/O从站的采集、处理数据:控制器Shell程序接收I/O从站的采集数据,判断是否为主的I/O卡件发过来的,若是,允许其传输到现场总线通讯程序,由其传输给实时任务的控制算法进行运算;否则,忽略该I/O从站的采集数据。同时,接收总线通信程序发过来的I/O从站的采集数据,并将本控制器的主从状态封装进处理数据中,发给I/O从站。
实时任务处理数据:控制器Shell程序接收另一台控制器Shell程序发送的实时任务处理数据,判断是否为主控制器发过来的,若是,允许其传输到同步程序,由同步程序同步到相应的控制算法中去;否则,忽略该实时任务处理数据。同时,控制器Shell程序接收同步程序传输过来的实时任务处理数据,并将本控制器的主从状态封装进该实时任务处理数据中,发给另一台控制器。
HMI设定数据:控制器Shell程序接收一台HMI服务器Shell程序发送的HMI设定数据,判断是否为主HMI服务器发过来的,若是,允许其传输到HMI通讯接口,由其传输给HMI服务程序,完成本HMI服务器对该HMI设定值的修改;否则,忽略该HMI设定数据。同时,控制器Shell程序接收HMI服务器传输过来的HMI设定数据,并将本控制器的主从状态封装进该HMI处理数据中,发给两台HMI服务器。
站点、现场总线和通讯网络的状态数据:控制器Shell程序接收另一台控制器Shell发送的状态数据,判断是否为主控制器发过来的,若是,允许其传输到监控程序,监控程序据此状态数据,判断并设置当前站点、现场总线和通讯网络的状态。否则,忽略这些状态数据。同时,控制器Shell程序接收监控程序发送的状态数据,并将本控制器的主从状态封装进该状态数据中,发给另一台控制器。
b.HMI服务器启动、运行步骤:
1)启动步骤:
Window XP操作系统启动。
HMI服务器的Shell程序启动:为本服务器的操作员站通讯接口程序、控制器通讯接口程序、HMI同步程序等,与另一台HMI服务器、多台操作员站、两台控制器建立通讯通道。
操作员站通讯接口程序启动:做好与操作员站进行通讯的准备。
控制器通讯接口程序启动:做好与控制器进行通讯的准备。
HMI服务程序启动:开始提供人机界面信息交换的服务。
HMI同步程序启动:开始(本身为主HMI服务器时)向另一台从HMI服务器同步HMI数据。
2)运行步骤:
HMI服务器的运行,是一个事件驱动的后台服务程序,HMI服务器的HMI服务器Shell程序需处理三种数据,数据流图如图7所示:
HMI中间数据:HMI服务器Shell程序接收另一台HMI服务器Shell程序发送的HMI中间数据,判断是否为主控制器发过来的,若是,允许其传输到同步程序;否则,忽略该中间数据,同时,HMI服务器的Shell程序接收HMI同步程序传输过来的HMI中间数据,并将本HMI服务器的主从状态封装进该中间数据中,发给另一台HMI服务器。
与操作员站交互的HMI数据:HMI服务器Shell程序接收操作员站Shell程序发送的HMI设定数据,直接将其传输到操作员站通讯接口,同时,HMI服务器Shell程序接收操作员站通讯接口传输过来的HMI设定数据,并将本HMI服务器的主从状态封装进该数据中,发给所有的操作员站。
与控制器交互的HMI数据:HMI服务器Shell程序接收一台控制器Shell程序发送的HMI处理数据,判断是否为主控制器发过来的,若是,允许其传输到控制器通讯接口;否则,忽略该HMI处理数据,同时,HMI服务器Shell程序接收控制器通讯接口传输过来的HMI处理数据,并将本HMI服务器的主从状态封装进该中间HMI处理数据中,发给两台控制器。与操作员站交互的HMI数据:将HMI数据处理并封装成HMI画面显示需要的数据格式。与控制器交互的HMI数据:将HMI数据处理并封装成适合于控制器运算需要的数据格式。
c.操作员站启动、运行步骤:
1)启动步骤:
Windows XP操作系统启动。
工程师站或操作员站Shell程序启动:为本站的HMI画面服务接口程序,与两台HMI服务器建立通讯通道。
HMI画面服务接口程序启动:做好与HMI服务器进行通讯的准备。。
HMI画面显示程序启动:显示HMI操作画面。
2)运行步骤:
HMI画面显示,是操作员站与整个冗余架构控制系统进行交互的接口,HMI处理数据定时刷新,HMI画面显示信息会不断得到更新。
所述的操作员站Shell程序只处理一种数据,数据流图如图8所示:
HMI处理数据:操作员站Shell程序接收HMI服务器Shell程序发送的HMI处理数据,判断是否为主HMI服务器发过来的,若是,允许其传输到HMI画面服务接口;否则,忽略该HMI处理数据,同时,操作员站Shell程序接收HMI服务器传输过来的HMI处理数据,并将HMI设定数据发给HMI服务器。
实施例三:
本实施例是实施例二的改进,是实施例二所述监控程序的细化。所述的监控程序,是全面管理整个冗余控制平台的站点状态管理和命令管理,监控程序的人机交互界面设置在一个操作员站中。这个操作员站经过软件设置成为工程师站。工程师站有监管的权限,并显示一些与管理有关的信息,其他与操作员站完全相同。因此,监控程序的运行要将一个操作员站设置为工程师站。监控程序运行的流程步骤如下:
a. 检查控制器、HMI服务器和I/O从站站点的状态,包括主机、从机、单机工作、故障状态,并将这些状态更新到工程师站对应画面上。
b. 检查各个网段的连接状态,以及每个I/O从站与控制器的现场总线连接状态,并将这些状态更新到工程师站对应画面上。
c. 检查过程中,若发现站点状态,或网段以及现场总线连接状态出现故障,则对应的站点或通讯连接马上转为故障状态,工程师站上对应画面即进行报警显示。
d. 检查过程中,若发现站点状态,或网段以及现场总线连接状态从故障状态变为正常工作状态,则对应的站点或通讯连接自动转为正常工作状态,工程师站上对应画面的报警显示即自动消失。
e. 查询工程师站的命令接口,解析该接口数据。若发现有新的主/从切换命令,立刻执行对应的切换工作,并将执行的结果返回给工程师站。
以上步骤依次,并往复循环执行。
实施例四:本实施例是实施例二、三的改进,是实施例二、三关于同步机制的细化。本实施例所述的两套控制平台中设有同步机制,所述的同步机制包括两个层次:
控制器层、HMI服务器层,均是主机向从机同步数据。
所述的控制器层内的同步程序,按照是否存在时间累积效应,分为两部分:
有时间累积效应的运算,每2个运算周期(即50ms)进行一次同步,用主控制器的控制算法运算结果覆盖从控制器的控制算法运算结果。
无时间累积效应的运算,每100个运算周期(即2.5s)进行一次同步,用主控制器的控制算法运算结果覆盖从控制器的控制算法运算结果。
所述的HMI服务器层内的HMI同步程序,每100个运算周期(即2.5s)进行一次同步,用主HMI服务器的HMI数据覆盖从HMI服务器的HMI数据。
实施例五:
本实施例是对上述实施例的改进,是上述实施例所述监控程序的细化。本实施例所述的监控程序对网络通讯的检测中,采用心跳机制和网络PING相结合的方法检测。
所述的网络PING,应用在通讯网络IP层,以监测通讯网络的物理连接状态。网络PING是最常用的数据通信网络的监测方式。
心跳机制应用在控制器的专用同步链路,用以两个控制器相互监测工作状态。
心跳:通过在两台互相通讯的PC机或服务器上,以建立一个共同维护的数据,来确保在应用层的网络是正确连通的。实现方法为:一台PC对心跳数据进行加1操作;另一台PC收到后,先对这个值进行校验,确保是合法数据,然后判断改值是否为原来保存值加1,若是说明,说明应用层网络连通正常,否则,说明丢失心跳,说明应用层网络连通异常。
最后应说明的是,以上仅用以说明本发明的技术方案而非限制,尽管参照较佳布置方案对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案(比如各个Shell装置的连接方式、各个步骤的前后次序等)进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。