一种物理装置组件数据处理程序的开发框架

文档序号:26101409发布日期:2021-07-30 18:12阅读:93来源:国知局
一种物理装置组件数据处理程序的开发框架

本发明属于软件开发技术领域,具体公开了一种物理装置组件数据处理程序的开发框架。



背景技术:

在物理装置组件构成的系统中,数据往往通过传感器进行采集,经过分析与计算,用于对系统的控制和维护等操作。在实践中,由于系统的多种多样,其数据处理软件往往需要进行大量定制开发。随着技术的发展,越来越多的系统采用了工业互联网相关的技术进行设计,功能也变得更加丰富、多样、灵活和智能,对系统开发与迭代的速度往往也有更高的要求,这就大大增加了开发的难度。

如果要对信息物理系统进行更高效率迭代开发与研究,就需要一种更快捷、更灵活的软件开发框架,将常用的功能按类别封装为标准化模块进行复用,并通过配置信息对功能进行微调,从而在各物理装置功能重组与优化的情况下减少不必要的重复编程。

目前常见的软件的复用方法是通过代码的复制、子程序调用、对象的封装、接口功能库封装等方式嵌入程序中,开发过程中仍存在一定的代码编写、修改和编译调试工作。如果要对信息物理系统进行更高效率迭代开发与研究,就需要一种更快捷、更灵活的软件开发框架,既能够将物理系统各单元的信息处理方式进行标准化封装,来适应对数据处理软件进行敏捷开发的需要。



技术实现要素:

在工业、医疗、商业、政务等等场景已有各种系统利用消息中间件进行功能集成与数据整合,尤其是能够解决网络场景下异构系统之间的集成问题,大大提高了系统设计能力。

如果充分利用消息中间件跨系统、跨语言、灵活配置这一特点,将消息中间件嵌入到各软件模块中,模块之间的数据交换由消息实现,则可以解除模块之间的接口的强耦合;另一方面,将模块的启停方式、运行参数、模块之间的消息数据等全部由数据库进行配置,整个软件功能就可在某种程度上由数据库进行定义,对数据库进行修改就可以实现软件功能的调整。

根据以上思路,本发明提供了一种物理装置组件数据处理程序的开发框架,包括:管理模块、数据分发服务、数据库编辑工具和多个功能模块,所述功能模块具有数据处理功能,所述管理模块用于配置信息管理、加载/卸载所述功能模块以及系统运行状态监测,所述数据分发服务用于消息集中分发,所述数据库编辑工具能够通过配置信息定义需运行的所述功能模块的种类、数量、运行参数、系统需处理的数据格式以及模块/系统间系统消息订阅/发布的全局映射关系,所述功能模块内配有消息订阅/发布接口,通过面向对象的方法封装,以独立线程/进程的方式运行。

这种设计方案为基于进程或线程级别的程序复用创造了开发和运行环境条件。

为便于集中控制管理,优选的,管理模块包括控制域和消息堆栈,所述消息堆栈能集中分发消息,所述控制域能管理配置信息、加载/卸载所述功能模块以及监测系统运行状态。

进一步的,所述功能模块作为客户端,所述消息堆栈作为服务端,均配置有通信接口。

优选的,功能模块可采用不同高级语言进行编程,各高级语言程序能通过封装匹配的消息中间件实现数据交互。

相对于现有技术,本发明具有以下有益效果:提供有效的软件功能模块标准化数据交互机制,将软件功能模块进一步封装与解耦,从更大程度上减少重复开发,增强技术的继承性、灵活性和稳定性,提高了软件开发效率。

附图说明

图1是本发明实施例中物理装置组件数据处理程序的开发框架结构图;

图2是本发明实施例中框架设计的软件配置项的启动流程图。

图3是本发明实施例中框架设计的软件配置项的内部通信过程示意图。

图4是本发明实施例中框架设计的软件运行示意图。

其中,101.管理模块;102.数据分发服务;103.远程发布模块;104.远程订阅模块;105.udp模块;106.tcp模块;107.modbus模块;108.eip模块;109.界面模块;110.实时数据库模块;111.关系数据库模块;112.uart模块;113.snmp模块;114.dds接口模块;115.协议解析模块;116.其他/自定义模块;117.配置信息编辑工具;118.开发与运行环境;119.配置信息数据库;201.功能模块;301.消息发布端;302.消息订阅端;303.消息队列。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,所描述的实施例是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创新劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参考本说明书附图1-4,先规划好物理装置组件数据处理程序的总体框架,包括相互间建立通信连接的管理模块101,功能模块201和数据库编辑工具,即图中的配置信息编辑工具117。

其中管理模块101用于管理各具体功能模块与数据分发服务线程,使用配置信息编辑工具117编辑配置信息数据库119,整合开发与运行环境118,通过数据分发服务102分发各类信息;并依次创建各个功能模块201的实例。当功能模块201的每个实例创建好了之后,分别向它们发送配置信息。软件运行过程中,管理模块101周期性对系统运行环境(各服务在线情况、cpu、内存、硬盘和网络的占用率等信息)、功能模块201状态进行监控。对于异常的系统运行环境进行上报,根据远程控制指令进行系统重启或关机,对于运行异常的功能模块201进行自恢复处理。

