首页> 中国专利> 水电LCU控制器信号交互方法、系统、设备及其存储介质

水电LCU控制器信号交互方法、系统、设备及其存储介质

摘要

本发明公开了一种水电LCU控制器信号交互方法、系统、设备及其存储介质,该方法包括如下步骤:将不同任务的应用进程中的同一信号按照信号传导方向分为信号输入任务和信号输出任务;创建信号数据库,并将信号输入任务和信号输出任务中的信号数据信息进行关联组合注册至信号数据库中;信号数据库将各任务的数据信息传输至共享内存中;信号输出任务将信号值内容拷贝至共享内存中,信号输入任务从该共享内存中对信号输出任务所拷贝的信号值内容进行读取,一次完成信号数据的传导。将后续控制器运行过程中大量的数据交互从传统的耗时的fifo、信号量等方式解放出来,只需要一次内存拷贝就完成了信号的传递,减少控制器内多余的资源损耗。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-09

    实质审查的生效 IPC(主分类):G06F 9/54 专利申请号:2022107607151 申请日:20220630

    实质审查的生效

说明书

技术领域

本发明涉及工业控制系统及水电LCU数据处理技术领域,具体为一种水电LCU控制器信号交互方法、系统、设备及其存储介质。

背景技术

发电厂工控系统中,水电LCU控制器作为现场控制层的核心,上下位机通信、控制器冗余同步、过程控制站间通信、控制器内部任务间存在大量的数据交互。控制器内部实现相对复杂,不同任务间存在大量数据交互的需求,且对数据交互的实时性有较高的要求。

目前,通过初始化阶段的信号注册,后续控制器在运行时,数据交互存在大量的信息量和fifo耗时,使得信号传输效率降低的问题;信号传递是典型的任务间数据交互的使用场景,一些过程控制的信号需要在不同的任务间进行运算、传导,且对传导的时效性有较高的要求,这需要控制器软件在实现过程中针对任务间数据交互进行优化设计。

发明内容

针对现有技术中存在的问题,本发明提供一种水电LCU控制器信号注册方法、系统、设备及其存储介质,将后续控制器运行过程中大量的数据交互从传统的耗时的fifo、信号量等方式解放出来,只需要一次内存拷贝就完成了信号的传递,提升了信号传输的效率,减少了控制器内多余的资源损耗。

本发明是通过以下技术方案来实现:

一种水电LCU控制器信号交互方法,包括如下步骤:

将不同任务的应用进程中的同一信号按照信号传导方向分为信号输入任务和信号输出任务;

创建信号数据库,并将信号输入任务和信号输出任务中的信号数据信息进行关联组合注册至信号数据库中

信号数据库将各任务的数据信息传输至共享内存中;

信号输出任务将信号值内容拷贝至共享内存中,信号输入任务从该共享内存中对信号输出任务所拷贝的信号值内容进行读取,一次完成信号数据的传导。

优选的,不同任务的应用进程包括过程控制进程DPU、指示灯提示进程LCD和对时进程SyncTime。

优选的,信号数据库在代理进程master中建立,并通过代理进程master进行更新维护。

优选的,信号输入任务和信号输出任务的信号数据信息包括信号名称、信号类型和信号地址。

优选的,信号输入任务和信号输出任务在水电LCU启动阶段中将指定信号通过输入和输出的关系进行关联组合注册至信号数据库中,并在信号数据库中保存为一条数据信息。

优选的,将信号数据库中信号输入任务的信号地址信息初始化为共享内存中的指定地址,通过共享内存进行管理,并将共享内存发布至信号输出任务中。

优选的,当信号输出任务将信号值内容拷贝至共享内存,信号输入任务通过信号地址信息读取该共享内存中的信号值内容。

一种水电LCU控制器信号交互系统,包括:

分类模块,用于将不同任务的应用进程中的同一信号按照信号传导方向分为信号输入任务和信号输出任务;

注册模块,用于创建信号数据库,并将信号输入任务和信号输出任务中的信号数据信息进行关联组合注册至信号数据库中;

信号传输模块,用于信号数据库将各任务的数据信息传输至共享内存中;

信息读取模块,用于信号输出任务将信号值内容拷贝至共享内存中,信号输入任务从该共享内存中对信号输出任务所拷贝的信号值内容进行读取,一次完成信号数据的传导。

一种水电LCU控制器信号交互设备,包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述所述的一种水电LCU控制器信号交互方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的一种水电LCU控制器信号交互方法的步骤。

与现有技术相比,本发明具有以下有益的技术效果:

