您的位置 首页 测评

一般运动操控卡在LabVIEW平台上的使用

一、引言LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是美国国家仪器公司(NationalInstruments)推出一种基于图形语

一、导言

  LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是美国国家仪器公司(NationalInstruments)推出一种依据图形言语的开发环境,编程十分便利,人机交互界面直观友爱,用户可以创立独立的可执行文件,可以脱离开发环境而独自运转,是现在最盛行的虚拟仪器编程渠道,广泛运用于测验丈量、进程操控、实验室研讨与自动化等方面。

  在运动操控方面,LabVIEW有专门的运动操控模块,并且NI公司为其所有的运动操控卡装备相应的驱动程序,可以便利完结即插即用功用。假如用户所运用的板卡不是NI公司的产品,又没有供给与LabVIEW兼容的驱动程序,就不能为LabVIEW所用。但是LabVIEW可以经过调用Windows32动态衔接库(DynamicLinkLibrary,简称DLL)来编写与LabVIEW兼容的驱动程序,完结该运动操控卡在LabVIEW环境下二次开发,不只可以大大降低成本、缩短开发周期,并且可以使界面漂亮。

二、运用布景

  笔者在参加某二自由度运动渠道运动仿真项目的研发进程中,选用深圳众为兴数控技术有限公司出产的ADT850型四轴运动操控卡,该类型的卡供给多种版别Windows下的驱动程序和在BorlandC++3.1、VB和VC等多种环境下开发所需的函数库。虽然在这些编程环境中很简单完结所需的运动操控,但是,假如要开宣布一个漂亮的人机交互界面,将会有很大一部分时刻花在程序主界面的编写上。为此,咱们运用LabVIEW强壮的界面修改功用以及它可以调用Windows32动态衔接库的特色,首先在VC编译环境中编译出运动操控所需求的动态链接库文件,然后在LabVIEW环境中编写程序主界面,最终在LabVIEW框图程序中调用动态链接库文件来编写所需的运动操控程序。其主要进程如图1所示。


图1DLL生成与LabVIEW调用

三、程序设计

  LabVIEW具有强壮的外部接口才干,可用的外部接口包括:DDE、CIN、DLL、MATLABScript以及HiQScript等,其间DLL是其常用的外部接口。

  3.1动态链接库(DLL)的编写

  DLL是依据Windows程序设计的一个十分重要的组成部分。DLL的编制与详细的编程言语及编译器无关,只需恪守DLL的开发标准和编程战略,并组织正确的调用接口,不管用何种编程言语编制的DLL都具有通用性,这就给咱们编写通用的DLL带来了很大的便利。

  针对LabVIEW调用DLL的特色和运动操控的复杂性,咱们所编写的通用DLL中有必要包括多个可供调用的函数,这些函数都调用运动操控函数库中的一个或多个函数,DLL中每个可供调用的函数都对应着某一详细使命,称其为功用函数。DLL中的功用函数主要有:板卡初始化函数、运转条件初始化函数、两轴运转状况函数、两轴方位函数、脉冲发送函数、两轴伸长核算函数、中止运转函数、归零函数以及板卡完毕运转函数等,每个功用函数一般都有自己独立的接口。

  功用函数确认今后,在VisualC++6.0编译器中树立一个Win32Dynamic-LinkLibrary文件,添加上运动操控卡随带的运动操控函数库文件后,即可编译成咱们所需求的DLL文件。

  3.2动态链接库的调用

  LabVIEW中动态链接库的调用是经过CLF(CallLibraryFunction)节点完结的,CLF节点坐落LabVIEW功用模板中的Advanced子模板中。

  在LabVIEW中调用DLL时,则应依据运用程序的需求,确认参数个数和参数类型及调用规矩,然后在LabVIEW中正确地装备DLL。首先从Advanced子模板中挑选CallLibraryFunctionNode图标并将其拖放到Diagram面板中恰当方位,然后右键单击它,在弹出的菜单选项中挑选Configer…弹出CallLibraryFunction对话框。在此对话框中,第一个参数LibraryNameorPath中填入需求调用的动态衔接库文件的文件名和途径;第二个参数FunctionName是衔接库中要调用的函数称号;第三个参数CallingConventions是对DLL的调用规矩,可挑选C或stdcall,该项的挑选应与用C++言语编写的动态库的编译形式相一致。假如C++的调用方法为extern“C”declspec(dllexport),那么CallingConventions的选项为“C”,假如调用方法为externdeclspec(dllexport)stdcall,则Conventions的选项为默认值“stdcall”,不然产生不行预见的过错而退出程序。接下来的Parameter和Type别离是参数称号和参数类型,表明函数回来类型。左击AddaParameterAfter按钮,又多出了DataType和Pass两项,它们别离是数据类型转化和参数传递方法,这是装备所调用函数形参所有必要的选项。

  3.3程序完结

  依据以上所编写的功用函数装备好CLF节点的参数个数及其数据类型后,也就设置好了CLF节点的输入输出端口。每一个功用函数对应着相应功用的CLF节点,咱们但是像运用其它函数节点相同来运用这些CLF节点。针对某型二自由度运动渠道运动操控的特殊性,要求这两个自由度彻底独立,互不相关,这就不能选用多轴插补函数进行脉冲输出操控,只能是两轴别离操控。

  整个LabVIEW框图程序的结构选用次序结构(SequenceStructure),每一次序框都对应某项固定的使命。图2中三个次序框是整个框图程序的前三框,从左到右其使命别离是板卡初始化、板卡驱动成功与否和相关参数的初始化及其显现,相关参数初始化次序框中选用While循环形式等候输入,只有当参数设定完结并按下确认键后程序才干持续往下运转。


图2程序初始化阶段框图

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/213503.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部