CN114414834A - 一种基于霍尔脉冲时差法的流速计算和异常报警方法 - Google Patents

一种基于霍尔脉冲时差法的流速计算和异常报警方法 Download PDF

Info

Publication number
CN114414834A
CN114414834A CN202210101278.2A CN202210101278A CN114414834A CN 114414834 A CN114414834 A CN 114414834A CN 202210101278 A CN202210101278 A CN 202210101278A CN 114414834 A CN114414834 A CN 114414834A
Authority
CN
China
Prior art keywords
time
alarm
flag
rotation
true
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.)
Pending
Application number
CN202210101278.2A
Other languages
English (en)
Inventor
沈畅
陈治年
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN202210101278.2A priority Critical patent/CN114414834A/zh
Publication of CN114414834A publication Critical patent/CN114414834A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P5/00Measuring speed of fluids, e.g. of air stream; Measuring speed of bodies relative to fluids, e.g. of ship, of aircraft
    • G01P5/18Measuring speed of fluids, e.g. of air stream; Measuring speed of bodies relative to fluids, e.g. of ship, of aircraft by measuring the time taken to traverse a fixed distance
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • G01D5/12Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means
    • G01D5/14Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing the magnitude of a current or voltage
    • G01D5/142Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing the magnitude of a current or voltage using Hall-effect devices
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B21/00Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
    • G08B21/18Status alarms
    • G08B21/24Reminder alarms, e.g. anti-loss alarms

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Emergency Management (AREA)
  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Measuring Volume Flow (AREA)

Abstract

本发明公开了一种基于霍尔脉冲时差法的流速计算和异常报警方法,包括以下步骤:S1.设安装在管具上的机械表通过霍尔元件进行计量,根据霍尔元件的计量的特性,定义机械表的正转和反转;S2.确定机械表的转动停止判断条件;S3.定义表具工作基于霍尔脉冲时差法的相关参数;S4.基于霍尔脉冲时差法计算流速;S5.基于计算得到的流速进行异常报警。本发明能够有效实现基于霍尔脉冲的流速计算,并在此基础上进行超流报警,同时,还能够实现反向计数报警,有效提醒反转和反向计数的情况。

Description

