本发明涉及电表技术领域,具体涉及一种智能电表结算方法。
背景技术
智能电表是智能电网数据采集的基本设备之一,可以实现计量装置在线监测和用户负荷、电量、电压等信息的实时采集,是实现信息集成、分析优化和信息展现的基础。结算是智能电表中的一个重要功能,可以实现将特定时刻的电量需量等重要数据存储在外部eeprom,用于计算电费及确定用电单位的最高需量,对降低发电成本和计划用电有重要意义。
智能电表结算包含三种方式:同步结算、异步结算、补结算。其中同步结算是按照约定的时刻及时间间隔产生结算;异步结算是通过按键或者通讯命令实现立即结算,结算时间为命令或者按键动作的时间;补结算是在掉电、校时、夏令时变化等事件发生时跨一个或多个同步结算周期时需进行。
目前智能电表结算方法存在以下技术问题:针对补结算,只考虑掉电、校时、夏令时单独发生时对补结算的影响,而未考虑组合情况发生时对补结算的影响,从而使得补结算结果不够准确。
技术实现要素:
本发明要解决的技术问题是:提供一种可在掉电期间进入或退出夏令时的组合情况发生时仍能获取可靠准确的补结算结果的智能电表结算方法。
本发明的技术解决方案是:一种智能电表结算方法,其特征在于:它包括以下步骤:
(1)由电表自动判断是否发生掉电;
若是,则进入步骤(2);
若否,则返回步骤(1)继续判断;
(2)判断掉电期间是否跨一个或多个同步结算周期;
若否,则不进行补结算,并返回步骤(1);
若是,则进入步骤(3);
(3)判断掉电期间是否进入或退出夏令时;
若掉电期间进入夏令时,则进入步骤(4);
若掉电期间退出夏令时,则进入步骤(5);
若掉电期间既未进入也未退出夏令时,则进入步骤(6);
(4)判断掉电期间内首个同步结算点的时间与夏令时进入时间的关系;
若该首个同步结算点的时间在夏令时进入时间之前,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
若该首个同步结算点的时间恰好等于夏令时进入时间,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间向后延迟n个小时,且该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
若该首个同步结算点的时间在夏令时进入时间之后,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
(5)判断掉电期间内首个同步结算点的时间与夏令时退出时间的关系;
若该首个同步结算点的时间在夏令时退出时间之前,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
若该首个同步结算点的时间恰好等于夏令时退出时间,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间向前提早n个小时,且该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
若该首个同步结算点的时间在夏令时退出时间之后,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
(6)对掉电期间内首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识与最近一次完成的同步结算的夏令时标识相同,然后返回步骤(1)。
采用上述方法后,本发明具有以下优点:
本发明智能电表结算方法在电表掉电期间,不仅考虑到单独掉电对补结算的影响,还考虑到了掉电期间进入夏令时以及掉电期间退出夏令时这些组合情况发生时对补结算的影响,并针对三种不同的情况给出不同的解决方案,方案较为全面,从而能在掉电期间进入或退出夏令时的组合情况发生时仍能获取可靠准确的补结算结果。
作为优选,所述步骤(1)中还由电表自动判断是否发生时间回调,若既未发生掉电也未发生时间回调,才返回步骤(1)继续判断,若发生时间回调,还需进行以下步骤:
(7)判断时间回调期间是否跨一个或多个同步结算周期,
若否,则不进行补结算,并返回步骤(1),
若是,则判断时间回调期间是否进入夏令时或退出夏令时,
若进入夏令时,则进入步骤(8),
若退出夏令时,则进入步骤(9);
若既未进入夏令时也未退出夏令时,则进入步骤(10);
(8)判断时间回调时刻是否恰好等于夏令时进入时间,
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
若是,则判断时间回调时刻之前未结算部分所在的同步结算周期的同步结算点的时间是否恰好等于时间回调时刻,
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
若是,则判断在时间回调时刻是否已完成相应的同步结算,
若是,则返回步骤(1);
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为时间回调时刻向后延时n个小时,该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
(9)判断时间回调时刻是否恰好等于夏令时退出时间,
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
若是,则判断时间回调时刻之前未结算部分所在的同步结算周期的同步结算点的时间是否恰好等于时间回调时刻,
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
若是,则判断在时间回调时刻是否已完成相应的同步结算,
若是,则返回步骤(1);
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为时间回调时刻向前提早n个小时,该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
(10)对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,且该补结算时间对应的夏令时标识与最近一次完成的同步结算的夏令时标识相同,然后返回步骤(1)。
以上设置不仅考虑到时间回调对补结算的影响,还考虑到了时间回调期间进入夏令时或退出夏令时这些组合情况发生时对补结算的影响,并针对三种不同的情况给出不同的解决方案,方案较为全面,从而能在时间回调期间进入或退出夏令时的组合情况发生时仍能获取可靠准确的补结算结果。
作为优选,所述步骤(1)中还由电表自动判断是否接收到异步结算触发指令,若既未发生掉电也未接收到异步结算触发指令,才返回步骤(1)继续判断,若接收到异步结算触发指令,还需进行以下步骤:判断本次异步结算触发时间与上次异步结算触发时间之差是否超过电表预设的异步结算闭锁时间,若是,则进行本次异步结算,然后返回步骤(1),若否,则忽略本次异步结算,直接返回步骤(1)。该设置可防止重复进行异步结算。
附图说明:
图1为掉电期间进入夏令时的示意图1;
图2为掉电期间进入夏令时的示意图2;
图3为掉电期间退出夏令时的示意图1;
图4为掉电期间退出夏令时的示意图2;
图5为时间回调期间进入夏令时的示意图1;
图6为时间回调期间进入夏令时的示意图2;
图7为时间回调期间退出夏令时的示意图1;
图8为时间回调期间退出夏令时的示意图2;
具体实施方式
下面结合附图,并结合实施例对本发明做进一步的说明。
实施例:
一种智能电表结算方法,它包括以下步骤:
(1)由电表自动判断是否发生掉电、或者时间回调、或者接收到异步结算触发指令;
若发生掉电,则进入步骤(2);
若发生时间回调,则进入步骤(7);
若接收到异步结算触发指令,则进入步骤(11);
若以上三种情况均未发生,则返回步骤(1)继续判断;
(2)判断掉电期间是否跨一个或多个同步结算周期;
若否,则不进行补结算,并返回步骤(1);
若是,则进入步骤(3)
(3)判断掉电期间是否进入或退出夏令时;
若掉电期间进入夏令时,则进入步骤(4);
若掉电期间退出夏令时,则进入步骤(5);
若掉电期间既未进入也未退出夏令时,则进入步骤(6);
(4)判断掉电期间内首个同步结算点的时间与夏令时进入时间的关系;
若该首个同步结算点的时间在夏令时进入时间之前,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
若该首个同步结算点的时间恰好等于夏令时进入时间,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间向后延迟n个小时,n可根据实际情况进行设置,且该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
若该首个同步结算点的时间在夏令时进入时间之后,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
比如各同步结算点的时间为每月1日02:00:00,夏令时进入时间为3月1日02:00:00,夏令时调整时间为60min;掉电时间:2015年3月1日01:00:00,上电时间:2015年3月1日04:00:00;
由图1可知掉电期间进入夏令时,掉电期间内首个同步结算点对应的时间是2015年3月1日02:00:00,由于此刻正好进入夏令时,因此时间要调整到2015年3月1日03:00:00,因此对掉电期间内首个同步结算点,即对2015年3月1日03:00:00这个补结算时间对应的同步结算点进行一次补结算,该补结算时间对应的夏令时标识为夏令时,如图2所示,图中方括号内的1代表夏令时,0代表非夏令时;
(5)判断掉电期间内首个同步结算点的时间与夏令时退出时间的关系;
若该首个同步结算点的时间在夏令时退出时间之前,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
若该首个同步结算点的时间恰好等于夏令时退出时间,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间向前提早n个小时,且该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
若该首个同步结算点的时间在夏令时退出时间之后,则对掉电期间内该首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
比如各同步结算点的时间为每月1日02:00:00,夏令时退出时间为10月1日3点00分00秒,夏令时调整时间为60min;掉电时间:2015年10月1日01:00:00,上电时间:2015年10月1日04:00:00;由图3可知掉电期间退出夏令时,掉电期间内首个同步结算点对应的时间是2015年10月1日02:00:00,因此对2015年10月1日02:00:00这个补结算时间对应的同步结算点进行一次补结算,该补结算时间在夏令时退出时间之前,其对应的夏令时标识为夏令时,在2015年10月1日03:00:00时退出夏令时,时间调整为2015年10月1日02:00:00,调整后虽然满足同步结算条件,但是之前已对2015年10月1日02:00:00所对应的同步结算点进行过一次补结算,因此不再进行补结算,此后2015年11月1日02:00:00对应的夏令时标识已变为非夏令时,如图4所示,图中方括号内的1代表夏令时,0代表非夏令时。
(6)对掉电期间内首个同步结算点进行一次补结算,对应的补结算时间为该首个同步结算点的时间,且该补结算时间对应的夏令时标识与最近一次完成的同步结算的夏令时标识相同,然后返回步骤(1);
(7)判断时间回调期间是否跨一个或多个同步结算周期,
若否,则不进行补结算,并返回步骤(1),
若是,则判断时间回调期间是否进入夏令时或退出夏令时,
若进入夏令时,则进入步骤(8),
若退出夏令时,则进入步骤(9);
若既未进入夏令时也未退出夏令时,则进入步骤(10);
(8)判断时间回调时刻是否恰好等于夏令时进入时间,时间回调时刻是指在调整到新的时间之前的那个时刻,还是旧的时间,
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
若是,则判断时间回调时刻之前未结算部分所在的同步结算周期的同步结算点的时间是否恰好等于时间回调时刻,
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
若是,则判断在时间回调时刻是否已完成相应的同步结算,
若是,则返回步骤(1);
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为时间回调时刻向后延时n个小时,该补结算时间对应的夏令时标识为夏令时,然后返回步骤(1);
比如各同步结算点的时间为每月1日02:00:00,在2015年3月1日4:00:00进行时间回调,将时间调整到2015年3月1日1:00:00,夏令时进入时间为3月1日02:00:00;由图5可知,在2015年3月1日2:00:00时进行一次同步结算,由于此时正好进入夏令时,因此同步结算时间变为2015年3月1日3:00:00,对应的夏令时标识为夏令时,在2015年3月1日4:00:00进行时间回调,对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为2015年4月1日2:00:00,由于回调时间2015年3月1日4:00:00在夏令时进入之后,因此2015年4月1日2:00:00这个补结算时间对应的夏令时标识为夏令时,之后时间回调到2015年3月1日1:00:00之后,又再次经过2015年3月1日2:00:00和2015年4月1日2:00:00这两个同步结算点,因此又再对这两个同步结算点各进行一次同步结算,如图6所示;
(9)判断时间回调时刻是否恰好等于夏令时退出时间,
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
若是,则判断时间回调时刻之前未结算部分所在的同步结算周期的同步结算点的时间是否恰好等于时间回调时刻,
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
若是,则判断在时间回调时刻是否已完成相应的同步结算,
若是,则返回步骤(1);
若否,则对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为时间回调时刻向前提早n个小时,该补结算时间对应的夏令时标识为非夏令时,然后返回步骤(1);
比如各同步结算点的时间为每月1日02:00:00,在2015年10月1日4:00:00进行时间回调,将时间调整到2015年10月1日1:00:00,夏令时退出时间为2015年10月1日03:00:00;由图7所示,在2015年10月1日2:00:00时进行一次同步结算,对应的夏令时标识为夏令时,在2015年10月1日4:00:00进行时间回调,对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为2015年11月1日2:00:00,由于回调时间2015年10月1日4:00:00在夏令时退出之后,因此2015年11月1日2:00:00这个补结算时间对应的夏令时标识为非夏令时,之后时间回调到2015年10月1日1:00:00之后,又再次经过2015年10月1日2:00:00和2015年11月1日2:00:00这两个同步结算点,因此又再对这两个同步结算点各进行一次同步结算,如图8所示。
(10)对时间回调时刻之前未结算部分进行一次补结算,对应的补结算时间为该未结算部分所在的同步结算周期的同步结算点的时间,且该补结算时间对应的夏令时标识与最近一次完成的同步结算的夏令时标识相同,然后返回步骤(1);
(11)判断本次异步结算触发时间与上次异步结算触发时间之差是否超过电表预设的异步结算闭锁时间,
若是,则进行本次异步结算,然后返回步骤(1),比如异步结算闭锁时间为30min,在2015年2月15日12:34:56接收到异步结算触发指令,然后在2015年3月20日11:22:33再次接收到异步结算触发指令,由于本次异步结算触发时间与上次异步结算触发时间之差超过电表预设的异步结算闭锁时间30min,因此本次异步结算有效,进行本次异步结算;
若否,则忽略本次异步结算,直接返回步骤(1),比如异步结算闭锁时间为30min,在2015年3月20日11:22:33接收到异步结算触发指令,然后在2015年3月20日11:30:00又再次接收到异步结算触发指令,由于本次异步结算触发时间与上次异步结算触发时间之差未超过电表预设的异步结算闭锁时间30min,因此本次异步结算无效,不进行本次异步结算。