LabVIEW 与外部程序接口之调用DLL 测试题

合集下载

(完整word版)LabView考试试题

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

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调用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问题分析及对策

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

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方法+

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文件的调用

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的静态链接库。

labview考前练习题

labview考前练习题

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过程中,进行一些基础的练习题可以帮助我们更好地掌握该软件的使用方法和技巧。

本文将介绍一些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控件,并设置其为输入。

labview经典练习题

labview经典练习题

labview经典练习题LabVIEW是一种广泛应用于科学研究和工程领域的图形化编程语言和开发环境。

它以其简单易学的特点,成为了许多工程师和科学家的首选工具。

为了更好地掌握LabVIEW的使用技巧和提高编程能力,下面将介绍一些经典的LabVIEW练习题。

1. 温度转换器首先,让我们来设计一个简单的温度转换器。

要求用户输入摄氏温度,并将其转换为华氏温度。

我们可以使用LabVIEW中的数字输入框和按钮来实现用户输入和触发转换的功能。

然后,使用数学运算模块将摄氏温度转换为华氏温度,并将结果显示在屏幕上。

2. 数字求和器接下来,我们来设计一个数字求和器。

用户可以输入一系列数字,并通过点击按钮来计算它们的总和。

我们可以使用循环结构和累加器来实现这个功能。

首先,使用循环结构来重复获取用户输入的数字,然后使用累加器将这些数字相加,并将结果显示在屏幕上。

3. 数据绘图器LabVIEW还提供了强大的数据绘图功能,我们可以利用它来设计一个简单的数据绘图器。

用户可以输入一系列的数据,并通过点击按钮来绘制这些数据的曲线图。

我们可以使用图表控件和数据输入框来实现这个功能。

首先,使用数据输入框来获取用户输入的数据,然后使用图表控件将这些数据绘制成曲线图。

4. 信号发生器接下来,让我们设计一个信号发生器。

用户可以设置信号的频率和幅度,并通过点击按钮来生成该信号。

我们可以使用波形发生器模块和按钮控件来实现这个功能。

首先,使用波形发生器模块来生成用户设置的信号,然后使用按钮控件来触发信号的生成和停止。

5. 数据采集器最后,我们来设计一个数据采集器。

用户可以设置采样频率和采样时间,并通过点击按钮来开始数据采集。

我们可以使用数据采集模块和按钮控件来实现这个功能。

首先,使用数据采集模块来按照用户设置的频率进行数据采集,然后使用按钮控件来触发数据采集的开始和停止,并将采集到的数据显示在屏幕上。

通过完成这些经典的LabVIEW练习题,我们可以更好地掌握LabVIEW的使用技巧和提高编程能力。

LabVIEWCLAD模拟试题(卷)(中文)

LabVIEWCLAD模拟试题(卷)(中文)

LabVIEWCLAD模拟试题(卷)(中⽂)1. 在何处向VI添加的说明信息会显⽰在“显⽰即时帮助”弹出窗⼝?a. 使⽤VI属性说明信息窗⼝b. 在即时帮助窗⼝中输⼊c. 在前⾯板上创建⼀个⾃由标签d. 编辑LabVIEW帮助⽂件2. 连线可以在并⾏执⾏的循环间传递数据吗?a. 可以b. 不可以3. 下列关于选项卡控件的描述,正确的是?a. 选项卡控件的输出值是选中的选项卡标签的ASCII值b. 选项卡控件是⼀种枚举型控件c. 选项卡控件的输出值是选项卡上的控件簇d. 选项卡控件的输出值是前⾯板上控件的Tab键顺序4. 运⾏DataSocket VI之前必须先启动哪个服务器?a. HTTP服务器b. DataSocket服务器c. FTP服务器d. OPC服务器5. 强制转换点表⽰:a. 数据类型⼀致b. 对数据执⾏多态运算c. 创建⼀个数据缓冲区,处理数据转换d. 数值超出围,应进⾏强制转换6. 下列关于程序框图的表述,正确的是?a. 循环将执⾏⼀次,计数接线端将输出值1b. 循环将执⾏⼀次,计数接线端将输出值0c. 循环将执⾏⽆穷次,需中⽌程序d. 循环不执⾏,计数接线端将输出空值7. 下列不能⽤于传递数据的是?a. 信号量b. 队列c. 通知器d. 局部变量8. 下列接线端中控制For循环执⾏次数的是?a. b. c. d.9. 在VI前⾯板上有⼀个控件,需在运⾏时修改其属性。

