CN115112196A - 一种高精度反射式光电直读水表解码方法及系统 - Google Patents

一种高精度反射式光电直读水表解码方法及系统 Download PDF

Info

Publication number
CN115112196A
CN115112196A CN202211036542.5A CN202211036542A CN115112196A CN 115112196 A CN115112196 A CN 115112196A CN 202211036542 A CN202211036542 A CN 202211036542A CN 115112196 A CN115112196 A CN 115112196A
Authority
CN
China
Prior art keywords
character wheel
fine
clockwise
level
reading
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.)
Granted
Application number
CN202211036542.5A
Other languages
English (en)
Other versions
CN115112196B (zh
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.)
Jinan Richnes Electronic Co ltd
Original Assignee
Jinan Richnes Electronic Co ltd
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 Jinan Richnes Electronic Co ltd filed Critical Jinan Richnes Electronic Co ltd
Priority to CN202211036542.5A priority Critical patent/CN115112196B/zh
Publication of CN115112196A publication Critical patent/CN115112196A/zh
Application granted granted Critical
Publication of CN115112196B publication Critical patent/CN115112196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01FMEASURING VOLUME, VOLUME FLOW, MASS FLOW OR LIQUID LEVEL; METERING BY VOLUME
    • G01F15/00Details of, or accessories for, apparatus of groups G01F1/00 - G01F13/00 insofar as such details or appliances are not adapted to particular types of such apparatus
    • G01F15/06Indicating or recording devices

