大直径测量数据采集系统中动态链接库设计0,

2015-07-22 10:14:54来源: dzsc
   虚拟仪器是现代计算机技术、仪器仪表技术及现代计算机辅助测试(CAT)技术相结合的产物,广泛应用于数据采集和自动测试领域。

    Lab VIEW是一种基于图形程序的虚拟仪器编程语言,Lab VIEW程序称为虚拟仪器程序(简称VI)。Lab VIEW按照模块化编程思想,将一些特定的测试任务,建立成一系列的VI,然后通过这些VI的组合来构成各种复杂的、功能强大的测试系统。Lab VIEW除了带有各种基本的VI库(GP-IB、VISA、VXI和串行接口仪器的驱动程序等)和功能超强且庞大的分析函数库外,还可以通过调用外部代码实现Lab VIEW比较复杂的接口功能,其中就包括动态链接库调用机制。

   动态链接库可采用VB、VC++6.0等高级语言开发,VC++6.0编制动态链接库,首先由AppWizard生成DLL框架,用户自己键入实现各种功能的代码。DLL需要h函数声明文件、C源文件及def定义文件。h文件的作用是声明DLL要实现的函数原型,供DLL编译使用,同时还提供应用程序编译使用。C文件是实现具体文件的源文件,它有一个入口点函数,在DLL被初次调用时运行,完成初始化工作。def文件是DLL项目中比较特殊的文件,用于定义该DLL项目将输出的函数,只有def文件列出的函数才能被应用函数调用,函数名列在该文件EXPORTS的关键字下。

   多滚轮法大直径测量数据采集系统

   多滚轮法大直径测量原理结构
   滚轮法大直径测量原理结构主要有被测大轴、滚轮、圆光、信号调理与接口、计数器及大轴转数测量标记组成。大轴直径计算公式为
    D=α*d/2τN
   其中,D为被测大轴直径;d为滚轮直径;α为滚轮转动角度;N为大轴转动周数。滚轮采用特殊的结构设计,以减小测量过程中打滑发生的几率。同时通过3个滚轮的冗余测量信号,可辩识出测量过程中的“打滑发生段”,并在进行三滚轮信号合成时,采用有效的数据融合技术,进一步将“打滑段”的信号剔除。通过对接触压力大小与滚轮直径变化的关系作精确标定,测量时根据拟合数学模型对滚轮变形作适时修正,以消除或减小滚轮变形引起的测量误差。为减小温度场不均匀或变化所导致的测量误差,在工件表面布置多个温度传感器,用以监测工件是否进入恒温状态及工件温度的变化和分布情况,以便对该温度场引起的大直径尺寸变化进行修正。用微位移传感器测量大轴表面形状误差,分离出各次谐波,用以修正测得直径,减小形状误差的影响。

   数据采集系统组成
   多滚轮法大直径测量系统采用的传感器种类和数目均较多,多参数的测量和控制由虚拟仪器测量系统实现,其结构框图如图1所。

  
   图1 数据采集系统框图

   光栅数据采集硬件主要由RENISHAW公司的RESR20圆光栅编码器和FAGOR公司的DRO板组成,RESR20圆光栅编码器的角分辨力可达0.01″,分度不确定度为0.5″。RGH20读数头输出4路信号,DRO板对这4路信号进行细分后转换成数字信号输入计算机,完成对圆光栅信号的数据采集。光电传感器的信号由6071E板(该板为NI公司的多功能数据采集板,具有模拟量、数字量采集单元,该板同时用于位移、压力等信号的采集)上的计数器送入计算机,作为数据采集的触发信号。同时为减小数据采集启停引起的误差,通常在大轴转动数周过程中采集光栅信号。在编制采集软件时设置大轴转动周数单元,当大轴转动且计数标记通过光电传感器时,计算机开始采集数据,当大轴转动周数达到预设值时,停止数据采集。

   数据采集系统软件设计

    6071E多功能采集卡自身带有适用于LabVIEW环境的驱动程序,直接进行设置即可。DRO板必须用VC++编程调用其动态链接库进行初始化,然后将VC++的调用生成动态链接库,由Lab2VIEW调用完成对DRO板的初始化,参数的初始化包括滚压轮标准参数、测试任务参数以及其他环境参数等。初始化结束,计算机检测到触发信号后开始数据采集,数据采集部分同样需要用VC++编程调用DRO板的动态链接库的库函数。圆光栅信号输入计算机后由软件进行数据的处理和存储,当大轴转动周数等于预设值时,停止采集,一次数据采集过程完成。

    LabVIEW调用动态链接库,使用LabVIEW功能模板中“Advanced”子模板的“调用库函数(Call Library Function)”结点。实现动态链接库调用步骤如下:

    (1)在LabVIEW程序建立“调用库函数结点”。其中“Call Library Function”结点通过选择功能模板“Advanced”子模板的“Call Library Function”功能产生。

    (2)配置“调用库函数结点”。双击框图程序窗口的“Call Library Function”结点,在弹出的对话框中对此“调用库函数结点”进行配置。其中:在“Library Nameor Path”项中键入结点所链接的DLL文件名,它由c源代码编译而来;在“Function Name”项中键入结点相链接的DLL文件中函数的名称;参数“returntype”的类型选择“Void”,并增加所需的其他返回参数。

    (3)编辑c源文件。c源文件包括硬件初始化文件和数据采集文件。硬件初始化部分源代码如下:
   //FirstInittheBoardConfigandAxisConfigData
    BoardConfig.NumberOfAxes=4;
    do
    {
     printf(“ Selectsignaltype(0=TTL,1=1Vpp):”);
     signal_type=getch();
    }while((signal_type<‘0’)(signal_type>‘1’));
    signal_type=signal_type-‘0’;
    //Enteryourownvalues,theseareonlyasample.
    for(i=0;i     {
  AxisConfigData[i].Resolution=0.005;
  AxisConfigData[i].CountDirection=0;
  AxisConfigData[i].SignalType=signal_type;
     AxisConfigData[i].TTLWaveMultiply=0;
     AxisConfigData[i].SineWaveMultiply=0;
     AxisConfigData[i].MachineErrorComp=0;
     AxisConfigData[i].I0Type=0;
     AxisConfigData[i].EncoderFactor=1000;
     AxisConfigData[i].EncoderOffset=0;
     AxisConfigData[i].ExternalMultiply=1;
    }
    //CallingtoIniBoardfunction.
    if(IniBoard(&BoardConfig,&AxisConfigData[0])==0)
    {
     printf(“ Errorduringinicialization ”);
     exit(0);
    }
数据采集部分源代码如下:
    //CounterTest
    voidCounterTest(void)
    {
     ReadAllCounters(&AxisValuesData);
    Axis_X=AxisValuesData.AxisDisplayValue[0];
    Axis_Y=AxisValuesData.AxisDisplayValue[1];
    Axis_Z=AxisValuesData.AxisDisplayValue[2];
    Axis_W=AxisValuesData.AxisDisplayValue[3];
    printf(“X=%4.4f”,Axis_X);       //PrintthevalueofAxisX
    printf(“Y=%4.4f”,Axis_Y);
    printf(“Z=%4.4f”,Axis_Z);
    printf(“W=%4.4f”,Axis_W);
    printf(“ ”);
    }

    (4)编译c源代码。将c源文件编译成DLL文件,使用VC++6.0完成。

    (5)运行VI。运行由上述步骤生成的LabVIEW程序。

   结束语

    LabVIEW的外部代码扩展功能是其重要特点之一,调用动态链接库是LabVIEW提供的调用外部代码的4种途径中最通用的一种。可调用标准共享库和用户自定义的库函数,对于不附带LabVIEW驱动程序的硬件尤其具有使用价值。通过调用动态链接库机制可引入C语言的强大功能,确实是一条增强LabVIEW与其它Windows应用程序之间的数据共享能力的良好途径。

关键字:大直径测量  虚拟仪器  动态链接库  光栅数据采集

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2015/0722/article_12411.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
大直径测量
虚拟仪器
动态链接库
光栅数据采集

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved