一种脚本化的智能电表事件判断方法技术

技术编号:25914250 阅读:25 留言:0更新日期:2020-10-13 10:32
本发明专利技术公开了一种脚本化的智能电表事件判断方法,步骤为:构建逻辑脚本,所述逻辑脚本包含用于进行事件判断的逻辑表达式;所述逻辑表达式包括若干逻辑单元;每个所述逻辑单元包含:左变量地址,右变量地址,运算符,左变量地址类型以及右变量地址类型;判断时,基于地址映射的方式获取左变量和右变量的变量值,再根据运算符完成左变量和右变量之间的运算,将布尔值类型的运算结果作为该逻辑单元的输出值;再进一步获得整个逻辑表达式的计算结果。本方法通过地址映射的方式,实现了在逻辑表达式中对不同的变量类型的数据的访问,实现了事件判断的脚本化,减少了事件判断逻辑发生变化时的代码修改量,降低了维护成本和测试成本。

【技术实现步骤摘要】
一种脚本化的智能电表事件判断方法
本专利技术涉及一种智能电表事件的判断方法,尤其是一种基于脚本的智能电表事件判断方法。
技术介绍
事件记录功能是智能电表的一个重要功能模块,它可以根据用户预先设定好的判断条件,监测电网的实时工况。在满足预先设定好的判断条件时(比如,电压值超过一个预先设定的门限T1),进行一系列的动作,比如事件记录,发出报警信号等等。在上述例子中,电压值通常是保存在单片机RAM中的变量,可以直接访问,门限T1一般是保存在外部存储器中,需要做比较时从外部存储器读入。随着用电设备的越来越复杂,用户对事件记录功能也提出了更复杂的要求,同时也出现了更多的组合条件。例如,针对同一个事件A,判断事件发生的逻辑为:电压值小于门限T1,并且电流值大于门限T2;判断事件结束的逻辑为:电压值大于门限T3,或者电流值小于门限T4。更一般的情况,判断的条件可能不局限于RAM中的瞬时值与存储在外部存储器中门限值的比较,也可能是存储在外部存储器中两个值的比较;也可能是RAM中的瞬时值与一个常数的比较,这种常数一般是存储在单片机内部flash中,不可更改。也可能是单片机的一个外部管脚的状态变化,比如通过IO管脚检测外部按键状态的变化,如果发生了变化,则记录事件;也可能是一个函数的直接返回结果。也就是说,更一般的情况除了逻辑组合条件复杂多变以外,出现在判断条件中的变量类型可能是RAM变量、外部存储器保存的变量、单片机内部flash中的常量、外部GPIO管脚状态或者函数等。针对普通的条件表达式,目前已公布的处理方式有:通过构造逻辑表达式的形式进行逻辑判断(参考公告号为CN108388653A的中国专利技术专利《变电站10kV出线开关分闸类型的识别方法》),根据最终的逻辑表达式输出的真假进行动作。但是这种处理方式无法直接应用到智能电表事件判断上,因为智能电表的具体业务逻辑与单片机紧密结合在一起,从单片机的角度看,所涉及到的变量类型(RAM变量,外部存储器保存的变量,单片机内部flash中的常量,外部GPIO管脚状态,函数等)属于不同的设备类型,用普通的条件表达式无法描述。由于受到上述制约,在智能电表系统中,一般不直接使用逻辑表达式进行事件判断。比较通用的做法是:对每一种事件编写一个判断逻辑函数,当要求发生变更时,修改相应函数的代码逻辑。但是,不同的用户对事件部分的功能有不同的要求,每当用户的需求发生变更的时候,都需要更改代码、修改判断逻辑,这带来了很高的维护成本和测试成本。
技术实现思路
本专利技术提出了一种脚本化的智能电表事件判断方法,其目的是:快速访问不同变量类型的数据,实现事件判断的脚本化,减少事件判断逻辑发生变化时的代码修改量,降低维护成本和测试成本。本专利技术技术方案如下:一种脚本化的智能电表事件判断方法,步骤为:构建逻辑脚本,每条逻辑脚本对应一个智能电表事件;所述逻辑脚本包含用于进行事件判断的逻辑表达式;所述逻辑表达式包括通过逻辑运算符连接在一起的逻辑单元;每个所述逻辑单元包含:左变量地址,右变量地址,运算符,左变量地址类型以及右变量地址类型;构建与各逻辑表达式一一对应的分支树,所述分支树的判断结果与所述逻辑表达式一致;依据分支树的跳转结构生成判断代码,将判断代码写入到智能电表的单片机中,用于实现逻辑表达式的动态实时判断;判断时,先获取各逻辑单元的输出值:对于各逻辑单元,基于地址映射的方式,根据左变量地址和左变量地址类型获取左变量的变量值,根据右变量地址和右变量地址类型获取右变量的变量值,再根据运算符完成左变量和右变量之间的运算,将布尔值类型的运算结果作为该逻辑单元的输出值;再进一步获得整个逻辑表达式的计算结果。进一步的,依据变量的类型即对应的变量地址类型构建地址映射:对于函数类型,事先建立通用的函数模板;在取变量的值时,如果变量地址类型为函数类型,则依据函数模板将对应的变量地址转换为函数,并将该函数的执行结果作为映射值。进一步的,依据变量的类型即对应的变量地址类型构建地址映射:对于存储器单字节、双字节和四字节数据类型,在取变量的值时,将对应的变量地址作为存储器的物理地址,并从该物理地址开始按字节长度读取数据,将该读取出的数据作为映射值。进一步的,依据变量的类型即对应的变量地址类型构建地址映射:对于RAM单字节、双字节和四字节数据类型,在取变量的值时,将对应的变量地址作为RAM地址,并从该RAM地址开始按字节长度读取数据,将该读取出的数据作为映射值。进一步的,依据变量的类型即对应的变量地址类型构建地址映射:对于立即数类型——该类型的数据是存储在单片机flash内部的常量,直接将变量地址中的数据并作为映射值。进一步的,依据变量的类型即对应的变量地址类型构建地址映射:对于GPIO类型,如果是数据区和代码区编址无重叠的单片机平台,则将变量地址指向的单片机地址总线上的值作为寄存器地址,并取对应的寄存器值作为映射值;如果是数据区和代码区编址有重叠的单片机,则将变量地址指向的单片机寄存器地址总线上的值作为寄存器地址,并取对应的寄存器值作为映射值。进一步的,每条逻辑脚本包括一条判断事件是否发生的第一逻辑表达式和一条判断事件是否结束的第二逻辑表达式,还包括一个对应该事件的回调函数。进一步的,在需要进行事件判断时,根据当前事件状态,查询事件对应的脚本的逻辑表达式,若当前事件状态是“发生”,则查询判断第二逻辑表达式,否则查询判断第一逻辑表达式;判断结束后,根据判断结果调用回调函数。进一步的,构建分支树的方法为:统计逻辑表达式中所出现的逻辑单元,求取各逻辑单元所对应的信息熵,然后依据信息熵对逻辑单元排序,依据排序构建所述分支树。进一步的,构建分支树的具体方法为:步骤1、统计对应的逻辑表达式中所出现的逻辑单元,重复出现的只计一次;设有逻辑单元的数量为n;步骤2、每个逻辑单元的结果取值为0、1两种情况,0表示逻辑假,1表示逻辑真;将所有可能存在的逻辑单元取值进行排列组合,共有2n种情况;将排列组合构成2n×n维的矩阵X,其中每一行的元素分别对应一种取值组合情况,第i列的元素均对应第i个逻辑单元;步骤3、将矩阵X的每一行分别代入逻辑表达式进行逻辑运算,将所有行的运算结果按矩阵X的行序组成2n×1维的向量Y;步骤4、将X,Y按照列方向进行组合,使X、Y组合成2n×(n+1)维的矩阵Z;步骤5、分别计算矩阵Z的前n列的信息熵:步骤5-1、对于第i列,按该列元素的不同取值,将矩阵Z分成和两个矩阵:表示矩阵Z第i列取值为1的行所组成的矩阵,设该矩阵的行数为m;表示矩阵Z第i列取值为0的行所组成的矩阵,设该矩阵的行数为n;步骤5-2、根据矩阵和最后一列的不同取值,继续将划分为和将划分为和共四个矩阵:表示矩阵中最后一列取值为1的行所组成的矩阵,设该矩阵的行数为m1;表示矩阵最后一列取值为0的行所组成的矩阵,设该矩阵的行数为m2;表示矩阵最后一列取值为1的行所组成的矩阵,设该矩阵的行本文档来自技高网
...

