LabVIEW 与外部程序接口之调用DLL 测试题
- 格式:pdf
- 大小:110.11 KB
- 文档页数:2
(完整w o r d版)L a b V i e w考试试题-CAL-FENGHAI.-(YICAI)-Company One1一、填空1. VI虚拟仪器的三个主要组成部分是_前面板_、_程序框图_和_图标/连接器_。
2. LabView有三种操作模板,分别是_控件模板_、_函数模板_和_工具模板_。
3. CIN节点需要调用__*.lsb__格式文件,这种文件可以通过__Visual C++__来生成。
4. 虚拟仪器设计中连线为虚线时表示___数据类型不匹配出错_,当RUN按钮显示为折断的箭头时,表示程序___有错误发生__。
5. 在LabView中_局部变量_主要用于程序内部传递数据,_全局变量_主要用于程序之间传递数据。
6. 程序框图由_端口_、_节点_和_连线_组成的可执行代码。
二、选择1. 当一个函数的error in带有错误信息时,下列哪种说法是正确的(D )A 该函数会对错误信息进行处理。
B 该函数不会作任何操作,而是直接将错误信息传递给error out,且不会将自身函数发生的错误添加进去。
C 该函数会发出错误警告,且使程序终止运行。
D 该函数直接将错就错传递给error out,且会将自身函数发生的错误加进去。
2. 下列哪种说法是错误的( B)A 虚拟仪器采用的是面向对象和可视化编程技术。
B 在程序运行的过程中波形的可变性是不可改变的。
C 在LabView中,VI程序的运行时数据是流动的。
D 在创建子程序时,可以使用连线工具给前面板的控制器和指示器分配端口。
3. 下列哪种说法是对的( C )A While循环只有条件端口接收到的值为True时才停止循环。
B While循环不满足条件时,一次也不执行循环。
C For循环当N<1时,一次也不循环。
D For循环可以嵌套,While循环不可以嵌套。
4. 当数据采集卡组态成DIFF模式时,将使用差分连接方式,使用这种连接方式下列说法错误的是(C )A 可以减少尖峰噪声B 增加噪声抑制C 增大尖峰噪声D 增加共模信号抑制5. 下列哪种总线产品对PCI总线完全兼容。
LabVIEW编程调用DLL时遇见的问题对于使用LabVIEW编程的人来说,都知道LabVIEW功能强大,但也会发现似乎缺少某些功能,而像其他编程语言的DLL、ActiveX组件则能提供。
在使用DLL(动态链接库)时,最大的困难就是把函数参数的数据类型映射为相应的LabVIEW中的数据类型。
LabVIEW 提示:未定义符号可能会造成函数和参数无法被识别。
如要解决该问题,检查头文件并确定是否必须添加预定义符号。
单击上一步按钮返回至向导的前一页并添加预定义符号(例如,"NIAPI_stdcall = __stdcall"或"NIAPIDefined = 1")在一次进行串口调试软件的编写过程中,要求使用动态链接库(其实使用VISA同样可以实现),使用导入共享库工具以自动生成配置CLN(Call Library Function)节点,工具在“工具—导入—共享库(.dll)”菜单项下,专门用于将DLL 中函数包装成VI。
下一步下一步点击解析头文件后,依然遇见(如下图)extern UINT Recv(UCHAR *pRecvBytes,UINT unRecvLength);(函数原型)未定义符号可能会造成函数和参数无法被识别。
如要解决该问题,检查头文件并确定是否必须添加预定义符号。
单击上一步按钮返回至向导的前一页并添加预定义符号(例如,"NIAPI_stdcall = __stdcall"或"NIAPIDefined = 1")归咎原因就是头文件中的一些类型定义不符合标准C语法,而使解析器无法获得正确的的mPWIN32_COMMAND定义。
DLL函数的头文件中可能使用了某个系统定义的数据类型,数据类型的定义在windows.h中,(windows.h是Windows SDK的一个文件,VC等开发环境中常常带有Windows SDK),要正确解析必须得到这些数据类型,也就是找到windows.h 这个头文件,用户须把windows.h文件的全路径加在“包括路径”中。
labview模拟试卷⼀、填空题1、Labview具有3种⽤来创建和运⾏程序的图形化可移动模板:(⼯具模板),(控制模板)和功能模板。
(2分)2、把被测的模拟信号转换为数字量之前需要先进⾏放⼤、滤波或(隔离)等预处理,这项⼯作叫做信号调理。
(1.5分)3、(移位寄存器)和(反馈节点)都是循环结构的附加对象,前者的功能是把当前循环完成时的某个数据传递给下⼀次循环的开始;后者相当于只有⼀个左端⼦的移位寄存器,同样⽤于在两次循环之间传递数据。
(4分)4、在LabVIEW中,VI程序最⼤特点是其程序运⾏是(数据流)驱动的(3分)5、⽂件操作通常包括下列3个基本步骤:打开现存⽂件或创建⼀个新⽂件,(写⼊或读取⽂件)和关闭⽂件。
(2分)6、使⽤两个For循环,把其中⼀个嵌套在另⼀个中可以⽣成⼀个⼆维数组。
外层的For循环产⽣(⾏)元素,⽽内层的For循环产⽣(列元素)。
(3分)7、在创建⼦程序时,可以使⽤(连线⼯具)给前⾯板的控制器和指⽰器分配端⼝。
(1.5分)8、LabVIEW有四种类型的节点:(函数)、(⼦VI)、Express VI和结构。
(3分)⼆、单项选择题。
1、以下控件中,可以决定FOR循环运⾏次数的的图标是(D)。
2、下列哪种说法是错误的?(A )A、数组中的元素不可以是波形类型。
B、波形是⼀种族。
C、虚拟仪器采⽤的是⾯向对象和可视化编程技术。
D、WHILE循环可以设置成条件为”假(F)”。
4、关于全局变量,下列哪种说法是错误的?(C)A、全局变量是⽤于在不同的程序之间传递数据。
B、它只有前⾯板,没有程序框图。
C、全局变量是⼀个特殊的VI,可以使⽤公式节点进⾏编程。
D、全局变量通过接⼝实现主程序和⼦程序之间的数据传递。
5、关于条件结构选项卡控件,下列说法哪种说法是正确的?(B)A、它输出ASCII值,该值与被选择的标签相同。
B、它实质是⼀个枚举类型(enumerated)。
C、每⼀个Tab中都能放很多显⽰控件。
前言:LABVIEW是一个强大的图形编程语言,使用很简单,就是你没有任何编程经验也可以LABVIEW编程,对于需要快速上手图形编程的人是一个不错的选择。
在很多时候我们会用C语言写一些计算机的底层驱动,比如USB数据传输或者串口数据传输,如何把我们自己写的驱动程序集成到LABVIEW中呢?下面我就用图和简单说明的方式给大家说说,由于我也是初学,所以有的地方可能会有错误或不准确的地方,欢迎大家指正,废话不多说了,下面开始正式的教程。
目的:通过一个现成的I2C适配器控制I2C接口的AM2311温湿度传感器,将测得的温度和湿度用LABVIEW显示出来,最终效果如图所示。
准备:1、安装LABVIEW2010。
2、I2C适配器1台。
3、I2C适配器上位机驱动函数库,和函数库头文件。
4、AM2311传感器模块一台。
第一步:打开LABVIEW2010,按下图导入我们需要使用的DLL文件。
得到如下界面,点击下一步。
打开DLL和头文件,点击下一步。
到这里我们的库就基本上导入完毕,但是还有一件事情要做,因为在Ginkgo_Driver.dll里面用到了vt214x.dll里面的一些函数,所以要把这个文件拷贝到刚刚生成库的目录下,否则在运行程序的时候会出现找不到这个DLL的错误提示,而且程序也不能正常工作。
我生成的库目录是:D:\Program Files (x86)\National Instruments\LabVIEW 2010\user.lib\Ginkgo_Driver。
你可以根据自己的实际情况处理,拷贝这个文件后在这个目录下的文件如下图所示:到这里库基本上就导入完毕,下面我们就可以在VI程序里面使用这些库函数了。
第二步:打开LABVIEW软件,新建一个VI文件,另存名字为AM2311.vi。
我们在前面板设计为如下界面。
切换到程序款图界面,因为我们程序需要顺序执行,最后需要在一个循环里面循环读取数据,所以我们可以通过平铺顺序结构来设计程序,在平铺顺序结构的第一帧调用刚刚导入的VTIF_I2C_SelectDevice()函数选择设备,在第二帧调用VTIF_I2C_Init()初始化函数初始化I2C适配器,然后就可以循环的读取数据了,最好将数据解析出来并显示出来。
LabVIEW 8.6报表工具包生成和调用DLL问题分析及对策摘要:针对LabVIEW8.6调用报表工具包生成的DLL过程中出现“NI_Word.lvclass”路径无法找到的问题,做了详细描述和分析,并提供了相应的解决方案。
关键词:LabVIEW 8.6 Word 动态链接库报表工具包面向对象LabVIEW是美国国家仪器(NI)公司推出的专门用于虚拟仪器开发的图形化软件编程平台,吸引了大批开发者追随,NI也根据市场需求每年推出一个新版本。
但新技术的引用不可避免的也带来了新的问题和BUG,尤其是升级后,很多硬件驱动不得不更新。
LabVIEW 8.6版本是NI推出的所有版本中,大部分用户公认比较成熟稳定的版本。
NI 报表工具包从1.1.3开始采用面向对象技术,重新设计,1.1.3和1.1.4版本是专为LabVIEW 8.6而定制使用的,而以前的版本如1.1.1、1.1.2(面向过程技术)在LabVIEW 8.6下与自带的Report函数不兼容。
1 问题描述应用开发环境以及报表工具包版本:LabVIEW 8.6 + Report Generation Toolkit 1.1.3。
在LabVIEW 8.6新建工程项目文件,并按照图1和图2建立相应的VI和文件。
当运行main.vi或Main.exe时,出现下面(图3)报错框。
而单独运行1.vi或1.exe时,却能正常运行。
2 问题分析根据问题报错框描述,问题可能出现在“Get LV Class Default Value.vi”的上一层文件“Word class path.vi”传递出的NI_Word.lvclass 路径,图4为报表工具包自带的“Word class path.vi”程序框。
利用LabVIEW自带诊断和调试工具,可获得“Word class path”显示的文件路径,如表1所示。
(1)当运行main.vi时,由于是“Develo- pment system”环境下,根据路径的分离规则,“NI_Word.lvclass”文件路径应在当前DLL文件的下层目录,并且布尔量选择为False,即“..\1.dll\word\ NI_Word.lvclass”。
labview考试题及答案一、单选题(每题2分,共10题,共20分)1. LabVIEW是一种由哪家公司开发的图形化编程语言?A. 微软B. 国家仪器(NI)C. 苹果D. 谷歌答案:B2. 在LabVIEW中,哪个术语指的是程序的开始?A. 循环B. 事件结构C. 顺序结构D. 子VI答案:C3. 以下哪个是LabVIEW中用于创建子VI的函数?A. 创建数组B. 创建簇C. 创建子VID. 创建引用答案:C4. 在LabVIEW中,如何表示一个布尔值?A. 使用数字1或0B. 使用字符串"True"或"False"C. 使用布尔控件D. 使用开关控件答案:C5. LabVIEW中的哪个功能允许用户在不停止程序的情况下调试代码?A. 单步执行B. 断点C. 探针D. 性能分析答案:B6. 在LabVIEW中,哪个术语用于描述一个程序的输入和输出?A. 前面板B. 块图C. 子VID. 终端答案:A7. 以下哪个不是LabVIEW中的数组操作函数?A. 构建数组B. 连接数组C. 排序数组D. 求和数组答案:D8. 在LabVIEW中,如何将一个布尔值转换为数值?A. 使用转换函数B. 使用逻辑运算C. 使用比较函数D. 使用数学函数答案:A9. 在LabVIEW中,哪个函数用于将字符串转换为数值?A. 字符串到数值B. 字符串到布尔C. 字符串到日期/时间D. 字符串到路径答案:A10. 在LabVIEW中,如何实现循环结构?A. 使用While LoopB. 使用For LoopC. 使用Case StructureD. 使用Sequence Structure答案:A二、多选题(每题3分,共5题,共15分)1. 以下哪些是LabVIEW中的数据类型?A. 数值B. 布尔C. 字符串D. 路径答案:A, B, C, D2. 在LabVIEW中,哪些是常用的数组操作?A. 构建数组B. 连接数组C. 排序数组D. 求和数组答案:A, B, C3. 在LabVIEW中,哪些是调试程序的方法?A. 单步执行B. 断点C. 探针D. 性能分析答案:A, B, C4. 以下哪些是LabVIEW中的结构?A. 循环B. 事件结构C. 顺序结构D. 子VI答案:A, B, C5. 在LabVIEW中,哪些是布尔值的表示方法?A. 使用数字1或0B. 使用字符串"True"或"False"C. 使用布尔控件D. 使用开关控件答案:C, D三、判断题(每题1分,共5题,共5分)1. LabVIEW是一种文本编程语言。
图20 Parameters页面点击“OK”,将生成的CLN的输入段连接到DAQmx Read.vi,return type 输出连接到波形图表上,即可实现采集值放大10倍的功能。
图21 完成后的程序方法二LabVIEW中还有一种方法可以调用DLL文件,在VI的选项栏,依次选择Tools——Import——Shared Library(.dll),弹出Import Shared Library 对话框。
图22 生成Import Shared Library对话框选择Create VIs for a shared library,点击Next,在Shared Library (.dll) Files中输入Scale.dll文件的路径,Head(.h) File里填写头文件的路径。
图23 选择DLL文件路径和头文件路径点击Next,如果DLL文件中依赖其他的一些DLL文件,需要在Include Paths中填写这些文件的路径。
其他选项可以根据客户需求设置,一般默认即可。
这样一直点击Next到最后,选择Open the generated library,点击Finish。
这样可以生成一个.lvlib格式的库文件,里面包含了Scale.vi,这是将调用该DLL 文件的方法封装好的VI,只留下输入和输出接口,方便运用到LabVIEW的程序中。
直接将Scale.vi拖放到刚才的连续采集中即可完成方法一的功能。
图24 完成的程序VC调用LabVIEW生成的DLL文件刚才介绍了LabVIEW调用DLL文件的方法,使用VC调用LabVIEW生成的DLL 文件也很简单。
还是以之前生成Scale 的DLL文件为例,不同的是采集电压程序使用的是C语言的例程,但和LavVIEW实现的功能相同。
首先将先前生成Scale DLL文件时,路径下所有的文件全部复制粘帖到C语言例程的文件夹下。
打开连续采集程序,点击状态栏的Project——Settings,在Project Settings对话框中加载入Scale.lib的静态链接库。
labview考前练习题在工程领域,LabVIEW是一种广泛应用的可视化编程语言和开发环境。
它被用于设计、测试和测量等多种应用,并且在各个行业都有着重要的地位。
为了更好地应对LabVIEW考试,下面将提供一些考前练习题,帮助你加深对LabVIEW的理解和应用。
练习一:基础概念1. 请简要解释什么是LabVIEW?2. 什么是VI,其由哪几个主要部分组成?3. LabVIEW中的前台和后台有何区别?练习二:数据类型和变量1. 列举LabVIEW中的常见数据类型,并简要描述其特点。
2. 什么是全局变量?在LabVIEW中如何创建和使用全局变量?3. 如何将一个字符串转换为数字类型?练习三:图形化编程1. 解释一下LabVIEW中的块图(Block Diagram)和前台(Front Panel)的作用。
2. 请简要描述LabVIEW中的数据流编程(Dataflow Programming)原则是什么?3. 如何在LabVIEW中实现条件语句(如if-else语句)?练习四:循环结构和数组1. 请解释什么是循环结构,LabVIEW中有哪些常见的循环结构?2. 如何在LabVIEW中创建和使用数组?3. 请描述一下LabVIEW中的索引数组和关联数组。
练习五:文件I/O和图表绘制1. 如何在LabVIEW中读取和写入文件?2. 如何在LabVIEW中实现数据的图表绘制?练习六:LabVIEW工程应用1. 请列举一些LabVIEW在工程领域中的应用实例。
2. 解释一下LabVIEW中的模块化设计思想,并解释其优势。
练习七:错误处理和调试1. 如何在LabVIEW中处理错误?2. 如何在LabVIEW中进行程序的调试和测试?练习八:LabVIEW与其他编程语言的结合1. LabVIEW能否与其他编程语言(如C++、Python)进行交互?如果可以,请列举一些实现的方式。
2. 你认为LabVIEW与其他编程语言相比,在哪些方面具有优势?通过以上练习题的回答,相信您能够更好地掌握LabVIEW的基本概念和使用技巧,为考试做好充分的准备。
labview基础练习题LabVIEW是一款功能强大的图形化编程语言和开发环境,用于实时数据采集、控制系统、信号处理和虚拟仪器等领域。
在学习和使用LabVIEW过程中,进行一些基础的练习题可以帮助我们更好地掌握该软件的使用方法和技巧。
本文将介绍一些LabVIEW的基础练习题,帮助读者提升对LabVIEW的理解和应用能力。
练习一:简单的图形绘制1. 打开LabVIEW软件,并创建一个新的VI(Virtual Instrument)。
2. 在Front Panel上添加一个Graph控件,并设置其大小和位置。
3. 在Block Diagram上添加一个For Loop循环结构。
4. 在For Loop中使用一个正弦函数来生成数据。
5. 将生成的数据通过一个数组输出到Graph控件中。
练习二:数据采集与显示1. 打开LabVIEW软件,并创建一个新的VI。
2. 在Front Panel上添加一个Graph控件,并设置其大小和位置。
3. 在Block Diagram上添加一个While Loop循环结构。
4. 使用一个DAQmx控件来进行数据采集,设置采集的通道和采样率等参数。
5. 将采集到的数据通过一个数组输出到Graph控件中,实现实时数据显示。
练习三:控制系统仿真1. 打开LabVIEW软件,并创建一个新的VI。
2. 在Front Panel上添加一个Numeric控件,并设置其为输入。
3. 在Block Diagram上添加一个PID控制器,并将Numeric控件的值作为输入。
4. 设置PID控制器的相关参数,并连接到输出端。
5. 在Front Panel上添加一个Graph控件,并将PID控制器的输出连接到Graph上,实现对控制系统的仿真。
练习四:信号处理1. 打开LabVIEW软件,并创建一个新的VI。
2. 在Front Panel上添加一个Waveform Chart控件,并设置其为输入。