最佳⽅法是?a. 创建⼀个隐式属性节点,选择要修改的属性b. 创建⼀个控件引⽤,将引⽤传递⾄属性节点,选择要修改的属性c. 创建⼀个⾄控件的共享变量,选择要修改的属性d. 创建⼀个局部变量,选择要修改的属性10. 公式节点可进⾏下列哪种运算?a. 基本编程指令Input和Printb. 在公式节点中嵌套⼦VIc. 与C语⾔类似的前后递增(++)和递减(--)d. 嵌套式公式节点结构11.更新前⾯板显⽰控件的最佳⽅法是?a. 使⽤“值”属性节点b. 直接连线显⽰控件接线端c. 使⽤局部变量d. 使⽤功能局部变量12.下列哪个函数按照元素的⾃有标签组合簇元素?a. 按名称解除捆绑b. 解除捆绑c. 按名称捆绑d. 捆绑13. 选择连接输⼊时,程序框图上“创建数组”函数的输出是?a. ⼀维数组{1, -4, 3, 7, -2, 6}b. ⼀维数组{1, 7, -4, -2, 3, 6}c. ⼆维数组{{1, -4, 3, 0}, {7, -2, 6}}d. ⼆维数组{{1, -4, 3}, {7, -2, 6}}14. 执⾏下列代码后,“初始化数组”函数的输出是?a. ⼀维数组{3, 3, 3, 3}b. ⼀维数组{4, 4, 4}c. ⼀维数组{3, 4}d. ⼀维数组{4, 3}15. 使⽤状态机VI架构的缺点是?a. 状态机只能按顺序执⾏状态b. 如果两个状态同时发⽣,只处理第⼀个状态变化,第⼆个状态变化将丢c. 将通⽤架构转换为状态机架构后,程序框图将显著增⼤d. 状态机不能采集数据或使⽤DAQ函数16. 发⽣错误时停⽌While循环的最佳⽅法是?a. ⽐较错误簇的状态布尔值与常量,然后将⽐较结果连接⾄停⽌接线端b. 直接将错误连线连接⾄停⽌接线端c. 创建⼀个事件结构处理错误事件d. 使⽤错误处理器VI⾃动处理错误17. 如需模拟Windows对话框的按钮,应选择哪种布尔机械动作?a. 保持转换直到释放b. 释放时转换c. 保持触发直到释放d. 释放时触发18. 下列哪个词语组合可完成下列表述?与__________显⽰整个波形覆盖已存储的数据不同,___________周期性更新,并保持之前存储数据的历史记录。

labview DLL调用

labview DLL调用

动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库。

在LabVIEW中,一维数组、二维数组、字符串是可以和C/C++中的相应数据类型直接对应起来,因此比较容易实现。

那么对于C/C++语言中的结构体,大家也会想到可以和LabVIEW中的簇对应起来,但是在具体的应用中还会涉及到一些细节,需要我们去留意,否则很可能调用不成功,甚至由于非法读写内存导致系统崩溃。

另外,在LabVIEW中的返回值只有数值、字符串和指针,因此当DLL中的函数返回值为结构体时该如何处理?当输入参数包含指向函数的指针时该如何处理?在解决这些问题之前,先推荐四篇文档,有长有短,但是都写得很细致:1)如何通过调用库函数结点使用DLL——Configuring the Call Library Function Node to call a Simple DLL 链接:https:///content/docs/DOC-90692)如果是简单的数据类型(如数值、数组、字符串、简单结构体),在LabVIEW和DLL之间传递或接收指针,LabVIEW能够自动的正确的解析指针——Passing and ReceivingPointers with C/C++ DLLs from LabVIEW 链接:https:///content/docs/DOC-90803)因为LabVIEW隐藏了对内存的管理,没有开放的函数提供对具体内存地址的直接访问,所以当C/C++中返回的是一个指针,并且LabVIEW又不能自动解析这个指针时,该怎么办——Dereferencing Pointers from C/C++ DLLs in LabVIEW 链接:https:///content/docs/DOC-90914)介绍导入共享库工具(Import Shared Library Wizard),当我们拿到一个DLL和它的头文件(.h)时,利用该工具,能够自动生成针对DLL每个函数的子VI,最大的好处是不需要再手动设置输入输出参数并进行类型匹配,当然它有一定的局限性,比如复杂的类型它匹配不了——Creating Wrapper VIs for C/C++ DLL functions using the Import Shared Library Wizard 链接:https:///content/docs/DOC-90785)大家也可以通过这篇文档直入主题,因为它写得很全,包含详细的VI和C/C++源代码,并且有一个目录供大家索引,它回答了以下情况的问题:1)数值型2)一维数组 3)字符串4)二维数组 5)简单结构体 6)复杂结构体。

