游标磁尺的设计与实现
扫描二维码
随时随地手机看文章
引 言
目前,广泛用于位置测量的传感器主要有旋转编码器、光栅光电编码器、磁栅尺、磁致伸缩位置传感器、静磁栅绝对编码器等。以物体的直线运动带动旋转编码器的马盘做旋转运动,并转换为连续的有方向的脉冲信号,以表示物体的位置,这种形式的编码器称为增量型旋转编码器。还有一种绝对位置旋转编码器能将物体的位置直接用数字表达,即使掉电编码也不丢失。其量程和精度由旋转机构的速度比和加工精度决定。旋转编码器的最大缺点是需要一套将直线运动转换成旋转运动的结构,安装成本颇高,机械传动带来间隙误差相当程度地削减了旋转编码器固有的分辨度,同时,长期使用还容易造成码盘破损之类的机械损伤。另外,还需要接触测量。
光栅光电编码器的标尺光栅和指示光栅都是由窄的矩形不透明的线纹和其等宽的透明间隔所组成,一旦被灰尘遮盖或油渍浸泡,就影响其使用;并且在测量中不能掉电,一旦掉电,将会丢失掉电期间位移发生改变的数值。磁栅尺是在非导磁材料上涂一层10~20μm的磁胶,通过交流磁头读取刻录在磁带上的位置信息,当这种位置传感器处在恶劣环境中,如海水,这将严重影响交流磁头与磁带间的磁场传播。磁致伸缩位置传感器不仅响应速度低而且成本高。
静磁栅绝对编码器的静磁栅源与静磁栅尺之间非接触工作,在安装使用方面,有很高的相对间隙宽容度和相对姿态宽容度。无论量程多长,只要保证安装精度,就能获得非常小的示值误差,而且不受外界温度、湿度、杂散磁场、电磁干扰等因素影响,具有很强的防震,防撞击,防水,抗污染,抗干扰,抗恶劣环境能力,可以在水下1 000 m范围内工作。但是它的位置信息是用绝对磁栅编码来确定,因此会存在响应速度低,测量精度差等缺点,并且价格也偏高。在此设计一种抗恶劣环境的位置测量装置游标磁尺。该磁尺不仅克服了静磁栅绝对编码器的缺点,而且测量精度高,响应速度快,还具有静磁栅绝对编码器的优点。
1 游标磁尺的结构
游标磁尺结构框图如图1所示。图1中RS 485/RS 232转换器主要是为了实现远距离通信而设置。它可以分为上、下位机两个部分,上、下位机分工明确。作为下位机核心器件的PIC单片机,主要负责位置信息的处理和通信,而上位机主要负责对PIC单片机处理得到位置值的实时显示。上位机的实时显示功能主要利用基于图形界面的Windows系统下的Visual Basic制作的实时显示操作平台实现。上、下位机通过数据通信传递信息。单片机和PC机的通信是通过单片机的串口和PC机串口之间的硬件连接实现的。其实际结构图如图2所示,实物图中没有拍下位置显示平台。
2 工作原理
游标磁尺测量原理:使用开关型霍尔元件阵列作为“静尺”;使用无源钕铁硼磁铁作为永磁体阵列(“动尺”)。作为“静尺”的霍尔元件阵列是一种磁传感器能检测出“动尺”的磁场及其变化,当“动尺”沿“静尺”轴线作无接触相对运动时,由“静尺”的霍尔元件阵列记录“动尺”的数字化位置信息。位置的“整数部分”由最开始动作的霍尔元件所处的位置确定,位置的“小数部分”由位置匹配序列确定。所谓位置匹配序列就是“动尺”要满足一定的规格和要求。“动尺”所在的位置值与“盯尺”的霍尔元件阵列动作信息序列匹配,如“小数部分”的2 mm,可以用00111110001100序列对应。因此“小数部分”的O~8需要9个相应的序列对应,确定位置值后将其位置值传送到PC机。一段“静尺”中包含4组霍尔元件阵列,每组霍尔元件阵列由16个霍尔元件组成,每个霍尔元件之间的间隔为9 mm。因此一段的测量长度为567 mm。若要测量更长范围可以采用多段连接进行扩展。
其“整数部分”计算结果D可以由式(1)求出:
式中:l表示最开始动作的霍尔元件处在第几段;m表示处在l段的第几组;n表示处在m组的第几个。
两个霍耳元件之间的位置值相当于“游标磁尺”的“小数”部分,其值d可以由位置匹配序列给出。因此游标磁尺的位置值为K可以由式(2)求出。
式中:D表示磁尺的“整数部分”;d磁尺的“小数部分”。
3 磁尺的硬件电路
用于该磁尺位置信息处理的微处理器主要是采用美国Microchip Technology Incorporated公司生产的PIC系列单片机。利用PIC16F884单片机对“动尺”作用区域的霍尔元件阵列的动作信息进行位置匹配算法处理得到位置数据;然后通过.PIC16F884的异步串口(LISART)经过MAX3471芯片转变成RS 485协议进行远距离传输,到达目的地后在经过RS 485/RS 232转换器转换成RS 232协议;在传送到PC机上显示其位置值。其硬件原理图如图3所示。
4 位置匹配算法和显示的程序设计
4.1 PC机部分(Visual Basic)
该装置的PC部分利用微软公司推出的可视化、面向对象的结构化程序设计语言Visual Basic来制作显示平台。因为Visual Basic软件进行界面设计不仅快捷、编程工作量小;且提供了串行通信控件MSComm,通过对此控件的属性和事件进行编程,就可以轻松的实现串口通信。
4.1.1 MSComm简介
MSComm控件(Microsoft Communications Con-trol)是Microsoft公司提供的ActiveX控件,目的是为了简化Windows下串行通信编程。它既可以用来提供简单的串行通信功能,也可以用来创建完备的、事件驱动的高级通信工具。它通过串行端口传输和接收数据,为应用程序提供串行通信功能。它提供两种处理通信的方式,分别是事件驱动方式和查询方式Ⅲ。
4.1.2 显示平台介绍
该平台采用多文档界面(MDI)制作,MDI应用程序主要由“父窗口”及“子窗口”构成,子窗口的活动范围被限定在父窗口之内。显示平台界面如图4所示。
从界面图中可以看到“父窗口”包含参数初始化和数据显示两个“子窗口”。参数初始化窗口主要负责设置端口、波特率、数据格式、和数据的接收方式;数据显示窗口负责数据的处理和显示。显示平台的使用在相应的窗口中均有说明。没有霍尔元件动作时,显示界面中的数据显示区初始化显示为…*hh<CR><LF>。有霍尔元件动作时,显示界面实时显示其动作的情况。该平台使用简单,极易操作。
4.1.3 MSComm控件的程序设计
Visual Basic设计串行通信程序时依然遵循四个主要步骤,分别是对象、属性、事件和方法。因此,第一步是添加控件。由于Visual Basic的串行通信控件不在工具箱中,当使用MSComm控件时,首先要把它加入到工具箱中。添加步骤是:选择“工程”菜单下的“部件…”子菜单,在弹出的“部件”对话框中,在“控件”选项卡属性中选中“MicrosoftCommControl 6.0”复选框,然后单击“确定”按钮后,在工具箱中就出现了一个形似“电话”的图标,它就是MSComm控件。在窗体中加载MSComm控件对象。第二步是为MSComm控件的属性赋值。第三步利用OnComm事件程序来接收上位机发来的位置数据。由于篇幅限制,在此没有给
出相关程序。
4.2 PIC单片机部分
单片机采用PIC系列单片机。该单片机具有指令集少、功耗低和驱动能力强等特点。单片机程序使用汇编语言编程,采用其内部的异步串口(USART)进行串行通信。由于该系统用于远距离,故串口通信采用的是的RS 485串口通信标准,因此在单片机的串口端加了一个半双工通信的MAX3471芯片。单片机接收到PC机发送来的波特率标志值和自身设定的值比较,然后校正自身的波特率以和PC机的波特率相匹配。单片机除了校正自身波特率和发送相关信息程序,还要提供获得霍尔元件动作情况以及位置值等重要程序。图5是单片机汇编程序流程图。为了提高显示平台接收数据的准确性,单片机数据采用ASCII字符进行传送。
以下仅给出串行通信初始化程序代码:
串行通信初始化程序为:
5 实验结果
实验只是测试了一段,实验阶段为了确定游标磁尺
的测量精度,在图2的结构图中加了一把参照钢尺。钢尺测量的位置读数与游标磁尺测量的位置读数之间的关系如图6所示。
横轴为磁尺位置读数,纵轴为钢尺位置读数。理论情况应该是钢尺与游标磁尺的测量位置值相等,即测量曲线应该为一条理想的直线,从图6可知游标“磁尺”测量位置与实际值略有一点偏差,几乎接近一条直线。由于霍尔元件在实际焊接时的固定位置与理论制版固定位置总有些偏差,因此总会存在一点误差,但偏差很小。
6 结 语
由测试结果表明游标磁尺在位置测量中有独特的优越性。在恶劣的环境下要求响应速度快和分辨率为毫米量级的位置测量时,游标磁尺有很好的应用前景。