摘 要:介绍了在三坐标测量机研制中,对光栅测量系统的设计时产生的测量误差的原因进行了分析,并提出了解决方案。实验证明,该方法可很好地解决测量误差的问题。
关键词:光栅数显表;测量误差;单片机
分类号:TP216 文献标识码:B
文章编号:1001-2265(2000) 02-0029-04
微电子和计算机技术的发展,使采用光栅传感器作为长度、角度检测元件的自动检测技术已在自动控制、数控机床、仪器仪表及计量仪器等领域中得到普遍应用[1]。根据仪器的测量原理的不同,光栅信号处理电路的光栅数显表的设计原理也有所不同,这就要求在设计仪器时根据仪器所采用的测量方法的不同而选用不同的光栅数显表。
1 光栅数显表简介
目前市面上光栅信号的处理电路大部分是微机型光栅数显系统。下面以某公司生产的光栅数显表为例阐述其基本的工作原理。原理框图如图1所示(光栅信号为三路X、Y、Z,这里只画一路)。光栅的输出的信号经过放大、整形、细分、辨向后,输出脉冲信号,两片8253可编程计数器对脉冲进行计数。8253有3个独立的通道,各通道均为16位2进制计数器,计数速率均为2.6Mkz,8253可由软件控制。每一路用2个计数器分别作为加计数器和减计数器,计数器的容量可达216,即64K,只要CPU对8253在两次采样间隔内不发生计数溢出,便可满足响应要求。8253的连接图如图2所示。微处理器周期地对2个8253计数器采样,通过运算求出它们的增量的大小和方向,再与原累积值相加,得到该采样周期的位移,新的累积值是位移坐标。数显表细分倍数为20,最小分辨率为0.5μm,微处理器为8031单片机。此数显表为微机型光栅数显表,对数据的锁存是通过软件来实现的。这种数显表在许多闭环系统的位置反馈环节中(数控机床),以及长度测量中(如测长仪,测微仪等静态测量仪器)得到广泛的使用。但这种数显表应用到需要实时保存数据的高精密的点位测量仪器中(如三坐标机),将会产生很大的测量误差。下面以此光栅数显表为例,分析这种数显表在长度测量的点位测量场合时产生误差的原因。
图1 微机型光栅数显表原理框图
图2 计数器计数及采样过程
2 光栅测量系统产生误差的原因
在长度测量的点位测量场合应用这种光栅测量系统时,产生误差的主要原因是由于系统的某些环节的速度跟不上而使系统产生延时所致。一般来说,现代集成技术的发展,电路及元件的响应速度应是很快的,可达纳秒级水平,相对于光栅10m/min的移动速度,电路及元件的延时可以忽略不计,系统的延时主要是由软件产生的延时所至。
此数显表的工作原理图如图2所示。计数器采用的是两片8253可编程计数器,与CPU的连接见图2。数显表的分辨率为0.5μm,微处理器为8031单片机,为微机型光栅数显表,对数据的锁存是通过软件来实现的,软件的延时是产生误差的原因。
现以测量机的测量过程为例来进行具体分析。为了简单起见,只测量X方向的值(x变化,y、z不变,使被检测的量块工作尺寸方向与X方向平行,量块工作尺寸为X方向的坐标差的绝对值),其采数过程是这样的,当测头与工件接触时测头发出触发脉冲(此时工件的被测点的坐标为(x、y、z)),此脉冲送入8031单片机内作为中断信号使程序产生中断,转入执行中断采数子程序,采集8253计数器的数据送入CPU加以处理。测点1的X方向坐标为X1,测点2的X方向坐标为X2,则量块的尺寸L=|X2-X1|。如图3所示,当测点1与测头接触时,此时坐标为X1,测头产生脉冲引起中断(此时刻为t1,执行中断子程序采集数据的时刻为t1′)。工件会由于惯性而继续向前运动,在t1′时坐标为X1′,这样X1′=X1-ΔX1。同理,计算机采到的工件的测点2坐标值为X2′,实际需要的坐标为X2,则X2′=X2+ΔX2。测量计算出来的值为:L′=|X2′-X1′|,则L-L′=ΔX1+ΔX2。把汇编程序读出来并反汇编成源代码后,对源代码加以分析可以计算出软件的延时Δt。
图3 测量工件示意图
这台数显表使用的CPU为8031,其晶振为6MHz,机器周期为1μs。典型的指令周期(执行一条指令的时间)为一个机器周期。当单片机确定请求有效到进入响应状态,执行中断子程序时,至少3个机器时间间隔;单片机响应中断,必须在当前指令执行完后才进行,这就可能增加2~4个机器时间间隔;当单片机正在执行RETI或读写IE、IP指令时,单片机响应中断,必须等待2~5个机器时间间隔。总之,单片机响应中断响应时间为5~12机器时间间隔[2]。
其中断采数程序框图如图4所示。其程序如下:
图4 采数接口程序图
从上面的中断子程序可以看出,将8253的计数器的值锁存后再读出来时就不会产生误差。把中断子程序的指令归类,汇总计算执行这些指令所须的机器周期数,如下表1所示。从表1可以看出,从测头接触工件发出触发脉冲,到数显表读到数据时共有33~40个机器周期的延时,即33~40μs的延时。设延时的时间间隔为Δt,工件的测量移动速度为v m/min(v<10m/min),则每微秒移动的距离为v/60μm,在测测点1时的速度为v1/60μm,在测测点2时的速度为v2/60μm。测量图如图5所示。
图5 检测示意 表1 程序中所用的指令统计表 |
项目 | 数量 | 指令所需的机器周期数 | 总计机器周期数 |
中断等待 | 5~12 | 5~12 | |
PUSH指令 | 6 | 2 | 12 |
MOV指令 | 6 | 1 | 6 |
MOVX指令 | 10 | 2 | 20 |
合计 | 33~40 |
3 实验结果验证 三坐标测量机采用的测量方法主要是点位测量。上述的数显表应用在三坐标测量机时,由于其不具备实时保存数据的能力,系统的延时会使测量系统具有很大的原理性误差,不可忽视。作者在研制三坐标测量机时曾遇到上述问题。测量机上使用的数显系统跟上述的型号一样。测量机设计的分辨率为0.5μm,三维空间精度1+L/300(μm),工作台范围为300×300×400(mm)。 表2 实验测量结果表 |
测量次数 | 1 | 2 | 3 | 4 | 5 |
测量结果 | 200mm +1μm |
200mm +4μm |
200mm +8μm |
200mm +2μm |
200mm +10μm |
误差值 | 1μm | 4μm | 8μm | 2μm | 10μm |
从表2的测量数据来看,测量精度超出设计精度,测量数据的离散性大,重复精度很差,且稳定性差(其他两轴方向Y、Z也有类似的结果)。在测试中还发现误差的大小与测量时测头与工件的接触速度很有关系,速度大,误差大,当速度为零时误差在允许的范围内,测量结果很好,测量误差小于1μm且重复性很好。这个测量结果与设计指标相差甚远,排除了其他方面的原因,通过对光栅数显表进行分析,认为数显表的软件的延时是产生误差的原因。 4 解决方案 三坐标测量机测量是属于点位测量,它的测量系统必须具有实时数据锁存的功能,为了达到这一要求,对原有的数显表加以改进。把8253计数脉冲源断开,使8253计数器无效。在数显表内加入一附加的实验电路板(多片192计数器串连和多片373寄存器串连),把计数脉冲引入192计数器中,寄存器的输入端与计数器相连,输出端与CPU的P1口数据总线相连,中断源同时跟微处理的中断口和寄存器相连,使中断信号可同时送到寄存器和微处理中,其改进后的基本原理框图如图6所示。为了与改装后的硬件相适应,对软件重新改写,编译写入程序存储器中。改造完成后进行测试,误差能很好地控制在1μm以内。为了充分利用微机的功能,使仪器紧凑,且提高仪器的可靠性,将数显表的功能以计算机板卡的形式实现。方案原理图如图7所示。原理图虚框内为光栅数据采集卡原理图,采用微机插卡的形式代替光栅数显表。计数器采用192或193可逆计数器,寄存器采用74LS173(其带有三态门3D锁存器),从三维测头发出的触发脉冲接入寄存器的三态门的使能信号输入端,同时作为微机的IQR3的中断源。当触发脉冲到来时,立即把计数器里的值打入寄存器中,同时引起计算机中断,执行中断采数子程序。当没有触发脉冲时,微机循环采数,连续显示当前的坐标值。采数接口程序框图如图8所示。此程序采用C语言编写,中断子程序(函数)采用内嵌式汇编编写。按照此原理制作的光栅采数接口卡插入微机内,并与光栅传感器连接调整好后,测量精度及重复精度都能很好地控制在1μm以内,达到了设计要求。 |
图6 具有实时锁存功能的微机型光栅数显表原理框图
图7 光栅测量系统框图
图8 采数接口程序图
5 结论
本文分析了在设计仪器时,对不具备实时数据锁存的光栅数显表应用在点位测量场合产生的误差进行了分析,找出了产生误差的原因。因光栅测量系统类型繁多,且测量精度和适用范围不同,所以在设计机床和仪器时,应根据不同的具体情况选择不同的光栅的测量系统,如有可能因尽量了解系统的工作原理,看其是否与自己设计的机床或仪器相符合,否则有可能发生选型失误,造成不必要的损失。
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暂无反馈