文档库 最新最全的文档下载
当前位置:文档库 › 动态链接库在LabVIEW中的高级应用

动态链接库在LabVIEW中的高级应用

动态链接库在LabVIEW中的高级应用
动态链接库在LabVIEW中的高级应用

摘要:LabVIEW中的提供了调用共享库函数的接口,但是一些现成的函数库却因为接口参数类型不同而不能在LabVIEW中使用。利用重新编写动态链接库的方法可以建立旧函数库与LabVIEW联系的通道,提高现有资源的利用率。本文以SDK2000图像采集卡为例,介绍具体的实现过程。

关键字:LabVIEW;动态链接库;CLF节点

1. 引言

实验室虚拟仪器工作平台是美国国家仪器公司研制的一种通用程序开发系统,以其强大的数据采集、数据处理、数据分析和仪器控制功能在现代测控领域中得到了广泛的应用。NI公司在推出LabVIEW语言同时,也推出了一系列的数据采集卡,但实际应用中往往会用到第三方厂家生产DAQ卡,在这种情况下就需要使用LabVIEW提供的外部程序接口。

LabVIEW的“调用函数库节点(CLF节点)”提供了调用标准函数和用户自定义函数的通用方法,对于LabVIEW不支持的硬件设备大部分采用这种方法进行驱动。但是CLF节点也存在不足,使用中遇到最多的问题是参数类型不匹配。使用重写动态链接库的方法,一方面可以兼容旧函数库的参数类型,另一方发面可以获得LabVIEW提供的高级函数库应用。以下以SDK2000图像采集卡为例,介绍重写函数库的基本原理和程序编写过程。

2. 实现方案及方案论证

SDK2000图像采集卡提供的Visual C++ IDE 程序开发包包含了外部程序调用的共享函数库,但是有些函数不能直接用CLF节点进行调用。主要有两个原因:库函数的参数类型与LabVIEW不兼容;图形化语言对于一些底层操作不易实现。SDK2000图像采集卡提供的库函数含有LabVIEW不支持的数据类型,并且很多函数涉及到一些底层操作,如文件读取和内存管理。为了正确调用函数并返回有效数据,解决这两个问题是关键。

LabVIEW仅提供最基本的数据类型,虽然可以在CLF节点参数设置中选择“Adapt toType”,但只能够传递LabVIEW内部使用的参数类型而已,而共享库函数使用上百种非标准数据类型。参数类型不匹配可分为两种情况:

● 非标准数据类型定义。很多程序和函数用到一些非标准的类型定义,例如它们常常用char、short和long的类型定义代替Windows API使用的BYTE、WORD和DWORD。这种情况下要正确调用这些程序和函数,必须找到这些参数在LabVIEW中同等的数据类型。

● 以结构或者类作为参数。一些程序和函数使用结构或者类作为参数,但是LabVIEW 并不能够识别这些参数的数据结构。为了正确调用这些库函数,LabVIEW提供了两种解决办法:使用CIN节点或者重写函数库对这些函数进行重新封装,使这些函数的输入输出参数能够符合LabVIEW的标准。

SDK2000提供的共享函数库使用了很多LabVIEW不支持的参数类型,如RECT、VIDEOSTREAMINFO等。为了正确调用这些函数,必须用CIN节点或者重写函数库的方法对这些函数进行重新封装。相对而言,重新编写动态链接库方法比使用CIN节点更为常用。因为CIN代码直接嵌入到VI程序代码里,对于编程器的限制比较高,所以一般不采用CIN 节点。

重新编写动态链接库的另一个原因,是为了获得LabVIEW提供的高级函数库应用。LabVIEW提供了在代码开发环境下的高级函数库,这些函数是针对于LabVIEW使用的数据类型,如下面所介绍的NumericArrayResize()函数。NumericArrayResize()函数用于动态改变数组的大小,不过只适合于LabVIEW使用的数组结构。LabVIEW高级函数库还包含了一些底层操作,如文件读写与内存分配等等,不存在参数类型不同和底层操作困难的问题。

3. 软件编程

由于需要重写的函数比较多,这里仅以重写保存DIB图像数据函数为例,说明重写函

数库的编写过程。新函数GetDib()对原函数DSStream_GetCurrentDib()进行了封装,其作用是向原函数传递有效参数并返回LabVIEW能识别的数据。使用的编程环境为Visual C++6.0。

第一步:分析目标函数的参数类型

SDK2000开发包中对获得当前图像的DIB数据函数的声明为:

HRESULT DSStream_GetCurrentDib(int iCardID,BYTE*pBuffer,long*pSize)

pBuffer指向预分配的内存,值为NULL时,pSize得到保存图像需要的内存大小,若pBuffer不为NULL,函数将DIB图像数据保存到从pBuffer开始,长度为(*pSize)的内存区域。CLF节点不能直接调用该函数,因为LabVIEW编程环境下没有提供内存管理机制,并且CLF节点不能把指向预分配内存的指针传递给该函数,所以必须对这个函数进行重新封装。

图像的DIB数据是非数字型的数据,为了返回LabVIEW能够识别的数据,可以选择字符串或者单字节数组作为数据的载体,但是由于数据中包含了十进制的0,所以只能用单字节数组作为载体,并且为了能够动态改变数组的大小,必须以数组的句柄作为传递参数。因为在LabVIEW提供的高级函数库中,所有改变数组、字符串大小的函数都是针对于句柄进行的。

第二步:编写动态链接库

在VC中使用MFC Application(dll)建立一个名字为MySDK2000的工程,然后在MySDK2000.cpp中键入以下代码:

typedef struct

{int32 dimSize;

uInt8 elt[1];

}TD1;//TD1的数据结构能被LabVIEW和新链接库识别

typedef TD1 **TD1Hdl;

extern "C" __declspec(dllexport)long GetDib(TD1Hdl BitMapinfo)//BitMapinfo为数组的句柄