本发明提供了一种水电LCU控制器信号交互方法,对任务间需要传导的信号通过数据库的方式管理,将需要传导的信号注册录入数据库,同一信号在不同任务中按信号传导方向划分为输入信号和输出信号,信号数据库负责将不同任务注册的同一信号按(输入,输出)关系进行关联,并保存为数据库中的一条数据信息。在水电LCU控制器启动阶段指定代理进程master负责信号数据库的创建及更新维护,各任务在启动阶段将任务间交互信号的组合通过代理进程master注册到信号数据库中,各任务完成信号注册后由代理进程master将信号数据库转为共享内存的方式进行管理并发布给对应的任务,在水电LCU控制器运行阶段,信号输出任务只需要将信号值内容拷贝到该共享内存中,信号输入任务只需从该共享内存中按信号地址信息读取共享内存中值,就能够完成一次信号的传导。通过该方式,任务间信号传递只需要进行一次内存拷贝即能完成,免去了进程间通信引发的阻塞、上下文切换等耗时复杂的操作,提升了进程间共享信号输出的速率、效率。

附图说明

图1为本发明中水电LCU控制器信号交互方法的流程图;

图2为本发明中水电LCU控制器信号交互系统的结构图;

图3为本发明中实施例中水电LCU控制器信号交互方法流程示意图;

图4为本发明中信号输入任务和信号输出任务中的信号数据信息关联组合示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

下面结合附图对本发明做进一步详细描述:

参见图1,本发明提供了一种水电LCU控制器信号交互方法,将后续控制器运行过程中大量的数据交互从传统的耗时的fifo、信号量等方式解放出来,只需要一次内存拷贝就完成了信号的传递,提升了信号传输的效率,减少了控制器内多余的资源损耗。

具体的,该水电LCU控制器信号交互方法,包括如下步骤:

步骤1,将不同任务的应用进程中的同一信号按照信号传导方向分为信号输入任务和信号输出任务;

具体的,不同任务的应用进程包括过程控制进程DPU、指示灯提示进程LCD和对时进程SyncTime。

例如控制器的信号灯指示信息,信号灯的点亮操作由led进程完成,在实际过程业务运行中,过程控制进程dpu判断网络连接错误,需要将控制器上表征网络连接状态的灯由绿色调整为黄色,此时dpu进程会向led进程发送点黄灯信息,在此场景下,dpu进程即为信号输出任务,led进程为信号输入任务;

步骤2,创建信号数据库,并将信号输入任务和信号输出任务中的信号数据信息进行关联组合注册至信号数据库中;

其中,根据图4所示,信号输入任务和信号输出任务中的信号数据信息进行关联组合根据信号名称获取输出信号数据信息及输入信号数据信息,确认信号类型匹配后,将输出信号数据信息、输入信号数据信息插入信号数据库同一条数据条目中,并将输出信号地址、输入信号地址填入该条数据条目中,完成输入和输出信号的关联。

具体的,信号数据库在代理进程master中建立,并通过代理进程master进行更新维护。

具体的,信号输入任务和信号输出任务的信号数据信息包括信号名称、信号类型和信号地址。

具体的,信号输入任务和信号输出任务在水电LCU启动阶段中将指定信号通过输入和输出的关系进行关联组合注册至信号数据库中,并在信号数据库中保存为一条数据信息。

步骤3,信号数据库将各任务的数据信息传输至共享内存中;

具体的,将信号数据库中信号输入任务的信号地址信息初始化为共享内存中的指定地址,通过共享内存进行管理,并将共享内存发布至信号输出任务中。

步骤4,信号输出任务将信号值内容拷贝至共享内存中,信号输入任务从该共享内存中对信号输出任务所拷贝的信号值内容进行读取,一次完成信号数据的传导。

具体的,当信号输出任务将信号值内容拷贝至共享内存,信号输入任务通过信号地址信息读取该共享内存中的信号值内容。

综上所述,本发明提供了一种水电LCU控制器信号交互方法,对任务间需要传导的信号通过数据库的方式管理,将需要传导的信号注册录入数据库,同一信号在不同任务中按信号传导方向划分为输入信号和输出信号,信号数据库负责将不同任务注册的同一信号按(输入,输出)关系进行关联,并保存为数据库中的一条数据信息。在水电LCU控制器启动阶段指定代理进程master负责信号数据库的创建及更新维护,各任务在启动阶段将任务间交互信号的组合通过代理进程master注册到信号数据库中,各任务完成信号注册后由代理进程master将信号数据库转为共享内存的方式进行管理并发布给对应的任务,在水电LCU控制器运行阶段,信号输出任务只需要将信号值内容拷贝到该共享内存中,信号输入任务只需从该共享内存中按信号地址信息读取共享内存中值,就能够完成一次信号的传导。通过该方式,任务间信号传递只需要进行一次内存拷贝即能完成,免去了进程间通信引发的阻塞、上下文切换等耗时复杂的操作,提升了进程间共享信号输出的速率、效率。

