一种基于MQTT消息协议的能源控制器进程间的通信方法技术

技术编号:34439060 阅读:14 留言:0更新日期:2022-08-06 16:26
本发明专利技术属于电力通信领域,具体涉及一种基于MQTT消息协议的能源控制器进程间的通信方法,以及实施该方法的系统和终端。该方法可以在能源控制器的各个进程间实现自由通信。通信方法的实施过程包括系统构建阶段、服务订阅阶段、消息发布阶段和消息推送节阶段。MQTT客户端为每个进程产生的消息内容设置好相应的主题类型、优先级属性和广播属性,然后发送到MQTT服务器上。MQTT服务器会将每个进程发布的信息采集过来,然后解析各条消息;接着先进行优先级排序,再检索出当前进程发布的主题内容的订阅方,并将当前消息的消息内容推送给订阅方。本发明专利技术解决了能源控制器进程间消息通讯效率低、传输可靠性低、程序耦合性高,二次开发难度大等问题。度大等问题。度大等问题。

【技术实现步骤摘要】
一种基于MQTT消息协议的能源控制器进程间的通信方法


[0001]本专利技术属于电力通信领域,具体涉及一种基于MQTT消息协议的能源控制器进程间的通信方法,以及实施该方法的系统和终端。

技术介绍

[0002]能源控制器(Energy control and monitoring terminal unit,ECU)是一种安装在公变或专变台区,用于实现客户侧和配电侧计量与感知的设备。该设备具有数据采集、智能费控、时钟同步、精准计量、有序充电、用能管理、回路状态巡检、户变关系识别、停电事件上报等多种功能;是智能电网中的核心设备。
[0003]能源控制器的功能丰富,各个管理进程在运行过程中需要进行信息交互。现有进程间的通讯方式包括管道通信、信号量通信、消息队列、共享内存、套接字等方式。但是这些传统的通讯方式普遍存在传输效率低、传输可靠性低、无重发机制、程序耦合性高、传输格式不统一的缺点,这会对能源控制器进程间的通讯效率产生影响。
[0004]目前,随着智能电网的不断发展,各项电力管理服务和应用对电力数据的实时性、高效性需求越来越明显,这对进程间数据的传输效率提出了更高的要求。然而传统的能源控制器的进程间通讯方式显然已经不能够适应现有业务对通讯效率的要求。同时,随着能源控制器的功能更加完善,进程数不断增多,进程间的通讯网络也变得更加复杂,容易出现数据出错的问题。因此亟需开发一种更高效、更可靠的能源控制器的进程间通讯方式。
[0005]此外,现有进程间通讯方式的功能大多需要基于能源控制器的核心主应用程序,且内部各线程间的消息传输采用直接通信的模式,这种通讯方式不仅效率低下,且具有较大的二次开发难度;如果需要改变任意进程的通信关系,就需要对能源控制器的整个模块进行修改。

技术实现思路