{long pp=0;

hr=DSStream_GetCurrentDib(m_iCardID, NULL, &pp);//得到保存图像需要的内存大小if (NumericArrayResize(uB,1L,(UHandle*)&BitMapinfo,pp))//改变数组物理大小return 0;

(*BitMapinfo)->dimSize = pp;//改变数组大小的标志

BYTE*lpdst; // 指向缓存DIB图像的指针

lpdst = (*BitMapinfo)->elt;

hr=DSStream_GetCurrentDib(m_iCardID, lpdst, &pp);//将当前图像的DIB数据保存到内存中

BITMAPINFO*pInfo = (BITMAPINFO*)lpdst;//位图文件头指针

return pInfo->bmiHeader.biSize;//返回位图信息头的数据长度

编写过程的几点说明:

● 为了正确使用LabVIEW中的数据类型,必须在MySDK2000.cpp中手工加上#include “extcode.h”的声明。头文件”extcode.h”中定义了CIN和外部子程序所用到的基本数据类型和许多函数等,用以解决某些常量和数据类型与系统头文件的冲突。

● 为了能够在VC中调用LabVIEW的函数库,必须把CINTools目录下LabVIEW.lib 包含在工程里。使用NumericArrayResize()函数用以动态改变数组的长度,它的功能和

WIN32函数LocalAlloc()具有相似的功能。它的函数声明如下:

MgErr NumericArrayResize(int32 typeCode, int32 numDims,

UHandle *dataHP,int32 totalNewSize);

● 如果内存分配失败,函数返回错误代码。如果成功,还须修改数组结构中的dimSize,因为此函数不能自动修改此值。

其它代码的编写类似于VC环境下的开发。代码完成后,构件并产生最终的目标文件MySDK2000.dll。

第三步:在LabVIEW中调用动态链接库

配置CLF节点的各项参数。第一个选项为函数库文件名和路径,选择刚才编译的文件MySDK2000.dll;第二个选项为函数名,选择GetDib;第三项设置返回和传递参数。具体设置如下表:

其它选项保持默认设置。程序框图如下:

为了弄清楚CLF运行时传递参数和返回参数的原型,可以在CLF节点上右键弹出菜单中选择“Creat.c File…”,然后在文本编程环境下察看它的参数原型。这些参数原型其实就是LabVIEW使用到的数据结构,如上面说看到的数组结构TD1,TD1为LabVIEW一维数组的数据结构。

4. 结论

通过对原有函数的封装,函数将图像卡采集的DIB数据以数组形式返回给LabVIEW,LabVIEW将对这些数据进行进一步的处理,如二值化、边缘分析等等。实践证明,通过重写动态链接库的方法,第三方DAQ设备可以更协调地使用于LabVIEW开发环境中。

参考文献

[1]. Using External Code in LabVIEW,National Instruments Corporation,2001.

[2]. David J.Kruglinski,著,潘爱民王国印,译. Visual C++ 技术内幕(第五版)[M].北京:清华大学出版社,2002.

[3]. 杨乐平,李海涛,等. LabVIEW高级程序设计[M]. 北京:清华大学出版社,2003.

[4]. 林康红,唐海峰,奉玲,等. 动态链接库DLL在虚拟仪器中的应用[J].计算机应

用,2002,5:56-57.

[5]. 陶以政,潘振显.怎样在LabVIEW中调用Win32动态链接库[J].计算机应用,2000,20(6):72-73.

[6]. 张辉,郁凯元,龙涛,等.基于LabVIEW软件的动态链接库和数据采集[J].仪表技术,2002,6:36-37.

LabVIEW程序实例

1、Build a VI that generate a random number between zero and ten,and then divides it by an input number and diaplays the result on the front panel.If the input number is zero,the VI lights an LED to flag a “divide by zero”error 2、3-1,P43 3、Try create a VI to compute n! 4、求500个随机数中的最大值和最小值。 5、3-3,P44 6、3-4,P46 7、3-5,P49 If implement this equation using regular G arithmetic functions,the block diagram looks like the one in the following illustration.Please imolement the same equation using a Formula Node,and add event to control when the VI executes.

8、设计一个简单信号源,能选择正弦波、三角波和方波并用Waveform Graphe显示。 9、4-1,P68 10、4-5,P72 11、(1)显示一个二维数组的行数和列数(2)查找一个二维数组中最大值,以及最大值在数组中的位置。

12、5-2,P89 13、6-1,P100 14、6-3,P103 15、7-4,P120 16、7-5,P121 17、双边傅里叶

LabVIEW

第一章LabVIEW简介 LabVIEW是美国国家仪器公司(National Instruments Co)开发的一种图形化的编程环境。其名称含义为实验室虚拟仪器工作平台(Lab oratory V irtual I nstrument E ngineering W orkbench)。作为一种方便的数据采集和仪器控制开发软件,它可工作于Macintoshe 、Sun SPARC工作站、HP9000/700系列工作站以及PC机等各种机型,可运行于Windows 3.1、Windows9x/2000、Windows NT、UNIX等多系统下,是一种灵活有效的仪器控制和数据分析软件系统。 LabVIEW程序使用虚拟仪器(V irtual I nstrument,缩写为VI)的概念。它是指一台计算机和连接外部的端口(计算机的COM口,LPT口或内插板)在软件控制下可完全模拟替代传统的仪器。因VI功能完全是由软件定义,故在硬件系统不变的情况下,用户可通过软件开发自行改变或扩充仪器的功能,实现自己的特殊要求,或用一套硬件系统实现多种仪器的功能,从而使虚拟仪器VI不但比传统仪器更灵活有效,而且也更经济。VI的核心就是LabVIEW程序,所以在LabVIEW中,所有程序均称之为VI程序,不管它是否通过端口和外界进行通讯。每个VI程序均可作为一个功能模块被重复使用,因而使用LabVIEW来开发和扩展程序极为方便。 LabVIEW编程语言同常规的程序语言不同,它采用更易使用和理解的图形化程序语言-G语言(Graphical programming language)。G语言使用图标代替常规的一条或一组语句来实现一个功能,通过各功能图标间的逻辑连接实现程序功能。 其编程过程不是书写一行行语句,而是连接一个个代表一定功能的图标,其程序编制过程简单,不涉及复杂功能实现的算法,易于掌握。同时,因为其编程过程基于可重复使用的功能模块,故可方便地使用由专业人员编制提供的专业级别的功能模块,开发出专业水平的程序。所以,LabVIEW在世界范围内的众多领域如航空、航天、通信、汽车、半导体、化学和生物医学等得到了广泛的应用,从简单的仪器控制、数据采集到复杂的测试和数据处理,从工厂、科研院所到大学里的实验室,到处都可以发现LabVIEW的应用。在西方国家(如美国)的许多大学已将LabVIEW作为本科的教学内容,成为工程师素质培养的一个方面。由于LabVIEW虚拟仪器的强大功能,使得使用一套硬件系统就可进行多种不同要求的研究,故而可以用更小的消耗进行更多的研究,尤其适合在我国资金较少的科研单位用于研究工作。 LabVIEW6.-中,包含许多专家编写的VI供用户使用。在数据采集方面有许多采集卡(DAQ)的支持模块,使采集程序的编制不必涉及低层控制;有各种数字、模拟信号I/O模块;有对GPIB(General Purpose Interface Bus,IEEE488标准)、VXI(VME bus eXtensions for Instrumentation ,扩展IEEE1014标准)和Serial端口的支持和控制等VI。在数据处理控制方面有各种数字信号处理和产生、频谱分析、滤波、平滑窗口、概率统计等VI。 本LabVIEW简介部分主要介绍LabVIEW语言的基础知识,包括界面、菜单、工具、模板、器件、函数等,通过这一部分的学习,读者即可使用LabVIEW编程并在实际工作中进行应用。LabVIEW进阶部分将深入探讨LabVIEW的编程环境、编程技巧以及优化策略等和更多的功能,考虑到篇幅限制,本书不与介绍,感兴趣的同学可参看下列参考书继续学习,

LabVIEW软件应用实例

图象处理方法在车灯配光检测系统中的应用研究 Image Processing T echnique’s Application and Research in the Automobile Lamp Quality Measurement System 作者:金晅宏 戴曙光 穆平安 单位:上海理工大学光电学院 应用领域:汽车工业 使用的产品:LabVIEW ; NI-IMAQ ;NI-DAQ ; 挑战:将成熟的计算机视觉技术 引入车灯配光检测系统中,应用多种图象处理方法同时实现汽车车灯光轴交点检测和车灯零件检测。 应用方案:使用National Instruments 公司的IMAQ 可视化软件、LabVIEW 图片控制工具包、执行程序生成器和LabVIEW 来开发一个经济、灵活的基于PC 的车灯配光检测系统。 介绍: 车灯配光检测系统原为两套系统:车灯光轴交点检测系统和车灯零件检测系统,其通过人工目测检测车灯光轴交点,应用物位传感器精确定位来检测零件的缺损。本车灯配光检测系统将两系统二合为一,根据测量对象的特征,应用图象卷积、边缘特征提取、图象模式匹配等多种图象处理的方法,实现对不同型号的车灯进行车灯零件缺损检测和车灯光轴交点的自动检测。 系统组成: 整个系统包括硬件部分和软件部分。其系统组成简图如图1所示: 图1:系统组成简图 硬件部分主要运用黑白的CCD 摄取图象,图象通过美国NI 公司的1407图象采集卡传送入PC 机进行处理及数据显示,应用NI_DAQ6023卡控制摄像头间的切换及系统的启动和停止。本系统采用NI 公司的LabVIEW5.1及其图象处理软件包IMAQ Vision5.0作为软件操作平台。其系统的主界面如下图(图2)所示: 图2:系统主界面 系统运行中的一个检测报错界面如下图(图3)所示: 图3:检测报错界面 运用NI (美国国家仪器公司)的这套虚拟开发平台软件,是因为其使用图形化编程语言编写,并提供丰富的库函数和功能模块,具有功能强大及运用灵活等特点,极大的节约了程序开发时间。 光轴交点检测中的图象预处 理方法 (1) 光轴特征分析 本车灯配光检测系统实现计 算机自动检测车灯前照灯光路所成的交点。若为一右侧行驶前照灯, 则其光路图如图4所示: 图4:前照灯光路图 h-h :通过前照灯焦点的水平面; H-H2:道路中心线; v-v :通过前照灯的垂直面; 根据前照灯光路标准H —H2与h —h 的夹角为15°,且ZONE1 为暗区,而ZONE2为亮区,两个区域分界明显,有较大的亮度对比度。H-H2与h-h 的交点位置是车灯光轴检测的一个重要参数。 (2) 图象的原始LUT 变 换 LUT (Look_up Table )变换是一种 很基本的图象处理技术,其对图象象素的灰度值进行特定计算及转换,可以达到突出图象的有用信息,增加图象的光对比度,对要进行边缘检测的图象尤佳,可以使边缘明显。本系统的车灯光轴原始图如图5所示: 图5:光轴原始图

LabVIEW程序设计步骤

LabVIEW 程序设计步骤 下面通过一个设计实例来详细介绍虚拟仪器软件LabVIEW 的程序设计步骤。 设计目标:假设有一台仪器,需要调整其输入电压,当调整电压超过某一设定电压值时,需通过指示灯颜色变化发出警告。 1 建立新VI 启动LabVIEW 程序,单击VI 按钮,建立一个新VI 程序。 这时将同时打开LabVIEW 的前面板和后面板(框图程序面板)。在前面板中显示控件选板,在后面板中显示函数选板。在两个面板中都显示工具选板。 如果选板没有被显示出来,可以通过菜单查看(View )/工具选板(Tools Palette )来显示工具选板,通过查看(View )/控件选板(Controls Palette )显示控件选板,通过查看(View )/函数选板(Functions Palette )显示函数选板。 也可以在前面板的空白处,单击鼠标右键,以弹出控件选板。 2 前面板设计 输入控制和输出显示可以从控件选板的各个子选板中选取。 本例中,程序前面板中应有1个调压旋钮,1个仪表,1个指示灯,1个关闭按钮共4个控件。 1)往前面板添加1个旋钮控件:控件(Controls )→ 新式(Modern ) → 数值(Numeric ) → 旋钮(Knob ),如图2-14所示,标签改为“调压旋钮”; 2)往前面板添加1个仪表控件:控件(Controls )→ 新式(Modern ) → 数值(Numeric ) → 仪表(Meter ),如图2-14所示,标签改为“电压表”。 3)往前面板添加1个指示灯控件:控件(Controls )→ 新式(Modern )→ 布尔(Boolean ) → 圆形指示灯(Round LED ),如图2-15所示,将标签改为“上限灯”。 4)往前面板添加1个停止按钮控件:控件(Controls )→ 新式(Modern )→ 布尔 图2-15 添加指示灯、按钮控件 图2-14 添加旋钮、仪表控件

