CN111367758A - 一种基于消息中间件的大规模异构设备集成控制方法 - Google Patents
一种基于消息中间件的大规模异构设备集成控制方法 Download PDFInfo
- Publication number
- CN111367758A CN111367758A CN202010112069.9A CN202010112069A CN111367758A CN 111367758 A CN111367758 A CN 111367758A CN 202010112069 A CN202010112069 A CN 202010112069A CN 111367758 A CN111367758 A CN 111367758A
- Authority
- CN
- China
- Prior art keywords
- service
- equipment
- attribute
- database
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000010354 integration Effects 0.000 claims abstract description 27
- 230000007246 mechanism Effects 0.000 claims abstract description 19
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 75
- 230000008569 process Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 20
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000008571 general function Effects 0.000 claims description 5
- 230000002688 persistence Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 230000002085 persistent effect Effects 0.000 claims description 4
- 230000008878 coupling Effects 0.000 abstract description 8
- 238000010168 coupling process Methods 0.000 abstract description 8
- 238000005859 coupling reaction Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/4185—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3041—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/11—Plc I-O input output
- G05B2219/1113—Address setting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Manufacturing & Machinery (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于消息中间件的大规模异构设备集成控制方法,将大规模异构设备中所有的被控对象抽象为具有统一接口,且位置无关的设备一致性接入模型;采用该接入模型的控制系统被配置为包括提供设备服务的服务端、提供数据库服务的数据库端、客户端;并通过消息中间件的发布/订阅机制实现了多个设备的命令及属性读写功能。本发明提供一种基于消息中间件的大规模异构设备集成控制方法,其通过设置一致性接入模型以及与其相配合的控制系统,使得将该方法科学装置控制系统中时,可以方便灵活地实现大规模异构设备的快速集成和群体监控,且具有很好的耦合性、可扩展性和维护性,从而满足装置长周期运行的需求。
Description
技术领域
本发明涉及一种复杂装置控制系统领域。更具体地说,本发明涉及一种基于消息中间件的大规模异构设备集成控制方法。
背景技术
科学装置控制系统的主要任务是系统集成,控制系统中存在大量仪器仪表和自研设备,同时需要满足实验数据传输和科学计算等复杂控制需求。控制系统具有被控设备种类繁多、通讯协议复杂、控制规模大、运行周期长及控制需求多变等特点,要求集成控制软件有很好的耦合性、维护性和可扩展性,保证科学装置控制系统快速开发和仿真验证,保障装置及控制系统在长生命周期内的高效、安全、可靠运行。
传统的SCADA软件使用方便,但较难实现各种异构设备快速的集成及复杂控制需求;直接基于面向对象中间件的分布式软件框架能够较快完成控制系统的集成,但耦合性强,可复用性差且软件升级困难;基于SOA架构的分布式软件框架具有很好的耦合性、可扩展性和维护性,但不能够满足大规模设备群体控制及监控的需求。即现有技术均不能实现集成
发明内容
本发明的一个目的是解决至少上述问题和/或缺陷,并提供至少后面将说明的优点。
本发明还有一个目的是提供一种基于消息中间件的大规模异构设备集成控制方法,其通过设置一致性接入模型以及与其相配合的控制系统,使得将该方法科学装置控制系统中时,可以方便灵活地实现大规模异构设备的快速集成和群体监控,且具有很好的耦合性、可扩展性和维护性,从而满足装置长周期运行的需求。
为了实现根据本发明的这些目的和其它优点,提供了一种基于消息中间件的大规模异构设备集成控制方法,包括:
将大规模异构设备中所有的被控对象抽象为具有统一接口,且位置无关的设备一致性接入模型;
采用该接入模型的控制系统被配置为包括提供设备服务的服务端、提供数据库服务的数据库端、客户端;
其中,在设备一致性接入模型下,数据库服务实现设备配置参数的持久化、权限控制及命名服务;设备服务作为设备容器,实现设备的一致性接入及报警、归档、日志相关的通用功能;客户端API通过参数化设备名称访问设备,并提供同步/异步、发布/订阅及群体调用相关功能,以实现点对点、一对多的通讯;
所述控制系统被配置为通过消息中间件的发布/订阅机制实现了多设备的命令及属性读写功能。
优选的是,所述接入模型将所有的硬件设备、业务逻辑、算法、总线、封装为具有相同命令和属性的软设备对象;
其中,接入模型的软件框架被配置为采用面向服务SOA架构,以使用户可通过客户端应用程序编程API接口实现大规模异构设备的快速集成及实时监控。
优选的是,所述接入模型被配置为采用序列化、反射机制实现异构设备的一致性接入,以将所有异构设备抽象为具有相同属性和命令的抽象接口,进而通过键值的方式实现命令名称、命令指针及具体函数功能实现的对应关系,使用户通过相应执行代码段实现相应功能。
优选的是,设备服务通过周期性轮询设备属性,判断属性是否触发相应的报警、归档事件,并以事件的形式将数据发布出去,同时相关配置参数可持久化的数据库中。
优选的是,所述控制系统被配置为采用zeromq作为通讯中间件,以通过其提供的请求、应答、发布/订阅通讯模式、管道模式实现客户端的同步/异步、发布/订阅及群体调用功能;
控制系统将中间件封装为通讯类,将数据库封装为数据访问类,将数据类型封装为设备数据类,将异常信息封装为异常类;
控制系统中各设备均包括持久化设备属性、设备命令和设备属性,各设备对象包括对象命令和对象属性,以通过对象命令实现函数调用功能,通过对象属性实现属性值读写功能;
控制系统中的各设备均具有唯一的网络地址作为服务ID,每个设备服务具有唯一的服务进程名称作为服务ID,并持久化在数据库中,在设备服务启动时,将服务ID和设备ID注册到数据库中,并确保同一数据库中相关设备服务和设备的唯一性,客户端根据设备名称地址从数据库服务中检索设备服务的网络地址,并与系统服务建立连接关系。
优选的是,数据库服务对客户端提供多设备控制接口,数据库通过事件机制将控制命令发布到设备服务,并实现多个设备的控制;通过设备服务进程实现单个进程的多个设备值的读取。
优选的是,设备服务为一个进程,在设备服务启动时,根据设备服务进程ID从数据库服务中读取该进程包含的类名称及设备名称,调用相关类动态库,并根据这些信息以键-值的形式创建设备名称与设备类的对应关系。
优选的是,客户端将设备对象封装为设备代理,通过设备名称、匿名访问或者通过用户名、密码访问与设备对象建立联系;
客户端命令以重载的方式实现多个输入参数和不大于1个输出参数;
客户端将组命令操作封装为组代理类,以通过该类实现多个或者层次化设备对象命令和属性操作;
客户端通过数据库服务获得设备对象网络地址,并根据网络地址连接设备对象。
优选的是,所述控制系统在群体设备控制时,用户通过group设备代理添加多个设备名称,客户端根据设备名称向相关设备服务注册订阅功能,并向该group设置唯一的ID,group设备以发布的方式实现多个设备的命名下达,系统服务通过事件机制同时更新多条设备属性信息,以实现对群体设备的控制与监控。
本发明至少包括以下有益效果:其一,本发明的控制方法,可以满足科学装置或者其它复杂装置各种硬件设备的快速集成和多设备快速控制的需求。该方法将所有的硬件设备、业务逻辑、算法及总线等封装为具有相同命令和属性的软设备对象,用户可通过客户端API接口实现大规模异构设备的快速集成及实时监控,同时软件框架采用SOA架构,具有松耦合、标准化、粗粒度、可重用等特点,满足科学装置控制系统快速集成及长周期运行的控制需求。
其二,本发明的控制方法允许用户通过控制软件实现各种异构设备的快速集成,通过事件机制实现多个设备的高效控制和实时监控,从而满足科学装置控制系统并行控制的需求,其松耦合架构也保证了控制系统在长生命周期内的高效、安全、可靠运行。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明的一个实施例中基于消息中间件的大规模异构设备集成控制方法的结构组成框图;
图2为本发明中异构设备的集成控制连接框图;
图3为本发明控制方法中设备服务对象的层次结构分布模型图;
图4为本发明控制方法中设备服务对象的模型图;
图5为本发明控制方法中设备服务启动过程的流程图;
图6为本发明控制方法中客户端访问控制对象的过程图;
图7为本发明控制方法中客户端请求/应答实现机制图;
图8为本发明控制方法中客户端发布/订阅实现机制图;
图9为本发明控制方法中多设备控制通讯机制图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不配出一个或多个其它元件或其组合的存在或添加。
需要说明的是,在本发明的描述中,术语指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,并不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。另外,本文中所表示的第一、第二,都是对同一或类似设备、装置的区别性说明。
图1示出了根据本发明的一种基于消息中间件的大规模异构设备集成控制方法的实现形式,其中包括:
将大规模异构设备中所有的被控对象抽象为具有统一接口,且位置无关的设备一致性接入模型,异构设备的一致性接入;
采用该接入模型的控制系统被配置为包括提供设备服务的服务端、提供数据库服务的数据库端、客户端;
其中,在设备一致性接入模型下,数据库服务实现设备配置参数的持久化、权限控制及命名服务;设备服务作为设备容器,实现设备的一致性接入及报警、归档、日志相关等通用功能;客户端API通过参数化设备名称访问设备,并提供同步/异步、发布/订阅及群体调用相关功能,以实现点对点、一对多等多种通讯方式,为大规模设备的实时监控提供功能基础;
所述控制系统被配置为通过消息中间件的发布/订阅机制实现了多设备的命令及属性读写功能,用于满足群体控制的需求,满足上万设备群体控制的需求,在这种方案中,通过设置一致性接入模型以及与其相配合的控制系统,使得将该方法科学装置控制系统中时,可以方便灵活地实现大规模异构设备的快速集成和群体监控,且具有很好的耦合性、可扩展性和维护性,从而满足装置长周期运行的需求。
在另一种实例中,所述接入模型将所有的硬件设备、业务逻辑、算法、总线、封装为具有相同命令和属性的软设备对象;
其中,接入模型的软件框架被配置为采用面向服务SOA架构,以使用户可通过客户端应用程序编程API接口实现大规模异构设备的快速集成及实时监控。本发明提出了一种基于消息中间件的大规模异构设备集成控制方法,可以满足科学装置或者其它复杂装置各种硬件设备的快速集成和多设备快速控制的需求。在这种方案中的控制方法将所有的硬件设备、业务逻辑、算法及总线等封装为具有相同命令和属性的软设备对象,用户可通过客户端API(应用程序编程接口)接口实现大规模异构设备的快速集成及实时监控,同时软件框架采用SOA(面向服务)架构,具有松耦合、标准化、粗粒度、可重用等特点,满足科学装置控制系统快速集成及长周期运行的控制需求。
在另一种实例中,所述接入模型被配置为采用序列化、反射机制实现异构设备的一致性接入,以将所有异构设备抽象为具有相同属性和命令的抽象接口,进而通过键值的方式实现命令名称、命令指针及具体函数功能实现的对应关系,使用户通过相应执行代码段实现相应功能。
在另一种实例中,设备服务具备日志、报警、归档等功能,通过周期性轮询设备属性,判断属性是否触发相应的报警、归档事件,并以事件的形式将数据发布出去,同时相关配置参数可持久化的数据库中。
在另一种实例中,所述控制系统被配置为采用zeromq作为通讯中间件,以通过其提供的请求、应答、发布/订阅通讯模式、管道模式实现客户端的同步/异步、发布/订阅及群体调用功能,ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。ZMQ是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩,与其他消息中间件相比,ZMQ并不像是一个传统意义上的消息队列服务器,事实上,它也根本不是一个服务器,它更像是一个底层的网络通讯库,在Socket API之上做了一层封装,将网络通讯、进程通讯和线程通讯抽象为统一的API接口,控制软件由数据库服务、设备服务和客户端API组成,其中,数据库服务实现配置参数的持久化及命名服务;设备服务作为设备容器,实现设备的一致性接入及报警、归档、日志等通用功能;客户端API通过参数化设备名称访问设备,并提供同步/异步、发布/订阅及群体调用等功能;日志信息保存日志源、日志产生时间、日志级别、日志背景等字段信息,参见log4j日志格式,可将日志信息以文本文件、控制台或者事件形式输出;
控制系统将中间件封装为通讯类,使得用户无需关心中间件调用细节,将数据库封装为数据访问类,用户可以根据需求选择数据存储方式,将数据类型封装为设备数据类,将异常信息封装为异常类,包括异常代码、原因、描述及产生位置等信息,并可记录多条异常信息;
控制系统中各设备均包括持久化设备属性、设备命令和设备属性,而持久化设备属性、设备命令及设备属性等参数可以持久化到数据库中,用户可以通过数据库API配置相关参数,各设备对象包括对象命令和对象属性,以通过对象命令实现函数调用功能,通过对象属性实现属性值读写功能,设备命令输入输出参数采用任意数据类传递数据;设备属性同时包括数据类型、数据格式、可读写性、属性名称及数据值等字段信息;
将数据类型封装为设备数据类,支持C++常用数据类型,支持标量、一维数组、二维数组或复合数据类型,如list、map等,同时可将数据序列化/反序列化为json、msgpack等格式;
控制系统中的各设备均具有唯一的网络地址作为服务ID,每个设备服务具有唯一的服务进程名称作为服务ID,并持久化在数据库中,在设备服务启动时,将服务ID和设备ID注册到数据库中,并确保同一数据库中相关设备服务和设备的唯一性,客户端根据设备名称地址从数据库服务中检索设备服务的网络地址,并与系统服务建立连接关系。
控制系统可设置设备属性为周期性、相对变化和绝对变化事件。
控制系统报警时可设置设备属性的报警上下限和警告上下限,并产生报警事件。
控制系统支持基于角色控制的访问权限控制。
控制系统上述相关配置信息可持久化的数据库中。
具体来说,在这种方案中,控制软件框架义软件框架唯一的IDL基类,客户端和服务端根据此接口进行通讯,并通过版本号和类继承的关系确保软件的向前兼容性。接口包括命令调用、属性调用、命令异步调用、命令同步调用、事件配置、订阅事件、取消事件等功能。
枚举定义如下数据类型CDataType:bool、int、char、uchar、int、int16、int32、int64、uint16、uint32、uint64、float、double、string等。枚举定义数据格式类型CDataFormat,包括标量、一位数组和二维数组。枚举定义数据操作属性CDataOpMode,包括只读、只写和读写等。
定义设备数据类CDeviceData,作为任意数据类型,可以实现与C++数据类型的自由转换,并可将数据转换为文本型或者或者二进制型等序列化数据。
定义设备属性值CDeviceAttrValue,包含设备数据CDeviceData、包含数据类型CDataType、数据格式CDataFormat、可读写性CDataOpMode、属性名称等字段信息。
定义异常类CDeviceException,包括异常代码code、原因reason、描述description及位置信息file等4个字段,并以列表的形式存储,支持重新抛出异常及命令行显示异常信息的功能。
定义通讯连接类CDeviceConnection,为客户端和设备服务提供各类访问功能,并通过派生类CDeviceZmqConnection实现ZeroMQ的通讯功能。
定义事件类CDeviceEvent,并定义抽象回调接口call_back,用户集成该类,实现属性事件数据的处理逻辑。
以log4j的格式定义日志等级,并提供相关字符串流式接口,系统自动添加日志源、日志产生时间、产生位置等字段信息。
结构体定义报警配置参数CAlarmPara,包括报警上下限和警告上下限、相对变化值和相对变化事件等字段信息。
结构体定义访问权限配置参数CAccessPara,包括ip地址、角色、用户名、进程名称、类名称、设备名称、函数名称、读写属性,默认无设置等字段信息。
结构体定义归档配置参数CArchivePara,包括相对变化值、绝对变化值和轮询周期等字段信息。
如图2,在另一种实例中,数据库服务提供实现服务注册、设备注册、设备归档/报警/事件配置功能、权限配置及历史操作记录等数据持久化功能;
数据库服务可通过设置配置参数切换数据保存格式;
数据库服务对客户端提供多设备控制接口,数据库通过事件机制将控制命令发布到设备服务,并实现多个设备的控制;通过设备服务进程实现单个进程的多个设备值的读取,支持通过ip地址、角色、用户名、进程名称、类名称、设备名称、函数名称、读写属性等层级设置客户端用户访问权限。具体来说,在这种方案中,数据库基类服务为用户提供如下信息的添加、删除和修改功能,如设备服务名称、设备名称、设备服务属性、设备属性等,设备的启停信息及状态信息,设备属性归档信息、报警信息等配置数据,并将功能接口定义为CDBServer,同时定义数据库抽象访问接口CDBClient,不同数据库集成该基类实现相关数据库操作,如CDBClientMysql和CDBClientSqlite等。启动数据库服务时,服务根据配置数据库动态库名称和数据库连接参数实现数据库的动态切换,并绑定电脑相关端口号。
数据库服务提供命名服务解析功能,客户端可以通过设备名称获得该设备的状态信息,包括设备是否启动、设备网络地址等信息。
数据库服务提供访问权限控制功能,通过ip地址、角色、用户名、进程名称、类名称、设备名称、函数名称、读写属性等信息判断客户端是否具备控制功能。
定义公共类CDBUtil,通过zeromqpubsocket实现群体控制命令及其它命令向设备服务的下发。
在另一种实例中,设备服务为一个进程,由进程类、设备基类、命令基类和属性基类组成,所有设备类和设备抽象类派生于同一个设备类基类和设备抽象基类。每个设备类均可以生成为具有统一接口的可执行文件,在设备服务启动时,根据设备服务进程ID从数据库服务中读取该进程包含的类名称及设备名称,调用相关类动态库,并根据这些信息以键-值的形式创建设备名称与设备类的对应关系。服务端设备类将函数命令以键-函数基类指针的形式保存到设备命令列表中,将属性以键-属性基类指针的形式保存到属性命令列表中。函数基类指针可以调用函数具体实现类,属性基类指针可以调用属性实现类,用户也可通过软编码的形式动态创建多个属性或者命令。
服务端根据用户权限配置信息判断客户端是否允许问及允许访问时间等信息。
服务端可以通过设备状态或者自定义条件判断客户端是否具有函数访问权限,如果不具备则抛出异常。
服务端通过一个或者多个线程判断属性是否触发归档、报警及事件等功能。
服务端通过公共类配置进程参数,并实现归档、发布事件等功能。
服务端接收到群体控制命令时,通过线程池中多个线程实现命令的快速响应。
具体来说,在这种方案中,如图3-5设备服务定义命令基类CCmdBase,主要包括类名称、是否允许访问和函数调用两个存虚函数;定义属性基类CAttrBase,主要包括属性名称、是否允许访问和属性调用两个存虚函数。
定义设备类基类CDeviceClassBase,主要包括设备列表、命令列表及属性列表,根据设备名称、属性/命令名称建立与设备基类的映射关系。
定义设备基类CDeviceBase,主要包括设备操作的通用函数及初始化存虚函数,派生类实现具体函数功能及初始化功能。
定义设备进程类CDeviceServer,实现进程内设备的管理,如设置属性轮询时间、日志归档方式等功能。
定义公共类CServerUtil,通过zeromqsubsocket实现数据库事件的接收,通过zeromqpubsocket实现事件的发布,并为设备服务提供各种公共功能。事件列表接收来自设备服务的周期性事件或者函数主动推送的事件,并通过一个线程实现相关事件的发布;接收来自客户端的group事件,并通过线程池实现多个设备的并行控制。通过线程周期性轮询属性,判断是否触发归档、发布等事件,并发布事件,若触发事件时,将相关事件添加到事件列表中。
事件数据包含如下字段信息:事件名称、事件属性。
在另一种实例中,客户端将设备对象封装为设备代理,通过设备名称、匿名访问或者通过用户名、密码访问与设备对象建立联系;
客户端命令以重载的方式实现多个输入参数和不大于1个输出参数,用户通过API接口输入命令名称和输入参数访问设备函数,输入输出参数数据类型为设备数据类,支持同步调用和异步调用;
客户端属性调用函数提供属性读写功能。通过属性名称和属性值写入属性值,通过属性名称读取属性值。
客户端可通过API接口设置事件类型,并订阅设备属性;设置报警参数,订阅报警事件;设置设备归档参数,保存归档信息等。
客户端将组命令操作封装为组代理类,可以通过该类实现多个或者层次化设备对象命令和属性操作,即支持点对点调用功能,也支持通过广播并发调用设备命令和属性的功能。
客户端可以通过数据库代理访问数据库,配置设备配置信息和用户权限配置信息。
客户端通过公共类配置客户端参数及事件接收。
客户端通过数据库服务获得设备对象网络地址,并根据网络地址连接设备对象。
具体来说,在这种方案中,如图6-8,客户端定义设备代理CDeviceProxy,通过设备名称创建设备代理,为用户提供命令、属性读写的同步调用、事件配置等功能。设备代理根据设备名称从数据库服务中获得设备信息和访问权限信息,若设备未启动,抛出异常;若已启动,根据设备服务ip地址和端口号建立与设备服务进程的连接,若建立失败,抛出异常。若已建立连接,再次连接失败时,重新从数据库服务中读取设备信息,若无法建立连接,则抛出异常。
用户使用设备代理时,通过命令名称访问设备服务相关函数,使用重载的方式实现一个或者多个参数的输入,输入参数使用C++内置数据类型即可,输出数据类型使用CDeviceData;通过属性名称及属性值写入属性值,输入参数使用C++内置数据类型即可;通过属性名称读取属性值,返回数据为CdeviceAttrValue。
定义客户端公共类CClientUtil,通过zeromqsubsocket用于订阅服务端事件,事件线程通过事件名称筛选事件数据,并通过回调指针实现事件的回调功能。
客户端代理对外提供接口如下:
a)CDeviceDatacommand(函数名称,输入参数);//执行命令
b)CDeviceData command(函数名称,输入参数1,输入参数2);//执行命令
c)CDeviceData command(函数名称,输入参数1,输入参数2,输入参数2);//执行命令
d)Void write_value(属性名称,属性值);//写属性值
e)CdeviceAttrValue read_value(属性名称)//读取属性值。
在另一种实例中,所述控制系统在群体设备控制时,用户通过group设备代理添加多个设备名称,客户端根据设备名称向相关设备服务注册订阅功能,并向该group设置唯一的ID,group设备以发布的方式实现多个设备的命名下达,系统服务通过事件机制同时更新多条设备属性信息,以实现对群体设备的控制与监控。群体设备控制与监控机制实现如图9所示,客户端CGroupProxy通过数据库服务的group控制接口实现设备群体控制接口,数据库服务对外提供命令、属性读和属性写的接口,其输入参数包括函数属性名称、设备名称列表和输入参数值。函数调用或者写属性值时,数据库以事件机制将数据发布给系统服务,系统服务通过线程池,同时调用相关设备实现并打控制的功能;函数调用写属性时,数据库服务通过设备服务进程接口实现多个设备属性值的读取,并返回给客户端。
控制命令发布时,其数组字段包括函数名称、设备名称列表、输入参数。
客户端代理对外提供群体控制接口如下。
//函数名称输入参数输出参数
a)CDeviceDataListgroup_command(…);//string-函数名称,CdeviceData-设备名称列表,CdeviceData-输入参数;
b)Void group_write_value(…);//string-属性名称,CdeviceData-设备名称列表,CdeviceData-数据值;
c)CdeviceAttrValueListgroup_read_value(..);//string-属性名称,CdeviceData-设备名称列表。
采用以上方案只是较佳实例的说明,但并不局限于此。在实施本发明时,可以根据使用者需求进行适当的替换和/或修改。
这里说明的设备数量和处理规模是用来简化本发明的说明的。对本发明的应用、修改和变化对本领域的技术人员来说是显而易见的。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
Claims (9)
1.一种基于消息中间件的大规模异构设备集成控制方法,其特征在于,包括:
将大规模异构设备中所有的被控对象抽象为具有统一接口,且位置无关的设备一致性接入模型;
采用该接入模型的控制系统被配置为包括提供设备服务的服务端、提供数据库服务的数据库端、客户端;
其中,在设备一致性接入模型下,数据库服务实现设备配置参数的持久化、权限控制及命名服务;设备服务作为设备容器,实现设备的一致性接入及报警、归档、日志相关的通用功能;客户端API通过参数化设备名称访问设备,并提供同步/异步、发布/订阅及群体调用相关功能,以实现点对点、一对多的通讯;
所述控制系统被配置为通过消息中间件的发布/订阅机制实现了多设备的命令及属性读写功能。
2.如权利要求1所述的基于消息中间件的大规模异构设备集成控制方法,其特征在于,所述接入模型将所有的硬件设备、业务逻辑、算法、总线、封装为具有相同命令和属性的软设备对象;
其中,接入模型的软件框架被配置为采用面向服务SOA架构,以使用户可通过客户端应用程序编程API接口实现大规模异构设备的快速集成及实时监控。
3.如权利要求1所述的基于消息中间件的大规模异构设备集成控制方法,其特征在于,所述接入模型被配置为采用序列化、反射机制实现异构设备的一致性接入,以将所有异构设备抽象为具有相同属性和命令的抽象接口,进而通过键值的方式实现命令名称、命令指针及具体函数功能实现的对应关系,使用户通过相应执行代码段实现相应功能。
4.如权利要求1所述的基于消息中间件的大规模异构设备集成控制方法,其特征在于,设备服务通过周期性轮询设备属性,判断属性是否触发相应的报警、归档事件,并以事件的形式将数据发布出去,同时相关配置参数可持久化的数据库中。
5.如权利要求1所述的基于消息中间件的大规模异构设备集成控制方法,其特征在于,所述控制系统被配置为采用zeromq作为通讯中间件,以通过其提供的请求、应答、发布/订阅通讯模式、管道模式实现客户端的同步/异步、发布/订阅及群体调用功能;
控制系统将中间件封装为通讯类,将数据库封装为数据访问类,将数据类型封装为设备数据类,将异常信息封装为异常类;
控制系统中各设备均包括持久化设备属性、设备命令和设备属性,各设备对象包括对象命令和对象属性,以通过对象命令实现函数调用功能,通过对象属性实现属性值读写功能;
控制系统中的各设备均具有唯一的网络地址作为服务ID,每个设备服务具有唯一的服务进程名称作为服务ID,并持久化在数据库中,在设备服务启动时,将服务ID和设备ID注册到数据库中,并确保同一数据库中相关设备服务和设备的唯一性,客户端根据设备名称地址从数据库服务中检索设备服务的网络地址,并与系统服务建立连接关系。
6.如权利要求1所述的基于消息中间件的大规模异构设备集成控制方法,其特征在于,数据库服务对客户端提供多设备控制接口,数据库通过事件机制将控制命令发布到设备服务,并实现多个设备的控制;通过设备服务进程实现单个进程的多个设备值的读取。
7.如权利要求1所述的基于消息中间件的大规模异构设备集成控制方法,其特征在于,设备服务为一个进程,在设备服务启动时,根据设备服务进程ID从数据库服务中读取该进程包含的类名称及设备名称,调用相关类动态库,并根据这些信息以键-值的形式创建设备名称与设备类的对应关系。
8.如权利要求1所述的基于消息中间件的大规模异构设备集成控制方法,其特征在于,客户端将设备对象封装为设备代理,通过设备名称、匿名访问或者通过用户名、密码访问与设备对象建立联系;
客户端命令以重载的方式实现多个输入参数和不大于1个输出参数;
客户端将组命令操作封装为组代理类,以通过该类实现多个或者层次化设备对象命令和属性操作;
客户端通过数据库服务获得设备对象网络地址,并根据网络地址连接设备对象。
9.如权利要求1所述的基于消息中间件的大规模异构设备集成控制方法,其特征在于,所述控制系统在群体设备控制时,用户通过group设备代理添加多个设备名称,客户端根据设备名称向相关设备服务注册订阅功能,并向该group设置唯一的ID,group设备以发布的方式实现多个设备的命名下达,系统服务通过事件机制同时更新多条设备属性信息,以实现对群体设备的控制与监控。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010112069.9A CN111367758A (zh) | 2020-02-24 | 2020-02-24 | 一种基于消息中间件的大规模异构设备集成控制方法 |
CN202010742158.1A CN111651332B (zh) | 2020-02-24 | 2020-07-29 | 一种基于消息中间件的大规模异构设备集成控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010112069.9A CN111367758A (zh) | 2020-02-24 | 2020-02-24 | 一种基于消息中间件的大规模异构设备集成控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111367758A true CN111367758A (zh) | 2020-07-03 |
Family
ID=71209691
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010112069.9A Pending CN111367758A (zh) | 2020-02-24 | 2020-02-24 | 一种基于消息中间件的大规模异构设备集成控制方法 |
CN202010742158.1A Active CN111651332B (zh) | 2020-02-24 | 2020-07-29 | 一种基于消息中间件的大规模异构设备集成控制方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010742158.1A Active CN111651332B (zh) | 2020-02-24 | 2020-07-29 | 一种基于消息中间件的大规模异构设备集成控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN111367758A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296809A (zh) * | 2021-12-24 | 2022-04-08 | 深圳航天科技创新研究院 | 一种基于操作系统的对象模型构建方法及其系统调用接口 |
CN116249160A (zh) * | 2022-12-30 | 2023-06-09 | 天地上海采掘装备科技有限公司 | 矿用移动设备组网的通信方法及相关装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377091B (zh) * | 2021-08-12 | 2022-01-25 | 星河动力(北京)空间科技有限公司 | 运载火箭测发控系统 |
CN113918132A (zh) * | 2021-12-13 | 2022-01-11 | 珠海市新德汇信息技术有限公司 | 设备标准化管理方法、系统、工作方法、装置及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815338A (zh) * | 2016-12-25 | 2017-06-09 | 北京中海投资管理有限公司 | 一种大数据的实时存储、处理和查询系统 |
CN106843851A (zh) * | 2016-12-28 | 2017-06-13 | 上海大汉三通数据通信有限公司 | 基于ActiveMQ异构类加载器反序列化的实现方法及装置 |
CN107341223A (zh) * | 2017-06-29 | 2017-11-10 | 华泰证券股份有限公司 | 一种基于消息中间件的异构数据库实时同步方法 |
CN109547512B (zh) * | 2017-09-22 | 2021-09-03 | 中国移动通信集团浙江有限公司 | 一种基于NoSQL的分布式Session管理的方法及装置 |
US10572319B2 (en) * | 2017-11-03 | 2020-02-25 | Dell Products, L.P. | Optimization of message oriented middleware monitoring in heterogenenous computing environments |
CN108446335B (zh) * | 2018-02-27 | 2021-04-16 | 广州港数据科技有限公司 | 基于数据库的异构系统数据抽取及统一对外数据交换方法 |
CN110096545A (zh) * | 2019-03-12 | 2019-08-06 | 国网辽宁省电力有限公司信息通信分公司 | 一种基于大数据平台数据处理域构架方法 |
-
2020
- 2020-02-24 CN CN202010112069.9A patent/CN111367758A/zh active Pending
- 2020-07-29 CN CN202010742158.1A patent/CN111651332B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296809A (zh) * | 2021-12-24 | 2022-04-08 | 深圳航天科技创新研究院 | 一种基于操作系统的对象模型构建方法及其系统调用接口 |
CN114296809B (zh) * | 2021-12-24 | 2023-05-05 | 深圳航天科技创新研究院 | 一种基于操作系统的对象模型构建方法及其系统调用接口 |
CN116249160A (zh) * | 2022-12-30 | 2023-06-09 | 天地上海采掘装备科技有限公司 | 矿用移动设备组网的通信方法及相关装置 |
CN116249160B (zh) * | 2022-12-30 | 2024-01-26 | 天地上海采掘装备科技有限公司 | 矿用移动设备组网的通信方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111651332B (zh) | 2023-04-25 |
CN111651332A (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651332B (zh) | 一种基于消息中间件的大规模异构设备集成控制方法 | |
Sun et al. | An open IoT framework based on microservices architecture | |
JP3949180B2 (ja) | 基底システムオブジェクトモデルを備えたシステム管理サービスの統合 | |
US6044224A (en) | Mechanism for dynamically associating a service dependent representation with objects at run time | |
US5327559A (en) | Remote and batch processing in an object oriented programming system | |
CN100418057C (zh) | 用于应用程序分布式管理的启用网格的虚拟机的方法和系统 | |
US6282568B1 (en) | Platform independent distributed management system for manipulating managed objects in a network | |
US5475817A (en) | Object oriented distributed computing system processing request to other object model with code mapping by object managers located by manager of object managers | |
US6601072B1 (en) | Method and system for distribution of application data to distributed databases of dissimilar formats | |
CN111033481B (zh) | 非易失性存储器上的直接映射的缓冲区高速缓存 | |
US6226690B1 (en) | Method and apparatus for utilizing proxy objects to communicate with target objects | |
US6466974B1 (en) | Environment for creating and managing network management software objects | |
EP1117033A1 (en) | Dynamic dispatch function | |
EP3198424B1 (en) | System and method for supporting dynamic deployment of executable code in a distributed computing environment | |
WO2001073551A2 (en) | System and method of providing an asynchronous interface between a client system and an enterprise javabeans-enabled server | |
US20030220963A1 (en) | System and method for converting data structures | |
CN107615260A (zh) | 用于在事务处理环境中提供分布式高速缓存的系统和方法 | |
US20030236925A1 (en) | Interactive portable object adapters support in an integrated development environment | |
US20070214113A1 (en) | Method to support multiple data sources connecting to a persistent object | |
US6751796B1 (en) | Integration of systems management services with an underlying system object model | |
US7146414B1 (en) | Object bridge for providing access to operations-level control of a data processing system | |
US6292824B1 (en) | Framework and method for facilitating client-server programming and interactions | |
US20040249853A1 (en) | Late bound subscription based event dispatching system and method | |
US7562084B2 (en) | System and method for mapping between instrumentation and information model | |
EP1122644A1 (en) | A method and system for dynamically dispatching function calls from a first execution environment to a second execution environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200703 |
|
WD01 | Invention patent application deemed withdrawn after publication |