一种基于霍尔脉冲时差法的流速计算和异常报警方法
技术领域
本发明涉及管具的流速计算,特别是涉及一种基于霍尔脉冲时差法的流速计算和异常报警方法。
背景技术
近些年来,自动抄表技术被大力倡导及应用,为紧跟社会的发展,许多公司都在在传统机械表的基础上研发了二合一的机械远传表;
为满足对机械远传表通过数字的方式获取表具的物理齿轮盘上累计量的问题,霍尔传感器式机械表是一种和好的选择,这种方式利用率霍尔效应,在磁体经过霍尔元件时产生的脉冲来计算累积量;具有简单,小型,频率响应宽,动态范围大,寿命长,无接触,能克服采集是水锤、震动等现象。但是还是有以下缺点:外界磁场达到一定的强度会有一定的干扰导致霍尔传感器误发脉冲。机械表的结构决定了,齿轮正反都会转动,可能会出现脉冲数量和表盘数据不一致的情况;并且,没有办法实时监测流速和转动方向,在出现超流时无法进行相应的报警。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于霍尔脉冲时差法的流速计算和异常报警方法,能够实现基于霍尔脉冲的流速计算,并在此基础上进行超流报警,同时,还能够实现反向计数报警,有效提醒反转和反向计数的情况。
本发明的目的是通过以下技术方案来实现的:一种基于霍尔脉冲时差法的流速计算和异常报警方法,包括以下步骤:
S1.设安装在管具上的机械表通过霍尔元件进行计量,根据霍尔元件的计量的特性,定义机械表的正转和反转;
S2.确定机械表的转动停止判断条件;
S3.定义表具工作基于霍尔脉冲时差法的相关参数;
S4.基于霍尔脉冲时差法计算流速;
S5.基于计算得到的流速进行异常报警。
其中,所述步骤S1包括:
设机械表中安装有两个霍尔元件,分别为H1和H2,设磁性材料制成的机械表指针先经过H1再经过H2为一次正转计量;
根据霍尔元件的计量的特性,当经过霍尔元件就会触发一个脉冲中断,将霍尔元件H1和H2连接到机械表中的单片机,并由单片机内部时钟,并构建定时器进行计时,基于计时进行机械表正反转判断的方式如下:
当判定为第一次经过H1或者H2时开始统计经过H1或H2的次数,并开始计时:从经过H1触发脉冲到经过H2触发脉冲间隔的时间记为H1_Time;从经过H2触发脉冲到经过H1触发脉冲间隔的时间记为H2_Time,并且拟定H1_Time>=H2_Time为正转,反之为反转;
其中,指针从H1到H2的走过夹角大于从H2到H1走过的夹角。
其中,所述步骤S2中,机械表的转动停止判断条件为:
根据表具管径和使动流量,预先设定表具转动一圈需要的最大时间DN_Time;如果H1_Time或者H2_Time大于DN_Time,则表示整个表已经停止转动。
其中,所述步骤S3包括:
如果H1_Time或H2_Time > DN_Time,此时认为H1_Time和H2_Time已经超时并置位为真,记作H1H2TimeOutFlag = true,并记录在与微处理连接的FRAM中,防止掉电丢失计量状态_H1H2TimeOutFlag,并且把H1和H2计量初始化状态标志置位为真,记作H1H2INITFlag= true,把H1/H2定时器计时标志置位为假,记作H1H2TimerFlag = false,并清理转子转动标志置位为假,记作H1H2RUN_CountFlag = false,并记录在FRAM中防止掉电丢失计量状态;
如果H1H2INITFlag ==true并且H1H2TimerFlag == false,那么就会初始化所有的计量标志和计量次数,包括
H1H2TimeOutFlag = false,H1中断标志H1InterruptFlag = false,H2中断标志.H2InterruptFlag = false,H1H2TimerFlag = true,H1_Time = 0,H2_Time =0,中断计数器IntNum = 0,保存数据次数 Num =0,临时计量管道H1H2Arr=0,时间计量管道H1H2_Time_Buf = 0,时间记录个数H1H2_TimeNum =0,时间记录位置H1H2_TimeLocal =0。
其中,所述步骤S4包括:
S401.若H1H2TimerFlag == true,判断为定时器已经准备好开始计时,开始执行流速计算;此时转子转动标志为真即H1H2RUN_CountFlag = =true;
S402.如果触发了H1中断,则判断IntNum 是否大于等于1,如果小于1不做处理,如果大于等于1,就记录时间H1H2_Time_Buf[H1H2_TimeLocal++%10] = H2_Time,随后记录时间个数H1H2_TimeNum++,TimeUpdataFlag = true,时间数据更新标志为真,如果H1H2_TimeNum > 10,H1H2_TimeNum--这样就会每次只更新时间计数管道里面最后一个数值以保证后续流速计算的稳定性;
如果H1H2RUN_CountFlag == true,并且时间记录数据TimeUpdataFlag = true已经更新,则计算当前的流速,首先清理TimeUpdataFlag = false,随后计算流速:
(1)得到平均时间:先判断数据个数,如果小于等于3个就不判断,避免流速过低出现极致导致数据错误的情况;如果大于3个数据就先去极致得到平均值(TimeAver),随后把TimeAver以毫秒为单位的数据转化为秒为单位的数据;
(2)根据时间计算流速:首先根据管径获得转动一圈的最大时间DN_Time并转化为以秒为单位的时间,然后根据管径获得他的最小流量Minflow,流速Flow_Velocity为:
Flow_Velocity = (DN_Time/TimeAver)*Minflow;
从而得到较为准确的流速参考值。
其中,步骤S5中所述的异常报警包括超流报警,过程为:
A1、在转子运行标志为真时,根据管径获得他的最大流量MaxFlow进行如下处理:
如果Flow_Velocity > MaxFlow,就置位超流报警标志位,反之就清除超流报警标志和发送超流报警信息;
A2、如果超流报警标志为真,并且超流报警发送信息标志为假就立即发送超流报警数据到平台并置位超流报警发送信息标志;这样就在发送正常数据的情况下只发送一次报警信息,并在正常数据包里面包含有超流报警标志。
其中,步骤S5中所述的异常报警还包括反向计数报警,过程为:
B1、设反转报警标志_ReversingWarn_flag初始状态位假即_ReversingWarn_flag=false,表示没有反转报警;
当判定为第一次经过H1或者H2时开始统计经过H1或H2的次数,并开始计时:从经过H1触发脉冲到经过H2触发脉冲间隔的时间记为H1_Time;从经过H2触发脉冲到经过H1触发脉冲间隔的时间记为H2_Time,并且拟定H1_Time>=H2_Time为 临时正转方向ReversingRotation_flag = true,反之为 临时反转方向ReversingRotation_flag =false;
1、如果是H2H1H2或者H1H2H1这种触发状态:每次触发当前脉冲时会对当前这个方向根据纠错判断来进行正反转方向纠正:如果第一次是记为正转并且他的后面三次都是正转,那他的转动方向就为正转;反之如果第一次是记为正转并且他的后面三次都是反转,那他的转动方向就为反转;
2、如果是H1H1H2或者H2H2H1这种连续出现两个转动标志的数据就需要去判定正反转状态,首先先区分正反转,如果反转标志不为假即ReversingRotation_flag == true,并且当前中断标志和FRAM存储的上一次的中断标志一致的话,即_H1InterruptFlag ==H1InterruptFlag,认定为反转,反之为正转,并置位正反转标志ReversingRotation_flag;此标志位默认为真即正转ReversingRotation_flag == true;
转子运行标志为真时,如果反转报警标志为真,即_ReversingWarn_flag ==true,那么说明有需要处理的报警信息,接着需要去判断这个报警信息是不是误记的报警;如果ReversingRotation_flag == true,表示当前为正转与当前反转报警相冲突,因此需要去判断这个报警信息是不是误记的报警。接着反转报警定时器累计,即H1H2ReversingWarnTimer=H1H2ReversingWarnTimer+1;
B2、接着立即根据时间来动态调整反转报警时间,如果H1H2_TimeNum < 4 就以最大时间DNTime作为报警时间,反之得到TimeAver并乘以2得到报警时间,接着进行判断,如果报警时间小于最大流速时间MinTime则判断位错误不能使用当前报警时间并接着使用旧的报警时间,反之即立即更新报警时间;
B3、如果反转报警时间大于报警时间判定为误记反转,接着立即清除H1H2ReversingWarnTimer = 0和反转报警标志_ReversingWarnFlag = false;
B4、如果已经反向转动ReversingRotation_flag == false,反转报警标志为假_ReversingWarn_flag == false,接着反转报警定时器累计,即H1H2ReversingWarnTimer++;
B5、接着立即根据时间来动态调整反转报警时间,如果H1H2_TimeNum < 4 就以最大时间DNTime作为报警时间,反之得到TimeAver并乘以2得到报警时间,接着进行判断,如果报警时间小于最大流速时间MinTime,则判断位错误不能使用当前报警时间并接着使用旧的报警时间,反之即立即更新报警时间;
B6、如果反转报警时间大于报警时间判定为反转,接着立即清除H1H2ReversingWarnTimer = 0,并置位反转报警标志_ReversingWarnFlag = true。
本发明的有益效果是:本发明能够实现基于霍尔脉冲的流速计算,并在此基础上进行超流报警,同时,还能够实现反向计数报警,有效提醒反转和反向计数的情况。
附图说明
图1为本发明的方法流程图;
图2为流速计算的原理示意图;
图3为超流报警的原理示意图;
图4为反向计量报警的原理示意图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,一种基于霍尔脉冲时差法的流速计算和异常报警方法,包括以下步骤:
S1.设安装在管具上的机械表通过霍尔元件进行计量,根据霍尔元件的计量的特性,定义机械表的正转和反转;
S2.确定机械表的转动停止判断条件;
S3.定义表具工作基于霍尔脉冲时差法的相关参数;
S4.基于霍尔脉冲时差法计算流速;
S5.基于计算得到的流速进行异常报警。
其中,所述步骤S1包括:
设机械表中安装有两个霍尔元件,分别为H1和H2,设磁性材料制成的机械表指针先经过H1再经过H2为一次正转计量;
根据霍尔元件的计量的特性,当经过霍尔元件就会触发一个脉冲中断,将霍尔元件H1和H2连接到机械表中的单片机,并由单片机内部时钟,并构建定时器进行计时,基于计时进行机械表正反转判断的方式如下:
当判定为第一次经过H1或者H2时开始统计经过H1或H2的次数,并开始计时:从经过H1触发脉冲到经过H2触发脉冲间隔的时间记为H1_Time;从经过H2触发脉冲到经过H1触发脉冲间隔的时间记为H2_Time,并且拟定H1_Time>=H2_Time为正转,反之为反转;
其中,指针从H1到H2的走过夹角大于从H2到H1走过的夹角。
在本申请的实施例中,拟定的H1_Time>=H2_Time为 临时(初始)正转方向,反之为临时(初始)反转方向,这个方向会根据纠错判断来进行正反转方向纠正:如果第一次是记为正转并且他的后面三次都是正转,那他第一次的转动方向就为正转。反之如果第一次是记为正转并且他的后面三次都是反转,那他第一次的转动方向就为反转并且进行累积量补偿。
其中,所述步骤S2中,机械表的转动停止判断条件为:
根据表具管径和使动流量,预先设定表具转动一圈需要的最大时间DN_Time;如果H1_Time或者H2_Time大于DN_Time,则表示整个表已经停止转动。
其中,所述步骤S3包括:
如果H1_Time或H2_Time > DN_Time,此时认为H1_Time和H2_Time已经超时并置位为真,记作H1H2TimeOutFlag = true,并记录在与微处理连接的FRAM中,防止掉电丢失计量状态_H1H2TimeOutFlag,并且把H1和H2计量初始化状态标志置位为真,记作H1H2INITFlag= true,把H1/H2定时器计时标志置位为假,记作H1H2TimerFlag = false,并清理转子转动标志置位为假,记作H1H2RUN_CountFlag = false,并记录在FRAM中防止掉电丢失计量状态;
如果H1H2INITFlag ==true并且H1H2TimerFlag == false,那么就会初始化所有的计量标志和计量次数,包括
H1H2TimeOutFlag = false,H1中断标志H1InterruptFlag = false,H2中断标志.H2InterruptFlag = false,H1H2TimerFlag = true,H1_Time = 0,H2_Time =0,中断计数器IntNum = 0,保存数据次数 Num =0,临时计量管道H1H2Arr=0,时间计量管道H1H2_Time_Buf = 0,时间记录个数H1H2_TimeNum =0,时间记录位置H1H2_TimeLocal =0。
如图2所示,根据计量时间确定算法记录的时间,然后通过去极值平均法得到当前的真正的时间,然后根据管径大小来得到不同管径霍尔元件超时时间,然后根据最小流速得到最大时间来得到转一圈的最大转动距离,然后根据距离除以当前时间得到当前流速并记录下来,具体地,所述步骤S4包括:
S401.若H1H2TimerFlag == true,判断为定时器已经准备好开始计时,开始执行流速计算;此时转子转动标志为真即H1H2RUN_CountFlag = =true;
S402.如果触发了H1中断,则判断IntNum 是否大于等于1,如果小于1不做处理,如果大于等于1,就记录时间H1H2_Time_Buf[H1H2_TimeLocal++%10] = H2_Time,随后记录时间个数H1H2_TimeNum++,TimeUpdataFlag = true,时间数据更新标志为真,如果H1H2_TimeNum > 10,H1H2_TimeNum--这样就会每次只更新时间计数管道里面最后一个数值以保证后续流速计算的稳定性;
如果H1H2RUN_CountFlag == true,并且时间记录数据TimeUpdataFlag = true已经更新,则计算当前的流速,首先清理TimeUpdataFlag = false,随后计算流速:
(1)得到平均时间:先判断数据个数,如果小于等于3个就不判断,避免流速过低出现极致导致数据错误的情况;如果大于3个数据就先去极致得到平均值(TimeAver),随后把TimeAver以毫秒为单位的数据转化为秒为单位的数据;
(2)根据时间计算流速:首先根据管径获得转动一圈的最大时间DN_Time并转化为以秒为单位的时间,然后根据管径获得他的最小流量Minflow,流速Flow_Velocity为:
Flow_Velocity = (DN_Time/TimeAver)*Minflow;
从而得到较为准确的流速参考值。
在本申请的实施例中,H2中断触发时,流速计算方式与H1中断触发时同理,因中断触发是连续的:一种状态为H1 H2 H1 H2 H1,在H1触发时的判断计算状态,H2的和H1的一样的判断和计算方法。H1H2_Time_Buf数据形式如下表所示:
H2_Time H1_Time H2_Time H1_Time H2_Time H1_Time
其中,步骤S5中所述的异常报警包括超流报警,根据流速计算算法得到的流速,然后根据管径计算得到的最大流速来对比来判断是否超过表具设置的最大流速,如果超流就报警,然后后面如果一直超流就判断当前是否已经发送超流报警,如果发生了就不再继续发送,如图3所示,具体过程为:
A1、在转子运行标志为真时,根据管径获得他的最大流量MaxFlow进行如下处理:
如果Flow_Velocity > MaxFlow,就置位超流报警标志位,反之就清除超流报警标志和发送超流报警信息;
A2、如果超流报警标志为真,并且超流报警发送信息标志为假就立即发送超流报警数据到平台并置位超流报警发送信息标志;这样就在发送正常数据的情况下只发送一次报警信息,并在正常数据包里面包含有超流报警标志。
其中,步骤S5中所述的异常报警还包括反向计数报警,如图4所示,过程为:
B1、设反转报警标志_ReversingWarn_flag初始状态位假即_ReversingWarn_flag=false,表示没有反转报警;
当判定为第一次经过H1或者H2时开始统计经过H1或H2的次数,并开始计时:从经过H1触发脉冲到经过H2触发脉冲间隔的时间记为H1_Time;从经过H2触发脉冲到经过H1触发脉冲间隔的时间记为H2_Time,并且拟定H1_Time>=H2_Time为 临时正转方向ReversingRotation_flag = true,反之为 临时反转方向ReversingRotation_flag =false;
1、如果是H2H1H2或者H1H2H1这种触发状态:每次触发当前脉冲时会对当前这个方向根据纠错判断来进行正反转方向纠正:如果第一次是记为正转并且他的后面三次都是正转,那他的转动方向就为正转;反之如果第一次是记为正转并且他的后面三次都是反转,那他的转动方向就为反转;
2、如果是H1H1H2或者H2H2H1这种连续出现两个转动标志的数据就需要去判定正反转状态,首先先区分正反转,如果反转标志不为假即ReversingRotation_flag == true,并且当前中断标志和FRAM存储的上一次的中断标志一致的话,即_H1InterruptFlag ==H1InterruptFlag,认定为反转,反之为正转,并置位正反转标志ReversingRotation_flag;此标志位默认为真即正转ReversingRotation_flag == true;
转子运行标志为真时,如果反转报警标志为真,即_ReversingWarn_flag ==true,那么说明有需要处理的报警信息,接着需要去判断这个报警信息是不是误记的报警;如果ReversingRotation_flag == true,表示当前为正转与当前反转报警相冲突,因此需要去判断这个报警信息是不是误记的报警。接着反转报警定时器累计,即H1H2ReversingWarnTimer=H1H2ReversingWarnTimer+1;
B2、接着立即根据时间来动态调整反转报警时间,如果H1H2_TimeNum < 4 就以最大时间DNTime作为报警时间,反之得到TimeAver并乘以2得到报警时间,接着进行判断,如果报警时间小于最大流速时间MinTime则判断位错误不能使用当前报警时间并接着使用旧的报警时间,反之即立即更新报警时间;
B3、如果反转报警时间大于报警时间判定为误记反转,接着立即清除H1H2ReversingWarnTimer = 0和反转报警标志_ReversingWarnFlag = false;例如现在是反转,但是反转报警时间内的转动为正转,那么就是误记的反转。
B4、如果已经反向转动ReversingRotation_flag == false,反转报警标志为假_ReversingWarn_flag == false,接着反转报警定时器累计,即H1H2ReversingWarnTimer++;
B5、接着立即根据时间来动态调整反转报警时间,如果H1H2_TimeNum < 4 就以最大时间DNTime作为报警时间,反之得到TimeAver并乘以2得到报警时间,接着进行判断,如果报警时间小于最大流速时间MinTime,则判断位错误不能使用当前报警时间并接着使用旧的报警时间,反之即立即更新报警时间;
B6、如果反转报警时间大于报警时间判定为反转,接着立即清除H1H2ReversingWarnTimer = 0,并置位反转报警标志_ReversingWarnFlag = true。
在本申请的实施例中,流速的自身循环是:只要TimeUpdataFlag = true就会去计算流速,能实时输出流速值并处理超流报警。反正报警的自身循环是重复进行从B1到B6的事件循环,能保障即时发现并处理反转报警。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (7)