Labview串口通信开发实例(值得拥有)

串口通信的基本概念 串口通信的基本概念 1,什么是串口? 2,什么是RS-232? 3,什么是RS-422? 4,什么是RS-485? 5,什么是握手? 1,什么是串口? 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米; 而对于串口而言,长度可达1200米。

典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参 数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB 设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信 的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和

LABview 程序设计

基于Labview的ADD波形 第一部分:概述 随着计算机技术、大规模集成电路技术和通讯技术的飞速发展,仪器技术领域发生了巨大的变化,美商国家仪器公司(National Instruments)于八十年代中期首先提出基于计算机技术的虚拟仪器的概念,把虚拟测试技术带入新的发展时期,随后研制和推出了基于多种总线系统的虚拟仪器。 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 与C和BASIC一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。 本次就是一个基于labview平台的一次设计来达到对虚拟仪器课程的掌握,尽量使用学习到知识,在设计过程中有些部分存在对于总体设计影响不大,仅仅作为对知识的巩固。 本次的ADD waveforms 设计能够对两种不同的信号进行的运算,由于现有的示波器仅能对两组波形进行简单的加减,而ADD waveforms能够进行除加减意外的乘除运算。 第二部分:设计的思路与基本原理 本次设计是基于labiew界面的一个虚拟仪器的设计,所设计的虚拟仪器要具有对一个正弦波、一个三角波进行各种合成运算的功能,可完成add、divide、multip、subtra四种基本数学运算的功能。 通过以上的目标,我们可以分别选择能产生三角波、正弦波的子VI,再通过一个条件结构来确定每次输入的波形需要进行那种运算,然后在波形图中显示出来以供观察,最后可以比较ADD前的波形与ADD之后的,同时对最终信号进行了频谱分析。 本次设计结构主要有这基本分组成:条件结构、信号产生子VI、信号合并、波形验证部分、控制开关部分、频谱分析部分。在接下来的部分会对这些部分做详细的介绍。 第三部分:设计模块与元器件的介绍

