本发明涉及基于同步和异步消息协同的电能表业务调度方法及电能表,属于电能表业务调度领域。
背景技术:
1、智能电能表是实现用电信息自动采集、计量信息在线互动、分布式能源结算的重要终端,随着数字化、智能化、网联化的发展和用户侧电力需求的多样化,其功能和应用场景也在不断拓展,智能电能表已经从单一的计量计费装置发展为集成了多种功能的智能用电终端,包括远程费率设置、远程刷新程序、光伏控制等。但随着技术的进步和市场需求的增长,智能电能表的制造成本、技术门槛和市场壁垒等问题也逐渐显现。
2、目前智能电能表的软件系统主要存在两种架构:一种是中断驱动与轮询相结合的前后台系统,那些需要及时响应的业务请求采用中断驱动的方式进行实时处理,对于响应时间要求不太严格的业务功能,采用轮询的方式响应。但随着智能电能表的业务不断的增加,其业务调度要求也随之升高,基于中断驱动与轮询相结合的前后台系统架构逐渐显露出开发效率低、设计质量控制难等自身不足。
3、另一种是基于实时操作系统(real-time operating system,rtos)的软件系统架构,rtos将处理器时间分成多个时间片且将时间片分给不同的任务,设计人员将产品功能分成若干个优先级不同的小任务,通过rtos的任务调度功能,采用时间片轮转或者优先级选择的方式进行任务的执行。出于对产品成本的严格控制考虑,智能电能表采用的mcu处理器性能相对较低,硬件系统资源相对偏少,采用基于rtos的软件系统架构时,由于操作系统本身会占用相当一部分mcu的系统资源,对mcu处理器性能要求相对较高,难以满足智能电能表的成本控制要求。
技术实现思路
1、本发明的目的是提供基于同步和异步消息协同的电能表业务调度方法及电能表,用以解决电能表的软件系统架构存在占用系统资源多的问题。
2、为实现上述目的,本发明的方案包括:
3、本发明的基于同步和异步消息协同的电能表业务调度方法,当电能表的业务模块之间需要业务进行同步时:且数据交互需要及时进行,提供数据的业务模块则向用于转发报文的系统数据总线发送同步消息报文,由系统数据总线通过消息调度函数找到要进行数据交互的业务模块并进行同步消息报文的处理,要进行数据同步的业务模块在接收到系统数据总线发来的同步消息报文后进行相应的业务处理;若数据交互不需要及时进行,提供数据的业务模块则向系统数据总线中的消息队列发送异步消息报文,由系统数据总线在当前时间段的空闲时间找到要进行数据交互的业务模块并进行异步消息报文的处理,要进行数据交互的业务模块在接收到系统数据总线发来的异步消息报文后进行相应的业务处理。
4、进一步地,业务处理包括:要进行数据交互的业务模块向系统数据总线发送数据请求报文,由系统数据总线找到提供数据的业务模块并将数据请求报文发给该提供数据的业务模块,提供数据的业务模块接收到数据请求报文后向系统数据总线发送包括相应数据的数据响应报文,由系统数据总线找到要进行数据交互的业务模块并将数据响应报文发送给要进行数据交互的业务模块。
5、进一步地,各个业务模块包括读数据接口、写数据接口和消息响应接口;读数据接口用于向系统数据总线发送数据请求报文,写数据接口用于向系统数据总线发送包括相应数据的数据应答报文,消息响应接口用于向系统数据总线发送同步消息报文或异步消息报文。
6、进一步地,系统数据总线内有包括业务模块id和与业务模块相对应的消息id的表,提供数据的业务模块在发送报文时,将要进行数据交互的业务模块的id填入报文中,系统数据总线通过查表将报文传输到要进行数据交互的业务模块。
7、进一步地,当系统数据总线在当前时间段没有空闲时间时,则在下一个时间段找到要进行数据交互的业务模块并进行异步消息报文的处理。
8、本发明的一种电能表,电能表在实现业务的协同调度时,使用如下方法:
9、当电能表的业务模块之间需要业务进行同步时:且数据交互需要及时进行,提供数据的业务模块则向用于转发报文的系统数据总线发送同步消息报文,由系统数据总线通过消息调度函数找到要进行数据交互的业务模块并进行同步消息报文的处理,要进行数据同步的业务模块在接收到系统数据总线发来的同步消息报文后进行相应的业务处理;若数据交互不需要及时进行,提供数据的业务模块则向系统数据总线中的消息队列发送异步消息报文,由系统数据总线在当前时间段的空闲时间找到要进行数据交互的业务模块并进行异步消息报文的处理,要进行数据交互的业务模块在接收到系统数据总线发来的异步消息报文后进行相应的业务处理。
10、进一步地,业务处理包括:要进行数据交互的业务模块向系统数据总线发送数据请求报文,由系统数据总线找到提供数据的业务模块并将数据请求报文发给该提供数据的业务模块,提供数据的业务模块接收到数据请求报文后向系统数据总线发送包括相应数据的数据响应报文,由系统数据总线找到要进行数据交互的业务模块并将数据响应报文发送给要进行数据交互的业务模块。
11、进一步地,各个业务模块包括读数据接口、写数据接口和消息响应接口;读数据接口用于向系统数据总线发送数据请求报文,写数据接口用于向系统数据总线发送包括相应数据的数据应答报文,消息响应接口用于向系统数据总线发送同步消息报文或异步消息报文。
12、进一步地,系统数据总线内有包括业务模块id和与业务模块相对应的消息id的表,提供数据的业务模块在发送报文时,将要进行数据交互的业务模块的id填入报文中,系统数据总线通过查表将报文传输到要进行数据交互的业务模块。
13、进一步地,当系统数据总线在当前时间段没有空闲时间时,则在下一个时间段找到要进行数据交互的业务模块并进行异步消息报文的处理。
14、本发明的有益效果为:本发明提供了一种全新的电能表的业务协同调度方法,本发明在电能表的业务模块之间需要业务数据及时同步时,提供数据的业务模块向系统数据总线发送同步消息报文,由系统数据总线找到要进行数据交互的业务模块并进行同步消息报文的处理,要进行数据同步的业务模块在接收到系统数据总线发来的同步消息报文后进行相应的业务处理;在电能表的业务模块之间不需要业务数据及时同步时,提供数据的业务模块向系统数据总线发送异步消息报文,提供数据的业务模块向系统数据总线中的消息队列发送异步消息报文,由系统数据总线在当前时间段的空闲时间找到要进行数据交互的业务模块并进行异步消息报文的处理,要进行数据交互的业务模块在接收到系统数据总线发来的异步消息报文后进行相应的业务处理。本发明通过消息调度的机制和业务功能的模块化,解决了系统资源受限的条件下,显著的提高了电能表的业务调度效率。
1.基于同步和异步消息协同的电能表业务调度方法,其特征在于,当电能表的业务模块之间需要业务进行同步时:且数据交互需要及时进行,提供数据的业务模块则向用于转发报文的系统数据总线发送同步消息报文,由所述系统数据总线通过消息调度函数找到要进行数据交互的业务模块并进行同步消息报文的处理,要进行数据同步的业务模块在接收到系统数据总线发来的同步消息报文后进行相应的业务处理;若数据交互不需要及时进行,提供数据的业务模块则向所述系统数据总线中的消息队列发送异步消息报文,由所述系统数据总线在当前时间段的空闲时间找到要进行数据交互的业务模块并进行异步消息报文的处理,要进行数据交互的业务模块在接收到系统数据总线发来的异步消息报文后进行相应的业务处理。
2.根据权利要求1所述的基于同步和异步消息协同的电能表业务调度方法,其特征在于,所述业务处理包括:要进行数据交互的业务模块向系统数据总线发送数据请求报文,由系统数据总线找到提供数据的业务模块并将数据请求报文发给该提供数据的业务模块,提供数据的业务模块接收到数据请求报文后向系统数据总线发送包括相应数据的数据响应报文,由系统数据总线找到要进行数据交互的业务模块并将数据响应报文发送给要进行数据交互的业务模块。
3.根据权利要求2所述的基于同步和异步消息协同的电能表业务调度方法,其特征在于,各个业务模块包括读数据接口、写数据接口和消息响应接口;所述读数据接口用于向系统数据总线发送数据请求报文,所述写数据接口用于向系统数据总线发送包括相应数据的数据应答报文,所述消息响应接口用于向系统数据总线发送同步消息报文或异步消息报文。
4.根据权利要求2所述的基于同步和异步消息协同的电能表业务调度方法,其特征在于,系统数据总线内有包括业务模块id和与业务模块相对应的消息id的表,提供数据的业务模块在发送报文时,将所述要进行数据交互的业务模块的id填入报文中,系统数据总线通过查表将报文传输到要进行数据交互的业务模块。
5.根据权利要求1所述的基于同步和异步消息协同的电能表业务调度方法,其特征在于,当系统数据总线在所述当前时间段没有空闲时间时,则在下一个时间段找到要进行数据交互的业务模块并进行异步消息报文的处理。
6.一种电能表,其特征在于,所述电能表在实现业务的协同调度时,使用如下方法:
7.根据权利要求6所述的电能表,其特征在于,所述业务处理包括:要进行数据交互的业务模块向系统数据总线发送数据请求报文,由系统数据总线找到提供数据的业务模块并将数据请求报文发给该提供数据的业务模块,提供数据的业务模块接收到数据请求报文后向系统数据总线发送包括相应数据的数据响应报文,由系统数据总线找到要进行数据交互的业务模块并将数据响应报文发送给要进行数据交互的业务模块。
8.根据权利要求7所述的电能表,其特征在于,各个业务模块包括读数据接口、写数据接口和消息响应接口;所述读数据接口用于向系统数据总线发送数据请求报文,所述写数据接口用于向系统数据总线发送包括相应数据的数据应答报文,所述消息响应接口用于向系统数据总线发送同步消息报文或异步消息报文。
9.根据权利要求7所述的电能表,其特征在于,系统数据总线内有包括业务模块id和与业务模块相对应的消息id的表,提供数据的业务模块在发送报文时,将所述要进行数据交互的业务模块的id填入报文中,系统数据总线通过查表将报文传输到要进行数据交互的业务模块。
10.根据权利要求6所述的电能表,其特征在于,当系统数据总线在所述当前时间段没有空闲时间时,则在下一个时间段找到要进行数据交互的业务模块并进行异步消息报文的处理。