1.一种基于霍尔脉冲时差法的流速计算和异常报警方法,其特征在于:包括以下步骤:
S1.设安装在管具上的机械表通过霍尔元件进行计量,根据霍尔元件的计量的特性,定义机械表的正转和反转;
S2.确定机械表的转动停止判断条件;
S3.定义表具工作基于霍尔脉冲时差法的相关参数;
S4.基于霍尔脉冲时差法计算流速;
S5.基于计算得到的流速进行异常报警。
2.根据权利要求1所述的一种基于霍尔脉冲时差法的流速计算和异常报警方法,其特征在于:所述步骤S1包括:
设机械表中安装有两个霍尔元件,分别为H1和H2,设磁性材料制成的机械表指针先经过H1再经过H2为一次正转计量;
根据霍尔元件的计量的特性,当经过霍尔元件就会触发一个脉冲中断,将霍尔元件H1和H2连接到机械表中的单片机,并由单片机内部时钟,并构建定时器进行计时,基于计时进行机械表正反转判断的方式如下:
当判定为第一次经过H1或者H2时开始统计经过H1或H2的次数,并开始计时:从经过H1触发脉冲到经过H2触发脉冲间隔的时间记为H1_Time;从经过H2触发脉冲到经过H1触发脉冲间隔的时间记为H2_Time,并且拟定H1_Time>=H2_Time为正转,反之为反转;
其中,指针从H1到H2的走过夹角大于从H2到H1走过的夹角。
3.根据权利要求1所述的一种基于霍尔脉冲时差法的流速计算和异常报警方法,其特征在于:所述步骤S2中,机械表的转动停止判断条件为:
根据表具管径和使动流量,预先设定表具转动一圈需要的最大时间DN_Time;如果H1_Time或者H2_Time大于DN_Time,则表示整个表已经停止转动。
4.根据权利要求1所述的一种基于霍尔脉冲时差法的流速计算和异常报警方法,其特征在于:所述步骤S3包括:
如果H1_Time或H2_Time > DN_Time,此时认为H1_Time和H2_Time已经超时并置位为真,记作H1H2TimeOutFlag = true,并记录在与微处理连接的FRAM中,防止掉电丢失计量状态_H1H2TimeOutFlag,并且把H1和H2计量初始化状态标志置位为真,记作H1H2INITFlag =true,把H1/H2定时器计时标志置位为假,记作H1H2TimerFlag = false,并清理转子转动标志置位为假,记作H1H2RUN_CountFlag = false,并记录在FRAM中防止掉电丢失计量状态;
如果H1H2INITFlag ==true并且H1H2TimerFlag == false,那么就会初始化所有的计量标志和计量次数,包括
H1H2TimeOutFlag = false,H1中断标志H1InterruptFlag = false,H2中断标志.H2InterruptFlag = false,H1H2TimerFlag = true,H1_Time = 0,H2_Time =0,中断计数器IntNum = 0,保存数据次数 Num =0,临时计量管道H1H2Arr=0,时间计量管道H1H2_Time_Buf = 0,时间记录个数H1H2_TimeNum =0,时间记录位置H1H2_TimeLocal =0。
5.根据权利要求1所述的一种基于霍尔脉冲时差法的流速计算和异常报警方法,其特征在于:所述步骤S4包括:
S401.若H1H2TimerFlag == true,判断为定时器已经准备好开始计时,开始执行流速计算;此时转子转动标志为真即H1H2RUN_CountFlag = =true;
S402.如果触发了H1中断,则判断IntNum 是否大于等于1,如果小于1不做处理,如果大于等于1,就记录时间H1H2_Time_Buf[H1H2_TimeLocal++%10] = H2_Time,随后记录时间个数H1H2_TimeNum++,TimeUpdataFlag = true,时间数据更新标志为真,如果H1H2_TimeNum> 10,H1H2_TimeNum--这样就会每次只更新时间计数管道里面最后一个数值以保证后续流速计算的稳定性;
如果H1H2RUN_CountFlag == true,并且时间记录数据TimeUpdataFlag = true已经更新,则计算当前的流速,首先清理TimeUpdataFlag = false,随后计算流速:
(1)得到平均时间:先判断数据个数,如果小于等于3个就不判断,避免流速过低出现极致导致数据错误的情况;如果大于3个数据就先去极致得到平均值(TimeAver),随后把TimeAver以毫秒为单位的数据转化为秒为单位的数据;
(2)根据时间计算流速:首先根据管径获得转动一圈的最大时间DN_Time并转化为以秒为单位的时间,然后根据管径获得他的最小流量Minflow,流速Flow_Velocity为:
Flow_Velocity = (DN_Time/TimeAver)*Minflow;
从而得到较为准确的流速参考值。
6.根据权利要求1所述的一种基于霍尔脉冲时差法的流速计算和异常报警方法,其特征在于:步骤S5中所述的异常报警包括超流报警,过程为:
A1、在转子运行标志为真时,根据管径获得他的最大流量MaxFlow进行如下处理:
如果Flow_Velocity > MaxFlow,就置位超流报警标志位,反之就清除超流报警标志和发送超流报警信息;
A2、如果超流报警标志为真,并且超流报警发送信息标志为假就立即发送超流报警数据到平台并置位超流报警发送信息标志;这样就在发送正常数据的情况下只发送一次报警信息,并在正常数据包里面包含有超流报警标志。
7.根据权利要求1所述的一种基于霍尔脉冲时差法的流速计算和异常报警方法,其特征在于:步骤S5中所述的异常报警还包括反向计数报警,过程为:
B1、设反转报警标志_ReversingWarn_flag初始状态位假即_ReversingWarn_flag =false,表示没有反转报警;
当判定为第一次经过H1或者H2时开始统计经过H1或H2的次数,并开始计时:从经过H1触发脉冲到经过H2触发脉冲间隔的时间记为H1_Time;从经过H2触发脉冲到经过H1触发脉冲间隔的时间记为H2_Time,并且拟定H1_Time>=H2_Time为 临时正转方向ReversingRotation_flag = true,反之为 临时反转方向ReversingRotation_flag =false;
1、如果是H2H1H2或者H1H2H1这种触发状态:每次触发当前脉冲时会对当前这个方向根据纠错判断来进行正反转方向纠正:如果第一次是记为正转并且他的后面三次都是正转,那他的转动方向就为正转;反之如果第一次是记为正转并且他的后面三次都是反转,那他的转动方向就为反转;
2、如果是H1H1H2或者H2H2H1这种连续出现两个转动标志的数据就需要去判定正反转状态,首先先区分正反转,如果反转标志不为假即ReversingRotation_flag == true,并且当前中断标志和FRAM存储的上一次的中断标志一致的话,即_H1InterruptFlag ==H1InterruptFlag,认定为反转,反之为正转,并置位正反转标志ReversingRotation_flag;此标志位默认为真即正转ReversingRotation_flag == true;
转子运行标志为真时,如果反转报警标志为真,即_ReversingWarn_flag == true,那么说明有需要处理的报警信息,接着需要去判断这个报警信息是不是误记的报警;如果ReversingRotation_flag == true,表示当前为正转与当前反转报警相冲突,因此需要去判断这个报警信息是不是误记的报警,接着反转报警定时器累计,即H1H2ReversingWarnTimer=H1H2ReversingWarnTimer+1;
B2、接着立即根据时间来动态调整反转报警时间,如果H1H2_TimeNum < 4 就以最大时间DNTime作为报警时间,反之得到TimeAver并乘以2得到报警时间,接着进行判断,如果报警时间小于最大流速时间MinTime则判断位错误不能使用当前报警时间并接着使用旧的报警时间,反之即立即更新报警时间;
B3、如果反转报警时间大于报警时间判定为误记反转,接着立即清除H1H2ReversingWarnTimer = 0和反转报警标志_ReversingWarnFlag = false;
B4、如果已经反向转动ReversingRotation_flag == false,反转报警标志为假_ReversingWarn_flag == false,接着反转报警定时器累计,即H1H2ReversingWarnTimer++;
B5、接着立即根据时间来动态调整反转报警时间,如果H1H2_TimeNum < 4 就以最大时间DNTime作为报警时间,反之得到TimeAver并乘以2得到报警时间,接着进行判断,如果报警时间小于最大流速时间MinTime,则判断位错误不能使用当前报警时间并接着使用旧的报警时间,反之即立即更新报警时间;
B6、如果反转报警时间大于报警时间判定为反转,接着立即清除H1H2ReversingWarnTimer = 0,并置位反转报警标志_ReversingWarnFlag = true。
CN202210101278.2A 2022-01-27 2022-01-27 一种基于霍尔脉冲时差法的流速计算和异常报警方法 Pending CN114414834A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210101278.2A CN114414834A (zh) 2022-01-27 2022-01-27 一种基于霍尔脉冲时差法的流速计算和异常报警方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210101278.2A CN114414834A (zh) 2022-01-27 2022-01-27 一种基于霍尔脉冲时差法的流速计算和异常报警方法

