首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于PMAC控制卡的激光扫描尺寸测量系统

基于PMAC控制卡的激光扫描尺寸测量系统

引言

  在机械加工中经常需要对一些简单的几何尺寸,如直径、边距等进行测量。这类工作重复性大,工作量大,传统的手工测量不仅增加了现场工作人员的工作强度,精度低,且手工测量的数据在统计处理时也很不方便。这类工作如果使用坐标测量仪等精度高,通用性强的仪器测量,在经济和效率上都很难满足要求。另有一种专门的激光扫描传感器可用于此类测量,但其测量精度是建立在对独立运动系统速度的精确控制上的,这无疑增加了成本。为了方便实现对这类简单、一维尺寸、高效、高精度,且易于数据管理的测量,在此提出一种可在PMAC控制卡控制的普通运动平台上实施激光扫描测量的系统。它融合了以上两种测量方法,即通过对激光信号的检测获得被测物的边缘信号,并根据此信号锁存光栅尺读数,以得到被测物的边缘位置,从而进一步得到尺寸值。

  这种方法具有光电测量高速、非接触的优点,又可充分利用技术成熟、应用广泛的光栅尺资源。由于光栅尺的精度通常都较高,此测量系统可在一定范围内获得较高的精度。

  1测量原理及整体构造

  测量系统由工控机、PMAC控制卡、运动测控系统(包括光栅尺、伺服电机、丝杠等)、激光发射装置和光电检测装置组成。系统的主要原理如图1所示,被测物装在实验台上,并随实验台一起运动,运动的控制由PMAC控制卡完成,它读人光栅尺的读数,并输出给电机的控制量。被测物两侧分别是激光发射装置和光电检测元件,当被测物位于光路中时,检测元件处于断开状态;当被测物离开时,元件导通。随着被测物的移动,当其边沿通过激光束时,检测元件会产生由通到断或由断到通的跳变。通过一定的设置,PMAC可检测到这些跳变信号,并锁存当时的光栅尺读数,这样就得到被测物的边沿位置,而通过测量前后两个边沿位置,就可得到所需的尺寸值。


  激光器采用了小功率半导体激光器,波长为640nm。其小巧的体积和较低的价格使其非常适用于这类应用场合。光电检测元件采用普通的金属封装光电三极管。

  PMAC插在工控机的PCI插槽内,并通过PCI总线进行通信。通信的主要内容有两方面:向PMAC发运动控制指令,从而使其完成平台的运动控制;从PMAC内读取其锁存的被测物边沿位置读数,从而完成结果的输出、保存及分析工作。为方便对采集数据的处理分析,以及便于研究系统性能,该系统采用了工控机加PMAC的组织方案,在系统定型后可以使用更加经济的方案,如ARM-Linux加PMAC。

  PMAC控制卡的使用是很灵活的,要构成上面所述的系统需要对其进行一些设置。下面将详细介绍在这种应用中PMAC卡的设置方法及上下位机通信的实现办法。

  2PMAC卡的设置

  2.1PMAC卡简介

  PMAC运动控制卡是Delta-Tau公司推出的,它是可通过多种方式与微机接口的系列控制卡。该例使用的是PCI接口控制卡:PMAC-PC。

  PMAC本质上是一个基于DSP芯片的多功能板上系统。该例的PMAC有2个主接口,每个主接口可以同时控制4台电机的运动。对于每一台电机,主接口都有一组相应的引脚(如图2所示)。分别负责光栅尺信号输入,电机控制输出和标志信号输入。在该例中主接口通过跳线设置为光电隔离模式。


  除主接口外,PMAC还有一系列通用的模拟、数字输入/输出口。这些端口与其DSP内存统一编址,可通过统一的方式存取。PMAC地址空间的功能是预设固定的,如某一部分地址保存的数据代表某台电机的设置,另一部分则是用户应用所保存的数据。为方便上位机对PMAC内存的操作和应用程序的编写,其内存被按其功能划分为各种变量,如I变量、M变量、P变量。I变量的值设置了PMAC卡的工作环境,这又使I变量可被划分为许多种类型,如电机设置I变量、通信设置I变量、编码器I变量、P变量(供用户程序使用的全局变量、M变量(指针变量),即其本身所代表的内存地址存储的是另一个存储单元的地址)。M变量可根据需要指向任意存储位置,包括内存和端口寄存器。不过在PMAC上电时,部分M变量会被预先初始化为指向特殊位置的值,如M203的缺省值指向2号编码器的位置捕获寄存器。

  2.2位置捕获功能的设置

  位置捕获功能是指在一个外部事件进入某一寄存器时,锁存相应的当前编码器位置。这是一个完全由与编码器相关的硬件电路来完成的任务,所以它惟一的延迟就是硬件门的延迟,这使它具有非常高的位置捕捉精度。