[0006]为了解决进程间消息通讯效率低、传输可靠性低、程序耦合性高,二次开发难度大等问题;本专利技术提供一种基于MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)消息协议的能源控制器进程间的通信方法,以及实施该方法的系统和终端。
[0007]本专利技术采用以下技术方案实现:
[0008]一种基于MQTT消息协议的能源控制器进程间的通信方法,该通信方法用于在能源控制器的各个进程间实现自由通信。该通信方法的实施过程包括如下内容:
[0009]一、系统构建阶段:
[0010]构建一个包括MQTT客户端和MQTT服务器的进程间通信系统。其中,MQTT客户端用于接收由各个进程生成的消息,并将消息发送到MQTT服务器。MQTT服务器用于对接收到的所有消息进行管理,并将消息推送给MQTT客户端中的目标进程。
[0011]二、服务订阅阶段:
[0012]以每个进程的名称作为消息订阅的主题类型,在MQTT服务器中预先建立各个进程
对其它进程的信息订阅关系。并为每个进程设置一个广播消息的订阅状态。
[0013]三、消息发布阶段:
[0014]MQTT客户端收集各个进程发布的消息,然后为每条消息设置广播属性和优先级属性。并将消息发送到MQTT服务器。发布的消息中包含主题类型和消息内容。
[0015]四、消息推送阶段:
[0016]MQTT服务器先对接收到的所有消息进行解析;然后根据所有待推送的消息的接收时间和优先级属性确定各条消息的推送顺序;最后再根据每条消息的主题类型和广播属性,将消息内容推送到订阅该消息的目标进程处。
[0017]作为本专利技术进一步的改进,在构建的进程间通信系统中,MQTT客户端为消息的发送方和接收方。MQTT服务器为消息的分配中转站。任意一个被传输的消息均由MQTT客户端中的其中一个进程发布,并被MQTT客户端中的一个或多个进程接收。消息的发送和接收过程采用异步模块,在不同线程中处理。
[0018]作为本专利技术进一步的改进,在消息的发布阶段,还可以为每条消息设置一个发布服务质量,发布服务质量包括“至多一次”、“至少一次”和“只有一次”三种。MQTT服务器根据每条消息的发布服务质量属性确定消息的发布频次,以确保每条消息准确推送到目标进程。
[0019]作为本专利技术进一步的改进,在三种发布服务质量中,“至多一次”指无论目标进程是否接收到推送的信息,MQTT服务器都仅推送一次当前消息。“至少一次”指无论需要推送多少次消息,MQTT服务器都要保证推送的消息被目标进程接收。“只有一次”指推送消息过程,MQTT服务器要保证目标进程接收且仅接收到一次推送的消息。
[0020]作为本专利技术进一步的改进,在消息推送阶段,MQTT客户端在每个进程接收到由MQTT服务器推送的消息后,还向所述MQTT服务器返回一个消息送达指令。
[0021]作为本专利技术进一步的改进,在消息推送阶段,在MQTT客户端中的任意进程因异常而断开连接之后,MQTT服务器自动向所有订阅该主题类型的进程推送相关的掉线信息。同时,在掉线进程重新上线之前,也向该进程的新增订阅对象推送掉线信息。
[0022]作为本专利技术进一步的改进,在消息发布阶段,每条消息采用JSON格式进行传递,消息为一个包含“名称/值”的数据集。其中,“名称”指传输的消息的主题类型;“值”指传输的消息的实际内容,值中包含的数据为字符串、数组、数值、对象和空数据中的一种或任意多种。
[0023]作为本专利技术进一步的改进,MQTT服务器将接收到的待推送的消息存储在一个内存数据库中;当待推送的消息的数量超过1条时,针对未设置优先级属性的消息,MQTT服务器还通过SQL语句查询的方式检索消息内容中的关键字,然后根据关键字对该消息与其它待推送消息的优先级进行重新排序。
[0024]本专利技术还包括一种基于MQTT消息协议的能源控制器进程间的通信系统,该通信系统采用如前述的基于MQTT消息协议的能源控制器进程间的通信方法,在能源控制器中的任意进程间实现不定向的自由通信。该通信系统包括进程端和服务器端共两个部分,二者的信息交互过程采用异步通信模式。
[0025]其中,进程端包括消息采集模块和消息接收模块。消息采集模块用于获取各个能源控制器中各个进程生成的待发布的消息,然后将发布当前消息的进程的名称作为当前消
息的主题类型,并为每个消息设置一个广播属性和优先级属性;最后将包含消息内容、主题类型、广播属性和优先级属性的数据集发送到服务器端。消息接收模块用于接收由服务器端推送的消息。
[0026]服务器端包括订阅管理模块、消息处理模块和消息推送模块。订阅管理模块用于为每个进程设置订阅的主题类型,订阅的主题类型反映了各个进程允许推送的消息源。同时,还为各个进程设置一个广播消息的订阅状态。当某个进程订阅了广播信息后,则任意一个其它进程发布的广播信息均被允许推送至该进程。消息处理模块用于接收并解析由消息采集模块发出的数据集,然后根据消息的接收时间和优先级属性确定各条消息的推送顺序。消息推送模块用于根据每条消息的主题类型和广播属性,将各条待推送的消息的消息内本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于MQTT消息协议的能源控制器进程间的通信方法,其用于在能源控制器的各个进程间实现自由通信,其特征在于:所述通信方法的实施过程包括如下内容:系统构建阶段:构建一个包括MQTT客户端和MQTT服务器的进程间通信系统;所述MQTT客户端用于接收由各个进程生成的消息,并将消息发送到所述MQTT服务器;所述MQTT服务器用于对接收到的所有消息进行管理,并将消息推送给MQTT客户端中的目标进程;服务订阅阶段:以每个进程的名称作为消息订阅的主题类型,在所述MQTT服务器中预先建立各个进程对其它进程的信息订阅关系;并为每个进程设置一个广播消息的订阅状态;消息发布阶段:MQTT客户端收集各个进程发布的消息,然后为每条消息设置广播属性和优先级属性;并将消息发送到所述MQTT服务器;发布的消息中包含主题类型和消息内容;消息推送阶段:MQTT服务器先对接收到的所有消息进行解析,然后根据所有待推送的消息的接收时间和优先级属性确定各条消息的推送顺序,最后再根据每条消息的主题类型和广播属性,将消息内容推送到订阅该消息的目标进程处。2.如权利要求1所述的基于MQTT消息协议的能源控制器进程间的通信方法,其特征在于:在构建的所述进程间通信系统中,MQTT客户端为消息的发送方和接收方;MQTT服务器为消息的分配中转站;任意一个被传输的消息均由MQTT客户端中的其中一个进程发布,并被MQTT客户端中的一个或多个进程接收;消息的发送和接收过程采用异步模块,在不同线程中处理。3.如权利要求2所述的基于MQTT消息协议的能源控制器进程间的通信方法,其特征在于:在消息的发布阶段,还可以为每条消息设置一个发布服务质量,所述发布服务质量包括“至多一次”、“至少一次”和“只有一次”三种;所述MQTT服务器根据每条消息的发布服务质量属性确定消息的发布频次,以确保每条消息准确推送到目标进程。4.如权利要求3所述的基于MQTT消息协议的能源控制器进程间的通信方法,其特征在于:在三种发布服务质量中,“至多一次”指无论目标进程是否接收到推送的信息,MQTT服务器都仅推送一次当前消息;“至少一次”指无论需要推送多少次消息,MQTT服务器都要保证推送的消息被目标进程接收;“只有一次”指推送消息过程,MQTT服务器要保证目标进程接收且仅接收到一次推送的消息。5.如权利要求4所述的基于MQTT消息协议的能源控制器进程间的通信方法,其特征在于:在消息推送阶段,MQTT客户端在每个进程接收到由MQTT服务器推送的消息后,还向所述MQTT服务器返回一个消息送达指令。6.如权利要求1所述的基于MQTT消息协议的能源控制器进程间的通信方法,其特征在于:在消息推送阶段,在MQTT客户端中的任意进程因异常而断...

【专利技术属性】
技术研发人员:岳浩蒋小三张赢
申请(专利权)人:安徽南瑞中天电力电子有限公司
类型:发明
国别省市:

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

1