LabVIEW 3D控件应用

题目: Labview 3D控件应用 学院(系):电气工程学院 专业班级: 学号: 学生姓名: 任课教师:

目录 一 3D简述 二 3D与2D的区别 三创建3D对象 四 3D控件的属性节点 五 3D控件的调用节点 六多对象的编程 七更多3D类控件介绍 八学习心得

一,3D简述 3D是英文“3 Dimensions”的简称,中文是指三维、三个维度、三个坐标,即有长、宽、高。换句话说,就是立体的,3D就是空间的概念也就是由X、Y、Z三个轴组成的空间,是相对于只有长和宽的平面(2D)而言。 根据科学猜想,人们本来就生活在四维的立体空间中(加一个时间维),眼睛和身体感知到的这个世界都是三维立体的(时间是虚构的),并且具有丰富的色彩、光泽、表面、材质等等外观质感,以及巧妙而错综复杂的内部结构和时空动态的运动关系;我们对这世界的任何发现和创造的原始冲动都是三维的。 今天的3D,主要特指是基于电脑、互联网的数字化的3D/三维/立体技术,既可以是动词、是名词,又可以是形容词、是状态副词,也就是三维数字化。包括3D软件技术和3D硬件技术。 3D或者说三维数字化技术,是基于电脑/网络/数字化平台的现代工具性基础共用技术,包括3D软件的开发技术、3D硬件的开发技术,以及3D软件、3D硬件与其他软件硬件数字化平台/设备相结合在不同行业和不同需求上的应用技术。 二,3D与2D的区别简述 1、2D的定:2D即二维,在一个平面上的内容就是二维。 二维即左右、上下两个方向,不存在前后。在一张纸上的内容就可以看做成是二维。即只有面积,没有立体。 二维是平面技术的一种,例如普通的平面动漫,称之为二维动漫、简称二维。 2、3D的定义:3D即三维,三维是指在平面二维系中又加入了一个方向向量构成的空间系。 所谓三维,按大众理论来讲,只是人为规定的互相交错(垂直是一个很有特性的理解)的三个方向,用这个三维坐标,看起来可以把整个世界任意一点的位置确定下来。原来,三维是为了确定位置。 三维既是坐标轴的三个轴,即x轴、y轴、z轴,其中x表示左右空间,y 表示上下空间,z表示前后空间,这样就形成了人的视觉立体感,三维动画就是由三维制作软件制作出来的立体动画,实现再发展的趋势。 3、为何使用3D控件 ①更形象生动地显示采集到的数据 ②相比2D图片更方便操作 ③理论上看三维图形的立体感、光景效果要比二维平面图形要好的多,因 为它的立体、光线、阴影都是真实存在的(相对来说,因为对于我们这个真实的世界来说它还是虚幻的)如下图示:

labview基本程序设计

虚拟仪器导论 实验报告 目录 一.实验目的

二.实验原理 2.1 一阶系统状态空间表达式 2.2 四阶龙格—库塔法 2.3 PID控制算法 三.实验内容 四.实验报告 4.1一阶系统仿真前面板 4.2 一阶系统仿真程序框图 五.实验分析 5.1 一阶系统特点 5.2 PID参数对控制系统性能的影响 5.3 PID参数整定方法 六.实验总结 实验二 LabVIEW基本程序设计 一、实验目的 (1) 熟悉LabVIEW 8.5开发环境; (2) 掌握LabVIEW编程语言的程序结构和图形控件的使用方法; (3) 掌握LabVIEW编程环境的程序调试方法; 二、实验原理与内容 已知一阶系统状态空间表达式

