著录项信息
专利名称 | 一种智能控制软件系统 |
申请号 | CN201410267303.X | 申请日期 | 2014-06-13 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2015-12-23 | 公开/公告号 | CN105183435A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F8/30 | IPC分类号 | G;0;6;F;8;/;3;0查看分类表>
|
申请人 | 曾宪锋 | 申请人地址 | 广东省广州市海珠区新港东路2433号启盛会展产业园1007单元
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 广州昱正信息科技有限公司 | 当前权利人 | 广州昱正信息科技有限公司 |
发明人 | 曾宪锋;龚向宇;郭学森;戚龙飞;陈旭日;张海森;刘锡锦 |
代理机构 | 北京市盈科律师事务所 | 代理人 | 马丽丽 |
摘要
本发明公开了一种智能控制软件系统,该框架主要包括:控制前端应用程序、核心基础架构应用程序、后端管理器应用程序。本发明涉及这样一种适用于嵌入式智能控制和物联网等应用领域的通用智能控制软件系统,提出一种通用、跨平台的智能控制软件系统,并且通过XML描述文件配置自动控制流程和各个智能控制设备所具备的功能。采用可配置和模块化的设计,用户不需要重新修改和编译源代码,只需通过配置文件和相应的扩展模块,即可集成不同生产厂家的智能终端设备、物理总线和通信协议,从而快速构建出具备高稳定、可靠和同时具备扩展性的智能控制系统,解决不同智能控制业务需求,使其兼容性、扩展性和适用性可以得到最大化。
1.一种智能控制软件系统,其特征在于:是主要由控制前端应用程序1、核心基础架构应用程序2、数据库3、后端管理器应用程序4组成:
a)所述的控制前端应用程序1通过调用核心基础架构应用程序2提供的应用程序编程接口对整个智能控制软件系统进行管理和控制:
b)所述的核心基础架构应用程序2用于自动调用活动202、执行智能控制业务逻辑;为控制前端应用程序1和后端管理器应用程序4提供应用程序编程接口,实现模块化与跨平台应用;连接数据库3,提供数据持久性支持;
c)所述的数据库3主要用于存储系统配置信息、活动202信息、智能终端设备配置402、事件和日志信息;
d)所述的后端管理器应用程序4用于管理现场总线驱动程序、通信协议和智能终端设备;
所述的控制前端应用程序1是一个或多个单独的应用程序,根据不同的应用需求,其特征可以是一个命令行应用程序、窗口应用程序或网页服务程序,其调用核心基础架构应用程序2中的前端管理器模块202提供的应用程序编程接口对整个系统进行管理与控制;
所述的核心基础架构应用程序2主要由控制前端管理器模块201、活动202、活动调度器模块203、LUA脚本解析引擎模块204、数据库接口模块205和命令分发器模块206组成:
a)所述的控制前端管理器模块201为控制前端应用程序1提供一套应用程序编程接口,主要包括:控制前端应用程序1注册/注销、事件注册/注销、后端智能设备配置402注册/注销/列举/命令调用/返回当前状态、活动202注册/注销/启动/停止/返回当前状态、后端总线驱动模块403注册/注销/列举、智能设备通信协议404注册/注销/列举;
b)所述的活动202是智能控制软件系统中的智能控制方案,它通过XML格式文件进行描述,并由活动调度器模块203调用;
c)智能控制软件系统根据活动202的描述对智能终端设备进行控制;活动202的XML描述文件主要由包括活动名称、类型、调度定时设置和LUA脚本在内的元素组成;所述的调度定时设置中包括:月、日、时、分、秒和星期的设定;
d)所述的活动调度器模块203根据活动202的XML描述文件上设定的月、日、时、分、秒和星期信息来自动调用LUA脚本解析引擎模块204来解析对应的活动202中的LUA脚本描述;
e)所述的LUA脚本解析引擎模块204对活动202的XML描述文件上定义的LUA脚本描述部分进行解析和执行,并提供LUA扩展函数用于调用智能终端设备描述402上定义的命令,并将这些命令发送到命令分发器模块206进行排队分发;LUA的扩展函数主要有:获取智能终端设备列表、调用智能终端设备命令、返回活动执行结果;
f)所述的数据库接口模块205用于封装数据库3的访问为统一的调用接口函数给其他模块使用,提供的调用接口函数主要有:返回数据表的行数、返回数据表的列数、对数据表上的数据读/写操作;
g)所述的命令分发器模块206位于控制前端管理器模块201、LUA脚本解析引擎模块204和后端管理器应用程序4之间;命令分发器模块206用于将来自控制前端应用程序1或LUA脚本解析引擎模块204的命令转发到对应的后端管理器应用程序4,或将后端管理器应用程序
4返回的命令结果或事件发送到控制前端管理器模块201或LUA脚本解析引擎模块204;命令分发器模块206为管理器应用程序4提供应用程序编程接口,主要包括:后端管理器应用程序4注册/注销。
2.如权利要求书1所述的一种智能控制软件系统,其特征在于:所述的数据库3采用通用数据库。
3.如权利要求书1所述的智能控制软件系统,其特征在于:所述的后端管理器应用程序
4主要由后端管理器模块401、智能终端设备描述402、总线驱动模块403和通信协议模块404组成:
a)所述的后端管理器模块401主要由总线驱动管理模块、通信协议管理模块和智能终端设备管理模块组成,并用于管理智能终端设备描述402;
b)所述的智能终端设备描述402通过XML格式文件对智能终端设备生产商、设备类型和功能调用命令进行描述;每种智能终端设备由独立的一个智能终端设备描述402文件进行描述;智能终端设备描述402的内容主要包括:智能终端设备的名字、类别、类型、版本、事件处理列表和功能支持表;
c)所述的总线驱动模块403用于驱动不同的通信总线;它同时将不同的总线的访问方式封装成统一的调用接口给后端管理器模块401调用;
所述的通信协议模块404为智能控制软件系统提供不同的通信协议的支撑;它同时将不同的通信协议的访问方式封装成统一的调用接口给后端管理器模块401和总线驱动模块
403调用。
4.如权利要求1或3所述的一种智能控制软件系统,其特征在于:可以同时支持多个所述的后端管理器应用程序4。
5.如权利要求1或3所述的一种智能控制软件系统,其特征在于:所述的后端管理器应用程序4可以与控制前端应用程序1或核心基础架构应用程序2运行于同一物理硬件平台或远程物理硬件平台上。
6.如权利要求1或3所述的一种智能控制软件系统,其特征在于:智能终端设备只需要接收到从后端管理器应用程序4通过任何通信方式送达的、定义在智能终端设备描述402文件功能支持列表上定义的功能定义字符串后,智能终端就能执行相应的功能。
一种智能控制软件系统\n技术领域\n[0001] 本发明涉及一种智能控制的软件系统,更具体地说,涉及这样一种适用于嵌入式智能控制应用、物联网、自动控制系统等领域的通用控制软件系统,即,提供一种通用、跨平台的智能控制软件系统,通过XML描述文件来配置自动控制流程和各个控制设备类型和具备的功能,并采用模块化设计,使本软件框架在不需要重新编程程序,只需要修改XML描述文件的情况下就能够解决各类智能控制业务需求和满足不同的智能控制应用要求,使其兼容性、扩展性和适用性可以得到最大化。\n背景技术\n[0002] 近年来,物联网等智能应用包括智能家居、智能建筑、智能社区、智能城市、智能农业、工业自动化控制等都在快速发展,其市场规模预测远超过任何其他市场。国际研究暨顾问机构Gartner表示,不包含个人电脑PC、平板及智能手机在内的物联网设备用户数,估计将于2020年成长至260亿台/支,较2009年的9亿台/支成长近30倍。\n[0003] 物联网主要可以分为三个层次,分别是:物理感知层、传输层和应用层。在一个物联网应用上,在其物理感知层上一般包含非常多不同产家或不同类型智能终端设备、物理总线和通信协议,如传感器、开关、蓝牙、Zigbee、Wifi、以太网、Modbus、TCP/IP等等。针对不同的应用需求,如何快速地将成千上万的智能终端设备、物理总线和通信协议整合在一起来构建出一个稳定的、同时具备扩展性的应用系统是一个很大的挑战。而目前市场上存在的多种组态软件一般针对于工业自动化控制,它们大多只运行在微软的Windows操作系统上,需要很高的硬件资源支持。它不能做到跨平台移植到嵌入式设备上,如资源受限的穿戴式设备上。\n[0004] 另外,为满足不同的智能控制业务需求,一般情况下都需要对现成的嵌入式源代码进行修改和重新编译源。这样,对代码不能做到高效复用和容易对已经稳定的代码引入新的代码缺陷,从而带来成本和风险的增加。\n发明内容\n[0005] 本发明的目的在于:针对已有技术的不足,提出一种采用模块化和可扩展化的跨平台设计方法,通过XML格式文件来描述/定义实际业务的执行过程、智能终端设备的类型以及其所具备的功能、连接的总线和通信协议,并提供应用程序编程接口用于扩展总线驱动、通讯协议和控制前端等支持。不需要重新修改和编译源代码,只需要通过XML配置文件和相应的扩展模块的情况下就能解决对不同应用领域的智能控制业务需求。\n[0006] 本发明的智能控制软件系统,是主要由控制前端应用程序、核心基础架构应用程序、数据库、后端管理器应用程序,以及由核心基础架构应用程序中的控制前端管理器模块、活动、活动调度器模块、LUA脚本解析引擎模块、数据库接口模块、命令分发器模块和后端管理器应用程序中的后端管理器模块、智能终端设备描述、总线驱动模块和通信协议模块组成。\n[0007] 所述的控制前端应用程序可以是一个运行在本地或远程的独立应用程序,如:命令行应用程序、视窗应用程序或网页服务程序等。通过调用控制前端管理器模块提供的应用程序编程接口,可以对系统实现交互式控制和管理。\n[0008] 在一个应用中,可以同时支持1个或以上的控制前端应用程序。\n[0009] 所述的核心基础架构应用程序主要由控制前端管理器模块、活动、活动调度器模块、LUA脚本解析引擎模块、数据库接口模块和命令分发器模块组成。核心基础架构应用程序位于控制前端应用程序、数据库和后端管理器应用程序之间,用于自动调用活动、执行智能控制业务逻辑,为控制前端应用程序和后端管理器应用程序提供应用程序编程接口,实现模块化与跨平台应用,并连接数据库,提供数据持久性支持。\n[0010] 所述的控制前端管理器模块用于管理控制前端应用程序,并通过一套应用程序编程接口为控制前端应用程序提供控制整个系统的命令,命令主要包括:\n[0011] 1)控制前端应用程序注册和注销;\n[0012] 2)事件注册和注销;\n[0013] 3)后端智能设备描述文件注册、注销、列举、命令调用和返回当前状态;\n[0014] 4)活动注册、注销、启动、停止和返回当前状态;\n[0015] 5)后端总线却东模块注册、注销和列举;\n[0016] 6)后端智能设备通信协议注册、注销和列举;\n[0017] 控制前端应用程序通过远程方法调用,实现在本地或远程调用控制前端管理器模块提供的命令。\n[0018] 所述的控制前端管理器模块可以同时支持和管理多个控制前端应用程序,使多个控制前端应用程序能够同时对整个系统上的智能终端设备进行控制和管理。\n[0019] 所述的活动是智能控制软件系统中的智能控制方案,它通过XML格式文件进行描述,并由活动调度器模块调用。同时,其中的LUA脚本内容由LUA脚本解析引擎模块解析并执行。即,将解决实际业务需求的智能控制方案定义为活动。\n[0020] 本发明根据活动的XML描述对智能终端设备进行自动控制。\n[0021] 智能控制方案支持1个或多个活动定义。每一个活动由单独一个XML文件表示。可以通过活动调度器模块调用。可通过前端命令对活动进行注册、注销、启动、停止或返回其当前状态。\n[0022] 所述的活动XML描述文件主要由:活动名称、类型、调度定时设置和LUA脚本元素组成。基本格式如下:\n[0023] <?xmlversion="1.0"encoding="UTF-8"?>\n[0024]
\n[0025] 活动介绍\n[0026] 活动类型\n[0027] \n[0028] \n[0029] \n[0030] \n[0031] \n[0032] \n[0033] \n[0034] \n[0035] \n[0036] <![CDATA[\n[0037] LUA脚本内容\n[0038] ]]>\n[0039] \n[0040] \n[0041] 其中,一个活动由限定;用于设置活动调度器模块的调度时间,可以设定的时间值包括:月、日、时、分、秒和星期;用于放置LUA脚本描述,是解决实际业务需求的智能控制方案部分。\n[0042] 所述的活动调度器模块根据活动中的定时描述部分,自动调用相应的活动,并通过LUA脚本解析引擎模块对活动中所描述的LUA脚本内容(由定义)进行解析和执行。\n[0043] 所述的活动调度器根据活动XML描述文件上设定的月、日、时、分、秒和星期信息来自动调用相应的活动。\n[0044] 所述的LUA脚本解析引擎模块对活动XML描述中由定义的LUA脚本内容进行解析,并将相应的智能终端设备控制命令发送到命令分发器模块进行排队执行。\n[0045] 所述的LUA脚本解析引擎模块提供了LUA扩展函数用于调用智能终端设备上提供的命令。为LUA解析引擎扩展的函数主要有:\n[0046] 1)获取智能终端设备列表命令;\n[0047] 2)调用智能终端设备命令;\n[0048] 3)返回活动执行结果命令。\n[0049] 所述的数据库接口模块对类型的数据库的访问操作进行封装,并提供统一的数据库访问应用程序编程接口给控制前端管理器模块、活动调度器模块、LUA脚本解析引擎模块、命令分发器模块和后端管理器模块使用来访问数据库。\n[0050] 所述的数据库接口模块提供的应用程序编程接口主要有:\n[0051] 1)返回数据表的行数;\n[0052] 2)返回数据表的列数;\n[0053] 3)对数据表上的数据读/写操作。\n[0054] 所述的命令分发器模块位于控制前端管理器模块、LUA脚本解析引擎模块和后端管理器应用程序之间,用于将来自控制前端应用程序或LUA脚本解析引擎模块的命令转发到对应的后端管理器模块,或将后端管理器模块返回的命令结果或事件发送到控制前端管理器模块或LUA脚本解析引擎模块上。\n[0055] 所述命令分发器模块主要由命令发送队列和命令返回队列实现,并为后端管理器应用程序提供应用程序编程接口,用于后端管理器应用程序的注册或注销。\n[0056] 所述的数据库采用通用数据库,如sqlite、mysql,并通过数据库接口模块对其访问操作封装成统一的应用程序编程接口后,给本发明中的其他模块调用。所述的数据库主要用于存储系统配置信息、活动描述信息、智能终端设备配置信息、事件和日志信息等。\n[0057] 所述的后端管理器应用程序用于管理现场总线驱动程序、通信协议和智能终端设备。它主要由后端管理器模块、智能终端设备描述、总线驱动模块和通信协议模块组成。\n[0058] 所述的后端管理器应用程序通过核心基础应用程序提供的应用程序编程接口向核心基础应用程序注册或注销。\n[0059] 本发明可以同时支持1个或多个后端管理器应用程序,并且它们可以部署在同一个物理硬件平台或通过网络连接后分别运行在不同的物理硬件平台上。\n[0060] 所述的后端管理器模块主要由现场总线驱动管理模块、通信协议管理模块和智能终端设备描述管理模块组成,用于管理现场总线驱动程序、通信协议和控制智能终端设备。\n[0061] 智能终端设备通过现场通信总线,如RS-485、以太网或无线,如WIFI、Zigbee与后端管理器应用程序通信。\n[0062] 所述的智能终端设备描述通过XML格式文件来定义智能终端设备生产商、设备类型和功能调用命令。\n[0063] 每种智能终端设备由对应的一个智能终端设备描述文件来说明。\n[0064] 智能终端设备描述的内容主要包括:智能终端设备的名字、类别、类型、版本号、事件处理列表和功能支持列表。基本格式如下:\n[0065] <?xmlversion="1.0"encoding="UTF-8"?>\n[0066] \n[0067] \n[0068] 设备名称\n[0069] 生产商号\n[0070] 设备分类\n[0071] 设备类型\n[0072] 版本号\n[0073] \n[0074] <!事件列表-->\n[0075] \n[0076] \n[0077] 事件说明\n[0078] 0\n[0079] 1\n[0080] 1\n[0081] REPLY\n[0082] \n[0083] \n[0084] <!设备功能列表-->\n[0085] \n[0086] \n[0087] 功能定义字符串\n[0088] <!命令参数-->\n[0089] \n[0090] \n[0091] \n[0092] \n[0093] \n[0094] 其中,一个智能终端设备描述由限定;用于定义系统需要响应这个设备的事件列表;用于定义该智能终端设备所具有的功能,以及触发该功能的使用方法。\n[0095] 所述的总线驱动模块用于驱动不同的通信总线,如RS-232/RS-485,使后端管理器应用程序可以支持不同的数据总线和访问连接到不同总线上的智能控制终端。\n[0096] 所述的总线驱动模块对不同的总线访问方式封装成统一的调用接口给后端管理器模块调用。每一个总线驱动模块由一个C++对象表示,并为后端管理器模块的访问提供统一的访问接口。提供的主要函数接口有:\n[0097] 1)virtualINT32busOpen(stringinterface);\n[0098] 2)virtualINT32busWrite(constvoid*buf,INT32count);\n[0099] 3)virtualINT32busRead(void*buf,INT32count);\n[0100] 4)virtualINT32busIoctl();\n[0101] 5)virtualINT32busPoll();\n[0102] 6)virtualINT32loop()。\n[0103] 所述的通信协议模块为智能控制软件系统提供对不同的通信协议的扩展支持,如Modbus协议。\n[0104] 所述的通信协议模块将不同的通行协议的访问方式封装成统一的调用接口给后端管理器模块和总线驱动模块调用。每一个通信协议模块由一个C++对象表示,并为后端管理器模块的访问提供统一的访问接口。提供的主要函数接口有:\n[0105] 1)virtualINT32initModLog(INT32fd,UINT32level,UINT32debug_info);\n[0106] 2)virtualINT32xmlParser(void*par,string&xml);\n[0107] 3)virtualINT32setUserData(void*par,string&data);\n[0108] 4)virtualINT32TxBackEnd(void*busDev,CmdDevice*cmdDev,void*par,BusRetMsg*msgs);\n[0109] 5)virtualINT32detectChange(void*busDev,INT32ctlFd,BusRetMsg*msgs);\n[0110] 6)virtualvoid*newProtocolPars();\n[0111] 7)virtualvoidfreeProtocolPars(void*p);\n[0112] 8)virtualBusRetMsg*allocRetMsgs();\n[0113] 9)virtualvoidfreeRetMsgs(BusRetMsg*msgs);\n[0114] 10)virtualvoid*openBus(stringbusName,void*spec);\n[0115] 11)virtualINT32closeBus(void*busDev)。\n[0116] 本发明采用模块化和可扩展化的设计方法,通过XML格式文件描述实际业务的执行过程、智能终端设备的类型以及其所具备的功能、连接的总线和通信协议,并提供应用程序编程接口用于扩展总线驱动、通讯协议支持和控制前端(如大数据应用)等。用户不需要重新修改和编译源代码,只需要通过配置文件和相应的扩展模块,本发明即可以支持和集成不同生产厂家的智能终端设备、物理总线和通信协议,快速构建出具备高稳定、可靠和同时具备扩展性的智能控制系统,解决不用的智能控制业务需求。\n[0117] 另外,本发明也方便用于对非智能设备(如普通家电)进行智能化的升级和改造。\n只需为非智能设备添加一个智能设备描述XML文件和在非智能设备上实现对XML描述文件中定义的功能声明字段进行解析并执行就能方便地加入到这个智能控制软件框架中,并被控制前端应用程序或活动进行控制。这样,大大方便和简化了对非智能设备进行升级和改造。\n附图说明\n[0118] 图1为本发明的结构框图。\n具体实施方式\n[0119] 图1是本发明的智能控制软件系统的结构框图,是主要由控制前端应用程序1、核心基础架构应用程序2、数据库3、后端管理器应用程序4组成。\n[0120] 所述的核心基础架构应用程序2是主要由控制前端管理器模块201、活动描述文件\n202、活动调度器模块203、LUA脚本解析引擎模块204、数据库接口模块205和命令分发器模块206组成。\n[0121] 所述的后端管理器应用程序4是主要由后端管理器模块401、智能终端设备描述\n402、总线驱动模块403和协议通信模块404组成。\n[0122] 本发明的智能控制软件系统的源代码经过交叉编译后,生成控制前端应用程序1、核心基础架构应用程序2和后端管理器应用程序4,3个可执行程序。这3个可执行程序可以同时运行在同一个物理硬件平台上,或通过网络连接分别部署在不同类型的物理硬件平台上运行。\n[0123] 所述数据库3可以采用任何类型的关系数据库,如mysql,oracle,sqlite等。数据库3也可以与控制前端应用程序1、核心基础架构应用程序2和后端管理器应用程序4部署在同一个物理硬件平台上,或通过网络连接后分别运行在不同类型的物理硬件平台上。\n[0124] 在实际应用中,控制前端应用程序1为可选模块。系统的业务逻辑可以通过活动描述文件202中的LUA脚本描述部分进行定义,从而降低系统对硬件资源的要求和提高灵活性。\n[0125] 根据实际应用中的智能控制业务逻辑需求,编写活动描述文件202。\n[0126] 根据实际应用中各智能控制终端设备部署、所使用的通信总线和通信协议情况,选用或开发对应的总线驱动模块403和通信协议模块404。\n[0127] 根据实际应用中各智能控制终端设备部署情况,编写每一个智能控制终端设备的能终端设备描述文件402。\n[0128] 最后,根据所选的物理硬件平台,构建其嵌入式运行环境,主要包括:内核和文件系统搭建。法律信息
- 2019-02-26
- 2016-09-28
专利申请权的转移
登记生效日: 2016.09.01
申请人由曾宪锋变更为广州昱正信息科技有限公司
地址由511400 广东省广州市番禺区市桥街丹桂园大街7巷1号变更为510000 广东省广州市海珠区新港东路2433号启盛会展产业园1007单元
- 2016-01-20
实质审查的生效
IPC(主分类): G06F 9/44
专利申请号: 201410267303.X
申请日: 2014.06.13
- 2015-12-23
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-04-10
|
2012-12-19
| | |
2
| |
2014-05-28
|
2013-10-11
| | |
3
| | 暂无 |
2013-01-23
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |