下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要:介绍了一种在LabVIEW 平台上使用普通运动卡实现快速开发多轴运动程序的方法。该方法首先应用运动普通卡提供的函数库编译成通用动态库文件,然后使用LabVIEW 与外部代码进行连接的动态连接库机制调用这个文件,实现实时的运动。实践证明,该方法不仅可以很好地发挥运动卡的性能,而且可以借助LabVIEW 强大的界面编辑功能,缩短程序开发周期,美化人机界面。:LabVIEW;运动卡;动态库一、引言LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国国家仪器公司(National Instruments)推出一种基于图形
2、语言的开发环境,编程非常方便,人机交互界面直观友好,用户可以创建的可执行文件,能够脱离开发环境而单独运行,是目前最流行的虚拟仪器编程平台,广泛应用于测试测量、过程、研究与自动化等方面。方面,LabVIEW 有专门的运动模块,并且NI在运动公司为其所有的运动卡配备相应的驱动程序,可以方便实现即插即用功能。如果用户所使用的板卡不是NI 公司的,又没有提供与LabVIEW 兼容的驱动程序,就不能为LabVIEW 所用。但是LabVIEW 能够通过调用Windows32 动态连接库(Dynamic Link Library,简称 DLL)来编写与 LabVIEW 兼容的驱动卡在LabVIEW 环境下二
3、次开发,不仅可以大程序,实现该运动大降低成本、缩短开发周期,而且可以使界面美观。二、应用背景笔者在参与某二自由度运动平台运动项目的研制过程中,选生产的ADT850 型四轴运动用众为兴数控技术卡,该型号的卡提供多种版本Windows 下的驱动程序和在BorlandC+3.1、VB 和VC 等多种环境下开发所需的函数库。虽然在这些编程环境中很容易实现所需的运动,但是,如果要开发出一个美观的人机交互界面,将会有很大一部分时间花在程序主界面的编写上。为此,我们利用LabVIEW 强大的界面编辑功能以及它能够调用Windows32 动态连接库的特点,首先在VC 编译环境中编译出库文件,然后在LabVIE
4、W 环境中编写程运动所需要的动态序主界面,最后在LabVIEW 框图程序中调用动态库文件来编写所需的运动程序。其主要过程如图 1 所示。图 1 DLL 生成与 LabVIEW 调用三、程序设计LabVIEW 具有强大的外部接口能力,可用的外部接口包括:DDE、CIN、DLL、Script 以及HiQ Script 等,其中DLL是其常用的外部接口。3.1 动态库(DLL)的编写DLL 是基于Windows 程序设计的一个非常重要的组成部分。DLL的编制与具体的编程语言及编译器无关,只要遵守DLL 的开发规范和编程策略,并安排正确的调用接口,不管用何种编程语言编制的DLL 都具有通用性,这就给我
5、们编写通用的 DLL 带来了很大的方便。LabVIEW 调用DLL 的特点和运动的复杂性,我们所编写的通用DLL 中必须包含多个可供调用的函数,这些函数都调用运函数库中的一个或多个函数,DLL 中每个可供调用的函数都对动应着某一具体任务,称其为功能函数。DLL 中的功能函数主要有:板卡初始化函数、运行条件初始化函数、两轴运行状态函数、两轴位置函数、脉冲函数、两轴伸长计算函数、停止运行函数、归零函数以及板卡结束运行函数等,每个功能函数一般都有自己的接口。功能函数确定以后,在Visual C+6.0 编译器中建立一个Win32 Dynamic-Link Library 文件,添加上运动卡随带的运动
6、控制函数库文件后,即可编译成我们所需要的DLL 文件。3.2 动态库的调用LabVIEW 中动态库的调用是通过CLF(Call Library Function)节点实现的,CLF 节点位于LabVIEW 功能模板中的Advanced 子模板中。在LabVIEW 中调用 DLL 时,则应根据应用程序的需要,确定参数个数和参数类型及调用规则,然后在 LabVIEW 中正确地配置DLL。首先从Advanced 子模板中选择Call Library Function Node 图标并将其拖放到Diagram 面板中适当位置,然后右键单击它,在弹出的菜单选项中选择Configer2弹出 Call Li
7、brary Function框。在此框中,第一个参数 Library Name or Path 中填入需要调用的动态连接库文件的文件名和路径;第二个参数Function Name 是连接库中要调用的函数名称;第三个参数Calling Conventions 是对DLL 的调用规则,可选择C 或stdcall,该项的选择应与用 C+语言编写的动态库的编译模式相一致。如果C+的调用方式为extern “C” declspec(dllexport),那么 Calling Conventions 的选项为“C”,如果调用方式为extern declspec(dllexport)stdcall,则 Co
8、nventions 的选项为默认值“stdcall”,否则发生不可预见的错误而程序。接下来的Parameter 和Type 分别是参数名称和参数类型,表示函数返回类型。左击Add a Parameter After 按钮,又多出了Data Type 和Pass 两项,它们分别是数据类型转换和参数传递方式,这是配置所调用函数形参所必须的选项。3.3 程序实现根据以上所编写的功能函数配置好CLF 节点的参数个数及其数据类型后,也就设置好了CLF 节点的输入输出端口。每一个功能函数对应着相应功能的CLF 节点,我们像使用其它函数节点一样来应用这些CLF 节点。某型二自由度运动平台运动的特殊性,要求这
9、两个自由度完全,互不相关,这就不能采用多轴插补函数进行脉冲输出,只能是两轴分别。整个LabVIEW 框图程序的结构采用顺序结构(Sequence Structure),每一顺序框都对应某项固定的任务。图 2中三个顺序框是整个框图程序的前三框,从左到右其任务分别是板卡初始化、板卡驱动与否和相关参数的初始化及其显示,相关参数初始化顺序框中采用While 循环模式等待输入,只有当参数设定完成并按下确定键后程序才能继续往下运行。图 2 程序初始化阶段框图图 3 所示是紧接在图也是程序框图的第四个顺序框,这是整个框图程序的主体部分。顺序框中嵌入一个 While 循环,While 循环中又嵌入一个顺序结构
10、,其前一框的作用是运动模式选择及运动,这也是整个程序框图的部分,后一框的作用是数据显示部分。运动模式选择包括自由度的选择和自动与手动模式选择。自由度选择和运行模式选择均采用选择结构(Case Structure),自由度的选择结构框内又嵌入了运行模式选择结构框,即每个自由度的运动都有自动和手动两种方式。选择手动方式时,手动位移可以通过拖动前面板上的手动进度条来确定,而选择自动方式时,其运行轨迹是一正弦曲线,这条曲线的形状由所设定的幅度值、频率值和相角值来确定。另外,无论在哪一种模式下运行,都可以通过调节前面板上速度系数进度条来调节两轴各自的运行速度。每个自由度的运动部分都包括手动和自动两部分,
11、且都可以按照一般编译器中的逻辑关系和数据关系通过调用不同的CLF 节点来实现。数据显示部分主要是实时显示两自由度的值和对应轴的伸长值。图 3 程序部分框图图 4 是整个框图程序的最后三个顺序框,其中,前一框的任务是得到停止指令后返回两轴的当前位置,并立即发出返回零点位置的指令;中间一框中嵌入了一个While 循环,目的是循环检测并显示两轴的运行状态以及当前位置,一旦检测到所有轴已经回到零点位置并已全部停止运行,就自动跳出 While 循环,开始执行最后一框程序,即执行板卡结束运行函数。图 4 程序结束阶段框图图 5 为程序的前面板,这是程序正常运行时的主控界面也是唯一的界面。在这个界面上,可以
12、进行自由度的选择、手动自动的选择、手动位移设定、自动运行模式下的正弦轨迹曲线的设定、两轴运行速。另外,界面上的两个Grphy 图还能实时显度的设定以及运行示两自由度变化曲线和两轴运行轨迹曲线,板卡驱动状态和两轴运行状态的正常与否以三个指示灯的形式。图 5 程序主界面四、结束语卡的二次开发多采用VC+、VB 或一般来讲,很多运动C+ Builder 等编译软件编写,有时编写界面就占了程序编写工作的很大一部分,不利于提高效率。本文利用LabVIEW 界面开发简单以及LabVIEW 可以调用动态库等功能,实现了在LabVIEW 平台下快速开发普通运动卡的运动程序。这种方法不仅可以采用价格相对较低的普通运动控制卡,而且能避免繁琐的界面编程,缩短周期,提高效率,降低成本。本文所的程序已在某二自由度运动平台系统上通过测试并已得到应用,运行平稳、准确。本文作者创新点:利用LabVIEW 调用通用动态连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年BIM技术在地铁建设中的应用实例
- 贺银成课件笔记
- 2026春招:文员笔试题及答案
- 货运安全培训班讲话
- D打印技术在医疗领域应用前景分析
- 临床药事管理改进方案
- 货物搬运安全知识培训课件
- 医院医疗纠纷处理流程汇报
- 2026年蚌埠学院单招综合素质笔试参考题库带答案解析
- 医疗信息录入员的职业礼仪
- 公安机关保密知识培训课件
- 医用超声探头复用处理专家共识(2025版)解读 2
- 银行搬迁引流活动方案
- 进修ERCP汇报护理课件
- 网络内容分发网络(CDN)创新创业项目商业计划书
- 有机磷农药中毒患者的护理
- 电力合规管理办法
- 2025高中思想政治课标测试卷(及答案)
- 2024年全国大学生西门子杯工业自动化挑战赛-ITEM2-逻辑控制赛项-工程设拓梦者队计文件
- 轨迹大数据处理技术的关键研究进展综述
- 职业暴露考试试题及答案
评论
0/150
提交评论