x y u x x = + - =2 2.0 编程时可采用4阶龙格-库塔算法求解上述方程: K1 = -0.2*X(k)+2*u(k); K2 = -0.2*(X(k)+0.5*T*K1)+2*u(k); K3 = -0.2*(X(k)+0.5*T*K2)+2*u(k); K4 = -0.2*(X(k)+T*K3)+2*u(k); X(k+1) = X(k)+(K1+2*K2+2*K3+K4)*T/6; Y = X(k+1); 控制算法可采用增量式PID控制算法: du = Kp*(e(k)-e(k-1))+T/Ti*e(k)+Td/T*(e(k)-2*e(k-1)+e(k-2)); u(k) = u(k-1)+du; 本实验要求基于LabVIEW编程环境,针对上述一阶系统进行控制仿真。通过控制系统仿真,分析一阶系统的特点和各个PID参数对控制系统性能的影响。 三、实验报告 (1)简述实验目的及实验原理。 (2)完成实验内容,并附上前面板和程序框图。 (3)分析一阶系统特点和各PID参数对控制系统性能的影响,总结PID参数整定的方法。 (4)总结在编程过程中遇到的问题、解决办法。

使用LabVIEW如何生成应用程序(exe)和安装程序

使用LabVIEW如何生成应用程序(exe)和安装程序(installer)在Windows平台下使用LabVIEW如何生成一个独立可执行程序和安装程序? 解答: 为什么要生成exe和installer 使用LabVIEW编写程序的最后往往需要将程序拿到目标电脑上去运行,如何将程序从开发电脑上移植到目标电脑上呢?这里有两种方法: 1. 在目标电脑上安装LabVIEW以及相关驱动和工具包,然后将vi或者整个项目拷贝到目 标电脑上。然而安装LabVIEW和各种工具包会比较耗费时间,且vi可以被任意修改,容易引起误操作,如果只是运行程序,则不推荐这种方法。 2. 将LabVIEW编写的程序在开发电脑上编译生成独立可执行程序(exe),然后将可执行 程序移植到目标电脑上,这里的移植分为两种方式: A.将生成的exe拷贝到目标电脑上,然后在目标电脑上单独安装LabVIEW运行引擎(Run-Time Engine)和需要的驱动以及工具包等,此方法中安装驱动和工具包也需要花费较多时间,不推荐 B.将生成的exe和一些用到的组件打包生成installer,即安装程序,然后在目标电脑上运行安装程序即可,这样安装完成后,之前生成的exe、LabVIEW运行引擎以及其他用到的工具包会自动安装到目标电脑上,这种方法移植程序比较简单,是最常用的方法。 关于LabVIEW运行引擎 任何电脑,只要你想在上面运行LabVIEW生成的独立可执行程序(exe),你都需要在目标电脑上安装LabVIEW运行引擎。LabVIEW运行引擎包含了: 1. 运行LabVIEW生成的可执行程序所需要的库和文件 2. 使用浏览器远程访问前面板所需的浏览器插件 3. 应用程序中生成LabVIEW报表所需要的一些组件 4. 一些3D图表的支持等 运行引擎本身就是支持多语言的,不需要安装特定语言版本的运行引擎。另外需要确保目标电脑上安装的运行引擎版本与开发应用程序时使用的LabVIEW版本一致。如果你想在一台电脑上运行多个版本的LabVIEW生成的可执行程序,那你的电脑必须安装与这些LabVIEW版本一一对应的多个版本的运行引擎。不同版本的LabVIEW运行引擎可以在NI官方网站上免费下载到。 关于硬件驱动 如果您的程序使用了NI硬件的驱动,那么在目标电脑上就需要安装对应版本的驱动程序。以DAQmx为例,比方说您在实现一个数据采集任务时用到了某个版本的DAQmx驱动,将来在目标电脑上就需要安装对应版本的DAQmx驱动。 综上所述,目标电脑上安装LabVIEW运行引擎是必须的,而硬件驱动的安装则取决于您的程序是否有使用该硬件驱动。 准备工作 生成独立可执行程序和安装程序需要用到应用程序生成器,LabVIEW专业开发版包含有应用程序生成器,基础版和完全开发版则需要单独购买。

LabVIEW FPGA教程

[LabVIEW FPGA教程]将外部IP导入LabVIEW FPGA 概览 通过将第三方IP 集成到NI LabVIEW软件,您能使用许多的针对Xilinx现场可编程门整列 (Field-programmable gate arrays, FPGA)进行优化的算法,在实现高性能的同时提高代码重用度。LabVIEW FPGA模块提供两种方法用来实现外部代码的导入:组件级IP(Component-Level Intellectual Property, CLIP)节点和IP集成节点。本白皮书将讨论这两种方法。 目录 1. CLIP节点介绍 2. 在FPGA应用中使用CLIP 3. IP集成节点介绍 4. CLIP和IP集成节点的区别 5. 相关资源 1. CLIP节点介绍 CLIP节点是一种用于将已有的FPGA IP导入LabVIEW FPGA硬件的同时通过LabVIEW FPGA程序框图与它进行通讯的框架。一旦导入成功,相对于LabVIEW FPGA,IP可以独立地、并行地运行。IP既能以原始VHDL的形式也能以诸如电子设计交换格式(Electronic design interchange format, EDIF)网表等中间文件的形式存在。这一功能要求使用者具有一定数字电路设计经验和VHDL的基本知识,因为所导入的IP 通常是一种底层的硬件描述语言(Hardware description language, HDL)。 对于不同的FPGA目标,其所支持的CLIP也不同。请参考目标硬件的的定义文档获取关于CLIP支持的信息。部分FPGA目标可支持以下一种或者两种类型的CLIP: 用户定义的CLIP—导入VHDL代码,直接与FPGA VI进行通讯。 套接字CLIP—导入VHDL代码,直接和不与LabVIEW FPGA模块关联的一个FPGA VI以及FPGA引脚进行通信。一些FPGA目标在FPGA中定义了一个您可以插入套接字CLIP的固定式CLIP套接字。 图1.在由使用者定义的CLIP节点中导入VHDL代码可以与一个FPGA VI进行通讯;反之,一个套接字CLIP节点允许IP同时连接到FPGA VI和可用FPGA引脚。 获取最新的信息,请参考标题为使用VHDL代码作为组件级IP(FPGA模块)的LabVIEW FPGA模块帮助。 2. 在FPGA应用中使用CLIP