数据分发服务102实现本机内部各模块之间的消息数据分发,由消息发布端301、消息订阅端302和消息队列303构成。消息发布端301使用消息中间件的消息发布机制将消息通过tcp协议发布出去,消息的发布方既可以是其他模块,也可以是应用程序。消息订阅端302使用消息中间件的消息订阅机制订阅各个发布点的消息,消息的订阅方既可以是其他模块,也可以是应用程序。

配置信息编辑工具117,利用固定格式的文本或形式化工具,对系统中需要开发或需要通信的网络节点进行定义,给出软件配置项间和软件模块间的消息定义,给出通信数据的格式定义,给出通信方式及参数的定义,给出关于数值变换、阈值判断、类型枚举以及显示方式等数据使用方法的定义,给出控制指令数据格式的定义。将这些数据定义进行编辑、冲突检查与消解,并保存于配置信息数据库。

开发与运行环境118采用多种高级语言开发平台,多种操作系统平台,只要满足消息中间件及有关通信协议的运行条件即可。

配置信息数据库119基于关系数据库进行配置信息管理,数据库能通过本地和远程网络进行访问。共包含7类配置表格,主要包括全系统组成表、设备配置表、消息表、状态数据表、过程控制器通信数据表、传感器信息数据表、其他信息数据表。

功能模块201,包括14个相互解耦的子模块,本框架具有开放性,可依据需求增减新的子模块,具体包括:

远程发布模块103,用于实现与网络主机之间的消息远程发布,根据配置表中所定义的有关消息内容,接收功能模块201发来的消息并发布到网络上。

远程订阅模块104,用于实现与网络主机之间的消息远程订阅,根据配置表中所定义的有关消息内容,订阅网络上发布的消息并发到功能模块201。

udp模块105,采用udp进行通信,既可以接收,又可以一对一、一对多发送,将协议解析模块115打包好的udp报文发送出去,并将接收到的udp报文传递给协议解析模块115处理,与协议解析模块115配合使用实现可配置的udp通信。

tcp模块106,既可以实现服务端功能,又可以实现客户端功能。主要用于对tcp数据报文的接收和发送,与协议解析模块115配合使用实现可配置的tcp通信。

modbus模块107,与协议解析模块115配合,实现与现场控制设备的可配置modbus方式通信。

eip模块108,与协议解析模块115配合,实现与现场控制设备的可配置eip方式通信。

界面模块109,对各设备状态数据进行实时显示,对操作指令进行实时下达,人机界面进程通过主机间消息,向各功能模块201订阅状态数据或者发布指令数据。

实时数据库模块110,用于接收其他模块发布的实时数据,缓存至实时数据库,并利用其持久化功能进行归档。接受其他模块对数据库增删改查的操作请求。

关系数据库模块111,用于接收其他模块发布的归档数据,接受其他模块对数据库增删改查的操作请求。

uart模块112,与协议解析模块115配合,实现与uart设备的可配置通信。

snmp模块113,与协议解析模块115配合,实现与网管型网络交换机设备的可配置snmp通信。

dds接口模块114,与协议解析模块配合,实现与外部网络设备的可配置dds方式通信。

协议解析模块115,一方面接收来自各类通信模块的数据流,根据配置信息从中解析出各类数据,并发给系统中有关功能模块201做进一步处理;另一方面接受有关功能模块201发来的数据,根据配置信息将其打包为协议报文,并根据配置发给有关通信模块进行发送。

其他/自定义模块116,根据需要添加需要封装的功能或者用户自定义的业务功能,并封装消息发布端(301)和消息订阅端(302)从而与其他模块交换数据。该模块可以跨语言编写,如果某种编程语言实现了与框架相同的消息中间件,则可在该编程语言上开发模块,从而实现在框架中运行。

框架规划好后,按照信息全面唯一、简化编程环节、强调软件重用、精简配置信息的原则,设计控制维护软件框架配置信息模板初稿,共包含7类配置表格,根据上文对配置信息数据库119的描述进行定义,主要包含全系统网络组成、各软件总体架构、数据格式、数据流动方向与状态数据报警条件等方面的信息,可先通过excel等编辑软件进行编辑,或通过形式化开发工具进行定义再导出表格文件,此文件与接口设计文档共用,可直接导入数据库供程序读取,再对数据和消息进行合理的配置,即可完成信息在软件配置项之间和软件模块之间的流动。

接下来在自定义模块中设计界面功能和后台业务逻辑,系统中可以同时包含多个不同的自定义模块。

代码编写大致遵循如下原则:

若需要从管理模块订阅数据,则应首先在程序中订阅当前设备的测点名,对应于前面已编辑的配置信息;

在业务流程中,若需要将当前数据发布出去,则需要在对应的业务逻辑函数中进行测点发布;

根据用户业务需求设计数据响应处理功能,模块侦听到订阅的测点有响应值时,则接受该值进行进一步的业务处理。

依次编译并运行通用软件框架程序、后台业务程序、界面程序即可实现当前业务流程。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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