Landscapes

  • Physics & Mathematics (AREA)
  • Fluid Mechanics (AREA)
  • General Physics & Mathematics (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

本发明提供了一种高精度反射式光电直读水表解码方法及系统,其属于智能水表技术领域,包括:获取反射式光电直读水表当前时刻最低位字轮对应的若干光电管的原始电平数据,并进行二值化处理,获得二值码;基于预先构建的二值码与基本字轮编码及精细编码之间的映射关系表,基于表中获得的所述二值码的字轮数字及数字所处的上中下位置,确定基本字轮读数;基于表中获得的所述字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值,确定字轮读数的精细调整值;对所述基本字轮读数和精细调整值求和,获得当前时刻最低位字轮对应的精确读数,并结合高位字轮读数,实现反射式光电直读水表的高精度解码。

Description

一种高精度反射式光电直读水表解码方法及系统
技术领域
本发明属于智能水表技术领域,尤其涉及一种高精度反射式光电直读水表解码方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
发明人发现,目前在水表的抄表应用中存在多种光电直读编码方案,但这些方案均只是考虑信号二值化后的数字编码,具体反应在应用上就是在水表的字轮上安装传感器后,性能只能达到字轮最后一位的精度,虽然可以实现抄表收费,但越来越多的用户开始要求能够监控表计每天的运行状态,而仅读取字轮的方式获取水表读数,其精度无法满足用户监控水表每天或者更短周期运行状态的要求。
发明内容
本发明为了解决上述问题,提供了一种高精度反射式光电直读水表解码方法及系统,所述方案基于反射式光电直读水表的特点,利用顺时针/逆时针转动时当前编码发生改变的两位信号之间的关系来模拟出一位指针,在不改变水表现有结构的前提下提高了直读水表读数的精度,有效满足了直读水表运行状态监控的需要。
根据本发明实施例的第一个方面,提供了一种高精度反射式光电直读水表解码方法,包括:
获取反射式光电直读水表当前时刻最低位字轮对应的若干光电管的原始电平数据,其中,所述反射式光电直读水表每个字轮均对应设置有一组均匀布置的光电管;将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码;
基于预先构建的二值码与基本字轮编码及精细编码之间的映射关系表,确定当前时刻字轮位置所对应二值码的字轮数字、数字所处的上中下位置、字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值;
基于所述二值码的字轮数字及数字所处的上中下位置确定基本字轮读数;
基于所述字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值,确定字轮读数的精细调整值;
对所述基本字轮读数和精细调整值求和,获得当前时刻最低位字轮对应的精确读数,并结合高位字轮读数,实现反射式光电直读水表的高精度解码。
进一步的,所述反射式光电直读水表每个字轮对应设置有5个光电管,所述光电管在圆周方向上间隔36°均匀布置;所述光电管配合预设的字轮编码盘实现对字轮上数字0至9的编码,其中,每个数字的上中下分别对应一个独立的编码。
进一步的,所述将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码,具体为:基于中位参考电平对原始电平数据进行二值化处理,其中,所述位参考电平为光电管采样电平中高电平和低电平的均值。
进一步的,所述二值码与基本字轮编码及精细编码之间的映射关系表的构建,具体为:
采用5个光电管的编码方案,预先采集字轮处于不同位置时,5个光电管的原始电平数据;基于获得的中位参考电平,对获得的原始电平数据进行二值化处理,产生分别对应字轮数字0至9共10个数字的上、中及下位置的二值码,将其定义为code0;
对于获得的每个二值码,确定其对应的基本字轮读数,其中,所述基本字轮读数包括二值码对应的字轮数字及数字所述的上中下位置,将其定义为code1;
对于获得的每个二值码,确定其对应的精细编码,其中,所述精细编码包括字轮逆时针及顺时针偏移时二值码对应电平变化位及变化方向,将其定义位code2。
进一步的,所述code1的定义,具体为:对于字轮数字0至9分别处于上中下位置处时所对应的任意一个二值码,利用一个字节表示其对应的字轮读数,其中,高4位表示二值码对应的当前字轮数字,低4位表示二值码对应的当前字轮数字的上中下位置,分别用0,1,2表示。
进一步的,所述code2的定义,具体为:对于字轮数字0至9分别处于上中下位置处时所对应的任意一个二值码,利用一个字节表示其对应的精细编码,其中,第7位表示字轮逆时针转动时变化位电平变化方向,第6位至第4位表示逆时针转动时变化的位,第3位表示顺时针转动时变化位电平变化方向,第2位至第0位表示顺时针转动时变化的位。
进一步的,所述基于所述字轮逆时针转动及顺时针转动时的二值码变化位、所述变化位电平变化方向及所述变化位对应的电平采样值,确定字轮读数的精细调整值,具体采用如下公式:
当direction_ anti_clock =1,direction_ clockwise =1时,fine_adjust值的确定采用如下规则:
ad_ anti_clock - ad_ clockwise >= REF4 ,fine_adjust = -0.13;
REF3<=ad_ anti_clock - ad_ clockwise < REF4; fine_adjust = -0.065;
- REF3<=ad_ anti_clock - ad_ clockwise <REF3 ,fine_adjust = 0;
- REF4<=ad_ anti_clock - ad_ clockwise < -REF3 ,fine_adjust = 0.065;
ad_ anti_clock - ad_ clockwise < -REF4 ,fine_adjust = 0.13;
当direction_ anti_clock =0,direction_ clockwise =0时,fine_adjust值的确定采用如下规则:
ad_ anti_clock - ad_ clockwise >= REF12 ,fine_adjust = 0.13;
REF13<=ad_ anti_clock - ad_ clockwise < REF12; fine_adjust = 0.065;
- REF13<=ad_ anti_clock - ad_ clockwise <REF13 ,fine_adjust = 0;
- REF12<=ad_ anti_clock - ad_ clockwise < -REF13 ,fine_adjust = -0.065;
ad_ anti_clock - ad_ clockwise < -REF12 ,fine_adjust = -0.13;
当direction_ anti_clock =1,direction_ clockwise =0时,fine_adjust值的确定采用如下规则:
ad_ anti_clock +ad_ clockwise >= REF7 ,fine_adjust = -0.13;
REF8<=ad_ anti_clock + ad_ clockwise < REF7; fine_adjust = -0.065;
REF9<=ad_ anti_clock + ad_ clockwise <REF8 ,fine_adjust = 0;
REF10<=ad_ anti_clock +ad_ clockwise <REF9 ,fine_adjust = 0.065;
ad_ anti_clock + ad_ clockwise <REF10 ,fine_adjust = 0.13;
当direction_ anti_clock =0,direction_ clockwise =1时,fine_adjust值的确定采用如下规则:
ad_ anti_clock +ad_ clockwise >= REF7 ,fine_adjust = 0.13;
REF8<=ad_ anti_clock + ad_ clockwise < REF7; fine_adjust = 0.065;
REF9<=ad_ anti_clock + ad_ clockwise <REF8 ,fine_adjust = 0;
REF10<=ad_ anti_clock +ad_ clockwise <REF9 ,fine_adjust = -0.065;
ad_ anti_clock + ad_ clockwise <REF10 ,fine_adjust = -0.13;
其中,direction_ anti_clock为字轮逆时针转动时变化位电平变化方向,direction_ clockwise为字轮顺时针转动时变化位电平变化方向,fine_adjust为精细调整值,ad_ anti_clock为字轮逆时针转动时变化位对应的电平采样值,ad_ clockwise为字轮顺时针转动时变化位对应的电平采样值,HIGH为高电平值,LOW为低电平值,REF为中位参考电平,REF1为电平和修正时电平和的最小值,REF2为电平差修正时电平差的最大值,REF3为REF2的1/3,REF4为REF2的2/3,REF5为电平和修正时,电平和的最大值,REF6为电平和修正时电平和的中值,REF7为REF6 + (REF5-REF6)* 2/3,REF8为REF6 + (REF5-REF6)* 1/3,REF9为REF1 + (REF6-REF1)* 2/3,REF10为REF1 + (REF6-REF1)* 1/3,REF11为电平差修正时电平差的最大值,REF12为REF11 的 2/3,REF13为REF11的 1/3。
根据本发明实施例的第二个方面,提供了一种高精度反射式光电直读水表解码系统,包括:
数据获取单元,其用于获取反射式光电直读水表当前时刻最低位字轮对应的若干光电管的原始电平数据,其中,所述反射式光电直读水表每个字轮均对应设置有一组均匀布置的光电管;将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码;
查表计算单元,其用于基于预先构建的二值码与基本字轮编码及精细编码之间的映射关系表,确定当前时刻字轮位置所对应二值码的字轮数字、数字所处的上中下位置、字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值;
解码单元,其用于基于所述二值码的字轮数字及数字所处的上中下位置确定基本字轮读数;基于所述字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值,确定字轮读数的精细调整值;对所述基本字轮读数和精细调整值求和,获得当前时刻最低位字轮对应的精确读数,并结合高位字轮读数,实现反射式光电直读水表的高精度解码。
与现有技术相比,本发明的有益效果是:
本发明提供了一种高精度反射式光电直读水表解码方法及系统,所述方案基于反射式光电直读水表的特点,利用顺时针/逆时针转动时当前编码发生改变的两位信号之间的关系来模拟出一位指针,在不改变水表现有结构的前提下提高了直读水表读数的精度,有效满足了直读水表运行状态监控的需要。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例中所述的原始电平数据二值化处理示意图;
图2为本发明实施例中所采用的编码盘示意图;
图3为本发明实施例中所述的字轮中数字9的采样电平及编码示意图,其中,三个编码对应数字9的上、中及下位置;
图4为本发明实施例中所述的逆时针和顺时针转动时变化位均向高变化的示意图;
图5为本发明实施例中所述的逆时针和顺时针转动时变化位一位向高变化,一位向低变化的示意图;
图6为本发明实施例中所述的逆时针和顺时针转动时变化位一位向低变化,一位向高变化的示意图;
图7为本发明实施例中所述的逆时针和顺时针转动时变化位均向低变化时示意图;
图8为本发明实施例中所述的一种高精度反射式光电直读水表解码方法流程图。
具体实施方式
术语解释:
bit7至bit0表示1个字节从高到低的8位,其中:bit7表示第7位;bit6表示第6位;bit5表示第5位;bit4表示第4位;bit3表示第3位;bit2表示第2位;bit1表示第1位;bit0表示第0位。
实施例一:
本实施例的目的是提供一种高精度反射式光电直读水表解码方法。
如图8所示,一种高精度反射式光电直读水表解码方法,包括:
获取反射式光电直读水表当前时刻最低位字轮对应的若干光电管的原始电平数据,其中,所述反射式光电直读水表每个字轮均对应设置有一组均匀布置的光电管;将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码;
基于预先构建的二值码与基本字轮编码及精细编码之间的映射关系表,确定当前时刻字轮位置所对应二值码的字轮数字、数字所处的上中下位置、字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值;
基于所述二值码的字轮数字及数字所处的上中下位置确定基本字轮读数;
基于所述字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值,确定字轮读数的精细调整值;
对所述基本字轮读数和精细调整值求和,获得当前时刻最低位字轮对应的精确读数,并结合高位字轮读数,实现反射式光电直读水表的高精度解码。
进一步的,所述反射式光电直读水表每个字轮对应设置有5个光电管,所述光电管在圆周方向上间隔36°均匀布置;所述光电管配合预设的字轮编码盘实现对字轮上数字0至9的编码,其中,每个数字的上中下分别对应一个独立的编码。
进一步的,所述将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码,具体为:基于中位参考电平对原始电平数据进行二值化处理,其中,所述位参考电平为光电管采样电平中高电平和低电平的均值。
进一步的,所述二值码与基本字轮编码及精细编码之间的映射关系表的构建,具体为:
采用5个光电管的编码方案,预先采集字轮处于不同位置时,5个光电管的原始电平数据;基于获得的中位参考电平,对获得的原始电平数据进行二值化处理,产生分别对应字轮数字0至9共10个数字的上、中及下位置的二值码,将其定义为code0;
对于获得的每个二值码,确定其对应的基本字轮读数,其中,所述基本字轮读数包括二值码对应的字轮数字及数字所述的上中下位置,将其定义为code1;
对于获得的每个二值码,确定其对应的精细编码,其中,所述精细编码包括字轮逆时针及顺时针偏移时二值码对应电平变化位及变化方向,将其定义位code2。
进一步的,所述code1的定义,具体为:对于字轮数字0至9分别处于上中下位置处时所对应的任意一个二值码,利用一个字节表示其对应的字轮读数,其中,高4位表示二值码对应的当前字轮数字,低4位表示二值码对应的当前字轮数字的上中下位置,分别用0,1,2表示。
进一步的,所述code2的定义,具体为:对于字轮数字0至9分别处于上中下位置处时所对应的任意一个二值码,利用一个字节表示其对应的精细编码,其中,第7位表示字轮逆时针转动时变化位电平变化方向,第6位至第4位表示逆时针转动时变化的位,第3位表示顺时针转动时变化位电平变化方向,第2位至第0位表示顺时针转动时变化的位。
进一步的,所述基于所述字轮逆时针转动及顺时针转动时的二值码变化位、所述变化位电平变化方向及所述变化位对应的电平采样值,确定字轮读数的精细调整值,具体采用如下公式:
当direction_ anti_clock =1,direction_ clockwise =1时,fine_adjust值的确定采用如下规则:
ad_ anti_clock - ad_ clockwise >= REF4 ,fine_adjust = -0.13;
REF3<=ad_ anti_clock - ad_ clockwise < REF4; fine_adjust = -0.065;
- REF3<=ad_ anti_clock - ad_ clockwise <REF3 ,fine_adjust = 0;
- REF4<=ad_ anti_clock - ad_ clockwise < -REF3 ,fine_adjust = 0.065;
ad_ anti_clock - ad_ clockwise < -REF4 ,fine_adjust = 0.13;
当direction_ anti_clock =0,direction_ clockwise =0时,fine_adjust值的确定采用如下规则:
ad_ anti_clock - ad_ clockwise >= REF12 ,fine_adjust = 0.13;
REF13<=ad_ anti_clock - ad_ clockwise < REF12; fine_adjust = 0.065;
- REF13<=ad_ anti_clock - ad_ clockwise <REF13 ,fine_adjust = 0;
- REF12<=ad_ anti_clock - ad_ clockwise < -REF13 ,fine_adjust = -0.065;
ad_ anti_clock - ad_ clockwise < -REF12 ,fine_adjust = -0.13;
当direction_ anti_clock =1,direction_ clockwise =0时,fine_adjust值的确定采用如下规则:
ad_ anti_clock +ad_ clockwise >= REF7 ,fine_adjust = -0.13;
REF8<=ad_ anti_clock + ad_ clockwise < REF7; fine_adjust = -0.065;
REF9<=ad_ anti_clock + ad_ clockwise <REF8 ,fine_adjust = 0;
REF10<=ad_ anti_clock +ad_ clockwise <REF9 ,fine_adjust = 0.065;
ad_ anti_clock + ad_ clockwise <REF10 ,fine_adjust = 0.13;
当direction_ anti_clock =0,direction_ clockwise =1时,fine_adjust值的确定采用如下规则:
ad_ anti_clock +ad_ clockwise >= REF7 ,fine_adjust = 0.13;
REF8<=ad_ anti_clock + ad_ clockwise < REF7; fine_adjust = 0.065;
REF9<=ad_ anti_clock + ad_ clockwise <REF8 ,fine_adjust = 0;
REF10<=ad_ anti_clock +ad_ clockwise <REF9 ,fine_adjust = -0.065;
ad_ anti_clock + ad_ clockwise <REF10 ,fine_adjust = -0.13;
其中,direction_ anti_clock为字轮逆时针转动时变化位电平变化方向,direction_ clockwise为字轮顺时针转动时变化位电平变化方向,fine_adjust为精细调整值,ad_ anti_clock为字轮逆时针转动时变化位对应的电平采样值,ad_ clockwise为字轮顺时针转动时变化位对应的电平采样值,REF为中位参考电平,REF1为电平和修正时电平和的最小值,REF2为电平差修正时电平差的最大值(顺时针转动和逆时针转动时变换位电平均变高),REF3为REF2的1/3,REF4为REF2的2/3,REF5为电平和修正时,电平和的最大值,REF6为电平和修正时电平和的中值,REF7为REF6 + (REF5-REF6)* 2/3,REF8为REF6 +(REF5-REF6)* 1/3,REF9为REF1 + (REF6-REF1)* 2/3,REF10为REF1 + (REF6-REF1)* 1/3,REF11为电平差修正时电平差的最大值(顺时针转动和逆时针转动时变换位电平均变低),REF12为REF11 的 2/3,REF13为REF11的 1/3。
具体的,为了便于理解,以下结合附图对本实施例所述方案进行详细说明:
首先,本实施例所述方案基于以下基本原理:
在反射式光电直读水表中,使用最多的是格雷编码,在一组数的编码中,任意两个相邻的编码只有一位二进制数不同,以检测圆盘转动为例,顺时针旋转时当前编码有且只有一位电平发生改变,逆时针旋转时也有且只有一位电平改变,而且两个发生改变的一定不是同一位;另一方面,尤其在反射式光电直读水表方案中,有几个特点:一是水表字轮直径较小,传感器之间距离较近,二是为了防潮需要,传感器和字轮面之间一般有一层厚度不小于1mm的透明隔离塑料,隔离塑料与字轮和传感器之间还分别要留有空隙,避免塑料壁摩擦字轮阻碍字轮的转动,同时给传感器焊接安装预留加工裕度,这样就造成反射光受各种分界面的影响,接受信号幅度必然是渐变的,最终产生的信号如图1所示。
根据以上特点,本实施例利用顺时针/逆时针转动时当前编码发生改变的两位信号之间的关系来模拟出一位指针(即计量单位为字轮的1/10)的角度,来满足直读水表运行状态监控的需要,其核心点在于:将顺时针/逆时针转动时当前编码发生改变的两位信号的位序号和变化方向组成一个字节产生一个table_code2 [32]含义数组,通过查询该数组,按2个位的变化方向分4种状态,相同变化方向按电平差、不同变化方向按电平和分4或5档,以5分为例,取基本读数为x.17,x.50,x.83,在基本读数的基础上修正-0.13,-0.065,0,0.065,0.13,最后四舍五入到0.0-9.9的读数,以下进行详细说明:
(一)基本定义
为了对本实施例所述方案进行清楚的描述,以下给出如下定义:
对于一种产品结构和硬件环境确定的产品,其AD(模数转换:Analog-to-DigitalConverter)采样值的高/低电平是大体固定的。定义“HIGH”为高电平AD采样值,“LOW”为低电平AD采样值。其他常数都由这两个常数产生,具体定义如下常量:
REF(中位参考电平):(HIGH+LOW)*1/2;
REF1(中位参考电平1):(REF+LOW) (如图5或图6所示,其表示电平和修正时,电平和的最小值);
REF2(中位参考电平2):(REF-LOW) (如图4所示,其表示电平差(即顺时针转动和逆时针转动时变换位电平均变高)修正时,电平差的最大值);
REF3(中位参考电平3):(REF -LOW ) *1/3 ;
REF4(中位参考电平4):(REF -LOW ) *2/3;
REF5(中位参考电平5):(HIGH +REF) (如图5或图6所示,其表示电平和修正时,电平和的最大值);
REF6(中位参考电平6):(HIGH+LOW) (如图5或图6所示,其表示电平和修正时,电平和的中值);
REF7(中位参考电平7):REF6 + (REF5-REF6)* 2/3;
REF8(中位参考电平8):REF6 + (REF5-REF6)* 1/3;
REF9(中位参考电平9):REF1 + (REF6-REF1)* 2/3;
REF10(中位参考电平10):REF1 + (REF6-REF1)* 1/3;
REF11(中位参考电平11):HIGH-REF(如图7所示,其表示电平差(即顺时针转动和逆时针转动时变换位电平均变低)修正时,电平差的最大值);
REF12(中位参考电平12):REF11* 2/3;
REF13(中位参考电平13):REF11*1/3;
(2)具体方案
本实施例所述方案采用如图2编码盘,在圆周方向间隔36°均匀放置5只光电传感器时,可以得出表1中30组code0编码。
表1二值码与基本字轮编码及精细编码之间的映射关系表
Figure DEST_PATH_IMAGE001
上述表1的构建具体为:采用5个光电管的编码方案,预先采集字轮处于不同位置时,5个光电管的原始电平数据;基于获得的中位参考电平,对获得的原始电平数据进行二值化处理,产生分别对应字轮数字0至9共10个数字的上、中及下位置的二值码,将其定义为code0;对于获得的每个二值码,确定其对应的基本字轮读数,其中,所述基本字轮读数包括二值码对应的字轮数字及数字所述的上中下位置,将其定义为code1;对于获得的每个二值码,确定其对应的精细编码,其中,所述精细编码包括字轮逆时针及顺时针偏移时二值码对应电平变化位及变化方向,将其定义位code2。
进一步的,本实施例所述方案具体实施过程具体如下:
(1)采样并保留二值化前的5组接收管原始电平数据,ad_ sampling [ad0,ad1,ad2,ad3, ad4]。
(2)如图1所示,ad0~ad4值分别和REF比较产生二值码,生成下面表1中30组编码code0。
(3)所述code0共30组编码,分别对应表盘0-9共10个数字的上、中、下。用code1表示字轮读数,高4位是对应当前字轮数字,低4位是对应字轮的上中下三个位置(分别用0,1,2表示)。
根据表1中code0的顺序,生成基本字轮编码数组table_code1如下:
table_code1 [32] =
{0x91,0x90,0x92,0x60,0x01,0x22,0x00,0x30,0x12,0x20,
'E',0x52,0x11,0x21,0x32,0x31,0x81,0x82,0x71,0x61,0x02,'E',0x70,0x62,0x80,0x50,0x72,0x51,0x10,0x42,
0x40,0x41};其中,两组为”E”的数值是5位传感器不可能产生的2组编码。
(4)所述Code2用Bit7表示逆时针转动时变化位电平变化方向,0表示由高变低,1表示由低变高;Bit6~4表示逆时针转动时变化的bit位。用bit3表示顺时针转动时变化位电平变化方向,0表示由高变低,1表示由低变高;Bit2~0表示顺时针转动时变化的bit位。
根据表1中code0的顺序,生成精细编码数组table_code2如下:
table_code2 [32] =
{0x89,0xc0,0x1a,0xbc,0x9c,0xb9,0x21,0x1b,0xa8,0x0a,
0xff,0xc3,0xc2,0x23,0x8c,0x30,0xb8,0x04,0xab,0x4a,
0x4b,0xff,0x82,0x20,0x93,0xa9,0x31,0x14,0x34,0x92,
0x48,0x01};
(5)通过查表计算字轮读数
1)Code1解码:
根据code0, 采用查表逻辑,可解析出表盘数字及上中下位置:
字轮读数:Code1 = table_code1[Code0];
例如:当code0=00000B时,解析出的code1=91H,含义字轮读数9的中位。
2)Code2精细解码:
Code2 = table_code2 [Code0];
例如:当原始code0=00000B时,对应的如图3所示(其对应于字轮读数9的中位),解析出的code2=89H
即:逆时针转动变化位:bit_no_anti_clock= B(code2.bit6~4) = B(000),变化位为第0位(bit0);
逆时针转动时bit_no_ anti_clock位电平变化方向:direction_ anti_clock =B(code2.bit7) = 1,往高电平变化;
对应位ad采样值:ad_anti_clock =ad_sampling[bit_no_ anti_clock ];
顺时针转动时变化位:bit_no_ clockwise = B(code2.bit2~0) = B(001),变化位为第1位(bit1);
顺时针转动时这一位变化方向: direction_ clockwise = B(code2.bit3) = 1,往高电平变化;
对应位ad采样值:ad_ anti_clock = ad_sampling[bit_no_ clockwise ];
3) 查表结束后按以下共4种状态分别进行精细读数:
fine_adjust为精细调整值,取 -0.13,-0.065,0,0.065,0.13
状态1:direction_ anti_clock =1,direction_ clockwise =1:
电平差修正1:(即顺/逆时针转动变化位电平均变高,如图4所示,根据两个变化位电平的差值进行修正)
ad_ anti_clock - ad_ clockwise >= REF4 ,fine_adjust = -0.13;
REF3<=ad_ anti_clock - ad_ clockwise < REF4; fine_adjust = -0.065;
- REF3<=ad_ anti_clock - ad_ clockwise <REF3 ,fine_adjust = 0;
- REF4<=ad_ anti_clock - ad_ clockwise < -REF3 ,fine_adjust = 0.065;
ad_ anti_clock - ad_ clockwise < -REF4 ,fine_adjust = 0.13;
状态2:direction_ anti_clock =0,direction_ clockwise =0:
电平差修正2:(即顺/逆时针转动变化位电平均变低,如图7所示,根据两个变化位电平的差值进行修正)
ad_ anti_clock - ad_ clockwise >= REF12 ,fine_adjust = 0.13;
REF13<=ad_ anti_clock - ad_ clockwise < REF12; fine_adjust = 0.065;
- REF13<=ad_ anti_clock - ad_ clockwise <REF13 ,fine_adjust = 0;
- REF12<=ad_ anti_clock - ad_ clockwise < -REF13 ,fine_adjust = -0.065;
ad_ anti_clock - ad_ clockwise < -REF12 ,fine_adjust = -0.13;
状态3:direction_ anti_clock =1,direction_ clockwise =0:
电平和修正1:(即逆时针转动变化位电平变高,顺时针转动变化位电平变低,如图5所示,根据两个变化位电平的和值进行修正)
ad_ anti_clock +ad_ clockwise >= REF7 ,fine_adjust = -0.13;
REF8<=ad_ anti_clock + ad_ clockwise < REF7; fine_adjust = -0.065;
REF9<=ad_ anti_clock + ad_ clockwise <REF8 ,fine_adjust = 0;
REF10<=ad_ anti_clock +ad_ clockwise <REF9 ,fine_adjust = 0.065;
ad_ anti_clock + ad_ clockwise <REF10 ,fine_adjust = 0.13;
状态4:direction_ anti_clock =0,direction_ clockwise =1:
电平和修正2:(即逆时针转动变化位电平变低,顺时针转动变化位电平变高,如图6所示,根据两个变化位电平的和值进行修正)
ad_ anti_clock +ad_ clockwise >= REF7 ,fine_adjust = 0.13;
REF8<=ad_ anti_clock + ad_ clockwise < REF7; fine_adjust = 0.065;
REF9<=ad_ anti_clock + ad_ clockwise <REF8 ,fine_adjust = 0;
REF10<=ad_ anti_clock +ad_ clockwise <REF9 ,fine_adjust = -0.065;
ad_ anti_clock + ad_ clockwise < REF10 , fine_adjust = -0.13。
4)计算最终读数
Code1转换: 高4位为整数,低4位为0时小数为0.17,低4位为1时小数为0.5,低4位为2时小数为0.83;最终读数:Code3 = Code1 + fine_adjust,四舍五入保留一位小数,最后得出0.0-9.9包含1/10精度的直读读数,实现反射式光电直读水表的高精度解码。
实施例二:
本实施例的目的是提供一种高精度反射式光电直读水表解码系统。
一种高精度反射式光电直读水表解码系统,包括:
数据获取单元,其用于获取反射式光电直读水表当前时刻最低位字轮对应的若干光电管的原始电平数据,其中,所述反射式光电直读水表每个字轮均对应设置有一组均匀布置的光电管;将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码;
查表计算单元,其用于基于预先构建的二值码与基本字轮编码及精细编码之间的映射关系表,确定当前时刻字轮位置所对应二值码的字轮数字、数字所处的上中下位置、字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值;
解码单元,其用于基于所述二值码的字轮数字及数字所处的上中下位置确定基本字轮读数;基于所述字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值,确定字轮读数的精细调整值;对所述基本字轮读数和精细调整值求和,获得当前时刻最低位字轮对应的精确读数,并结合高位字轮读数,实现反射式光电直读水表的高精度解码。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种高精度反射式光电直读水表解码方法,其特征在于,包括:
获取反射式光电直读水表当前时刻最低位字轮对应的若干光电管的原始电平数据,其中,所述反射式光电直读水表每个字轮均对应设置有一组均匀布置的光电管;将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码;
基于预先构建的二值码与基本字轮编码及精细编码之间的映射关系表,确定当前时刻字轮位置所对应二值码的字轮数字、数字所处的上中下位置、字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值;
基于所述二值码的字轮数字及数字所处的上中下位置确定基本字轮读数;
基于所述字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值,确定字轮读数的精细调整值;
对所述基本字轮读数和精细调整值求和,获得当前时刻最低位字轮对应的精确读数,并结合高位字轮读数,实现反射式光电直读水表的高精度解码。
2.如权利要求1所述的一种高精度反射式光电直读水表解码方法,其特征在于,所述反射式光电直读水表每个字轮对应设置有5个光电管,所述光电管在圆周方向上间隔36°均匀布置;所述光电管配合预设的字轮编码盘实现对字轮上数字0至9的编码,其中,每个数字的上中下分别对应一个独立的编码。
3.如权利要求1所述的一种高精度反射式光电直读水表解码方法,其特征在于,所述将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码,具体为:基于中位参考电平对原始电平数据进行二值化处理,其中,所述位参考电平为光电管采样电平中高电平和低电平的均值。
4.如权利要求1所述的一种高精度反射式光电直读水表解码方法,其特征在于,所述二值码与基本字轮编码及精细编码之间的映射关系表的构建,具体为:
采用5个光电管的编码方案,预先采集字轮处于不同位置时,5个光电管的原始电平数据;基于获得的中位参考电平,对获得的原始电平数据进行二值化处理,产生分别对应字轮数字0至9共10个数字的上、中及下位置的二值码,将其定义为code0;
对于获得的每个二值码,确定其对应的基本字轮读数,其中,所述基本字轮读数包括二值码对应的字轮数字及数字所述的上中下位置,将其定义为code1;
对于获得的每个二值码,确定其对应的精细编码,其中,所述精细编码包括字轮逆时针及顺时针偏移时二值码对应电平变化位及变化方向,将其定义位code2。
5.如权利要求4所述的一种高精度反射式光电直读水表解码方法,其特征在于,所述code1的定义,具体为:对于字轮数字0至9分别处于上中下位置处时所对应的任意一个二值码,利用一个字节表示其对应的字轮读数,其中,高4位表示二值码对应的当前字轮数字,低4位表示二值码对应的当前字轮数字的上中下位置,分别用0,1,2表示。
6.如权利要求4所述的一种高精度反射式光电直读水表解码方法,其特征在于,所述code2的定义,具体为:对于字轮数字0至9分别处于上中下位置处时所对应的任意一个二值码,利用一个字节表示其对应的精细编码,其中,第7位表示字轮逆时针转动时变化位电平变化方向,第6位至第4位表示逆时针转动时变化的位,第3位表示顺时针转动时变化位电平变化方向,第2位至第0表示顺时针转动时变化的位。
7.如权利要求1所述的一种高精度反射式光电直读水表解码方法,其特征在于,所述基于所述字轮逆时针转动及顺时针转动时的二值码变化位、所述变化位电平变化方向及所述变化位对应的电平采样值,确定字轮读数的精细调整值,具体采用如下公式:
当direction_ anti_clock =1,direction_ clockwise =1时,fine_adjust值的确定采用如下规则:
ad_ anti_clock - ad_ clockwise >= REF4 ,fine_adjust = -0.13;
REF3<=ad_ anti_clock - ad_ clockwise < REF4; fine_adjust = -0.065;
- REF3<=ad_ anti_clock - ad_ clockwise <REF3 ,fine_adjust = 0;
- REF4<=ad_ anti_clock - ad_ clockwise < -REF3 ,fine_adjust = 0.065;
ad_ anti_clock - ad_ clockwise < -REF4 ,fine_adjust = 0.13;
当direction_ anti_clock =0,direction_ clockwise =0时,fine_adjust值的确定采用如下规则:
ad_ anti_clock - ad_ clockwise >= REF12 ,fine_adjust = 0.13;
REF13<=ad_ anti_clock - ad_ clockwise < REF12; fine_adjust = 0.065;
- REF13<=ad_ anti_clock - ad_ clockwise <REF13 ,fine_adjust = 0;
- REF12<=ad_ anti_clock - ad_ clockwise < -REF13 ,fine_adjust = -0.065;
ad_ anti_clock - ad_ clockwise < -REF12 ,fine_adjust = -0.13;
当direction_ anti_clock =1,direction_ clockwise =0时,fine_adjust值的确定采用如下规则:
ad_ anti_clock +ad_ clockwise >= REF7 ,fine_adjust = -0.13;
REF8<=ad_ anti_clock + ad_ clockwise < REF7; fine_adjust = -0.065;
REF9<=ad_ anti_clock + ad_ clockwise <REF8 ,fine_adjust = 0;
REF10<=ad_ anti_clock +ad_ clockwise <REF9 ,fine_adjust = 0.065;
ad_ anti_clock + ad_ clockwise <REF10 ,fine_adjust = 0.13;
当direction_ anti_clock =0,direction_ clockwise =1时,fine_adjust值的确定采用如下规则:
ad_ anti_clock +ad_ clockwise >= REF7 ,fine_adjust = 0.13;
REF8<=ad_ anti_clock + ad_ clockwise < REF7; fine_adjust = 0.065;
REF9<=ad_ anti_clock + ad_ clockwise <REF8 ,fine_adjust = 0;
REF10<=ad_ anti_clock +ad_ clockwise <REF9 ,fine_adjust = -0.065;
ad_ anti_clock + ad_ clockwise <REF10 ,fine_adjust = -0.13;
其中,direction_ anti_clock为字轮逆时针转动时变化位电平变化方向,direction_clockwise为字轮顺时针转动时变化位电平变化方向,fine_adjust为精细调整值,ad_anti_clock为字轮逆时针转动时变化位对应的电平采样值,ad_ clockwise为字轮顺时针转动时变化位对应的电平采样值,REF为中位参考电平,REF1为电平和修正时电平和的最小值,REF2为电平差修正时电平差的最大值,REF3为REF2的1/3,REF4为REF2的2/3,REF5为电平和修正时,电平和的最大值,REF6为电平和修正时电平和的中值,REF7为REF6 + (REF5-REF6)* 2/3,REF8为REF6 + (REF5-REF6)* 1/3,REF9为REF1 + (REF6-REF1)* 2/3,REF10为REF1 + (REF6-REF1)* 1/3,REF11为电平差修正时电平差的最大值,REF12为REF11 的2/3,REF13为REF11的 1/3。
8.一种高精度反射式光电直读水表解码系统,其特征在于,包括:
数据获取单元,其用于获取反射式光电直读水表当前时刻最低位字轮对应的若干光电管的原始电平数据,其中,所述反射式光电直读水表每个字轮均对应设置有一组均匀布置的光电管;将获得的若干原始电平数据进行二值化处理,获得当前时刻字轮位置对应二值码;
查表计算单元,其用于基于预先构建的二值码与基本字轮编码及精细编码之间的映射关系表,确定当前时刻字轮位置所对应二值码的字轮数字、数字所处的上中下位置、字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值;
解码单元,其用于基于所述二值码的字轮数字及数字所处的上中下位置确定基本字轮读数;基于所述字轮逆时针转动及顺时针转动时的二值码变化位、变化位电平变化方向及变化位对应的电平采样值,确定字轮读数的精细调整值;对所述基本字轮读数和精细调整值求和,获得当前时刻最低位字轮对应的精确读数,并结合高位字轮读数,实现反射式光电直读水表的高精度解码。
9.如权利要求8所述的一种高精度反射式光电直读水表解码系统,其特征在于,所述反射式光电直读水表每个字轮对应设置有5个光电管,所述光电管在圆周方向上间隔36°均匀布置;所述光电管配合预设的字轮编码盘实现对字轮上数字0至9的编码,其中,每个数字的上中下分别对应一个独立的编码。
10.如权利要求8所述的一种高精度反射式光电直读水表解码系统,其特征在于,所述二值码与基本字轮编码及精细编码之间的映射关系表的构建,具体为:
采用5个光电管的编码方案,预先采集字轮处于不同位置时,5个光电管的原始电平数据;基于获得的中位参考电平,对获得的原始电平数据进行二值化处理,产生分别对应字轮数字0至9共10个数字的上、中及下位置的二值码,将其定义为code0;
对于获得的每个二值码,确定其对应的基本字轮读数,其中,所述基本字轮读数包括二值码对应的字轮数字及数字所述的上中下位置,将其定义为code1;
对于获得的每个二值码,确定其对应的精细编码,其中,所述精细编码包括字轮逆时针及顺时针偏移时二值码对应电平变化位及变化方向,将其定义位code2。
CN202211036542.5A 2022-08-29 2022-08-29 一种高精度反射式光电直读水表解码方法及系统 Active CN115112196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211036542.5A CN115112196B (zh) 2022-08-29 2022-08-29 一种高精度反射式光电直读水表解码方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211036542.5A CN115112196B (zh) 2022-08-29 2022-08-29 一种高精度反射式光电直读水表解码方法及系统