LabView教程2——实验教程[中文版]

实验一虚拟仪器及LabVIEW入门 实验一要求: 运行National Instruments LabVIEW 6.1,完成下列实验讲义中的所给出的练习题1-1和1-2。并完成实验报告。 1.1虚拟仪器概述 虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。 虚拟仪器的主要特点有: ?尽可能采用了通用的硬件,各种仪器的差异主要是软件。 ?可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪 器。 ?用户可以根据自己的需要定义和制造各种仪器。 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。 虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。 普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI 机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。 虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE 488或GPIB协议。未来的仪器也应当是网络化的。

labview应用实例之motor控制

实验名称:LabVIEWIO输出实验 组号:62 同组者:日期: 4.28 【一】实验目的 学习和掌握LabVIEW串口通信的工作原理、功能和使用方法; 使用示波器测量电信号的各种参数; 【二】实验主要仪器设备 一台安装LabVIEW 、Proteus、IN_VISA串口通讯协议驱动和虚拟串口软件VSPD 的PC 机; 单片机实验板。 【三】实验原理 在串口通信中,由于实际上传输的是ASCII码,但是一般字符串控件显示出来的并不是其对应的ASCII码,关于字符串正常显示和十六进制显示,LabVIEW帮助文档里面是这么写的: 正常显示------可打印字符以控件字体显示。不可显示字符通常显示为一个小方框。 十六进制显示------每个字符显示为其十六进制的ASCII值,字符本身并不显示。 比方说对于01这个字符串,如果是正常显示情况下输入01,下位机接收的是其对应的ASCII码而不是01本身;如果是十六进制显示情况下输入01,下位机接收的是十六进制的01。上位机接收下位机发送的字符串同样是ASCII码,一般情况下如果不加转换,在正常显示情况下是乱码,在使用LabVIEW在编程处理直接处理这些字符串的时候,就会出现问题了。于是很多时候需要对字符串正常显示和十六进制显示做一个强制转换,以方便处理。 正常显示至十六进制显示强制转换,一般用于VISA Write:

需要注意的是,在输入端Normal Display String输入的时候要确保字符是以两位的格式输入,比如需要输入1,格式要为01,否则会出错。 十六进制显示至正常显示强制转换,一般用于VISA Read: 【四】实验内容 a. 实验步骤

基于labview的贪吃蛇游戏程序设计

成绩评定表

课程设计任务书

目录 1 目的及基本要求 0 本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小 蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为 “苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的 身子,游戏就立刻结束。本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。 0 4.1 运行结果 (8)

1 目的及基本要求 本程序是基于常看到的一款小游戏贪吃蛇而设计的,即有一条小蛇不停地在屏幕上游走,吃各个方向上出现的苹果(姑且称它为“苹果”),越吃越长,只要蛇头碰到屏幕四壁或者碰到自己的身子,游戏就立刻结束。本程序基于传统贪吃蛇游戏的特点利用LabVIEW制作的一款完整的迷你贪吃蛇游戏。 熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器原理、设计方法和实现技巧,运用专业课程中的基本理论和实践知识,采用LabVIEW开发工具,实现贪吃蛇游戏的设计和仿真。要求通过本课程设计使学生熟悉LabVIEW开发环境,掌握基于LabVIEW的虚拟仪器设计原理、设计方法和实现技巧,使学生掌握通信系统设计和仿真工具,为毕业设计做准备,为将来的学习及今后从事科学研究、工程技术工作打下较坚实的基础。 2 贪吃蛇游戏设计原理 贪吃蛇游戏大体上可分为以下几个部分: 1) 控制部分就是通过输入输出来控制蛇的运动 2) 逻辑部分进行判断蛇吃了没有是否撞墙同时把蛇的长度增加一节还要实现分数的计算 3) 图象显示部分就是将游戏显示出来 本程序的主要实现如下功能:1.小蛇在屏幕上不停的游走;2.用键盘方向键可控制小蛇的移动方向;3.吃过一个苹果后小蛇长度增加并随机产生另一个蛋; 4.小蛇碰到四壁或者碰到自己的身体时游戏结束并给出得分和提示是否继续; 5.游戏可以有多种难度选择等 3 贪吃蛇游戏设计与仿真 3.1 前面板设计 采用LabVIEW中提供的“Express XY图”作为游戏界面,显示蛇和苹果,这样就可以通过方向键来移动小蛇到想要去的地方。对XY图的属性做如下修改:

Labview中的图像处理案例介绍

Labview中的图像处理案例介绍 发布时间:2016-01-07 之前我们介绍了MV-EM130M工业相机的实时图像获取方法,本文再结合labview的图像处理函数给出一种简单的图像处理VI。此处的图像处理包括对图像进行采样,找出与采样点相同的图像。为了找出各种角度放置的采样点,在查找的同时对图像进行了360°的翻转,这样可以找出图像上所有相同点。 由于软件的运行比较复杂,数据的采集又是实时的,要求处理速度比较快,所以要对其进行整体设计,合理安排控件的调用和执行顺序。本程序中采用了一个大循环,保持程序的持续运行。在内部再调用一个顺序结构来控制程序的执行顺序,这样可以保证程序按编程者的思路进行。 图像采集&整个程序流程图 读取了图像数据后,还要设置查找的像素。这里通过一个光标选择函数来实现。先用函数IMAQ Setup Learn Pattern 2来设置需要记录的各项,然后再用IMAQ Extract函数进行光标设置。这样就记录了此光标区域的图像数据。

