一种多虚拟控制器之间的数据共享方法与流程

文档序号:12460461阅读:来源:国知局

技术特征:

1.一种多虚拟控制器之间的数据共享方法,其特征在于:所述方法为:设置一虚拟控制器软件,并采用多引擎模式来实现多个虚拟控制器功能的模拟;所述虚拟控制器软件是执行来自上位机的用户编写的控制组态程序,并对控制组态程序计算过程的数据进行实时监控和在线修改;所述虚拟控制器软件的内部是由多个虚拟控制器、一个数据监控模块、一个在线修改模块和一个全局共享内存模块构成;通过数据监控模块对控制组态程序计算过程的数据进行实时监控;通过在线修改模块对控制组态程序计算过程的数据进行在线修改;

所述多引擎模式是通过在物理计算机中装载和运行多个计算引擎程序,构建出多个可驱动控制组态程序计算的软件执行环境,从而实现多个虚拟控制器功能的模拟。

2.根据权利要求1所述的一种多虚拟控制器之间的数据共享方法,其特征在于:

所述控制组态程序既包括针对系统过程控制所编写的算法组态程序,也包括用于模拟物理设备动态特性的数学模型所编写的组态程序;

所述数据监控模块能够通过指定虚拟控制器的节点号和IO点类型,从全局共享内存模块中选择所要监控的数组和起止地址,实现相应实时数据的读取和显示;

所述在线修改模块能够在软件不停止运行的情况下,根据所选择的虚拟控制器的节点号、监控数组和起止地址,对各类IO点的实时值进行在线修改;

所述全局共享内存模块用于存储系统中各个物理站上所有虚拟控制器的共享数据,并对每个虚拟控制器节点分别开辟对应的存储区域。

3.根据权利要求2所述的一种多虚拟控制器之间的数据共享方法,其特征在于:所述IO点类型包括模拟量输入AI、模拟量输出AO、数字量输入DI、数字量输出DO、中间模拟量LA、以及中间数字量LD。

4.根据权利要求1所述的一种多虚拟控制器之间的数据共享方法,其特征在于:所述多引擎模式的内部包括独立共享内存模块、数据通讯模块、组态执行模块、以及冗余功能模块;

每个虚拟控制器通过多引擎模式中的独立共享内存模块与其他虚拟控制器进行数据同步。

5.根据权利要求2所述的一种多虚拟控制器之间的数据共享方法,其特征在于:所述方法采用共享内存的方式实现多个虚拟控制器之间的数据同步,所述数据同步的功能包括同一物理站内的数据同步和不同物理站间的数据同步两种方式;数据同步的方式原理为:每个虚拟控制器均输出共享数据到其他控制器,也能从其他控制器获取共享数据;

每个物理站均能从系统中其他物理站处获取最新的共享数据,并优先存储于本地的全局共享内存模块区中;若系统中存在M个虚拟控制器节点,则每个物理站的全局共享内存模块将包含M个共享内存子区域,分别与各个控制器节点相对应;

每个物理站上的任一虚拟控制器均能优先从本地的全局共享内存模块中获取源自其他虚拟控制器的全局变量的实时数据,包括模拟量输入AI、模拟量输出AO、数字量输入DI、数字量输出DO、中间模拟量LA、以及中间数字量LD各种数据类型;

共享数据采用周期性的方式进行更新,数据更新一般在500ms-1000ms内处理完成;

控制系统中的物理站常采用冗余方式配置,不同物理站间的共享数据是通过主机发送到其他物理站上,而共享数据接收时,主备机则同时读取来自其他物理站的共享数据。

6.根据权利要求5所述的一种多虚拟控制器之间的数据共享方法,其特征在于:所述不同物理站上多个虚拟控制器之间的数据同步是采用广播通信的方式实现的;具体为:

各个物理站共享数据的初始化;

进行源物理站共享数据的发送流程;

进行目标物理站共享数据的接收流程。

7.根据权利要求6所述的一种多虚拟控制器之间的数据共享方法,其特征在于:所述各个物理站共享数据的初始化,具体为:S1、各个物理站上每个虚拟控制器启动内部的计算引擎程序,对来自上位机的控制组态程序执行周期性计算;

S2、创建共享内存,包括全局共享内存模块和各个虚拟控制器内的独立共享内存模块,并实时动态地生成共享数据;

S3、读取配置文件,获取控制系统中所有虚拟控制器的节点号信息。

8.根据权利要求6所述的一种多虚拟控制器之间的数据共享方法,其特征在于:所述进行源物理站共享数据的发送流程,具体为:S1、某一源物理站根据数据更新需求,创建共享数据的发送线程,并对发送线程Socket进行初始化;

S2、从有数据更新需求的虚拟控制器内部的独立共享内存模块中,提取待发送的共享数据,存入发送缓冲区;

S3、根据发送缓冲区的数据完成数据包的配置;

S4、通过发送线程Socket通信将发送缓冲区的数据发送至广播地址,同时更新本地全局共享内存模块中对应的控制器节点的数据内容。

9.根据权利要求6所述的一种多虚拟控制器之间的数据共享方法,其特征在于:所述进行目标物理站共享数据的接收流程,具体为:S1、目标物理站根据数据更新请求,创建共享数据的接收流程,并对接收线程socket进行初始化;

S2、从广播地址处接收配置好的共享数据包;

S3、解析共享数据包的内容,获取数据包对应的虚拟控制站的节点号,并将共享数据更新到本地的全局共享内存模块区;

S4、根据解析的虚拟控制器的节点号,将所获取的共享数据写入到对应的虚拟控制器内部的独立共享内存模块中。

10.根据权利要求5所述的一种多虚拟控制器之间的数据共享方法,其特征在于:所述同一物理站内多个虚拟控制器之间的数据同步是采用内存拷贝的方式实现的,具体为:

Step1、单个物理站中每个虚拟控制器启动内部的计算引擎程序,并在计算引擎的运行过程中实时地产生共享数据;

Step2、物理站读取配置文件,获取站内所有虚拟控制器的节点号信息;

Step3、将某虚拟控制器中的共享数据搬迁至全局共享内存模块中节点K对应的共享内存区域;

Step4、待数据搬迁完成之后,将所述节点K的共享数据拷贝到其他虚拟控制器的共享内存区域,包括全局共享内存模块中目标节点对应的共享内存,以及目标虚拟控制器内部的独立共享内存模块。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1