Publications (2)

Publication Number Publication Date
CN115112196A true CN115112196A (zh) 2022-09-27
CN115112196B CN115112196B (zh) 2022-11-29

Family

ID=83335637

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211036542.5A Active CN115112196B (zh) 2022-08-29 2022-08-29 一种高精度反射式光电直读水表解码方法及系统

Country Status (1)

Country Link
CN (1) CN115112196B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1289015A (zh) * 1970-06-15 1972-09-13
US4787054A (en) * 1983-07-25 1988-11-22 Cain Encoder Co. Interdial compensation technique for angular position detectors
JPH11201797A (ja) * 1998-01-12 1999-07-30 Aichi Tokei Denki Co Ltd 水道メータの表示装置
EP1489387A1 (fr) * 2003-06-19 2004-12-22 Codechamp S.A. Procédé d'interpolation angulaire réalisé pour codeur optique haute résolution et le codeur optique
CN202171484U (zh) * 2011-06-01 2012-03-21 上海城市水资源开发利用国家工程中心有限公司 高可靠电直读式仪表计数器
CN103852123A (zh) * 2012-11-29 2014-06-11 哈尔滨市三和佳美科技发展有限公司 光电水表专用反射码盘
CN205352488U (zh) * 2016-01-18 2016-06-29 重庆巨泰物联网科技有限公司 带光电直读数编码字轮结构的计数器
CN209264048U (zh) * 2019-01-14 2019-08-16 深圳市千宝通通科技有限公司 一种干式智能表

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1289015A (zh) * 1970-06-15 1972-09-13
US4787054A (en) * 1983-07-25 1988-11-22 Cain Encoder Co. Interdial compensation technique for angular position detectors
JPH11201797A (ja) * 1998-01-12 1999-07-30 Aichi Tokei Denki Co Ltd 水道メータの表示装置
EP1489387A1 (fr) * 2003-06-19 2004-12-22 Codechamp S.A. Procédé d'interpolation angulaire réalisé pour codeur optique haute résolution et le codeur optique
CN202171484U (zh) * 2011-06-01 2012-03-21 上海城市水资源开发利用国家工程中心有限公司 高可靠电直读式仪表计数器
CN103852123A (zh) * 2012-11-29 2014-06-11 哈尔滨市三和佳美科技发展有限公司 光电水表专用反射码盘
CN205352488U (zh) * 2016-01-18 2016-06-29 重庆巨泰物联网科技有限公司 带光电直读数编码字轮结构的计数器
CN209264048U (zh) * 2019-01-14 2019-08-16 深圳市千宝通通科技有限公司 一种干式智能表

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
N.G. BOURBAKIS: "Design of an autonomous navigation system", 《IEEE CONTROL SYSTEMS MAGAZINE》 *
孟锦根: "一种新型编码字轮智能水表的编码技术", 《科学家》 *
李乾坤: "基于模板匹配的水表读数识别方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Also Published As