Publications (1)

Publication Number Publication Date
CN114414834A true CN114414834A (zh) 2022-04-29

Family

ID=81279727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210101278.2A Pending CN114414834A (zh) 2022-01-27 2022-01-27 一种基于霍尔脉冲时差法的流速计算和异常报警方法

Country Status (1)

Country Link
CN (1) CN114414834A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012249497A (ja) * 2011-05-31 2012-12-13 Mitsuba Corp モータ制御装置及びモータ制御方法
CN111024175A (zh) * 2018-10-10 2020-04-17 罗美特(上海)自动化仪表股份有限公司 一种减小回流误差的双向计量表
EP3644495A1 (en) * 2018-10-25 2020-04-29 Mitsuba Corporation Motor control device and control method of motor control device
CN111366209A (zh) * 2020-02-20 2020-07-03 珠海鼎通科技有限公司 旋转圈数的检测装置、方法、存储介质及水表

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012249497A (ja) * 2011-05-31 2012-12-13 Mitsuba Corp モータ制御装置及びモータ制御方法
CN111024175A (zh) * 2018-10-10 2020-04-17 罗美特(上海)自动化仪表股份有限公司 一种减小回流误差的双向计量表
EP3644495A1 (en) * 2018-10-25 2020-04-29 Mitsuba Corporation Motor control device and control method of motor control device
CN111366209A (zh) * 2020-02-20 2020-07-03 珠海鼎通科技有限公司 旋转圈数的检测装置、方法、存储介质及水表