实施例

以水电LCU控制器面板运行状态指示灯信号(run_state)的操作为例进行说明,该信号的点亮、关闭操作由控制器中的面板指示任务(lcd进程)负责具体物理信号的输出,控制器的核心进程过程控制任务(dpu进程)在运行过程中会根据实时运行结果对运行状态指示灯信号进行操作,触发了dpu进程对lcd进程信号进行操作的需求。

根据图3所示,具体的信号交互方法的步骤如下:

1)水电LCU控制器上电后,首先在代理进程master中进行信号数据库的初始化,通过fifo消息机制通知dpu进程和lcd进程进行信号注册;

2)dpu进程将运行状态指示灯(run_state)以[dpu,run_state,address_out,out]的结构向代理进程master注册run_state信号;

3)lcd进程将运行状态指示灯(run_state)以[lcd,run_state,address_in,in]的结构向代理进程master注册run_state信号;

4)代理进程master将[dpu,run_state,address,out]与[lcd,run_state,address,in]进行整合形成一条新的item——[run_state_hash,address_in,address_out],并将该item插入信号数据库中;

5)待所有信号均注册完成,代理进程master将信号数据库转化为共享内存shmem,将信号数据库中的item转变为[run_state_hash,address_new],随后将该信号的新地址发布给lcd进程以及dpu进程;

6)lcd进程和dpu进程收到代理进程master的发布信息后,更新本地的信号地址信息,将原有的address_in和address_out均更新为address_new;

7)dpu进程在改变run_state状态时,将新的信号状态值写入address_new;

8)lcd进程在更新指示灯状态时,从address_new处获取最新的run_state状态,并更新。

根据图2所示,本实施例还提供了一种水电LCU控制器信号交互系统,包括分类模块、注册模块、信号传输模块和信息读取模块;

分类模块,用于将不同任务的应用进程中的同一信号按照信号传导方向分为信号输入任务和信号输出任务;

注册模块,用于创建信号数据库,并将信号输入任务和信号输出任务中的信号数据信息进行关联组合注册至信号数据库中;

信号传输模块,用于信号数据库将各任务的数据信息传输至共享内存中;

信息读取模块,用于信号输出任务将信号值内容拷贝至共享内存中,信号输入任务从该共享内存中对信号输出任务所拷贝的信号值内容进行读取,一次完成信号数据的传导。

本实施例还提供了一种水电LCU控制器信号交互设备,包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如水电LCU控制器信号交互程序。

所述处理器执行所述计算机程序时实现上述水电LCU控制器信号交互方法中的步骤,例如:

将不同任务的应用进程中的同一信号按照信号传导方向分为信号输入任务和信号输出任务;

创建信号数据库,并将信号输入任务和信号输出任务中的信号数据信息进行关联组合注册至信号数据库中;

信号数据库将各任务的数据信息传输至共享内存中;

信号输出任务将信号值内容拷贝至共享内存中,信号输入任务从该共享内存中对信号输出任务所拷贝的信号值内容进行读取,一次完成信号数据的传导。

所述处理器执行所述计算机程序时实现上述水电LCU控制器信号交互系统中各模块的功能。

示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述水电LCU控制器信号交互设备中的执行过程。例如,所述计算机程序可以被分割成分类模块、注册模块、信号传输模块及信息读取模块,各模块具体功能如下:

分类模块,用于将不同任务的应用进程中的同一信号按照信号传导方向分为信号输入任务和信号输出任务;

注册模块,用于创建信号数据库,并将信号输入任务和信号输出任务中的信号数据信息进行关联组合注册至信号数据库中;

信号传输模块,用于信号数据库将各任务的数据信息传输至共享内存中;

信息读取模块,用于信号输出任务将信号值内容拷贝至共享内存中,信号输入任务从该共享内存中对信号输出任务所拷贝的信号值内容进行读取,一次完成信号数据的传导。

所述水电LCU控制器信号交互设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述时序数据库同步设备可包括,但不仅限于,处理器及存储器。

本领域技术人员可以理解,水电LCU控制器信号交互设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如水电LCU控制器信号交互设备还可以包括通信接口、输入输出设备、网络接入设备及总线等。

所称处理器可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述时序数据库同步设备的控制中心,利用各种接口和线路连接整个水电LCU控制器信号交互设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述水电LCU控制器信号交互设备的各种功能。

所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。

此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的时序数据库同步方法的步骤;本实施例中,所述时序数据库同步设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例实现上述水电LCU控制器信号交互方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法的步骤。

其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。

需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号