【技术保护点】
1.一种脚本化的智能电表事件判断方法,其特征在于:构建逻辑脚本,每条逻辑脚本对应一个智能电表事件;所述逻辑脚本包含用于进行事件判断的逻辑表达式;/n所述逻辑表达式包括通过逻辑运算符连接在一起的逻辑单元;/n每个所述逻辑单元包含:左变量地址,右变量地址,运算符,左变量地址类型以及右变量地址类型;/n通过逻辑表达式进行判断时,先获取各逻辑单元的输出值:对于各逻辑单元,基于地址映射的方式,根据左变量地址和左变量地址类型获取左变量的变量值,根据右变量地址和右变量地址类型获取右变量的变量值,再根据运算符完成左变量和右变量之间的运算,将布尔值类型的运算结果作为该逻辑单元的输出值;再进一步获得整个逻辑表达式的计算结果。/n

【技术特征摘要】
1.一种脚本化的智能电表事件判断方法,其特征在于:构建逻辑脚本,每条逻辑脚本对应一个智能电表事件;所述逻辑脚本包含用于进行事件判断的逻辑表达式;
所述逻辑表达式包括通过逻辑运算符连接在一起的逻辑单元;
每个所述逻辑单元包含:左变量地址,右变量地址,运算符,左变量地址类型以及右变量地址类型;
通过逻辑表达式进行判断时,先获取各逻辑单元的输出值:对于各逻辑单元,基于地址映射的方式,根据左变量地址和左变量地址类型获取左变量的变量值,根据右变量地址和右变量地址类型获取右变量的变量值,再根据运算符完成左变量和右变量之间的运算,将布尔值类型的运算结果作为该逻辑单元的输出值;再进一步获得整个逻辑表达式的计算结果。


2.如权利要求1所述的脚本化的智能电表事件判断方法,其特征在于,依据变量的类型即对应的变量地址类型构建地址映射:对于函数类型,事先建立通用的函数模板;在取变量的值时,如果变量地址类型为函数类型,则依据函数模板将对应的变量地址转换为函数,并将该函数的执行结果作为映射值。


3.如权利要求1所述的脚本化的智能电表事件判断方法,其特征在于,依据变量的类型即对应的变量地址类型构建地址映射:对于存储器单字节、双字节和四字节数据类型,在取变量的值时,将对应的变量地址作为存储器的物理地址,并从该物理地址开始按字节长度读取数据,将该读取出的数据作为映射值。


4.如权利要求1所述的脚本化的智能电表事件判断方法,其特征在于,依据变量的类型即对应的变量...

【专利技术属性】
技术研发人员:刘笑菲伍韬张玉猛柳志超孙旭魏鹏胡梦杰陈玉伟熊思怀张志祥
申请(专利权)人:烟台东方威思顿电气有限公司
类型:发明
国别省市:山东;37

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

1