设置查找像素 这里用一个条件结构来控制是否进入记录像素的程序,也就是当选择了要记录的像素后,才进入此分支程序。在这一分支程序中,又利用了一个顺序结构,这样提高了程序运行的效率。 复位记录按钮 当设置完以上要查找的像素后,就可以在需要的图片中查找此像素。为了查找有用的像素,在选择了“开始查找”后,要先读取上面标记的像素,再进行查找。此处程序的设计中,也是先运行一个条件结构,再运行顺序结构,按顺序执行程序。 读取选择的像素 当读取像素后,利用顺序结构在第二帧的图像中继续查找。在这一帧中放置了一个循环,并限制循环次数为4。此时先用一个IMAQ Rotate对图像进行翻转,每次翻转90°。这样就可以在循环4次时翻转一周,对图像上各个角度的像素进行查找。再把图像送到IMAQ Match Pattern 2函数,对其进行查找。通过此函数直接输出找到的像素信息的数组。为了对找到的信息进行处理,又用一个For循环对此数据和簇进行拆分。 程序编写完成后,要对系统进行软硬件的联机调试。这里把维视图像的MV-EM130M工业相机用网线和计算机连接,并在计算机上安装驱动程序。具体操作如下:

LabVIEW程序设计步骤知识分享

L a b V I E W程序设计步 骤

LabVIEW程序设计步骤 下面通过一个设计实例来详细介绍虚拟仪器软件LabVIEW的程序设计步骤。 设计目标:假设有一台仪器,需要调整其输入电压,当调整电压超过某一设定电压值时,需通过指示灯颜色变化发出警告。 1 建立新VI 启动LabVIEW程序,单击VI按钮,建立一个新VI程序。 这时将同时打开LabVIEW的前面板和后面板(框图程序面板)。在前面板中显示控件选板,在后面板中显示函数选板。在两个面板中都显示工具选板。 如果选板没有被显示出来,可以通过菜单查看(View)/工具选板(Tools Palette)来显示工具选板,通过查看(View)/控件选板(Controls Palette)显示控件选板,通过查看(View)/函数选板(Functions Palette)显示函数选板。 也可以在前面板的空白处,单击鼠标右键,以弹出控件选板。 2 前面板设计 输入控制和输出显示可以从控件选板的各个子选板中选取。 本例中,程序前面板中应有1个调压旋钮,1个仪表,1个指示灯,1个关闭按钮共4个控件。 1)往前面板添加1个旋钮控件:控件(Controls)→新式(Modern)→ 数值(Numeric)→旋钮(Knob),如图2-14所示,标签改为“调压旋钮”; 2)往前面板添加1个仪表控件:控件(Controls)→新式(Modern)→数值(Numeric)→仪表(Meter),如图2-14所示,标签改为“电压表”。 3)往前面板添加1个指示灯控件:控件(Controls)→新式(Modern)→布尔(Boolean)→圆形指示灯(Round LED),如图2-15所示,将标签改为“上限灯”。 图2-14 添加旋钮、仪表控件 图2-15 添加指示灯、按钮控件

LabVIEW和声卡控制系统程序设计

LabVIEW和声卡控制系统程序设计 1 引言 目前,控制系统的编程软件非常多,各类编程语言也数不胜数,具有代表性的有C语言、C++及汇编语言等,相比LabVIEW软件来讲,由于他们具有严格的语言逻辑以及语言规则,所有在设计、实践中往往比较复杂,而LabVIEW作为一种G语言,以图形,线条,结点的形式进行编程,简单易学。而且图形所表示的功能已经用完善的代码集成过,拿来就用,也节省了大量的工作任务。声卡作为一种普遍而且常用的材料,能够在LabVIEW自带的声卡VI中得到更好的运用和体现,二者结合是作为平面控制系统最实用的,最方便的,而且成本较低的体现。 2 LabVIEW软件介绍 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是它与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G 编写程序,产生的程序是框图的形式。用图标代替文本行创建应用程序的图形化编程语言,LabVIEW采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是LabVIEW的程序模块。虚拟仪器

具备很好的数据采集、仿真、数字信号处理的功能。LabVIEW 拥有专门用于控制领域的模块――LabVIEWDSC以及 NI-Motion。除此之外,工业控制领域常用的设备、数据线等通常也都带有相应的LabVIEW驱动程序。使用LabVIEW可以非常方便的编制各种控制程序。 3 声卡介绍 3.1 PCI声卡 PCI声卡就是指采用PCI接口的独立声卡,PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。从结构上看,PCI是在CPU 的供应商和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。 3.2 USB声卡 USB声卡在原理上和结构上与普通的板载声卡很相似,但是由于USB具有其外置特点,他就没有了电路体积的限制,所以他能够通过复杂的模拟电路并采用更好的屏蔽设计从 而提高音质。脱离机箱,拥有不错的音质使他在性能上,实用性上得到了很大的提升,价格也相对较低,因此我们采用的是USB声卡作为平面控制系统的输出部分。 4 LabVIEW程序设计

LabVIEW入门教程

LabVIEW入门教程

1.1 LabVIEW 是什么 第一章:概述 LabVIEW (Laboratory Virtual Instrument Engineering Workbench )是一种图形化的 编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪 器控制软件。LabVIEW 集成了与满足 GPIB 、VXI 、RS-232 和 RS-485 协议的硬件及数据 采集卡通讯的全部功能。它还内置了便于应用 TCP/IP 、ActiveX 等软件标准的库函数。这 是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使 得编程及使用过程都生动有趣。 图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取 而代之的是流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念, 因此,LabVIEW 是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的 能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试 并实现仪器系统时,可以大大提高工作效率。 利用 LabVIEW ,可产生独立运行的可执行文件,它是一个真正的 32 位编译器。像许 多重要的软件一样,LabVIEW 提供了 Windows 、UNIX 、Linux 、Macintosh 的多种版本。 1.2 LabVIEW 应用程序的构成 所有的 LabVIEW 应用程序,即虚拟仪器(VI ),它包括前面板(front panel )、流程图 (block diagram )以及图标/连结器(icon/connector)三部分。 前面板 前面板是图形用户界面,也就是 VI 的虚拟仪器面板,这一界面上有用户输入和显示输 出两类对象,具体表现有开关、旋钮、图形以及其他控制(control )和显示对象(indicator )。 控制对象 显示对象 (输入) (输出) 图1-1 随机信号发生器的前面板