Similar Documents

Publication Publication Date Title
US6195018B1 (en) Metering system
CN109668607B (zh) 一种燃气表监控微小泄漏的方法
US6204658B1 (en) Method for evaluating an output signal of a rotational sensing device
WO2010071628A1 (en) Detecting an unreliable link in a computer system
US9500499B2 (en) Time diversified packet protocol
CN111964756B (zh) 一种低功耗同时提高水表脉冲计量准确性的方法
CN114414834A (zh) 一种基于霍尔脉冲时差法的流速计算和异常报警方法
KR101489423B1 (ko) 강수량관측시스템의 지능형 자가점검 방법
CN111859292A (zh) 一种夜间用水活跃小区的供水漏损监测方法
JP4652688B2 (ja) 角速度センサ
EP3872456A1 (en) Rotary gas meter working condition monitoring system and a rotary gas meter having a rotary gas meter working condition monitoring system
CN108036843B (zh) 燃气表示值误差检定方法
CN113761027A (zh) 车辆车载设备基于gps数据标定熄火状态的标定方法、装置及计算机可读存储介质
CN110553976B (zh) 一种环境腐蚀速率检测方法及装置
CN114485817A (zh) 一种低功耗机械表中基于脉冲时差法的计量方法
CN103743923A (zh) 一种高频车速采集系统及采集方法
JP5184750B2 (ja) 集中検針装置及び集中検針システム
US6542832B1 (en) Error detection and correction system for use with dual-pulse output metering devices
US20220341759A1 (en) Method for Detecting an Absolute Angular Position or an Absolute Angular Movement Path of a Rotating Member
CN108303569B (zh) 汽轮机转速测量的误差修正方法
CN112523846A (zh) 一种基于泵电机转速诊断尿素消耗偏差的方法
CN110749355A (zh) 基于旋转惯性的诊断方法
CN117949056A (zh) 一种水表流量处理方法
CN110987105A (zh) 一种基于双脉冲采样的编码计数方法及燃气表
CN108627670B (zh) 马达转速侦测方法及其装置

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