Publication number Publication date
CN115112196B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
CN201780116U (zh) 检测旋转物体转速及旋转角度的光电编码器
US4529964A (en) Encoder for length or angle measuring device with high accuracy
US5252825A (en) Absolute encoder using interpolation to obtain high resolution
CN101281619A (zh) 计数器编码字轮的编码方法
CN104457806A (zh) 一种复合型旋转编码器及其测量方法
KR20130106315A (ko) 인코더
CN101210821A (zh) 一种双通道轴角转换和测量中粗精耦合的方法
CN111366177B (zh) 一种游标绝对式光电编码器单圈绝对位置读取装置及方法
CN105509779A (zh) 一种绝对式光电码盘及光电编码器
CN115112196B (zh) 一种高精度反射式光电直读水表解码方法及系统
CN101922947A (zh) 一种光电编码器
CN110207773A (zh) 实时式编码直读远传水表及计数方法
CN108106647B (zh) 一种单轨道绝对式光电编码器的码盘构造方法
CN209820558U (zh) 实时式编码直读远传水表
CN202083361U (zh) 一种基于阵列探测器的绝对轴角编码系统
CN111811562B (zh) 一种基于微控制器的增量式光电编码器精粗校正方法
US3898649A (en) Encoder device for use with polydecade consumption or usage meters
CN115900781A (zh) 一种码盘旋转角度数据读取方法
CN215893647U (zh) 编码器、电机及自动化设备
CN101750109B (zh) 一种码盘计数编码器
CN103017803A (zh) 编码器码盘
CN109443402B (zh) 一种码盘及编码器
CN114279366A (zh) 一种光电编码器的粗码精码的校正方法和装置
CN110132327B (zh) 一种光电编码器
CN102829808B (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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A high-precision reflective photoelectric direct reading water meter decoding method and system

Effective date of registration: 20230609

Granted publication date: 20221129

Pledgee: Prudential Bank Ji'nan branch of Limited by Share Ltd.

Pledgor: JINAN RICHNES ELECTRONIC Co.,Ltd.

Registration number: Y2023980043308

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20221129

Pledgee: Prudential Bank Ji'nan branch of Limited by Share Ltd.

Pledgor: JINAN RICHNES ELECTRONIC Co.,Ltd.

Registration number: Y2023980043308

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A high-precision reflective photoelectric direct reading water meter decoding method and system

Granted publication date: 20221129

Pledgee: Prudential Bank Ji'nan branch of Limited by Share Ltd.

Pledgor: JINAN RICHNES ELECTRONIC Co.,Ltd.

Registration number: Y2024980024276