发明内容
本发明实施例所要解决的技术问题在于,针对现有虚拟盘台不能与硬盘台转台完全同步的技术缺陷,提供一种虚拟盘台与硬盘台的状态同步的方法及系统。
为了解决上述技术问题,本发明实施例提供了一种虚拟盘台与硬盘台的状态同步方法,包括以下步骤:
S1.读取用户选择的虚拟盘台的工作方式;所述工作方式包括超控方式、跟踪方式和操作方式;
S2.根据工作方式,确定虚拟设备状态值;
S3.根据虚拟设备状态值获得硬设备输入输出点的状态值;
S4.根据虚拟设备状态值更新虚拟设备的显示。
优选地,对于输入设备,虚拟设备状态值为虚拟设备输入状态值,所述步骤S2进一步包括:
S21.若为超控方式,将超控值保存为虚拟设备输入状态值;
S22.若为跟踪方式,根据硬设备输入点的状态值映射出虚拟设备输入状态值;
S23.若为操作方式,获取虚拟设备的输入,保存为虚拟设备输入状态值。
其中,对于输入设备,所述步骤S3为:根据虚拟设备输入状态值映射出硬设备输入点的状态值。
优选地,对于输出设备,虚拟设备状态值为虚拟设备输出状态值,所述步骤S2进一步包括:
S24.若为超控方式,将超控值作为虚拟设备输出状态值;
S25.若为跟踪方式或操作方式,将外部设备输入的状态值作为虚拟设备输出状态值。
其中,对于输出设备,所述步骤S3为:将虚拟设备输出状态值传给硬设备的输出点,作为硬设备输出点的状态值。
相应地,本发明还提供了一种虚拟盘台与硬盘台的状态同步系统,包括:硬盘台、虚拟盘台、所述硬盘台上的硬设备、所述虚拟盘台上的虚拟设备、与系统连接的外部设备、工作方式读取模块、虚拟设备状态值获取模块、硬设备状态值获取模块以及虚拟设备状态更新模块;
所述工作方式读取模块用于读取用户选择的虚拟盘台的工作方式;所述工作方式包括超控方式、跟踪方式和操作方式;所述虚拟设备状态值获取模块用于根据所述工作方式读取模块所读取的工作模式,确定虚拟设备状态值;所述硬设备状态值获取模块用于根据所述虚拟设备状态值获取模块获得的虚拟设备状态值获得硬设备输入输出点的状态值;所述虚拟设备状态更新模块用于根据所述虚拟设备状态值获取模块获得的虚拟设备状态值更新虚拟设备的显示。
优选地,所述虚拟设备状态值获取模块进一步包括虚拟设备输入状态值获取模块;
当所述工作方式为超控方式时,所述虚拟设备输入状态值获取模块将超控值保存为虚拟设备输入状态值;当所述工作方式为跟踪方式时,所述虚拟设备输入状态值获取模块根据硬设备输入点的状态值映射出虚拟设备输入状态值;当所述工作方式为操作方式时,所述虚拟设备输入状态值获取模块获取虚拟设备的输入并保存为虚拟设备输入状态值。
其中,所述硬设备状态值获取模块根据所述虚拟设备输入状态值获取模块获取的虚拟设备输入状态值映射出硬设备输入点的状态值。
优选地,所述虚拟设备状态值获取模块还包括虚拟设备输出状态值获取模块;
当所述工作方式为超控方式时,所述虚拟设备输出状态值获取模块将超控值作为虚拟设备输出状态值;当所述工作方式为跟踪方式或操作方式时,所述虚拟设备输出状态获取模块将外部设备输入的状态值作为虚拟设备输出状态值。
其中,所述硬设备状态值获取模块将所述虚拟设备输出状态值获取模块传送的虚拟设备输出状态值作为硬设备输出点的状态值。
实施本发明实施例,具有如下有益效果:本发明提供的状态同步方法针对虚拟盘台的三种运行方式,对每种运行方式都提出了行之有效的同步方法,使虚拟盘台与硬盘台的状态完全同步。同时,本发明还对虚拟盘台和硬盘台上的输入设备和输出设备分别设计了不同的状态同步方案,使设备的状态同步方案尽可能简单且有效,提高了状态同步的效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,图1是本发明提供的第一实施例虚拟盘台与硬盘台的状态同步方法流程图。如图1所示,本实施例提供的虚拟盘台与硬盘台的状态同步方法包括以下步骤:
S1.读取用户选择的虚拟盘台的工作方式;所述工作方式包括超控方式、跟踪方式和操作方式;
S2.根据工作方式,确定虚拟设备状态值;
S3.根据虚拟设备状态值获得硬设备输入输出点的状态值;
S4.根据虚拟设备状态值更新虚拟设备的显示。
在本发明中,当虚拟盘台工作在超控方式时,虚拟盘台与硬盘台同时工作,虚拟设备享有优先控制权,一旦对某一虚拟设备操作过之后,再对与该虚拟设备对应的硬设备操作时,硬设备不会有任何反应,相当于通过虚拟操作将该硬设备故障了,但是对于其他没有被操作的虚拟设备,其对应的硬设备正常工作。因此,超控方式是用来模拟硬设备故障的情况。
当虚拟盘台工作在跟踪方式时,虚拟盘台和硬盘台同时工作,虚拟盘台将跟踪显示硬盘台上的设备的状态和操作过程,此时,虚拟设备处在被动工作方式下,所有的控制操作只能从硬盘台上的设备发出,对虚拟设备操作不会产生实际效果。虚拟盘台此时起到的作用是对硬盘台进行监视。
当虚拟盘台工作在操作方式时,虚拟盘台可完成硬盘台所有的功能,包括对设备的操作和状态的显示。虚拟盘台工作在这一方式下时,一般应用在利用虚拟盘台代替硬盘台来完成控制功能的场合,以节省成本。
本实施例充分考虑了虚拟盘台的上述三种工作方式,并根据不同的工作方式分别确定虚拟设备的状态值,进而获得硬设备输入输出点的状态值,再利用获得的状态值更新虚拟设备的显示,以保证虚拟设备的状态与硬设备一致,进而有效实现了虚拟盘台与硬盘台状态的完全同步。
请参见图2,图2是本发明提供的第二实施例输入设备状态同步方法流程图。如图2所示,本实施例提供的输入设备状态同步方法包括以下步骤:
S11.判断用户选择的虚拟盘台的工作方式是否为超控方式,若是,则转步骤S21,否则转步骤S12;
S12.判断用户选择的虚拟盘台的工作方式是否为跟踪方式,若是,则转步骤S22,否则转步骤S23;
S21.将超控值保存为虚拟设备输入状态值,转步骤S3;
S22.根据硬设备IO点(输入输出点)的状态值映射出虚拟设备输入状态值,转步骤S3;
S23.获取虚拟设备的输入,保存为虚拟设备输入状态值,转步骤S3;
S3.根据虚拟设备输入状态值映射出硬设备IO点的状态值,转S4;
S4.根据虚拟设备输入状态值更新虚拟设备的显示。
在本发明中,输入设备是指接收使用者(例如操纵员)操作指令的人机接口设备,例如开关设备,操作员可通过操作该设备来控制实际或虚拟电厂中对应设备的运行状态。
本实施例首先通过步骤S11和S12确定用户所选择的虚拟设备当前的工作方式是超控方式、跟踪方式和操作方式中的哪一种,然后根据具体的工作方式,通过不同的同步方法,即步骤S21、S22和S23中的方法来获得虚拟设备输入状态值,再根据虚拟设备输入状态值映射出硬设备IO点的状态值,进而虚拟设备根据输入状态值更新虚拟设备的显示从而与硬设备的显示保持同步。
应理解,在本实施例中,对于输入设备,虚拟设备要能接收用户的操作,而且还要反馈对应的硬设备被操作时设备的变化状态。具体来说,在超控方式下,对虚拟设备进行操作即意味着将对应的硬设备失效,因此只需将超控方式下的超控值赋给虚拟设备,进而根据虚拟设备与硬设备的状态映射关系得到此时的硬设备状态值,进而将硬设备故障。在跟踪方式下,对硬设备操作的时候,虚拟设备也要跟着同步变化并显示,因此需要将硬设备的状态值映射出虚拟设备的状态值,进而更新虚拟设备显示。在操作方式下,虚拟设备接受用户的操作直接获得虚拟设备的状态值,进而根据映射关系得到硬设备的状态值,进而保持同步显示。从上面的分析可以看出,对于输入设备来说,要保证虚拟设备与映射的状态相同,不论是在何种工作模式下,最重要的是建立虚拟设备状态值与硬设备状态值的映射关系。例如,假设一个控制开关为自复位开关,有三种位置状态:开位置、关位置和中间位置,其中“中间位置”为自由状态。该开关有两个连接点A和B,断开时连接点对应的状态值为0,接通时为1。若开关扳到“开”位置时,A连接点接通,扳到“关”位置时,B连接点接通,那么该开关在以上三种位置时,A和B两个连接点对应的状态分别为:(1,0),(0,1),(0,0),而在系统中,该虚拟设备对应的状态值分别为:1,2,0。进而建立了硬设备IO点组合的状态值与虚拟设备状态值之间的映射关系。具体来说,在跟踪方式下,虚拟盘台接口程序检测到这两个IO点的状态为(1,0)时,就知道这个开关被切到了“开”位置,这时需要把虚拟设备的状态值设为“1”,虚拟设备在检测到其状态变为“1”后,其图形显示也随之变成对应的显示;反之,在超控方式下,当虚拟设备被超控到“开”位置时,其对应的设备状态值为1,此时,需要把状态值1映射到这两个IO点上,把这两个IO点的状态设置成(1,0)。
请参见图3,图3是本发明提供的第三实施例输出设备状态同步方法流程图。如图3所示,本实施例提供的输出设备状态同步方法包括以下步骤:
S1.判断用户选择的虚拟盘台的工作方式是否为超控方式,若是,则转步骤S21,否则转步骤S22;
S21.将超控值作为虚拟设备输出状态值,转步骤S3;
S22.从外部设备获取虚拟设备输出状态值,转步骤S3;
S3.将虚拟设备输出状态值传给硬设备的输出点,转步骤S4;
S4.根据虚拟设备输出状态值更新虚拟设备的显示。
由于输出设备只是用来显示的,并不存在类似输入设备中的反馈硬设备操作过程中的状态变化,所以输出设备的状态同步过程相对简单一些,只要保证硬设备与虚拟设备显示的信息一致即可。在超控方式下,虚拟设备和硬设备都显示超控后的状态,而不是显示超控前的状态。
以上两个实施例分别给出了针对输入和输出设备设计的不同的状态同步方法,其各自的状态同步方法不但结合了具体的工作方式,还结合了设备本身的特点,根据实际需要设计了简易程度不同的同步方法,使设备的状态同步方案尽可能简单且有效,提高了状态同步的效率。
请参见图4,图4是本发明提供的第四实施例虚拟盘台与硬盘台的状态同步系统方框图。如图4所示,本实施例提供的虚拟盘台与硬盘台的状态同步系统100包括硬盘台1、虚拟盘台2’、硬盘台1上的硬设备10、虚拟盘台2’上的虚拟设备20、与状态同步系统100连接的外部设备30、工作方式读取模块41、虚拟设备状态值获取模块21、硬设备状态值获取模块11以及虚拟设备状态更新模块22。
工作方式读取模块41用于读取用户选择的虚拟盘台的工作方式;工作方式包括超控方式、跟踪方式和操作方式。虚拟设备状态值获取模块21用于根据工作方式读取模块41所读取的工作模式,确定虚拟设备状态值。硬设备状态值获取模块11用于根据虚拟设备状态值获取模块21获得的虚拟设备状态值获得硬设备输入输出点的状态值。虚拟设备状态更新模块22用于根据虚拟设备状态值获取模块21获得的虚拟设备状态值更新虚拟设备20的显示。
在本发明中,当虚拟盘台工作在超控方式时,虚拟盘台与硬盘台同时工作,虚拟设备享有优先控制权,一旦对某一虚拟设备操作过之后,再对与该虚拟设备对应的硬设备操作时,硬设备不会有任何反应,相当于通过对虚拟设备的操作使该硬设备失效了,但是对于其他没有被操作的虚拟设备,其对应的硬设备正常工作。因此,超控方式是用来模拟硬设备故障的情况。
当虚拟盘台工作在跟踪方式时,虚拟盘台和硬盘台同时工作,虚拟盘台将跟踪显示硬盘台上设备的状态和操作过程,此时,虚拟设备处在被动工作方式下,所有的控制操作只能从硬盘台上的设备发出,对虚拟设备操作不会产生实际效果,此时虚拟盘台的作用是对硬盘台进行监视。
当虚拟盘台工作在操作方式时,虚拟盘台可完成硬盘台所有的功能,包括对输入设备的操作和对被控设备状态的显示。虚拟盘台的这种工作方式,应用在利用虚拟盘台来代替硬盘台的场合,以节省成本。
本实施例充分考虑了虚拟盘台的上述三种工作方式,并根据不同的工作方式分别确定虚拟设备的状态值,进而获得硬设备输入输出点的状态值,再利用获得的状态值更新虚拟设备的显示,以保证虚拟设备的状态与硬设备一致,进而有效实现了虚拟盘台与硬盘台状态的完全同步。
在本发明中,硬设备10和虚拟设备20按照功能可分为输入设备和输出设备。输入设备是指使用者可以操作的设备,例如开关设备,使用者通过操作该设备来发出控制指令,来控制实际运行的设备,例如阀门,来打开或关闭该设备。输出设备主要是指充当显示功能的设备。因此,在本发明提供的另一优选实施例中,虚拟设备状态获取值获取模块21进一步包括虚拟设备输入状态值获取模块和虚拟设备输出状态值获取模块。
对于输入设备,当工作方式为超控方式时,虚拟设备输入状态值获取模块将超控值保存为虚拟设备输入状态值;当工作方式为跟踪方式时,虚拟设备输入状态值获取模块根据硬设备输入点的状态值映射出虚拟设备输入状态值;当工作方式为操作方式时,虚拟设备输入状态获取模块获取用户对虚拟设备的操作并保存为虚拟设备输入状态值。
另外,硬设备状态值获取模块11根据虚拟设备输入状态值获取模块获取的虚拟设备输入状态值映射出硬设备输入点的状态值。
对于输出设备,当工作方式为超控方式时,虚拟设备输出状态值获取模块将超控值作为虚拟设备输出状态值;当工作方式为跟踪方式或操作方式时,虚拟设备输出状态获取模块将外部设备输入的状态值作为虚拟设备输出状态值。
另外,硬设备状态值获取模块11将虚拟设备输出状态值获取模块传送的虚拟设备输出状态值作为硬设备输出点的状态值。
以上实施例分别给出了针对输入和输出设备设计的不同的状态同步方法,其各自的状态同步方法不但结合了具体的工作方式,还结合了设备本身的特点,根据实际需要设计了简易程度不同的同步方法,使设备的状态同步方案尽可能简单且有效,提高了状态同步的效率。
请参见图5,图5是本发明提供的第五实施例模拟机系统结构示意图。如图5所示,本实施例提供的模拟机系统包括:硬盘台1、图形工作站2、仿真服务器3以及虚拟DCS系统(数字化仪控系统)4,其中,硬盘台1上包含了硬设备及IO系统,图形工作站2包含了虚拟盘台。硬盘台1、图形工作站2和虚拟DCS系统4分别通过以太网连接到仿真服务器3上。
其中,仿真服务器3上进一步包括仿真平台开发接口31、共享内存32、硬盘台IO接口33、虚拟盘台接口34和DCS接口35。硬盘台1通过以太网连接至仿真服务器3的硬盘台IO接口33,图形工作站2通过以太网连接至仿真服务器3的仿真平台开发接口31,虚拟DCS系统通过以太网连接至仿真服务器的DCS接口35,仿真平台开发接口31、硬盘台IO接口33、虚拟盘台接口34和DCS接口35分别通过以太网与共享内存32进行数据交互。
另外,本实施例提供的模拟机系统中还包含了运行在系统中各模块上的程序,例如,运行在图形工作站2上的仿真平台客户端程序、运行在仿真服务器3上的仿真平台服务器端程序、运行在虚拟DCS系统4上的DCS程序、运行在DCS接口35上的DCS接口程序、运行在硬盘台IO接口33上的硬盘台IO接口程序、运行在虚拟盘台接口34上的虚拟盘台接口程序以及运行在仿真平台客户端中的虚拟盘台图形程序等。
其中,共享内存32中存储了硬设备IO点的状态值20、虚拟设备40和DCS IO点的状态值60。硬盘台IO接口33和虚拟盘台接口34通过共享内存的方式从共享内存32中读写硬设备IO点和虚拟设备的状态值,来与硬盘台或DCS系统进行数据交互。
仿真平台软件提供了模拟机的开发、调试和运行环境,提供了对模拟机中各种计算程序的实时调度和同步控制,通过共享内存机制,提供了实时计算程序之间,以及与仿真平台之间的数据交换方式。虚拟盘台的图形软件在仿真平台的图形环境中开发和运行,虚拟盘台接口程序完成了虚拟设备的状态计算,计算出来的状态用来控制虚拟设备的图形动态显示,位于仿真平台的共享内存中的虚拟设备状态对象与运行在仿真平台的客户端的图形环境中的虚拟图形设备之间的信息传递,采用了仿真平台提供的数据订阅和命令传递机制来完成,虚拟盘台接口程序以实时方式运行在仿真平台(服务器端)的环境中,负责进行虚拟设备对象的状态计算;硬盘台IO接口程序也是以实时方式运行在仿真平台的环境中,负责与硬盘台进行IO数据的通讯。虚拟盘台和硬盘台的同步,是通过虚拟盘台接口程序对三种模式下虚拟设备状态的计算来实现的。
上述描述涉及各种模块。这些模块通常包括硬件和/或硬件与软件的组合(例如固化软件)。这些模块还包括包含指令(例如,软件指令)的计算机可读介质(例如,永久性介质),当这些指令被执行时,就可以实现本发明的各种功能。相应地,除非明确要求,本发明的范围不受实施例中明确提到的模块中的特定硬件和/或软件特性的限制。作为非限制性例子,本发明在实施例中可以由一种或多种处理器(例如微处理器、数字信号处理器、基带处理器、微控制器)执行软件指令(例如存储在非永久性存储器和/或永久性存储器)。另外,本发明还可以用专用集成电路(ASIC)和/或其他硬件元件执行。需要指出的是,上文对各种模块的描述中,分割成这些模块,是为了说明清楚。然而,在实际实施中,各种模块的界限可以是模糊的。例如,本文中的任意或所有功能性模块可以共享各种硬件和/或软件元件。又例如,本文中的任何和/或所有功能模块可以由共有的处理器执行软件指令来全部或部分实施。另外,由一个或多个处理器执行的各种软件子模块可以在各种软件模块间共享。相应地,除非明确要求,本发明的范围不受各种硬件和/或软件元件间强制性界限的限制。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。