LabVIEW程序设计-课程设计

LabVIEW程序设计-课程设计 成绩评定表 学生姓名班级学号 基于UDP的点对点专业通信工程课程设计题目 和广播通信 评 语 组长签字: 成绩 20 年月日日期 沈阳理工大学信息科学与工程 课程设计任务书 学院信息科学与工程学院专业通信工程学生姓名班级学号课程设计题目基于UDP的点对点和广播通信实践教学要求与任务: 1,学习LabVIEW的虚拟仪器原理、设计方法和实现技巧, 2(掌握简单LabVIEW程序的编程实现, 3(掌握简单通信系统设计和分析方法, 4(采用Labview语言,实现点对点和广播通信。 ,1,通过检索、查资料、调查研究、确定方案、画出组成系统结构方框图,,2,采用LabVIEW实现点对点和广播通信系统, ,3,系统调试与改进,调整系统参数,分析系统运行结果, ,4,写出设计总结报告。 工作计划与进度安排:

17周学习LabVIEW虚拟仪器原理、设计方法和实现技巧,掌握简单LabVIEW程序的编程实现,掌握简单通信系统设计和分析方法。 19周采用LabVIEW语言,实现点对点和广播通信,并对系统进行性能分析。 指导教师: 专业负责人: 学院教学副院长: 201 年月日 201 年月日 201 年月日 2 沈阳理工大学信息科学与工程 目录 1(概述 ........................................... 4 1.1 LABVIEW简 介 ......................................... 4 2.2 UDP协议简 介 ........................................ 4 2.基于UDP的点对点和广播通信的设计原理 ............ 5 3(基于UDP的点对点和广播通信的程序设 计 ........... 5 3.1 前面板设计 ......................................... 5 3.2 程序框图(后面板)设计 (7) 3.2.1 后面板设计概述 (7) 3.2.2 打开/关闭本地UDP端口功能 (8) 3.2.3 选择广播或者点对点方式发送数据功能设计 (9) 3.2.4 发送数据功能设计 (9) 3.2.5 接受数据功能设计 ........................... 10 4.程序调 试 ....................................... 10 5.总 结 ........................................... 12 6.参考文 献 (13) 3 沈阳理工大学信息科学与工程

labview实例教程入门到精通快速上手基本

基本操作 1.创建调用子程序 我们通过例子来说明如何创建一个VI。 练习1-1: 建立一个测量温度和容积的VI,其中须调用一个仿真测量温度和容积的传感器子VI。步骤如下: 1.选择File?New,打开一个新的前面板窗口。 2.从Controls?Numeric中选择Tank放到前面板中。 3.在标签文本框中输入“容积”,然后在前面板中的其他任何位置单击一下。 4.把容器显示对象的显示围设置为0.0到1000.0。 a. 使用文本编辑工具(Text Edit Tool),双击容器坐 标的10.0 标度,使它高亮显示。 b.在坐标中输入 1000,再在前面板中的其他任何地方单 击一下。这时0.0到1000.0之间的增量将被自动显示。 5.在容器旁配数据显示。 将鼠标移到容器上,点右键,在出现的快速菜单中选Visible Iterms?Digital Display即可。 6.从Controls?Numeric中选择一个温度计,将它放到前 面板中。设置其标签为“温度”,显示围为0到100,同时配数字 显示。可得到如下的前面板图。 图1-3练习1-1的前面板图 7.Windows?Show Diagram打开流程图窗口。从功能 模板中选择对象,将它们放到流程图上组成下图(其中的标注是 后加的)。 乘法函数 进程监视器随机数发 生器 数值常数

图1-4练习1-1的流程图 该流程图中新增的对象有两个乘法器、两个数值常数、一个随机数发生器、一个进程监视器,温度和容积对象是由前棉板的设置自动带出来的。 a.乘法器和随机数发生器由Functions?Numeric中拖出,尽管数值常数也可以这 样得到,但是建议使用c 中的方法更好些。 b.进程监视器(Process Monitor)不是一个函数,而是以子VI的方式提供的,它 存放在LabVIEW\Activity目录中,调用它的方法是在Functions?Select a VI 下打开Process Monitor,然后在流程图上点击一下,就可以出现它的图标。 注意:LabVIEW目录一般在Program Files\National Instruments\目录下。 8.用连线工具将各对象按规定连接。a中的遗留问题创建数值常数对象的另一种方法是在连线时一起完成。具体方法是:用连线工具在某个功能函 数或VI的连线端子上单击鼠标右键,再从弹出的菜单中选择Create Constant,就 可以创建一个具有正确的数据格式的数值常数对象。 9.选择File?Save, 把该VI 保存为 LabVIEW\Activity 目录中的 Temp & Vol.vi。 在前面板中,单击Run(运行)按钮,运行该 VI。注意电 压和温度的数值都显示在前面板中。 10.选择File?Close,关闭该 VI 。 练习1-1结束 附注与说明: 1.如果要查看某个功能函数或者 VI 的输入输出,需要从 Help菜单中选择Show Help,再把光标置于这个功能函数或者 VI 上。例如进程监视器 VI 的 Help 窗口显示如下: 2.显示对象(Indicator)、控制对象(Control)和数值常数对象 显示对象和控制对象都是前面板上的控件,前者有输入端子而无输出端子,后者正好相反,它们分别相当于普通编程语言中的输出参数和输入参数。数值常数对象可以看成是控制对象的一个特例。 在前面板中创建新的控制对象或显示对象时, LabVIEW 都会在流程图中创建对应的端子。端子的 符号反映该对象的数据类型。例如,DBL符号表示 对象数据类型是双精度数;TF符号表示布尔数;I16 符号表示16位整型数;ABC符号表示对象数据类型 是字符串。 一个对象应当是显 示对象还是控制对象必 须弄清楚,否则无确连

相关文档
相关文档 最新文档