CN111964756B - 一种低功耗同时提高水表脉冲计量准确性的方法 - Google Patents
一种低功耗同时提高水表脉冲计量准确性的方法 Download PDFInfo
- Publication number
- CN111964756B CN111964756B CN202010714540.1A CN202010714540A CN111964756B CN 111964756 B CN111964756 B CN 111964756B CN 202010714540 A CN202010714540 A CN 202010714540A CN 111964756 B CN111964756 B CN 111964756B
- Authority
- CN
- China
- Prior art keywords
- pulse
- path
- stportinfo
- current
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000000630 rising effect Effects 0.000 claims abstract description 34
- 230000007958 sleep Effects 0.000 claims abstract description 11
- 238000005070 sampling Methods 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 3
- 241001284556 Ucla Species 0.000 claims 1
- 238000012423 maintenance Methods 0.000 abstract description 7
- 230000000737 periodic effect Effects 0.000 description 12
- 238000005259 measurement Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000009532 heart rate measurement Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 230000003203 everyday effect Effects 0.000 description 4
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006698 induction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01F—MEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
- G01F25/00—Testing or calibration of apparatus for measuring volume, volume flow or liquid level or for metering by volume
- G01F25/10—Testing or calibration of apparatus for measuring volume, volume flow or liquid level or for metering by volume of flowmeters
Landscapes
- Physics & Mathematics (AREA)
- Fluid Mechanics (AREA)
- General Physics & Mathematics (AREA)
- Measuring Volume Flow (AREA)
Abstract
本发明属于用水信息计量采集技术领域,公开了一种低功耗同时提高水表脉冲计量准确性的方法,通过定义脉冲计量相关的结构体变量;配置脉冲信号采集设备的主控芯片的IO中断模式及系统休眠状态下的唤醒模式等参数;脉冲信号电平状态的判断,判断当前是产生的上升沿还是下降沿;单脉冲有效性判断,通过计算上升沿和下降沿的时间差绝对值,计算出低电平的持续时间;通过将A/B两路脉冲信号实际产生的时序和理论时序进行比对,若二者一致,则认定本次脉冲信号为有效脉冲进行计量,否则认定为干扰信号,进行丢弃;系统立刻进入休眠状态。本发明降低了系统的功耗,同时提高了计量的准确性,降低了工程维护的费用,进而达到节省运维成本的目的。
Description
技术领域
本发明属于用水信息计量采集技术领域,尤其涉及一种低功耗同时提高水表脉冲计量准确性的方法。
背景技术
目前:在用水信息计量采集领域,由于脉冲式水表存在改造方便、成本低的优点,在市场中还占有一定的比例。在行业内,对于这种脉冲式水表,表壳上按照一定的位置安装磁敏传感器,水表转针具有磁性,因此当转针经过对应位置传感器时,会产生脉冲信号,为了保证脉冲信号产生的可靠性与精度,一般都安装两路传感器,在用水过程中,两路脉冲信号会交替产生。
对于这种脉冲式水表的脉冲计量,一般都是采用“脉冲式水表+脉冲信号采集设备”相结合的方案,而且,为了便于现场设备安装,脉冲信号采集设备一般都是采用电池供电,为了延长电池的使用寿命,脉冲采集设备中均采用了功耗管理策略,即,脉冲采集设备在无需计量时处于休眠状态,需要计量时重新唤醒系统,进行计量,计量完成后立刻进入休眠状态。
在脉冲信号采集设备进行脉冲计量时,需要周期性轮询脉冲水表的两路脉冲的信号状态,当检测到水表的脉冲信号发生状态跳变时进行数据计量。但此种方法存在抗干扰能力差,功耗消耗高的缺点。一般脉冲式水表的脉冲信号都是通过磁场感应进行产生,由于现场的工作环境都比较恶劣,不可避免的会产生磁场干扰,形成干扰脉冲,造成脉冲采集设备误计量或者漏计量。而且由于采用周期性轮询,无论水表是否产生脉冲信号,脉冲信号采集设备均需要进行周期性的查询,增加了设备的功耗。
为了避免这种计量不准确的情况出现,现场用水信息采集运维人员,需要定期对各水表的实际用水信息进行逐个复核,对于复核后脉冲采集不准确的采集设备,需要根据水表显示的实际用水量重新修正采集设备所采集的用水量,以提高计量的准确性。因此,人工复核的方法虽然可以提高脉冲采集的准确性,但是同时也带来了大量的人工投入,提高了后期运维的成本。
在功耗消耗高的情况下,为了使脉冲信号采集设备的电池使用年限能达到规定值,需要增加电池的容量,进而提高了脉冲采集设备的成本,造成了资源的浪费。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有的脉冲计量方法存在抗干扰能力差,功耗消耗高的缺点。
(2)人工复核的方法带来了大量的人工投入,提高了后期运维的成本。
解决以上问题及缺陷的难度为:
一般脉冲式水表的脉冲信号都是通过磁场感应进行产生,由于现场的工作环境都比较恶劣,不可避免的会产生磁场干扰,形成干扰脉冲,造成脉冲采集设备误计量或者漏计量。而且由于采用周期性轮询,无论水表是否产生脉冲信号,脉冲信号采集设备均需要进行周期性的查询,增加了设备的功耗。
解决以上问题及缺陷的意义为:
降低了设备功耗,延长了设备的使用寿命,减少了设备报废产生的材料浪费,节约了社会成本。
通过提高计量精度,减少了人工复核的频率,进而降低了工程维护成本,提高了社会效益。
发明内容
针对现有技术存在的问题,本发明提供了一种低功耗同时提高水表脉冲计量准确性的方法。
本发明是这样实现的,一种低功耗同时提高水表脉冲计量准确性的方法具体包括:
步骤一、设定脉冲信号采集设备内的两路脉冲信号计量接口为A路脉冲接口和B路脉冲接口,分别对应脉冲式水表的两路脉冲信号接口,定义脉冲计量相关的结构体变量;
步骤二、配置脉冲信号采集设备的主控芯片的IO中断模式及系统休眠状态下的唤醒模式参数;
步骤三、脉冲信号电平状态的判断,判断当前是产生的上升沿还是下降沿,若产生沿信号则进入步骤四,否则进入步骤六;
步骤四、单脉冲有效性判断,通过计算上升沿和下降沿的时间差绝对值,计算出低电平的持续时间,若持续时间小于最小限值,认定为干扰信号,进行丢弃,进入步骤六;若时间值超过最小限值且为上升沿,则进入步骤五,否则进入步骤六;
步骤五、脉冲交替有序性判断,通过将A/B两路脉冲信号实际产生的时序和理论时序进行比对,若二者一致,则认定本次脉冲信号为有效脉冲进行计量,否则认定为干扰信号,进行丢弃;
步骤六、本次唤醒后脉冲统计完成,系统立刻进入休眠状态。
进一步,步骤二中,当脉冲信号采集设备起始运行时,首先,在主控芯片内配置A/B两路脉冲的IO接口为外部中断模式,且中断触发条件为上升沿和下降沿均可触发;其次,配置主控芯片在进入休眠状态后,可通过A/B两路脉冲接口的IO外部中断事件唤醒系统,退出休眠状态。
进一步,步骤三中,所述脉冲信号电平状态的判断为当主控芯片由脉冲信号的中断事件唤醒后,查询A路/B路脉冲的电平状态,具体过程如下:
S1,通过查询系统中断源,确定是A路还是B路脉冲产生了信号中断,若是A路或者B路,则进入步骤S2,否则,认为异常,直接进入步骤六;
S2,创建含有N个元素数组PortArry[N],定义0代表低电平,1代表高电平,N的取值范围为大于2小于16,然后进入步骤S3;
S3,依据步骤S1,对产生中断的A路脉冲或者B路脉冲,以固定的采样间隔T进行读取采样,T的取值范围最小值大于0毫秒小于100毫秒,连续读取N个A路脉冲或者B路脉冲接口的电平状态,若脉冲信号为高,则用1表示,为低则用0表示,依次放入数组PortArry中,N个值读取完毕后,进入S4,否则继续读取,直至读取完毕;
S4,在数组PortArry的N个数据值中,依次提取数组下标为N/2–1、N/2、N/2+1的三个数值,即PortArry[N/2–1]、PortArry[N/2]和PortArry[N/2+1]的三个数据值,然后对这三个数据值进行比对;
S5,获取A路/B路脉冲上一次电平状态,即stPortAInfo.ucLastPortPlus或者stPortBInfo.ucLastPortPlus的值,和当前值stPortAInfo.ucCurPortPlus或者stPortBInfo.ucCurPortPlus,进行比较;
S6,依据S5,若当前产生了下降沿,首先把stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes的值,赋值给stPortAInfo.udwLastDownTimes或者stPortBInfo.udwLastDownTimes,然后把脉冲信号采集设备的当前时间赋值给stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes;同理,若产生了上升沿,则把stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes的值,赋值给stPortAInfo.udwLastUpTimes或者stPortBInfo.udwLastUpTimes,然后把脉冲信号采集设备的当前时间赋值给stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes,然后进入步骤四。
进一步,S4中,对数据值进行比对时,采取少数服从多数的原则,若1的个数大于0的个数,则认定当前脉冲信号为1,反之认定当前脉冲信号为0,把当前电平状态1或者0赋值给stPortAInfo.ucCurPortPlus或者stPortBInfo.ucCurPortPlus,然后进入S5。
进一步,S5中,将上一次电平状态和当前值进行比较时,若上一次电平状态为1,当前电平状态为0,则认定当前产生下降沿,反之,若上一次电平状态为0,当前电平状态为1,则认定产生上升沿,然后进入S6,若上一次电平状态与当前电平状态为一致,则直接进入步骤六。
进一步,步骤四中,进行单脉冲有效性判断时,具体过程如下:
S11,获取当前脉冲的下降沿和上升沿的发生时间,即,stPortAInfo.udwCurDownTimes/stPortBInfo.udwCurDownTimes的值和stPortAInfo.udwCurUpTimes/stPortBInfo.udwCurUpTimes的值,然后进入步骤S12;
S12,计算上升沿和下降沿之间的时间差t1,即,
t1=stPortAInfo.udwCurUpTimes/stPortBInfo.udwCurUpTimes-stPortAInfo.udwCurDownTimes/stPortBInfo.udwCurDownTimes,然后进入步骤S13;
S13,判断t1的绝对值是否大于脉冲的最小持续时间VldMinTime,VldMinTime的取值需要依据具体脉冲是水表的口径、流速、传感器位置等因素进行确定,若大于,则认定当前单个脉冲有效,若当前为下降沿,则直接进入步骤六;若当前为上升沿,然后进入步骤五;若不大于,则认定当前脉冲持续时间过短,为无效脉冲,进入步骤S14。
S14,把stPortAInfo.udwLastDownTimes或者stPortBInfo.udwLastDownTimes,重新赋值给stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes;把stPortAInfo.udwLastUpTimes或者stPortBInfo.udwLastUpTimes,重新赋值给stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes,然后进入步骤六。
进一步,步骤五中,对脉冲交替有序性判断时,具体包括如下步骤:
S21,通过查询系统中断源,确定是A路还是B路脉冲产生了信号中断,即当前产生脉冲信号的实际值是哪路,然后进入S22;
S22,分别获取A路和B路脉冲的累计个数,即stPortAInfo.udwPlusSum和stPortBInfo.udwPlusSum的值,并进行比对;
S23,由步骤S22确定当前产生的有效脉冲是A路或者B路,并推算出上一次的脉冲产生有效脉冲应当是B路或者A路,然后获取当前脉冲的下降沿发生时间stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes以及上一路脉冲的上升沿发生时间stPortBInfo.udwCurUpTimes或者stPortAInfo.udwCurUpTimes,并计算二者之间的差值t2,若当前为A路,则
t2=stPortAInfo.udwCurDownTimes-stPortBInfo.udwCurUpTimes
同理,若当前为B路,则
t2=stPortBInfo.udwCurDownTimes-stPortAInfo.udwCurUpTimes
然后进入步骤S24;
S24,判断t2的值是否大于两路脉冲交替出现时的最小间隔时间VldMinTimeFrAB,VldMinTimeFrAB的取值需要依据具体脉冲是水表的口径、流速、传感器位置等因素进行确定,若大于,则认定当前A路或者B路脉冲为有效脉冲,其对应的脉冲个数统计值stPortAInfo.udwPlusSum/stPortBInfo.udwPlusSum进行加一操作,且该脉冲式水表的总的脉冲计量个数为stPortAInfo.udwPlusSum和stPortBInfo.udwPlusSum的总和;若不大于,则认定当前A路或者B路脉冲为为无效的干扰脉冲。
进一步,步骤S22中,若stPortAInfo.udwPlusSum小于stPortBInfo.udwPlusSum,则理论期望的当前脉冲应由A路产生,然后再与步骤S21确定的当前实际产生脉冲的路数进行比对,若当前实际产生路数为B路,则实际值与理论值不一致,认定当前实际值为干扰脉冲信号,若一致,则认定当前实际值有效,进入步骤S23;同理,若stPortBInfo.udwPlusSum小于stPortAInfo.udwPlusSum,则理论期望的当前产生脉冲应由B路产生,然后再与步骤S21确定的当前实际产生脉冲的路数进行比对,若当前实际产生路数为A路,则实际值与理论值不一致,认定当前实际值为干扰脉冲信号,若一致,则认定当前实际值有效,进入步骤S23;若stPortBInfo.udwPlusSum和stPortAInfo.udwPlusSum相等,则直接认定步骤S21确定的实际脉冲路数与理论期望值一致,直接进入步骤S23。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:
对于脉冲采集设备,本发明在降低系统功耗和提高计量准确性方面与传统的周期查询模式相比,有较大的改进。
在功耗方面,传统的计量方式采用的是周期查询的模式,不论脉冲式水表是否产生了脉冲信号,脉冲采集设备的主控芯片均要定期的苏醒,进行脉冲的状态查询,以确定是否有脉冲产生,当脉冲式水表长期无脉冲产生时(对于普通家庭用户,一般只在某个时段内会集中用水,其它时间段内用水量很少或者不用),主控芯片为不丢失计量数据,需要按照最大流量来定期唤醒进行查询,此时查询均是无效的,无形中增加了系统的能量功耗。而采用中断唤醒模式,当脉冲式水表长期无脉冲产生时,就不会产生中断信号,此时主控芯片会一直处于休眠状态,而只有当产生用水时,脉冲式水表产生脉冲信号,此刻主控芯片才会被中断信号唤醒,由休眠状态进入工作状态,而且由于本发明的抗干扰策略,当发生干扰脉冲时,系统可以快速过滤并进入到休眠状态。减少了在无脉冲信号及干扰信号产生的时间内的能量消耗,达到节能的目的。
以20口径水表为例,在百L位设置有两个传感器,传感器高低电平占比为7:3。国标规定,20口径水表最大流速为5m3/h,因此一个计数周期最短为3600/50=72秒,低电平持续时间最短为72*0.3=21.6秒,查询周期不能小于21.6秒。
假设周期唤醒后,处理时间为500毫秒,本发明正常数据唤醒后处理时间也为500毫秒,干扰唤醒后处理时间为5毫秒(判断为干扰后,立即休眠不执行后续操作),某用户每天用水10m3,并且产生了100次干扰。采用周期唤醒时,需要被唤醒3600*24/21.6=3500次,工作时间为3500*500ms=1750s;采用本发明策略时,每天被正常传感器状态唤醒10*20*2=400次,异常唤醒100*2=200次,其工作时间为:400*500ms+200*5ms=201s,其功耗仅为周期唤醒方案的11%,大大降低了功耗。
在提高计量准确性方面,通过单个脉冲有效性判断和脉冲交替有序性判断两种策略,对工程现场中容易出现的“短脉冲”和“无序脉冲”等干扰脉冲信号进行剔除,大大提高了计量的准确性,降低了工程维护的费用。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的低功耗同时提高水表脉冲计量准确性的方法流程图。
图2是本发明实施例提供的脉冲式水表产生的脉冲示意图。
图3是本发明实施例提供的低功耗同时提高水表脉冲计量准确性的方法工作流程原理图。
图4是本发明实施例提供的单脉冲示意图。
图5是本发明实施例提供的无序脉冲示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种低功耗同时提高水表脉冲计量准确性的方法,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的低功耗同时提高水表脉冲计量准确性的方法具体包括:
S101、设定脉冲信号采集设备内的两路脉冲信号计量接口为A路脉冲接口和B路脉冲接口,分别对应脉冲式水表的两路脉冲信号接口,定义脉冲计量相关的结构体变量。
S102、配置脉冲信号采集设备的主控芯片的IO中断模式及系统休眠状态下的唤醒模式参数。
S103、脉冲信号电平状态的判断,判断当前是产生的上升沿还是下降沿,若产生沿信号则进入步骤S104,否则进入步骤S106。
S104、单脉冲有效性判断,通过计算上升沿和下降沿的时间差绝对值,计算出低电平的持续时间,若持续时间小于最小限值,认定为干扰信号,进行丢弃,进入步骤S106;若时间值超过最小限值且为上升沿,则进入步骤S105,否则进入步骤S106。
S105、脉冲交替有序性判断,通过将A/B两路脉冲信号实际产生的时序和理论时序进行比对,若二者一致,则认定本次脉冲信号为有效脉冲进行计量,否则认定为干扰信号,进行丢弃。
S106、本次唤醒后脉冲统计完成,系统立刻进入休眠状态。
下面结合具体实施例对本发明进一步说明。
本发明实施例在休眠唤醒方面,采用脉冲中断唤醒模式,在脉冲计量方面,通过增加脉冲信号的有效性判断策略,剔除无效的干扰脉冲,提高计量的准确性。图2是脉冲式水表的脉冲信号产生的示意图,其中A、B分别代表水表的两路脉冲信号,当“0”时表示产生计量信号。图3是本发明实施例提供的的工作流程原理图,具体步骤如下:
步骤1、首先,设定脉冲信号采集设备内的两路脉冲信号计量接口为A路脉冲接口和B路脉冲接口,分别对应脉冲式水表的两路脉冲信号接口;其次,定义一个结构体,结构体成员包括:
其中,
udwLastDownTimes,表示上一次脉冲信号下降沿发生时间,单位为秒;
udwLastUpTimes,表示上一次脉冲信号上升沿发生时间,单位为秒;
udwCurDownTimes,表示当前脉冲信号下降沿发生时间,单位为秒;
udwCurUpTimes,表示当前脉冲信号上升沿发生时间,单位为秒;
udwPlusSum,表示脉冲产生的总次数;
ucCurPortPlus,表示当前电平状态;
ucLastPortPlus,表示上一次电平状态;
然后,利用构体ST_PORT_PLUS_INFO定义两个变量:stPortAInfo和stPortBInfo,分别用来记录A路脉冲和B路脉冲的相关信息。
步骤2、当脉冲信号采集设备起始运行时,首先,在主控芯片内配置A/B两路脉冲的IO接口为外部中断模式,且中断触发条件为上升沿和下降沿均可触发;其次,配置主控芯片在进入休眠状态后,可通过A/B两路脉冲接口的IO外部中断事件唤醒系统,退出休眠状态。
步骤3、脉冲信号电平状态的判断。当主控芯片由脉冲信号的中断事件唤醒后,查询A路/B路脉冲的电平状态,具体过程如下:
步骤3-1,通过查询系统中断源,确定是A路还是B路脉冲产生了信号中断。若是A路或者B路,则进入步骤3-2,否则,认为异常,直接进入步骤6。
步骤3-2,创建含有N个元素数组PortArry[N],定义0代表低电平,1代表高电平,N的取值范围为大于2小于16,然后进入步骤3-3。
步骤3-3,依据步骤3-1,对产生中断的A路脉冲或者B路脉冲,以固定的采样间隔T,T的取值范围最小值大于0毫秒小于100毫秒,连续读取N个A路脉冲或者B路脉冲接口的电平状态,若脉冲信号为“高”则用“1”表示,“低”用“0”表示,依次放入数组PortArry中,N个值读取完毕后,进入步骤3-4,否则继续读取,直至读取完毕。
步骤3-4,在数组PortArry的N个数据值中,依次提取数组下标为N/2–1、N/2、N/2+1的三个数值,即,PortArry[N/2–1]、PortArry[N/2]和PortArry[N/2+1]的三个数据值,然后对这三个数据值进行比对,采取少数服从多数的原则,若“1”的个数大于“0”的个数,则认定当前脉冲信号为“1”,反之认定当前脉冲信号为“0”,具体如下表所示:
PortArry[N/2–1] | PortArry[N/2] | PortArry[N/2+1] | 当前实际电平 |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 0 | 1 | 1 |
0 | 1 | 1 | 1 |
把当前电平状态“1”或者“0”赋值给stPortAInfo.ucCurPortPlus或者stPortBInfo.ucCurPortPlus,然后进入步骤3-5。
步骤3-5,获取A路/B路脉冲上一次电平状态,即,stPortAInfo.ucLastPortPlus或者stPortBInfo.ucLastPortPlus的值,和当前值stPortAInfo.ucCurPortPlus或者stPortBInfo.ucCurPortPlus,进行比较,若上一次电平状态为“1”,当前电平状态为“0”,则认定当前产生下降沿,反之,若上一次电平状态为“0”,当前电平状态为“1”,则认定产生上升沿,然后进入步骤3-6。若上一次电平状态与当前电平状态为一致,则直接进入步骤6。
步骤3-6,依据步骤3-5,若当前产生了下降沿,首先把stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes的值,赋值给stPortAInfo.udwLastDownTimes或者stPortBInfo.udwLastDownTimes,然后把脉冲信号采集设备的当前时间赋值给stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes,然后进入步骤6。同理,若产生了上升沿,则把stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes的值,赋值给stPortAInfo.udwLastUpTimes或者stPortBInfo.udwLastUpTimes,然后把脉冲信号采集设备的当前时间赋值给stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes,然后进入步骤4。
步骤4、单个脉冲有效性判断。依据步骤3-5确定的当前电平状态,进行单脉冲有效性判断,具体过程如下:
步骤4-1,获取当前脉冲的下降沿和上升沿的发生时间,即,stPortAInfo.udwCurDownTimes/stPortBInfo.udwCurDownTimes的值和stPortAInfo.udwCurUpTimes/stPortBInfo.udwCurUpTimes的值,然后进入步骤4-2。
步骤4-2,计算上升沿和下降沿之间的时间差t1,即,
t1=stPortAInfo.udwCurUpTimes/stPortBInfo.udwCurUpTimes-stPortAInfo.udwCurDownTimes/stPortBInfo.udwCurDownTimes,然后进入步骤4-3。
步骤4-3,判断t1的绝对值是否大于脉冲的最小持续时间VldMinTime,VldMinTime的取值需要依据具体脉冲是水表的口径、流速、传感器位置等因素进行确定,一般为大于20秒。若大于,则认定当前单个脉冲有效,若当前为下降沿,则直接进入步骤6;若当前为上升沿,然后进入步骤5;若不大于,则认定当前脉冲持续时间过短,为无效脉冲,进入步骤4-4。
步骤4-4,把stPortAInfo.udwLastDownTimes或者stPortBInfo.udwLastDownTimes,重新赋值给stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes;把stPortAInfo.udwLastUpTimes或者stPortBInfo.udwLastUpTimes,重新赋值给stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes,然后进入步骤6。
步骤5、脉冲交替有序性判断。依据脉冲式水表的工作原理可知,两路脉冲应当是交替产生。基于以上原则,脉冲信号采集设备对A/B两路脉冲的发生时序进行有效性判断,进一步剔除干扰脉冲,具体判断过程如下:
步骤5-1,由步骤3-1确定当前是由A/B两路脉冲中的哪路脉冲产生了脉冲中断,即,当前产生脉冲信号的实际值是哪路,然后进入步骤5-2。
步骤5-2,分别获取A路和B路脉冲的累计个数,即,stPortAInfo.udwPlusSum和stPortBInfo.udwPlusSum的值,并进行比对。若stPortAInfo.udwPlusSum<stPortBInfo.udwPlusSum,则理论期望的当前脉冲应由A路产生,然后在与步骤5-1确定的当前实际产生脉冲的路数进行比对,若当前实际产生路数为B路,则实际值与理论值不一致,认定当前实际值为干扰脉冲信号,进行丢弃,然后进入步骤6。若一致,则认定当前实际值有效,进入步骤5-3;同理,若stPortBInfo.udwPlusSum<stPortAInfo.udwPlusSum,则理论期望的当前产生脉冲应由B路产生,然后在与步骤5-1确定的当前实际产生脉冲的路数进行比对,若当前实际产生路数为A路,则实际值与理论值不一致,认定当前实际值为干扰脉冲信号,进行丢弃,然后进入步骤6。若一致,则认定当前实际值有效,进入步骤5-3;若stPortBInfo.udwPlusSum和stPortAInfo.udwPlusSum相等,则直接认定步骤5-1确定的实际脉冲路数与理论期望值一致,直接进入步骤5-3。
步骤5-3,由步骤5-2确定当前产生的有效脉冲是A路或者B路,并推算出上一次的脉冲产生有效脉冲应当是B路或者A路(当前是A路则上一次一定是B路,反之,当前是B路则上一次为A路),然后获取当前脉冲的下降沿发生时间stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes以及上一路脉冲的上升沿发生时间stPortBInfo.udwCurUpTimes或者stPortAInfo.udwCurUpTimes,并计算二者之间的差值t2,若当前为A路则,
t2=stPortAInfo.udwCurDownTimes-stPortBInfo.udwCurUpTimes
同理,若当前为B路,则,
t2=stPortBInfo.udwCurDownTimes-stPortAInfo.udwCurUpTimes
然后进入步骤5-4。
步骤5-4,判断t2的值是否大于两路脉冲交替出现时的最小间隔时间VldMinTimeFrAB,VldMinTimeFrAB的取值需要依据具体脉冲是水表的口径、流速、传感器位置等因素进行确定,一般为大于10秒。。若大于,则认定当前A路或者B路脉冲为有效脉冲,其对应的脉冲个数统计值stPortAInfo.udwPlusSum/stPortBInfo.udwPlusSum进行加一操作,且该脉冲式水表的总的脉冲计量个数为stPortAInfo.udwPlusSum和stPortBInfo.udwPlusSum的总和;若不大于,则认定当前A路或者B路脉冲为为无效的干扰脉冲,需要剔除;然后进入步骤6。
步骤6,本次唤醒后脉冲统计完成,系统立刻进入休眠状态。
下面结合实验对本发明的技术效果作详细的描述。
以20口径水表为例,在百L位设置有两个传感器,传感器高低电平占比为7:3。国标规定,20口径水表最大流速为5m3/h,因此一个计数周期最短为3600/50=72秒,低电平持续时间最短为72*0.3=21.6秒,查询周期不能小于21.6秒。
假设周期唤醒后,处理时间为500毫秒,本发明正常数据唤醒后处理时间也为500毫秒,干扰唤醒后处理时间为5毫秒(判断为干扰后,立即休眠不执行后续操作),某用户每天用水10m3,并且产生了100次干扰。采用周期唤醒时,需要被唤醒3600*24/21.6=3500次,工作时间为3500*500ms=1750s;采用本发明策略时,每天被正常传感器状态唤醒10*20*2=400次,异常唤醒100*2=200次,其工作时间为:400*500ms+200*5ms=201s,其功耗仅为周期唤醒方案的11%,大大降低了功耗。
对于“短脉冲”干扰剔除方面,如图4所示,P1和P1’分别为连续产生的两个脉冲信号,其中P1为正常脉冲,P1’为干扰短脉冲信号。通过本发明中单脉冲有效性判断环节,可以分别计算出P1脉冲的脉宽t1=T2-T1,P2脉冲的脉宽t1’=T4-T3,由于t1大于单个脉冲的最小持续时间,则认定该脉冲有效,t1’小于单个脉冲的最小持续时间,则认为干扰脉冲,进行剔除,提高了计量的准确性。
对于“无序脉冲”干扰剔除方面,如图5所示,脉冲P1、P1’、P2、P2’、P2”五个脉冲均是经过单脉冲有效性判断后的有效脉冲,但是在A路的P1’脉冲之后,B路连续出现了两个P2’和P2”两个脉冲,通过本发明中的脉冲交替有序性判断环节,可计算出T5和T2的时间差值、T7和T4的差值、T9和T4的差值,当T5和T2差值大于最小的相隔间值时,认定P2为有效计量脉冲,T7和T4时间差值小于最小两路脉冲相隔间值时,认定P2’为干扰脉冲进行剔除,T9和T4差值大于最小的相隔间值,并且A路刚发生了有效脉冲,下一次必定是B路,认定P2”为有效脉冲,因此对于P2’的干扰脉冲通过交替有序判断,进行了滤除,提高了计量准确性。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (8)
1.一种低功耗同时提高水表脉冲计量准确性的方法,其特征在于,所述低功耗同时提高水表脉冲计量准确性的方法包括:
设定脉冲信号采集设备内的两路脉冲信号计量接口为A路脉冲接口和B路脉冲接口,分别对应脉冲式水表的两路脉冲信号接口,定义脉冲计量相关的结构体变量;
配置脉冲信号采集设备的主控芯片的IO中断模式及系统休眠状态下的唤醒模式参数;
脉冲信号电平状态的判断,判断当前是产生的上升沿还是下降沿,若产生沿信号则进入单脉冲有效性判断,否则进入本次唤醒后脉冲统计完成,系统立刻进入休眠状态;
单脉冲有效性判断,通过计算上升沿和下降沿的时间差绝对值,计算出低电平的持续时间,若持续时间小于最小限值,认定为干扰信号,进行丢弃,进入本次唤醒后脉冲统计完成,系统立刻进入休眠状态;若时间值超过最小限值且为上升沿,则进入脉冲交替有序性判断,否则进入本次唤醒后脉冲统计完成,系统立刻进入休眠状态;
脉冲交替有序性判断,通过将A/B两路脉冲信号实际产生的时序和理论时序进行比对,若二者一致,则认定本次脉冲信号为有效脉冲进行计量,否则认定为干扰信号,进行丢弃;
本次唤醒后脉冲统计完成,系统立刻进入休眠状态。
2.如权利要求1所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,当脉冲信号采集设备起始运行时,首先,在主控芯片内配置A/B两路脉冲的IO接口为外部中断模式,且中断触发条件为上升沿和下降沿均可触发;其次,配置主控芯片在进入休眠状态后,可通过A/B两路脉冲接口的IO外部中断事件唤醒系统,退出休眠状态。
3.如权利要求1所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,所述脉冲信号电平状态的判断为当主控芯片由脉冲信号的中断事件唤醒后,查询A路/B路脉冲的电平状态,具体过程如下:
S1,通过查询系统中断源,确定是A路还是B路脉冲产生了信号中断,若是A路或者B路,则进入步骤S2,否则,认为异常,系统立刻进入休眠状态;
S2,创建含有N个元素数组PortArry[N],定义0代表低电平,1代表高电平,N的取值范围为大于2小于16,然后进入步骤S3;
S3,依据步骤S1,对产生中断的A路脉冲或者B路脉冲,以固定的采样间隔T进行读取采样,T的取值范围最小值大于0毫秒小于100毫秒,连续读取N个A路脉冲或者B路脉冲接口的电平状态,若脉冲信号为高,则用1表示,为低则用0表示,依次放入数组PortArry中,N个值读取完毕后,进入S4,否则继续读取,直至读取完毕;
S4,在数组PortArry的N个数据值中,依次提取数组下标为N/2–1、N/2、N/2+1的三个数值,即PortArry[N/2–1]、PortArry[N/2]和PortArry[N/2+1]的三个数据值,然后对这三个数据值进行比对;
S5,获取A路/B路脉冲上一次电平状态,即s tPortAInf o.ucLa s tPortPlus或者stPortBInfo.ucLastPortPlus的值,和当前值stPortAInfo.ucCurPortPlus或者stPortBInfo.ucCurPortPlus,进行比较;
S6,依据S5,若当前产生了下降沿,首先把stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes的值,赋值给stPortAInfo.udwLastDownTimes或者s t Por t B I nf o.ud w La s t D o w n Ti m e s,然后把脉冲信号采集设备的当前时间赋值给stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes;同理,若产生了上升沿,则把stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes的值,赋值给stPortAInfo.udwLastUpTimes或者stPortBInfo.udwLastUpTimes,然后把脉冲信号采集设备的当前时间赋值给stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes,然后进入步骤四。
4.如权利要求3所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,S4中,对数据值进行比对时,采取少数服从多数的原则,若1的个数大于0的个数,则认定当前脉冲信号为1,反之认定当前脉冲信号为0,把当前电平状态1或者0赋值给stPortAInfo.ucCurPortPlus或者stPortBInfo.ucCurPortPlus,然后进入S5。
5.如权利要求3所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,S5中,将上一次电平状态和当前值进行比较时,若上一次电平状态为1,当前电平状态为0,则认定当前产生下降沿,反之,若上一次电平状态为0,当前电平状态为1,则认定产生上升沿,然后进入S6,若上一次电平状态与当前电平状态为一致,则直接进入步骤六。
6.如权利要求1所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,进行单脉冲有效性判断时,具体过程如下:
S11,获取当前脉冲的下降沿和上升沿的发生时间,即,
stPortAInfo.udwCurDownTimes/stPortBInfo.udwCurDownTimes的值和stPortAInfo.udwCurUpTimes/stPortBInfo.udwCurUpTimes的值,然后进入步骤S12;
S12,计算上升沿和下降沿之间的时间差t1,即,
t1=stPortAInfo.udwCurUpTimes/stPortBInfo.udwCurUpTimes-stPortAInfo.udwCurDownTimes/stPortBInfo.udwCurDownTimes,然后进入步骤S13;
S13,判断t1的绝对值是否大于脉冲的最小持续时间VldMinTime,VldMinTime的取值需要依据具体脉冲是水表的口径、流速、传感器位置等因素进行确定,若大于,则认定当前单个脉冲有效,若当前为下降沿,则直接进入步骤六;若当前为上升沿,然后进入步骤五;若不大于,则认定当前脉冲持续时间过短,为无效脉冲,进入步骤S14;
S14,把stPortAInfo.udwLastDownTimes或者stPortBInfo.udwLastDownTimes,重新赋值给stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes;把stPortAInfo.udwLastUpTimes或者stPortBInfo.udwLastUpTimes,重新赋值给stPortAInfo.udwCurUpTimes或者stPortBInfo.udwCurUpTimes。
7.如权利要求1所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,对脉冲交替有序性判断时,具体包括如下步骤:
S21,通过查询系统中断源,确定是A路还是B路脉冲产生了信号中断,即当前产生脉冲信号的实际值是哪路,然后进入S22;
S22,分别获取A路和B路脉冲的累计个数,即stPortAInfo.udwPlusSum和stPortBInfo.udwPlusSum的值,并进行比对;
S23,由步骤S22确定当前产生的有效脉冲是A路或者B路,并推算出上一次的脉冲产生有效脉冲应当是B路或者A路,然后获取当前脉冲的下降沿发生时间stPortAInfo.udwCurDownTimes或者stPortBInfo.udwCurDownTimes以及上一路脉冲的上升沿发生时间stPortBInfo.udwCurUpTimes或者stPortAInfo.udwCurUpTimes,并计算二者之间的差值t2,若当前为A路,则t2=stPortAInfo.udwCurDownTimes-stPortBInfo.udwCurUpTimes
同理,若当前为B路,则
t2=stPortBInfo.udwCurDownTimes-stPortAInfo.udwCurUpTimes
然后进入步骤S24;
S24,判断t2的值是否大于两路脉冲交替出现时的最小间隔时间VldMinTimeFrAB,VldMinTimeFrAB的取值需要依据具体脉冲是水表的口径、流速、传感器位置等因素进行确定,若大于,则认定当前A路或者B路脉冲为有效脉冲,其对应的脉冲个数统计值stPortAInfo.udwPlusSum/stPortBInfo.udwPlusSum进行加一操作,且该脉冲式水表的总的脉冲计量个数为stPortAInfo.udwPlusSum和stPortBInfo.udwPlusSum的总和;若不大于,则认定当前A路或者B路脉冲为无效的干扰脉冲。
8.如权利要求7所述的低功耗同时提高水表脉冲计量准确性的方法,其特征在于,步骤S22中,若stPortAInfo.udwPlusSum小于stPortBInfo.udwPlusSum,则理论期望的当前脉冲应由A路产生,然后再与步骤S21确定的当前实际产生脉冲的路数进行比对,若当前实际产生路数为B路,则实际值与理论值不一致,认定当前实际值为干扰脉冲信号,若一致,则认定当前实际值有效,进入步骤S23;同理,若stPortBInfo.udwPlusSum小于stPortAInfo.udwPlusSum,则理论期望的当前产生脉冲应由B路产生,然后再与步骤S21确定的当前实际产生脉冲的路数进行比对,若当前实际产生路数为A路,则实际值与理论值不一致,认定当前实际值为干扰脉冲信号,若一致,则认定当前实际值有效,进入步骤S23;若stPortBInfo.udwPlusSum和stPortAInfo.udwPlusSum相等,则直接认定步骤S21确定的实际脉冲路数与理论期望值一致,直接进入步骤S23。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010714540.1A CN111964756B (zh) | 2020-07-23 | 2020-07-23 | 一种低功耗同时提高水表脉冲计量准确性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010714540.1A CN111964756B (zh) | 2020-07-23 | 2020-07-23 | 一种低功耗同时提高水表脉冲计量准确性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111964756A CN111964756A (zh) | 2020-11-20 |
CN111964756B true CN111964756B (zh) | 2023-03-31 |
Family
ID=73362545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010714540.1A Active CN111964756B (zh) | 2020-07-23 | 2020-07-23 | 一种低功耗同时提高水表脉冲计量准确性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111964756B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112945355A (zh) * | 2021-01-27 | 2021-06-11 | 武汉正维电子技术有限公司 | 双脉冲数据采集方法 |
CN113375765B (zh) * | 2021-07-06 | 2024-06-11 | 金卡水务科技有限公司 | 计量仪表的检测方法、装置和存储介质 |
CN114166296A (zh) * | 2021-11-29 | 2022-03-11 | 福建省水投数字科技有限公司 | 一种无磁水表水量统计电路、方法及无磁水表 |
CN115015797B (zh) * | 2022-08-08 | 2022-10-14 | 深圳市恒运昌真空技术有限公司 | 一种射频电源信号采集方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3532496B2 (ja) * | 2000-05-08 | 2004-05-31 | 東洋計器株式会社 | 流量表示装置 |
CN101614572A (zh) * | 2008-06-25 | 2009-12-30 | 上海协霖电子有限公司 | 一种水表脉冲数据的采集方法 |
CN105841770B (zh) * | 2016-03-25 | 2019-01-22 | 智恒科技股份有限公司 | 基于中断和ad采样的水表脉冲信号计量方法及其系统 |
CN106781054B (zh) * | 2016-12-02 | 2019-07-12 | 西安航天计量测试研究所 | 一种低功耗智能射频卡水表系统 |
CN106813732B (zh) * | 2017-02-22 | 2023-05-12 | 南京林洋电力科技有限公司 | 一种超低功耗高可靠性水表、电源切换及其计量方法 |
-
2020
- 2020-07-23 CN CN202010714540.1A patent/CN111964756B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111964756A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111964756B (zh) | 一种低功耗同时提高水表脉冲计量准确性的方法 | |
CN103235555B (zh) | 基于功率信息的机床设备利用状态在线监测方法及装置 | |
CN100575965C (zh) | 一种单片机测量频率的方法 | |
CN100565423C (zh) | 时钟异常检测电路和时钟异常检测方法 | |
CN102223264B (zh) | 一种用于监控系统的告警处理方法及系统 | |
CN104794933A (zh) | 一种提高地磁车位检测器准确性的方法 | |
CN102590784A (zh) | 单相智能电能表分布式校表方法 | |
US20210215763A1 (en) | Method for improving accuracy of capacity measurement | |
CN101458323A (zh) | 动态节点定位方法 | |
CN115436871A (zh) | 一种基于低功耗的单相电能表防止零线缺失窃电的方法 | |
CN202434049U (zh) | 水表数据采集器 | |
CN112363065B (zh) | 一种应用于物联网传感器的电量监测方法及装置 | |
CN100386642C (zh) | 发电机实时功角监测装置 | |
US9689724B2 (en) | Resonant signal sensing circuit having a low power mode | |
CN112433064A (zh) | 一种转速检测方法、装置及设备 | |
CN201508207U (zh) | 用于热电厂节能调度系统的数据采集终端 | |
CN103201687A (zh) | 低能量传感器接口 | |
US10419832B2 (en) | Detecting an error condition by monitoring a resource flow at a premises | |
CN111174842B (zh) | 用于电子式计量表的随机数采样方法 | |
CN113484057A (zh) | 一种水处理设施能效的计算评估方法及其设备、系统 | |
CN114414834A (zh) | 一种基于霍尔脉冲时差法的流速计算和异常报警方法 | |
CN112345012A (zh) | 智能化机电分离水表数据记录与处理方法 | |
CN206610430U (zh) | 一种基于单片机的多点信息采集系统 | |
CN109634168A (zh) | 一种传感器脉冲信号的处理方法 | |
CN104459314A (zh) | 一种rfid系统中的高精度频率测量方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |