具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请提供的双芯智能电表的事件记录方法,可以应用于如图1所示的双芯智能电表中,其内部结构图可以如图1所示。该双芯智能电表包括通过系统总线连接的处理器、存储器和网络接口。其中,该双芯智能电表的处理器用于提供计算和控制能力。该双芯智能电表的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该双芯智能电表的数据库用于存储双芯智能电表的事件记录数据。该双芯智能电表的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种双芯智能电表的事件记录方法。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的双芯智能电表的限定,具体的双芯智能电表可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请提供一种双芯智能电表的事件记录方法,可以应用于双芯智能电表的事件记录应用中;其中,事件记录应用属于双芯智能电表管理单元软件系统的应用层功能,负责记录双芯智能电表在运行过程中,由于内在的或者外在的触发原因导致双芯智能电表执行某种动作或者产生某些故障而记录下的数据。事件记录应用可以在管理单元实现,与双芯智能电表的计量单元和管理单元均产生交互,用于完成包括各电表应用的各个模块功能的动作记录。相对于传统的电表管理单元软件系统,本申请的事件记录应用可以在计量单元和管理单元运行时,记录电表应用执行特定动作或产生特定故障时的相关数据,再通过事件线程将记录的相关数据进行存储,进一步地,可以存储在管理单元中。进一步地,事件记录应用在双芯智能电表上电后可以通过事件记录应用的主线程创建事件线程,通过引入分线程运行处理机制,以及通过判断分时计量模块的信号,创建定时器任务来进行事件的记录,节省程序线程资源,引入不同事件类型的产生和处理机制,优化了电表运行状态的记录功能。
在一个实施例中,如图2所示,提供了一种双芯智能电表的事件记录方法,其中,双芯智能电表可以包括事件记录应用和电表应用,本申请提供的双芯智能电表的事件记录方法可以应用于事件记录应用中,包括以下步骤:
步骤S201,双芯智能电表若检测到电表应用执行电表事件,则确定电表事件的触发途径。
步骤S202,基于不同触发途径与不同事件类型之间的预设对应关系,双芯智能电表确定与电表事件的触发途径对应的目标事件类型。
其中,电表应用可以是双芯智能电表中除事件记录应用以外的其他应用,如计量单元的应用或者管理单元的应用;电表事件可以是指电表应用在运行过程中执行特定动作或者产生特定故障数据。
对应地,电表应用执行特定动作可以是由外部设备(远程通信设备)触发电表应用执行的,例如:远程编程、校时、密钥更新、事件清零、电表清零等;因此,外部设备触发电表应用执行特定动作的途径可以看作是外部触发途径,与特定动作对应的事件类型可以称为电表操作事件类型;也就是说,外部触发途径与电表操作事件类型对应。
电表产生特定故障数据可以是指在双芯智能电表在运行过程中,电表参数(也可以称为参变量)达到设定值的情况下触发电表应用执行的,例如:电表内的参变量超过设定的事件阈值(如超过过流事件的事件阈值、超过负荷开关误动作事件的事件阈值等)或者人为的操作(开盖事件、更换电池事件),在上述情况下,电表应用被触发产生特定的故障数据的途径可以看作是内部触发途径,与产生特定故障数据对应的事件类型可以称为电表故障事件类型;也就是说,内部触发途径与电表故障事件类型对应。
具体而言,双芯智能电表的电表应用被触发执行电表事件后,事件记录应用可以确定电表应用对应的触发途径;并根据不同触发途径与不同事件类型对应的预设对应关系(如外部触发途径与电表操作事件类型之间存在的对应关系、内部触发途径与电表故障事件类型之间存在的对应关系),事件记录应用可以确定上述电表应用执行的电表事件所对应的目标事件类型。
步骤S203,双芯智能电表通过与目标事件类型对应的事件线程记录电表事件的数据。
其中,不同的事件类型对应不同的事件线程;双芯智能电表的事件记录应用在确定上述电表事件所对应的目标事件类型后,通过与目标事件类型对应的事件线程记录上述电表事件的数据。
上述双芯智能电表的事件记录方法中,双芯智能电表若检测到电表应用执行电表事件,则确定电表事件的触发途径,基于不同触发途径与不同事件类型之间的预设对应关系,双芯智能电表确定与电表事件的触发途径对应的目标事件类型,并通过与目标事件类型对应的事件线程记录电表事件的数据,通过在引入不同事件类型的产生和处理机制,优化了电表运行状态的记录功能,进而在新的电表双芯软件架构下,实现电表运行状态和操作故障的有效记录。
在一个实施例中,双芯智能电表在执行步骤S201时,如果检测到电表应用是在双芯智能电表运行过程中的电表参数达到设定值的情况下触发执行电表事件,则确定电表事件的触发途径是内部触发途径。对应地,双芯智能电表在检测到触发途径是内部触发途径的情况下,双芯智能电表可以确定电表应用执行的电表事件所对应的目标事件类型是电表故障事件类型。
在目标事件类型是电表故障事件类型的情况下,双芯智能电表在执行步骤S203时,双芯智能电表可以在检测到设定触发标志满足触发条件后,启动电表故障事件类型对应的事件线程记录电表事件的数据。
也就是说,如果电表事件对应的事件类型是电表故障事件类型,双芯智能电表可以基于设定的触发标志产生后,等待触发条件满足才启动对应的事件线程,产生电表故障类型的事件记录。
图3提供一种双芯智能电表的电表故障事件类型的产生方法;双芯智能电表可以执行如下步骤:
步骤S301,双芯智能电表在运行事件记录应用的功能函数后,判断是否有与电表故障事件类型对应的触发标志产生;
步骤S302,双芯智能电表若确定产生触发标志,则进一步判断产生的触发标志是否满足对应的触发条件(如超过过流事件的事件阈值、超过负荷开关误动作事件的事件阈值);
步骤S303,若触发标志满足对应的触发条件,双芯智能电表产生与电表故障事件类型对应的事件记录;
步骤S304,在完成事件记录后,双芯智能电表重新运行事件记录应用的功能函数。
在一个实施例中,双芯智能电表在执行步骤S201时,如果检测到电表应用是由外部设备触发执行电表事件,则确定电表事件的触发途径是外部触发途径;对应地,在检测到触发途径是外部触发途径的情况下,双芯智能电表可以确定电表应用执行的电表事件所对应的目标事件类型是电表操作事件类型。
在目标事件类型是电表操作事件类型的情况下,双芯智能电表在执行步骤S203时,双芯智能电表可以直接启动电表操作事件类型对应的事件线程记录电表事件的数据。
也就是说,双芯智能电表在确定电表事件对应的事件类型为电表操作事件类型后,无需延时判断等待触发条件的成立,可以直接启动与电表操作事件类型对应的事件线程记录电表事件的数据,保证快速有效记录对应的电表事件。
可以理解的是,在外部设备触发电表应用执行特定动作的电表事件的情况下,一般是由相关人员操作外部设备,使得外部设备接入双芯智能电表,进而触发电表应用,也就是说,电表操作事件类型对应的外部触发途径与人为因素接入有关(如图4步骤S401所示)。
图4提供一种双芯智能电表的电表操作事件类型的产生方法;双芯智能电表可以执行如下步骤:
步骤S401,双芯智能电表在运行事件记录应用的功能函数后,判断是否有人为因素接入触发电表应用执行特定动作;
步骤S402,双芯智能电表若检测到是人为因素接入,则进一步判断电表应用是否执行特定的动作;
步骤S403,若电表应用执行特定的动作,双芯智能电表产生与电表操作事件类型对应的事件记录;
步骤S404,在完成事件记录后,双芯智能电表重新运行事件记录应用的功能函数。
在一个实施例中,上述的事件线程可以是由事件记录应用的主线程创建的,具体而言,电表操作事件类型对应的事件线程是由事件记录应用的主线程创建的,和/或,电表故障事件类型对应的事件线程是由事件记录应用的主线程创建的。
可见,上述事件线程通过事件记录应用的主线程创建,引入分线程运行处理机制,可以节省程序线程资源,优化电表运行状态和故障的记录功能。
在一个实施例中,为了有效记录不同电表事件的数据,本申请提供的双芯智能电表的事件记录方法在执行步骤S203时,还可以进一步执行:双芯智能电表对事件线程进行与目标事件类型对应的事件参数初始化,并通过事件参数初始化后的事件线程记录电表事件的数据。
进一步地,为了保证进行事件记录处理时,记录的数据实时准确有效,双芯智能电表在通过事件参数初始化后的事件线程记录电表事件的数据时,还可以执行:双芯智能电表若接收预设的分时计量模块针对事件参数初始化后的事件线程发出的定时读取启动信号,则触发事件参数初始化后的事件线程基于定时读取启动信号在达到设定时间时读取电表事件的数据;双芯智能电表将与设定时间对应的电表事件的数据存储在事件参数初始化后的事件线程中。
进一步地,为了保证事件记录的正常进行,双芯智能电表在触发事件参数初始化后的事件线程基于定时读取启动信号在达到设定时间时读取电表事件的数据之前,还进一步执行如下步骤:基于定时读取启动信号在达到设定时间后,双芯智能电表判断是否接收到下电信号;若否,则双芯智能电表触发事件参数初始化后的事件线程读取与设定时间对应的电表事件的数据。
其中,事件参数初始化主要是指各事件线程的阈值和初始状态等参数的初始化。分时记录模块发出的定时读取启动信号主要是保证进行事件记录处理时,记录的数据实时有限。
具体而言,双芯智能电表上电后,事件记录应用的主线程创建事件线程,并且事件线程启动后,先判断并创建工作目录,再初始事件线程的相关参数(如各事件线程的阈值和初始状态)。双芯智能电表在检测到分时记录模块发出的定时读取信号(即已经正常运行的信号)后,触发事件线程基于定时读取信号并在达到设定时间时读取电表事件的数据,并存储在事件线程中,例如事件线程可以在分时记录模块发出定时读取信号后,每隔一秒读取一次电表事件数据,并将每次读取的电表事件数据存储在事件线程中。
为了更好地理解上述方法,以下详细阐述一个本申请双芯智能电表的事件记录方法的应用实例。
在本应用实例中,电表事件所对应的事件类型可以分为电表故障事件类型和电表操作事件类型。上述电表事件的事件类型主要是按照电表事件的产生原理(即触发途径)确定的,各事件类型包括的电表事件如表1所示。
表1
事件记录应用主要围绕电表事件的产生途径(即触发途径)来加以区分设计,对于电表故障事件类型和电表操作事件类型,事件产生的机制如图3和图4所示。电表操作事件类型的产生途径是基于设定的触发标志产生后,再等待触发条件满足才产生的事件记录。而电表操作事件类型的产生途径主要有远程操作参数设置、拉合闸控制等;在确定电表事件所对应的事件类型为电表操作事件类型后,无需延时判断等触发条件的成立。
根据两种事件类型的产生原理,可使用两种软件实现处理方法:
①电表操作事件类型的电表事件记录主要通过远程通信操作得以触发,包括:远程编程、校时、密钥更新、事件清零、电表清零等;在记录电表操作事件类型的电表事件时可以进行统一规划。
②电表故障事件类型主要是在电表系统运行过程中,电能表内的参变量超过设定的事件阈值(如过流事件、负荷开关误动作事件等)或者人为的操作(开盖事件、更换电池事件)触发系统的事件记录功能而执行相应的事件记录。
图5提供一种双芯智能电表的事件记录应用的运行步骤,现结合图5介绍上述运行步骤:
步骤S501至步骤S503,双芯智能电表上电后,触发事件记录应用的主线程创建用于记录电表事件的事件线程;
步骤S504至步骤S505,事件线程启动后,双芯智能电表先判断并创建工作目录,再初始化事件记录的相关参数(主要是各事件的阈值与初始状态等);
步骤S506,双芯智能电表配置事件线程等待分时计量模块发出已经正常运行的信号(相当于定时读取启动信号),以保证进行事件记录处理时,使用的实时数据准确有效;
步骤S507至步骤S509,当分时记录模块发出已正常运行的信号后,双芯智能电表配置事件线程创建定时器任务,其中,定时器任务可以是延时1秒启动定时器,并且定时器周期为1秒;定时器任务可以每秒向事件记录线程发送一个秒消息;
步骤S510,双芯智能电表配置事件线程接等待定时器任务发送的秒消息,若接收到秒消息,则进入步骤S511;
步骤S511,双芯智能电表配置事件线程判断是否收到双芯智能电表的下电信号;
步骤S512,若事件线程收到双芯智能电表的下电信号,双芯智能电表则配置事件线程进入下电流程,以结束事件线程;
步骤S513,若事件线程未收到下电信号,双芯智能电表则配置每秒钟获取电能表当前运行的实时值,并将实时值与设定的阈值进行比较,进行事件记录的判断与记录;
步骤S514,双芯智能电表将记录有电表事件数据的事件线程通过刷新电表运行状态字的方式存储在计量应用(计量APP,application)总体中,完成一次的事件记录。
本应用实例中,相比于传统技术,在进行电表事件记录时,根据产生机制的不同分为电表故障事件类型和电表操作事件类型,事件记录应用分为故障类事件和操作类事件,针对不同种类的事件类型,设计对应的软件实现的发生机制(通过设置参变量和远程通信的方式)和处理流程,遵循两种类别事件的特性,简化事件类型的判断,满足电表事件多样性的需要,支持双芯智能电表事件记录的准确性。另外,从事件记录应用的主线程中创建事件线程,节约双芯智能电表的主线程资源。并且在本应用实例中,事件记录线程创建秒定时器,发送并等待秒消息,进而刷新电表运行状态字到计量APP(步骤S515),进行各事件记录的判断和记录,可以保证使用的实时数据准确有效,优化电表运行状态的记录功能。
应该理解的是,虽然图1至图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种双芯智能电表的事件记录装置,双芯智能电表包括事件记录应用和电表应用,上述装置应用于事件记录应用中;上述装置包括:
触发途径确定模块601,用于若检测到电表应用执行电表事件,则确定电表事件的触发途径;
事件类型确定模块602,用于基于不同触发途径与不同事件类型之间的预设对应关系,确定与电表事件的触发途径对应的目标事件类型;
事件记录模块603,用于通过与目标事件类型对应的事件线程记录电表事件的数据。
在一个实施例中,上述事件记录模块603,进一步用于若目标事件类型是电表操作事件类型,则直接启动电表操作事件类型对应的事件线程记录电表事件的数据。
在一个实施例中,上述事件记录模块603,进一步用于若目标事件类型是电表故障事件类型,则在检测到设定触发标志满足触发条件后,启动电表故障事件类型对应的事件线程记录电表事件的数据。
在一个实施例中,上述触发途径确定模块601,进一步用于若检测到电表应用是由外部设备触发执行电表事件,则确定电表事件的触发途径是外部触发途径;其中,外部触发途径与电表操作事件类型对应。
在一个实施例中,上述触发途径确定模块601,进一步用于若检测到电表应用是在双芯智能电表运行过程中的电表参数达到设定值的情况下触发执行电表事件,则确定电表事件的触发途径是内部触发途径;其中,内部触发途径与电表故障事件类型对应。
在一个实施例中,电表操作事件类型对应的事件线程是由事件记录应用的主线程创建的,和/或,电表故障事件类型对应的事件线程是由事件记录应用的主线程创建的。
在一个实施例中,上述事件记录模块603,进一步用于对事件线程进行与目标事件类型对应的事件参数初始化;通过事件参数初始化后的事件线程记录电表事件的数据。
在一个实施例中,上述事件记录模块603,进一步用于接收预设的分时计量模块针对事件参数初始化后的事件线程发出的定时读取启动信号;触发事件参数初始化后的事件线程基于定时读取启动信号在达到设定时间时读取电表事件的数据;将与设定时间对应的电表事件的数据存储在事件线程中。
在一个实施例中,上述事件记录模块603,进一步用于基于定时读取启动信号在达到设定时间后,判断是否接收到下电信号;若否,则触发事件参数初始化后的事件线程读取与设定时间对应的电表事件的数据。
关于双芯智能电表的事件记录装置的具体限定可以参见上文中对于双芯智能电表的事件记录方法的限定,在此不再赘述。上述双芯智能电表的事件记录装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于双芯智能电表中的处理器中,也可以以软件形式存储于双芯智能电表中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种双芯智能电表,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上的实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。