一种跨平台轻量级的分布式控制系统技术方案

技术编号:8161147 阅读:244 留言:0更新日期:2013-01-07 19:19
本发明专利技术公开了一种跨平台轻量级的分布式控制系统,包括多个设备节点;各设备节点分别包括:存储模块,用于为每个跨平台轻量级组件创建一个组件的实例、一个组件接口的实例,保存包括各跨平台轻量级组件的实例、组件接口的实例;以及为跨平台轻量级组件间的交互提供接口;所述跨平台轻量级组件为独立的对外提供接口的动态链接库DLL或共享库SO;加载模块,用于加载一个应用程序中所有的跨平台轻量级组件;通信模块,用于在不同应用程序或本分布式控制系统中不同设备节点之间进行数据交换及服务调用。本发明专利技术能使分布式控制系统能够实现源码级的跨平台。

【技术实现步骤摘要】

本专利技术涉及控制领域,尤其涉及一种跨平台轻量级的分布式控制系统
技术介绍
不论是工业过程控制中的分布式控制系统(DCS)、核电站的电站计算机系统(KIT),还是轨道交通中使用的大型监督控制与数据采集系统(SCADA),都涉及两个核心问题,即软件的组件化架构和分布式数据采集与集中计算带来的系统各服务间的通信问题。同时,随着应用的扩展,工程对系统的部署灵活性、平台依赖性、可扩展性要求越来越高。这就提出了一个非常现实的问题如何搭建一个跨平台的、完善的CPDSFI (CrossPlatform Distributed Software framework Infrastructure,分布式基础软件框架),使得DCS、KIT、SCADA等大型系统的设计开发人员可以将主要精力集中在具体事务处理上,不必过多关心底层网络通信、进程通信、功能组件冗余,同时可以将在该基础框架上建立的各个服务灵活部署在不同机器上,将已经完成的组件复用到其他的系统或应用程序中,以同时满足大型系统(设有专用服务器、多层网络结构)、小型系统(操作站和服务器软件安装在相同机器上,并采用单层扁平网络结构,以节约成本)、嵌入式系统的需要。目前实现 CPDSFI 的同类技术包括C0RBA、DCOM、XPC0M、QT、JavaBean。CORBA 是比较早的用于处理分布式环境中应用的规范。CORBA使用一种接口定义语言用于刻画物件将呈现出来的接口。CORBA规定了从接口定义语言到特定程序语言(C++或Java)的实现映射。这个映射精确的描述了 CORBA如何被用户端和服务器端实现的。标准映射的有Ada、C、C++、Smalltalk、Java、以及Python,这些映射由ORB实现。ORB是一个在对象间建立客户/服务器联系的中件。使用0RB,客户可以调用服务器的对象或对象中的应用,被调用的对象不要求在同一台机器上,由ORB负责进行通信。与CORBA类似的其他CPDSFI技术存在以下问题(I)代码不公开或标准过于复杂等问题,需要进行相当的定制工作,才能应用到工业控制场合。虽然各个厂家都提供很多资料和相关的示例代码,但是要想熟练掌握这些技术,运用到开发过程中,当出现问题时能准确定位和分析,需要对标准的工作机理有透彻的理解,加上DCS系统本身的复杂性,此处的风险很难控制。(2)目前主流的DCS控制系统软件都没有实现源码级的跨平台。同一套系统不能同时支持多种操作系统,不利于控制系统软件的纵向深入发展。目前的DCS控制系统软件大都运行在Windows平台上,由于平台本身的漏洞,造成系统经常需要杀毒,增加了维护的成本。
技术实现思路
本专利技术要解决的技术问题是如何使分布式控制系统能够实现源码级的跨平台。为了解决上述问题,本专利技术提供了一种跨平台轻量级的分布式控制系统,包括多个设备节点;各设备节点分别包括存储模块,用于为每个跨平台轻量级组件创建一个组件的实例、一个组件接口的实例,保存包括各跨平台轻量级组件的实例、组件接口的实例;以及为跨平台轻量级组件间的交互提供接口 ;所述跨平台轻量级组件为独立的对外提供接口的动态链接库DLL或共享库SO ;加载模块,用于加载一个应用程序中所有的跨平台轻量级组件;通信模块,用于在不同应用程序或本分布式控制系统中不同设备节点之间进行数据交换及服务调用。进一步地,所述跨平台轻量级组件还包括一个调用组件对象的接口,该接口继承自第一接口 IPlugin,所述第一接口 IPlugin继承自原始接口 IMyUnknown。进一步地,所述加载模块在存储模块的配合下,将各跨平台轻量级组件的接口的信息存入链表中,通过一跨平台轻量级组件的接口加载该跨平台轻量级组件。进一步地,所述存储模块为跨平台轻量级组件间的交互提供接口是指所述存储模块当收到一个跨平台轻量级组件调用另一跨平台轻量级组件的请求时,从保存接口信息的链表中找到被调用的跨平台轻量级组件的接口,返回给调用方。进一步地,所述加载模块还用于保存一配置文件,所述配置文件中包括各跨平台轻量级组件的路径信息;所述存储模块还用于当没有找到被调用的跨平台轻量级组件的接口时,尝试根据配置文件中的路径信息重新加载被调用的跨平台轻量级组件,若加载成功,则将接口存入链表中并返回给调用方,否则返回给调用方失败信息。进一步地,所述加载模块还用于读取各应用程序对应的配置文件,按照应用程序对应的配置文件为该应用程序加载组件;一应用程序对应的配置文件中说明了该应用程序需要加载的跨平台轻量级组件名称及这些跨平台轻量级组件存放的相对路径。进一步地,多个服务部署在不同的设备节点上;所述存储模块还用于保存部署文件;所述部署文件用于记载各设备节点的部署信息以及每个设备节点代表的服务类型,所述设备节点的部署信息用于指示本设备节点上所部署的服务。进一步地,所述通信模块还用于当所在的设备节点需要向一个服务发送数据时,根据该部署文件确定部署了该服务的目标设备节点,将所在的设备节点需要发送的数据通过以太网传送给所述目标设备节点;以及当收到其它设备节点的通信模块传送来的数据时交给本设备节点中相应的服务处理,并返回处理结果数据。进一步地,所述通信模块包含跨平台轻量级进程通信中间件和跨平台轻量级网络通信中间件;所述跨平台轻量级进程通信中间件用于进行本设备节点中两个进程间的通信;所述跨平台轻量级网络通信中间件按照UDP协议封装/解封和其它设备节点之间传输的数据。本专利技术的分布式控制系统中,应用程序通过加载跨平台轻量级组件执行,不必为不同运行平台或厂商专门定制代码,实现了源码级的跨平台;本专利技术的优化方案中,不同的应用程序或不同的设备节点可跨平台进行数据交换和服务调用;本专利技术易于掌握,能屏蔽网络通信和进程间通信的复杂度。附图说明图I是实施例一的跨平台组件的结构示意图;图2是实施例一中加载模块的工作方式示意图;图3是实施例一的软件架构模式示意图;图4是实施例一的分布式控制系统的结构示意图。具体实施例方式下面将结合附图及实施例对本专利技术的技术方案进行更详细的说明。需要说明的是,如果不冲突,本专利技术实施例以及实施例中的各个特征可以相互结合,均在本专利技术的保护范围之内。实施例一,一种跨平台轻量级的分布式控制系统,包括多个设备节点;各设备节点分别包括存储模块,用于为每个跨平台轻量级组件创建一个组件的实例、一个组件接口的实例;保存包括各跨平台轻量级组件;以及为跨平台轻量级组件间的交互提供接口 ;所述跨平台轻量级组件为独立的对外提供接口的DLL(动态链接库)或SO(共享库);加载模块,用于加载一个应用程序中所有的跨平台轻量级组件;通信模块,用于在不同应用程序或本分布式控制系统中不同设备节点之间进行数据交换及服务调用。本实施例中,应用程序可通过加载模块加载各跨平台轻量级组件执行。不同的应用程序或不同的设备通过通信模块进行数据交换和服务调用。本实施例中,跨平台轻量级组件通过加载模块被应用程序加载,跨平台轻量级组件间通过存储模块进行交互,通过接口调用配合完成所需功能。本实施例中,所述跨平台轻量级组件还可以提供一个调用组件对象的接口,该接口继承自一个特定的第一接口 IPlugin,所述第一接口 IPlugin继承自原始接口IMyUnknown0接口层次关系如下权利要求1.一种跨平本文档来自技高网
...

【技术保护点】
一种跨平台轻量级的分布式控制系统,包括多个设备节点;其特征在于,各设备节点分别包括:存储模块,用于为每个跨平台轻量级组件创建一个组件的实例、一个组件接口的实例,保存包括各跨平台轻量级组件的实例、组件接口的实例;以及为跨平台轻量级组件间的交互提供接口;所述跨平台轻量级组件为独立的对外提供接口的动态链接库DLL或共享库SO;加载模块,用于加载一个应用程序中所有的跨平台轻量级组件;通信模块,用于在不同应用程序或本分布式控制系统中不同设备节点之间进行数据交换及服务调用。

【技术特征摘要】

【专利技术属性】
技术研发人员:任平吕燕琨
申请(专利权)人:北京和利时系统工程有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1