如何使用LabVIEW调用C#编写的DLL

如何使用LabVIEW调用C#编写的DLL

如何使用LabVIEW调用C#编写的DLL如何使用LabVIEW调用c#编写的DLL最近在做一个项目时,需要在Labview中列出可用的磁盘驱动器,我们可以使用互连接口》库与可执行程序》执行系统命令vi,但是在程序运行时会弹出命令提示符窗口,对于计算机菜鸟用户而言,他们或许会以为那是在执行病毒程序,为了增加用户的好感度,本文采用调用DLL的方式来解决问题。

在调用DLL之前,我们先来创建一个DLL,打开VS2008,新建一个类库项目,如下图:点击确定后进入代码编写窗口。

编写好的代码如下图所示:选择VS2008的生成》配置管理器,打开配置管理器,如下图所示:在活动解决方案配置下拉框中选择Release,然后点击关闭。

选择生成》生成DrivesInfoDll,然后生成一个DLL文件。

在项目的的bin\Release目录下面可以找到生成的DLL文件,如下图所示:我们把它复制我要使用它的地方,如下图:现在,打开LabVIEW2012,新建一个VI,切换到程序框图,选择下图的构造器节点到程序框图:此时将自动打开选择.NET构造器:点击浏览按钮,选择要调用的DLL:点击确定后在对象中选择Class1:,如下图所示:点击确定按钮关闭对话框。

选择下图的调用节点到程序框图:将构造器节点的“新引用”输出端与调用节点的“引用”输入端连接起来,然后在调用节点的“方法”上点击,选择我们要使用的方法,这里选择GetDrivesInfo()。

选择下图的关闭引用到程序框图并连接调用节点的“引用输出”输出端到关闭引用的“引用”输入端。

然后创建一个字符串数组,显示GetDrivesInfo方法的执行结果。

完整的程序框图如下:运行后的前面板结果如下:这说明程序是执行成功了的。

labview练习题

labview练习题

labview练习题LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种流行的图形化程序设计语言,常用于科学研究、工程设计和嵌入式系统开发。

本文将为您提供一些LabVIEW练习题,帮助您提高对LabVIEW的理解和应用能力。

1. 题目一:加法器创建一个简单的LabVIEW程序,实现两个数的相加功能。

在用户界面上放置两个输入框,用于输入两个数值。

通过一个按钮触发程序执行,将两个数相加的结果输出到另一个显示框中。

2. 题目二:温度转换器创建一个LabVIEW程序,将摄氏度转换为华氏度。

在用户界面上放置一个输入框,用于输入摄氏度值。

通过一个按钮触发程序执行,将转换后的华氏度输出到一个显示框中。

3. 题目三:计时器创建一个简单的LabVIEW程序,实现一个计时器功能。

在用户界面上放置一个开始按钮和一个停止按钮。

当用户点击开始按钮时,计时器开始计时,并在界面上显示经过的时间。

当用户点击停止按钮时,计时器停止,并将计时结果显示在一个文本框中。

4. 题目四:数据绘图创建一个LabVIEW程序,读取一个文本文件中的数据,并将数据绘制成折线图。

在用户界面上放置一个文件选择按钮,用于选择要读取的文本文件。

点击读取按钮后,程序读取文件中的数据,并将数据绘制成折线图展示在用户界面上。

5. 题目五:串口通信创建一个LabVIEW程序,实现与外部设备的串口通信。

在用户界面上放置一个串口选择下拉菜单和一个发送按钮。

用户可以选择要通信的串口,点击发送按钮后,程序向选定的串口发送指定的数据。

以上是几个常见的LabVIEW练习题,通过完成这些练习,您可以逐步熟悉LabVIEW的操作和功能。

当然,除了这些题目,您还可以根据自己的实际需求和兴趣,设计更加复杂的LabVIEW程序。

希望本文对您的学习和实践有所帮助!。