电路的工作方式可通过软件选择,如可设置读入外部事件的位置。设置是通过相关编码器I变量完成的。每一个编码器都可通过5个I变量来设置,位置捕获功能相关的变量为编码器I变量2和编码器I变量3。变量3设置事件捕捉的位置,如可将其设为通过HOME标志捕捉。变量2设置外部事件的捕捉方式,如是上跳沿还是下跳沿。PMAC共可设置16个编码器,每个编码器的I变量是按顺序5个一组编排的,依次为I900~I979。对于编码器2(编号从1开始),若将其设置为捕捉HOME标志的上跳沿信号进行位置捕捉,则可通过向PMAC发送命令“I907=2”和“I908=0”来实现。每一个编码器都对应于一组寄存器,通过这些寄存器可设置编码器的工作方式,如前面对编码器I变量的设置,实际就是向这些寄存器的某些位写入某些值。通过这些寄存器也可读取编码器信息,如当编码器完成一次位置捕捉后,被锁存的位置就保存在这些寄存器中,对于编码器2,该寄存器的位置为X:MYMC007的所有24位。编码器还根据位置捕捉的情况自动设置某些标志位,即当完成一次捕捉时将标志置1。此时,无论外部信号有什么变化都不会再进行捕捉,当捕捉结果被取走时(即对相应寄存器有读操作),编码器自动将标志置0,并重新开始响应外部事件进行新的位置捕捉。对于编码器2,该标志位的位置为X:MYMC004的第17位(从0开始,共24位)。



  2.3PLC程序的设置

  PMAC是一个多任务的计算机应用系统。它除了能通过各种设置和运动程序完成高精度的定位和对复杂运动的控制任务外,还可分时执行多类其他任务,并根据任务的实时性要求,分配任务的优先级,高优先级的任务会打断低优先级的任务。PLC程序是PMAC所支持的用户程序之一,在任务优先级上处于最末的后台处理级。它可在用户的主机上编写,之后下载到PMAC上执行。与PMAC支持的另一种优先级较高的用户程序——运动程序相比。PLC程序没有运动语句,其在功能上与可编程逻辑控制器非常类似。

  在该应用中,PLC程序的任务是判断是否发生位置捕获,如发生,则将其读人数组中,并对捕获的位置进行计数。之所以要将值读入数组中,是因为由于激光扫过被测物边缘时会由于边缘的反射产生抖动,以致采集到的数据多于1个,为防止后面的数据冲掉前面的数据,故将扫过一个边缘产生的数据放入数组中。

  可用的PLC程序如下:



  在程序中m203指向编码器2的位置捕捉寄存器;m217指向编码器2的位置捕捉状态标志位;m33指向P变量220,这是数组第一个元素的位置;m34指向m33的低12位,这样就可操作m33,使其在读人捕捉位置后指向下一个P变量。

  3测量系统特性初探

  为研究系统的测量性能,以20mm标准量块为被测物,在上述系统上进行了一系列测量实验。实验结果通过上位机用Vc++编写的程序进行采集、存储和分析。与PMAC的通信是利用Delta-tau公司提供的动态连接库PComm32.dll完成的。由于C++语言对数值计算和图表输出的支持较少,程序采用与Matlab混合编程的方式来完成分析工作,即采用了调用Mat-labCOM服务器的方式,实现对Matlab函数的调用。这一编程方式也可在其他语言中实现。

  在测量过程中,被测物的两个边沿都以两种方式被定位,即从亮到暗和从暗到亮,且每次实验的样本数都不少于300。也就是说,每次的实验结果均包含4个数据组,分别记作Q_L(代表前边沿,从亮到暗),Q_A(代表前边沿,从暗到亮),H_L(代表后边沿,从亮到暗),H_A(代表后边沿,从暗到亮),且每组数据的个数不少于300。由于测量系统本质上是通过对边缘的定位来进一步完成尺寸测量的,所以在以下分析中仅就边缘定位的系统特性作一简要说明。

  图3为1次实验的结果,该实验所用光栅尺的每一计数代表0.1μm。


  图3所示数据的数字特征如表1所示。


  从图3可见,前边沿测量数据与时间呈明显的线性关系,这一特点在其他实验中也有明显的体现。依据变值系统误差的判别方法可知,这一特性可看作是一种变值系统的误差。变值系统误差的消除有多种方式,这里采取的思路是首先通过大量实验找到一定的经验函数,以刻画这种误差,之后则可依据这个函数通过补偿的办法消除误差,从而提高系统精度。表1最后一行括号内的数字就是通过测量序列中一元回归分析,剔除时间影响后得出的值。值得注意的是,测量数据和时间的这种相关性并不是十分稳定,它受到其他实验环境因素的影响,即适用于某个系统的补偿函数。通常当系统参数变化时,补偿函数就不再适用了。要在实际测量中通过这种方法提高精度,需要针对具体的情况通过实验完成。另外,可以看出,对同一边的两组数据,标准差有一定差异,这在其他实验数据组中也是普遍现象,可以考虑采用精度较高的数据组来计算尺寸值,即用H_L和Q_A来计算。

  4结语

  在由PMAC控制的运动平台上,可以利用PMAC的位置捕获功能和在其上运行的PLC程序来方便的构建激光扫描尺寸测量系统。通过与上位机的软件配合,该系统可实现对一般工件尺寸的快速、高效、非接触测量,其精度可以满足绝大多数的应用场合。通过进行多次测量实验,可得到与时间相关的变值系统误差经验函数,从而进一步提高精度。
the king of nerds
返回列表