虚拟仪器复习试题(满分100分)
一、填空题。(本题共10小题,15个填空,每空1分,共15分。)
1、一个完整的VI包括三个部分:( 前面板(控制控件:用户输入,参数设置;指示控件:显示输出)、程序框图(节点,端口,数据连线)、图标/连接口 )。
2、LabVIEW有四种类型的节点:( 函数 )、( VI )、
(结构)和(代码接口)
3、Sequence结构有( 重叠式和平铺式 )两种方式。
- Chart和Graph区别
两者的数据组织和波形刷新方式不同
5、全局变量相对于局部变量的优点
在两个独立,同时运行的VI之间传递数据。
6、虚拟仪器的特点
1)软件定义,柔性结构,灵活组态,能够自由发挥。
2)集多种功能于一体,多功能多用途。
3)丰富的软件资源,极高的运行速度和庞大的存储空间,强大的分析处理能力。
4)操作简便,功能操作的单纯化和面板布置的简洁化。
5)开发难度低,效率高,周期短,成本低,缩小了系统尺寸,提高工作速度。
7、移位寄存器的用途是什么怎么初始化移位寄存器
答:①移位寄存器主要用于While循环和For循环,将上一次循环的值传给下一次循环。
还可以存储前几次循环的值,在移位寄存器的左端口或右端口上右击鼠标弹出菜单,选择Add Element选项,可创建附加的左端口来存储前几次循环的值。
- 在循环外将初始值连到移位寄存器的左端口,有默认初值。
8、创建一个VI程序的步骤
答:(1)前面板的设计(工具模板和控件模板)。(2)框图程序的设计(工具模板和函数模板)并画出正确连线。(3)程序的运行和调试
【
{1}因为For循环的常用来处理数组,所以数据出口的自动索引默认为( 有 )。
而While循环的数据出口的自动索引默认为( 无 ) 。
{2}使用两个For循环,把其中一个嵌套在另一个中可以生成一个二维数组。外层的For循环产生( 行 )元素,而内层的For循环产生( 列 )。
{3}利用( 相关滤波 )可以方便地从复杂的待测信号中分离出某一特定频率的信号。采样间隔是指( 一个连续采集的序列中,相邻两次采集之间的时间间隔 )。
{4}虚拟仪器最核心的思想是( 硬件实现的功能软件化 ),从而降低系统成本,增强系统功能与灵活性
{5}如果没有现成的数据采集卡,我们也可以利用LabVIEW中的( 动态链接库 )功能实现数据采集
】
二、单项选择题。(本题共5小题,每个小题有四个选项,从中选出正确的选项,每小题2分,共10分。)
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循环不满足条件,1次也不执行
C、For循环当N<1时,1次都不执行
D、For循环可以嵌套,而While循环不可以嵌套
4、当数据采集卡组态成DIFF模式时,将使用差分连接方式,使用这种连接方式下列哪种说法是错误的( C )
A、可以减少尖峰噪声 B、增加噪声抑制
C、增大了尖峰噪声 D、增加共模信号抑制
5、下列哪种总线产品对PCI总线产品完全兼容。( A )
A、PXI总线 B、GPIB总线
C、VXI总线 D、RS-232串口总线
三、简答题。(本题共三个小题,每个小题5分,共15分。)
1、在LabVIEW中有哪三种用来创建和运行程序的摸板它们都有哪些用途
答:LabVIEW中有三种用来创建和运行程序的模板:工具模板,控制模板和函数模板。工具模板包括了程序的创建、修改和调试时用的工具;控制模板主要用于在前面板中添加指示器和控制器;而函数模板则用于创建框图程序,它包含了很多函数子模板。
2、VI子程序的连接端口的作用是如何来定义VI子程序的连接口答:VI子程序的连接口端口用于与主VI程序之间传递数据。定义VI子程序连接口时先选择子VI所需要的端口数,然后将前面板的指示器和控制器分配给每一个端口
3、虚拟仪器相对于传统仪器的优势
虚拟仪器系统-硬件模块化,软件集成化。
4、标准总线接口方式有哪五种
答:PC机总线的数据采集模块(PC-DAQ)、GBIP总线仪器、串口总线仪器、VXI总线仪器模块、PXI总线仪器模块等五种类型,也可以采用上述五种类型的任意组合。
- 程序分析题
Bundle by nam函数、index array函数 、 控件个数及实现功能
五、程序设计题。
一、 使用公式节点
目的:创建一个VI,它用公式节点计算下列等式:
y1 = x 3 – x 2 + 5
y2 = m* x + b
x的范围是从0到10。可以对这两个公式使用同一个公式节点,并在同一个图表中显示结果。
前面板
图2-9 练习2-6的面板
- 打开一个新的前面板,按照上图(该图中包含运行结果)创建前面板中的对象。波形图显示对象用于显示等式的图形。该 VI使用两个数字式控制对象来输入m和b的值。
流程图
- 按照下图创建流程图。
图2-9 练习2-6的流程图
在创建某个输入或者输出端子时,必须给它指定一个变量名。这个变量名必须与公式节点中使用的变量名完全相符。
公式节点中,在边框上单击鼠标右键,在快捷菜单中选择Add Input,可以创建三个输入端子。在快捷菜单中选择Add Output,创建输出端子。
x的范围是从0到10(包括10),就必须连接11到计数端子。
Build Array (Functions»Array)——在这个例子中,它用于将两个数据构成数组形式提供给一个多曲线的图形中。通过用变形工具拖拉边角就可以创建两个输入端子。
- 返回前面板,尝试给m和b赋以不同的值再执行该 VI。
- 把该VI保存为 LabVIEW/Activity 目录下的。
练习 2-6 结束。
- 字符串4中显示方式
labview中,在字符串控件上单击鼠标右键,会发现有几种显示方式:正常显示、/代码显示、密码显示和十六进制显示。
- 使用 Case结构
目的:创建一个VI以检查一个数值是否为正数。如果它是正的,VI就计算它的平方根,反之则显示出错。
前面板
1. 打开一个新的前面板,并按照下图所示创建对象。控制对象用于输入数值,显示对象用于显示该数值的平方根。
流程图
2.照下图创建流程图。
图2-6 练习2-4的面板和流程图
3.从Functions»Structures中选择一个 Case结构,并放置在在流程图中。Case 结构是一个可以改变大小的方框。先来做Ture的情况,照流程图上半部分构造。
aGreater Or Equal To 0 函数(Functions»Comparison)——如果输入数值大于或者等于0就会返回一个TRUE值。
bSquare Root 函数(Functions»Numeric)——返回输入数值的平方根。
c连好线
d点击Case框的选择按钮,转入False情况编程
e数值常数(Functions»Numeric)——这里用于显示错误的代数值。
fOne Button Dialog函数(Functions»Time & Dialog)——在这里它用于显示一个对话框,内容是Error...。
g字符串常数 (Functions»String)——用Edit Text Tools在对话框中输入字符串。
h该VI在TRUE或者FALSE情况下都会执行。如果输入的数值大于等于0,VI会执行TRUE Case,返回该数的平方根,否则将会输出-,并显示一个对话框,内容为Error...。
4.返回前面板,运行该VI。修改标签为Number的数字式控制对象的数值,分别尝试一个正数和负数。注意,当把数字式控制对象的值改为负数时,LabVIEW会显示Case结构的FALSE Case中设置的出错信息。
5.保存该 VI 到LabVIEW\Activity 目录中的Square 。
- 图形控件
Chart和Graph的比较
目的:创建一个VI,用Chart和Graph分别显示40个随机数产生的曲线,比较程序的差别。
前面板及流程图如下
图4-1 Chart和Graph的比较
显示的运行结果是一样的。但实现方法和过程不同。在流程图中可以看出,Chart产生在循环内,每得到一个数据点,就立刻显示一个。而Graph在循环之外,40个数都产生之后,跳出循环,然后一次显示出整个数据曲线。从运行过程可以清楚地看到这一点。
值得注意的还有For循环执行40次,产生的40个数据存储在一个数组中,这个数组创建于For循环的边界上(使用自动索引功能)。在For循环结束之后,该数组就将被传送到外面的Graph。仔细看流程图,穿过循环边界的连线在内、外两侧粗细不同,内侧表示浮点数,外侧表示数组。
一、填空题。
3、因为For循环的常用来处理数组,所以数据出口的自动索引默认为(有)。
4、而While循环的数据出口的自动索引默认为(无) 。
5、使用两个For循环,把其中一个嵌套在另一个中可以生成一个二维数组。外层的For循环产生( 行 )元素,而内层的For循环产生( 列 )。
9、顺序结构有(重叠式和平铺式 )两种方式。
二、单项选择题。
1、当一个函数的error in带有错误信息时,下列哪种说法是正确的。( D )
A、该函数会对错误信息进行处理
B、该函数不会作任何操作,而是直接将错误信息传递给error out,且不会将自身函数发生的错误加进去。
C、该函数将会发出错误信息警告,且使程序终止运行。
D、该函数会直接将错误信息传递给error out。且会将自身函数发生的错误也一并加进去。
3、下列说法中哪种说法是正确的?( C )
A、While循环只有在条件端口接收到的值为True时才停止循环
B、While循环不满足条件,1次也不执行
C、For循环当N<1时,1次都不执行
D、For循环可以嵌套,而While循环不可以嵌套
8、当连接输入被勾上时,下面程序框图中创建数组(Build Array)函数的输出是什么? [ C ]
(A) 一维数组{1, 7, -4, -2, 3, 6}
; (B) 二维数组{{1, -4, 3, 0}, {7, -2, 6}};
(C) 一维数组{1, -4, 3, 7, -2, 6}; (D) 二维数组{{1, -4, 3}, {7, -2, 6}}。
9、下面数组加法的计算结果是多少? [ B ]
(A) 一维数组{80, 20, 40, 10, -60}
; (B) 一维数组{120, 30};
(C) 一维数组{120, 30, -60};(D) 二维数组{{120, 90, 20}, {60, 30, -40}}。
10、对于下面的程序框图,哪个描述是正确的? [ D ]
(A) 循环会执行一次,计数接线端 会输出数值0;
(B) 循环不会执行,计数接线端 会返回一个空数值(Null);
(C) 循环会执行一次,计数接线端 会输出数值1;
(D) 循环会执行无限次,程序只能人为中止。
15、下面的框图程序执行后,输出显示为何值? [ C ]
(A) 一维数组{1 2 3 4 5}; (B) 一维数组{1 3 6 10 15};
(C) 数值 15; (D) 数值 35。
16、下面的程序执行后,输出结果字符串result string显示什么? [ C ]
(A) Helloto you!; (B) Hello Wto you;
(C) Hello to you; (D) Hello to you!!。
19、下列程序执行后,所得到的结果数组 result array 将为下列哪个数组? [ C ]
(A) 二维数组 {{6, 3, 3};{2, 1, 8}}; (B) 二维数组 {{6,6,6};{8,6,6};{6,6,6}};
(C) 二维数组 {{6,6,6};{6,6,6};{6,8,6}}; (D) 二维数组 {{6,8,6};{6,8,6};{6,8,6}}。
20、在即时帮助窗口中,某子VI的一个输入端名字是粗体,那么下面的描述哪些是正确的?(多选) [ C, D ]
(A) 输入值须为标量; (B) 输入为推荐,不是必需;
(C) 输入为必需; (D) 如果此输入端没有连线,会导致运行按钮接头断开。
三、解答题:
1、如下程序执行后,请写出输出数组Array 和 subarray 的所有元素。
2、下图所示的程序执行后,前面板两个输出显示Output1和Output2各是什么类型的数据?具体数值是多少?
解答:Output1输出标量数值,在循环执行过程中依次显示7、6、1、5、12;而 Output2在循环执行完以后,输出一维数组 {7,6,1,5,12}。
2、用0-100的随机数代替摄氏温度,将每500ms采集的温度的变化波形表示出来,并设定上下限,温度高于上限或者低于下限分别点亮对应的指示灯。并将其上下限也一并在波形中表示出来。
答案:
一、自动索引对for和while循环的特点
在默认情况下,对于每个连接到For循环的数组都会执行自动索引功能。
在默认情况下,对于每个连接到While循环的数组都不会执行自动索引功能
二、Bundle By Name的含义
使用Bundle By Name可以访问现有的簇,但不能创建新簇;它只能改变一个已经存在的簇内的元素值,同时必须给Bundle By Name图标中间的输入端子一个输入以申明要替换其元素的簇。Unbundle By Name可返回指定名称的簇元素,不必考虑簇的序和大小。
三 、变量的控制型和显示型的特点?连线的颜色粗细、变量外观能看出哪些信息?
显示对象和控制对象都是前面板上的控件
显示对象:有输入端子而无输出端子,后者正好相反,它们分别相当于普通编程语言中的输出参数和输入参数。
数值常数对象可以看成是控制对象的一个特例。
一个对象应当是显示对象还是控制对象必须弄清楚,否则无法正确连线。有时他们的图标是相似或相同的,可以根据需要明确规定它是显示对象还是控制对象。方法是将鼠标移到图标上,然后点右键,可出现快速菜单。如果菜单中有Chang to Control,说明这是一个显示对象,可以根据需要,将其变为控制对象。如果菜单中有Chang to Indicator ,说明这是一个控制对象,也可以根据需要,将其变为显示对象。
不同颜色、线型代表不同的数据类型。 线型为波折号的虚线表示坏线。( 整形数 蓝色)( 浮点数 橙色)( 逻辑量 绿色)( 字符串 粉色 )( 文件路径 青色)其他还有动态数据、簇、图像、波形等
四 、簇的特点
簇(Cluster)是另一种数据类型,它的元素可以是不同类型的数据。
1 簇中可以包含任意类型的数据。
2 一个簇中的对象必须全部是控制型,或全是显示型。
3 簇不能在程序运行时添加新元素。
4 簇的元素有一个序,它与簇内元素的位置无关
五、常用快捷键
Shift-单击 选取多个对象;将对象添加到当前选择之中。
Shift-单击(拖曳)沿轴线移动对象。
Ctrl-鼠标滚轮 依次浏览条件、事件或层叠式顺序结构的子程序框图。
六 、XY Graph 、 Graph 、 Chart 三者的差别
XY Graph 适合描述一般的Y值随X值变化曲线。
Chart 是将数据源(例如采集得到的数据)在某一坐标系中实时、逐点地显示出来,它可以反映被测物理量的变化趋势,例如显示一个实时变化的波形或曲线 。但其表现形式有限。
Graph 则是对已采集数据进行事后处理的结果。它先将被采集数据存放在一个数组之中,然后根据需要组织成所需的图形显示出来。它的缺点是没有实时显示,但是它的表现形式要丰富。
(Chart 一般用于接收一维数组或者标量数据或者簇;
Graph接收一位数组,二维数组,簇,簇数组,波形数据;
xy图接收两个一位数组绑定簇,坐标点簇数组。
Chart可以实时显示,后面两个只能一次性画出来)
七、事件结构的特点
优点是减少CPU占用率,响应及时,采用队列方式避免了漏掉事件
一般仅适用于GUI和用户接口界面,对于子VI不适用
超时端子一般必须接数据,否则事件结构不能结束。(结构执行时,仅有一个子程序框图或分支在执行。事件结构可等待直至事件发生,并执行相应条件分支,处理该事件。右键单击结构边框,可添加新的分支并配置要处理的事件。)
八、 程序调试技术 哪些程序可以调试、 他们各自的作用?
1 找出语法错误
如果一个VI程序存在语法错误,则在面板工具条上的运行按钮会变成一个折断的箭头,表示程序不能被执行。这时该按钮被称作错误列表。
2 高亮执行
VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。这样,就可以根据数据的流动状态跟踪程序的执行
3 断点与单步执行
为了查找程序中的逻辑错误,有时希望流程图程序一个节点一个节点地执行。使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。
4 探针
可用探针工具来查看当流程图程序流经某一根连接线时的数据值。
九、子VI的调用方法
1 在函数选项中选择“VI”选项,弹出VI选择对话框
2 找出相应的VI文件,直接拖动到程序框图窗口
3 如果需要调用的VI处于打开状态,直接将子VI在前面板或程序框图的图标拖动到程序框图
4 如果建立了项目文件,直接拖动项目文件中的VI
十、 文件I/O的操作步骤
1打开一个已有的文件或者新建一个文件;
2对文件进行读写;
3关闭文件。
十一、 快速VI的配置性和扩展性
端口的数值可以交互配置,也可以编程赋值。
二者如果不一致,编程赋值具有优先性。
十二 、数组和字符串的操作函数 公式节点 表达式节点 循环结构 分支结构
关注作者了解更多
我的其他CSDN专栏
关注作者了解更多
资料来源于网络,如有侵权请联系编者