Labview调用dll详解(C语言DLL

Labview调用dll详解(C语言DLL

Ccall和standcall的区别?自己创建的采用Ccal?你都试过吗?
4 n! W5 G+ P' I- M' B- U7 P' AC能用new来分配内存?也许我上学时学的不是ansi c
解释前先说一句废话,只有多了解C才能调用好DLL。LV自带的DLL解析(也就是导入共享库)是没用的。下面继续说这个函数。extern "C" ZLDS10X_DLL_API SENSOR_HANDLE ZLDS10X_DLL_stdcall ZLDS10X_Open(char * portnum , int baud , int timeout , int address); 这里面有四个参数一个返回值。SENSOR_HANDLE 是头文件里面用宏定义的数据类型int 。在返回值选项里面“类型”我们选择“数值”;“数据类型”我们选择int16。值得注意的是,由于C版本众多,而且标准C对于数据类型没有完全规定死,数值的“数据类型”有时候要参看具体的编译器。标准C规定:int不小于16位,long不小于32位。一般可以int选择I16,long选择I32(关于有符号数和无符号数的区别见C,不解释,64机另论)。char*表明传递的字符串,C语言的字符串等价于U8数组,所以“类型”我们选择“数组”;“数据类型”我们选择U8, “数组格式”选择“数组数据指针”。另外三个参数不用多解释。传递的是数值,数据类型选择好就可以了。看起来我们配置好了这个函数,对吧,但是运行就会得到一个-1的结果。-1代表错误。其中的原因在于C语言和labview的不同。C语言里面的字符串是以NULL(\0)结束的,但是labview不是,所以我们要将这个因素考虑进去,具体做法是:使用连接字符串。然后转化为U8,这样就可以啦。顺便解释一下,open的作用是打开串口,原型是C里面的creatfile函数,串口通信的第一个函数,要记得加上\0,否则程序很多会出错误!!值得注意的是,C编译器以及32位机和64位机的差异在Labview调用时也有体现,所以造成实际的调用十分麻烦,要很好的理解C的基础知识!下篇介绍令大家郁闷的指针的调用!

LabView试卷

LabView试卷

1. 所有的LabVIEW 应用程序,即虚拟仪器(VI),它包括前面板、流程图以及图标/连结器三部分。

2. LabView有三种操作模板,分别是控件模板、函数模板和工具模板。

3. CIN节点需要调用*.lsb格式文件,这种文件可以通过Visual C++来生成。

4. 虚拟仪器设计中连线为虚线时表示数据类型不匹配出错,当RUN按钮显示为折断的箭头时,表示程序有错误发生。

5.在LabView中局部变量主要用于程序内部传递数据,全局变量主要用于程序之间传递数据。

6. 程序框图由端口、节点和连线组成的可执行代码。

7、数组是相同类型的数据元素的集合,数据元素的类型可以是任意的,可以创建数值数组、布尔数组、字符数组和簇数组。

8、数据采集系统由被测参数→传感器→信号调理→数据采集卡→计算机组成。

9、Labview支持文本文件,二进制文件,数据记录文件,波形文件,测试数据文件等格式的文件输入和输出。

10、数据采集卡性能指标有输入通道数,输出通道数,采集位数,采集速度等。

11、循环边框上的数据出口为一个小方块,称为移位寄存器,具有存贮数据功能,对FOR 循环而言第一次循环时布尔型数据出口值为false。

12、虚拟仪器在使用数据采集卡之前必须运行专用软件MAX进行配置,如设置通道名,输入输出类型,测量类型等。

13、LabVIEW概念是一种用图标代替文本行创建应用程序的图形化编程语言。

14、传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了程序的执行顺序。

它用图标表示函数,用连线表示数据流向。

15、LabVIEW程序为称为VI,扩展名默认为.vi。

16、程序框图是图形化源代码的集合,这种图形化的编程语言也称为G语言。

17、虚拟仪器系统是由计算机、应用软件和仪器硬件三大要素构成的。

计算机与仪器硬件又称为VI的通用仪器硬件平台。

18、LabVIEW程序被称为VI(Virtual Instrument),即虚拟仪器。

CLAD模拟试题

CLAD模拟试题

W7 NATIONAL ^INSTRUMENTSLabVIEW 基磁毫^^^ (CLAD)注意:测■遇程中,禁止使用♦躺或任何多考^料。

就明:言勿擅自撕品任何漏封。

若交逮NI的测腕就IS不完整或祠封破损,即将立即失去测腕溜格。

•官青遵守就卷上的要求。

如果您填金昔了准考^虢礁,本次测瞬招视作辗效。

•^在答案卡上填瘾所有的答案。

填瘾在就卷上的答案符不纳入^分襟举。

•官青勿要求签考人_S余合予任何十薪助。

若熬卷题目不甚清楚,即可襟言带亥冏魅,旋嘉下您自己熬卷敕合遹的答案舆理由,以供NI囿卷畤参考之用。

•您不可摧出此份模掇就题,亦不可用任何方式重现此份就题。

在完成测瞬之彳爰,亦不可保留任何就魅。

•珈脚寺^: 1小畤•测瞬方式:多重逗撵魅•测瞬题数:40题•及格分数:70%重要:常廉就者完成测腕畤,前;K就卷放在所提供的信封内或密封之。

;»密封的信封交给NI 监考人及。

卜列何工融而粘符累直示For Loop 或While Loop 的退圈循璟言十数(Loop Iteration) ?Q2:若欲招数值100资料型熊熟Unsigned Byte 信者存至文件槽,下列何槿信者存方式所生成的文件槽案最小?Q1: □@1画[N] A.size- (in bytes) B. D.U8 Number To Decimal StringCleas File G&t File SizeUS Number To Decimal String size- (in bytes)^HM -IUSC.封subVI 而言,若「Context Help 」视窗中的输入名耦是以粗飕^示,即下列何工期条件正碓?信青逗出所有逾用的叙述)输入值必定悬触数(Scalar)此输入悬建^使用,而加非必要输入此输入熟必要输入 若此翰入加未接瀛期原VI (Calling VI)符中断下列何项算数函式招僵先轨行?A.加B. 减 Q3: 若要^示下11数撼,鹰使用哪一槿圈表?A.B. C. D. Q4: A. B. C. D. Q5:I IWL||. ■ 1 .Waveform ChartWaveform GraphXY GraphDynamic Chart «Jpn.ta.EqC.乘D.辗法碓定Q6:孰行下列VI之彳兔Result指示元累直示熟何?A.0B.3C.6D.18Q7:何项燮数可避免同步存取资料或程式礁日寺,曾符兢赛状熊(Race condition)降至最低?A. 功能型全域燮数(Functional Global Variable)B.显域燮数(Local Variable)C.全域燮数(Global Variable)D.共用燮数(Shared Variable)Q8:下列展昌於燮数(Variable)的功能描述何者有点吴?A.显域燮数(Local Variable)可於罩一VI中停遮瓷料B.共享燮数(Shared Variable)可於罩一事案中的多他VI之制惠遮资料C.全域燮数(Global Variable)可於军一1月修中的多他VI之^^遮资料D.功能型全域燮数(Functional Global Variable)可跨多他1月像的多他VI之^^遮资料Q9:下列何项不是LabVIEW既有的除金昔功能?A.停止值(Stop Values)B.木票示轨行(Highlight Execution)C. 军步轨行(Single Stepping)D.中断黠(Breakpoint)Q10:^於下列程式碉的描述,何项正碓?A. While Loop符循璟1次之彳爰停止B. While Loop符循璟4次之彳爰停止C. While Loop符循璟5次之彳爰停止D. While Loop符辗限循璟Q11:若使用通知器(Notifier)同步雨备且平行退圈如下H,符曾崖生什麽冏题?MasterA.因悬通知器(Notifier)未具借Timeout,故曾崖生日寺序的冏题B.因悬通知器(Notifier)旋不曾^^资料,故曾崖生资料遗失的冏题C.因悬通知器(Notifier)只停送军一数值,故曾崖生重禊^取的冏题D.因熟Master退圈所停送的资料,Slave退圈可能不曾^取,故曾崖生官削意飕累加的冏题Q12:轨行下列程式礁,若按下Boolean按筵彳兔即Numeric最直示器的数值悬何?A. 0B. 10C.辗法碓定,愿参考其他Event Case的程式碉,才可$夬定^值D.此VI不曾停止Q13:下列何项Property Node可在subVI中燮更任意数字累直示器(Digital Numeric)的色彩言殳定?一A.Y DigNum 微H—卜NumText^BGColor ■—►NumText.Te>ftColorB.1—卜NumText.BGColor—►NumTeit.TextColarC.—谭7 Num .卜UnitLabeLRGQjkr4-►UnitLabel.TextColor D.Q14:下列圜真中,何日寺可使用Probe工具取代Highlight Execution ?A.减^ VI轨行速度,加於接^上^示数值B.呈垣资料流向C.觐看接^上的即寺数值D.於VI程序孰行期^觐看SubVIQ15:符Boolean控制元音殳定悬Latching Until Released。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.
相关文档
最新文档