LabVIEW 与外部程序接口之调用DLL 测试题
(完整word版)LabView考试试题

(完整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编程调用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模拟试卷

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调用DLL

前言: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问题分析及对策

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考试题及答案

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是一种文本编程语言。
labview调用dll方法+

0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
unsigned char i;
unsigned char RH = 0xff;
unsigned char RL = 0xff;
unsigned char *buf=(unsigned char *)pbuf;
do
{
i = *buf ^ RL;
buf ++;
RL = RH ^ CRC_TABLE_H[i];
RH = CRC_TABLE_L[i];
}while(--len);
return(RH * 256 + RL);
}
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
};
/*******************************************************************************
LabVIEW与外部程序间DLL文件的调用

图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的静态链接库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B.
C.
D.Βιβλιοθήκη 答案:B 4. 调用 DLL 的优点有: A. 动态载入,节省内存;B 编写与编译器无关; C.统一 DLL 的开发规范和编程方法 D. 需要了解源代码的编程细节 答案:ABC 5. DLL 可以有以下那些语言生成: A. LabVIEW B. VC C. VB D.TCP/IP 答案:ABC
LabVIEW 与外部程序接口之调用 DLL 1. 在 LabVIEW 的编程环境中通过 DLL 的方式实现与其他程序接口的有: A. C 语言 B .NET 语言 C. MATLAB D.VB 答案:ABD 2. 如果需要调用的函数是在 user32.dll 库中的,那么在选择调用规范中应该选择: A .stdcall(WINAPI) B. C 答案:A 3. 如果在 DLL 的函数定义中数据类型是 FLOAT *output,那么在配置输出函数时应该选择: A.