实 训 报 告
* *****
专 业:应用电子
学 号:25
指导老师:李国芹、刘振方
日 期:2010年12月31日
一、选择虚拟仪器的必要性
1.原有传感器课程在实践教学中存在的弊端
《传感器技术与应用》课程是自动控制、机电一体化及电子、计算机等各类专业普遍开设的一门专业课程,对高职类学生的主要教学目标是使学生掌握各类工业常用传感器的选用及具体应用方法。该课程内容分散、应用性强,学生不容易掌握。由于本课程应用性极强,实践教学环节显得尤为重要。然而传统实验手段的落后使得实践教学环节只有两种选择:要么借助一些专用实验设备做一些验证性的实验,了解一些简单传感器的工作原理;要么买一些工业用传感器作为示教。前者的缺点是学生在专用试验设备上接触道德只能是一些与工业实际传感器差别较大的实验专用的简单传感器,多为验证型实验。通过该类实验,学生只能对传感器的原理加深理解,在实际应用方面还是知之甚少;而后者则因为各类工业传感器的应用往往是在工业控制过程或某种特定测控对象中,传感器的输出又需要相应的信号处理与显示。如果要在实验室中真实再现各类传感器的工业应用,显然需要大量仪器、设备与资金的投入,与传感器相比,这些周边设备的所需投入至少要占到70%以上,这显然有买椟还珠的意味,其教学效果可想而知。
2.虚拟仪器在传感器课程教学中的应用
虚拟仪器作为目前测控领域的最新技术已被广泛应用于航天、航空、工农业生产的各个领域。所谓虚拟仪器就是在通过计算机平台上,用户根据自己的需求来定义和设计一起的测量功能。由于其具有各类标准的信号输入接口及各类使用灵活方便的信号处理及仪器模块,恰好为传感器提供了各类信息处理与显示的方案。学生通过虚拟仪器不仅可以将传感器产生的信号采集进来,还可以进一步做第二次信号转换、处理、显示等。甚至还可以根基检测分析的结果产生相应的输出控制信号,并在计算机上编写用户交互界面,显示相关信息。
Labview是一种图形化的编程语言的开发环境,程序代码不是文本,取而代之的是框图或流程图,无硬件的情况下,可以发通过改变软件,就可以实现不同仪器仪表的功能。
二、实训原理
本次实训采用最常用的温度传感器—AD590集成温度传感器,设计虚拟仪器测量显示程序。AD590相似一定温度范围内,温度与电流间呈线性关系,其表达式为:
I=KT
其中I为电流,T为温度,K为温度系数
AD590将温度数据转换为电流信号,电流信号经过模/数转换变为计算机可以识别的数字信号,再由本次实训设计的虚拟温度测量仪显示电流数据,计算出温度数据并显示出来,然后并对数据进行实时采集加以分析。
由于当时没有数据采集卡,为了方便设计,用一个随机数代替温度传感器输出地电流数据,同时假设k=1uA/K,假定AD590的线性温度范围为0℃-100℃,即273.15K—373.15K,则随即数据的范围为273.15K—373.15K,电流数据的范围也应为273.15K—373.15K。
实训一: VI程序的创建与结构控制
一、实训目的:
创建VI程序,学习子程序的创建和调用,熟悉结构控制的使用。
二、实验原理及线路
创建一个VI子程序模拟温度侧量。AD590集成传感器在一定温度范围内输出电流与温度成正比。本程序也可以实现摄氏温度或华氏温度显示温度值。
创建一个VI程序模拟温度测量是否超出范围,当温度超出上限(Hight Limit)时,前面板上的LED将点亮,并且有一个蜂鸣器发声。学习使用顺序结构和包括头文件的数据文件。当程序停止数据采集后,自动产生数据文件的头文件,它包括操作者名字和文件名,然后采集的数据附在头文件后面。
三、实训仪器设备
装有Labview7的PC机。
由于现在没有DAQ数据采集卡。使用一个随机数来代替温度传感器的电流数据,然后把所测得的电流值转换成摄氏或华氏温度读数。
实训内容及步骤:
子VI前面板设计:
1、File菜单的New选项打开一个新的前面板窗口。
2、把温度计指示部件放入前面板窗口。
a 前面板窗口的空白处点击鼠标键,然后从弹出的“数值”子模板中选择“温度计”。
b 在高度的文件框中输入“温度计”,再点击鼠标按钮。
3、重新设定温度计的标尺范围为-20到120.0。使用标签工具A,双击温度计标尺的10.0,输入100.0,再点击鼠标键或者工具栏的V按钮。
4、在前面板窗口中放入竖直开关控制
a在前面板窗口的空白处点击鼠标键,然后弹出的“布尔”子模板中选择“垂直开关”,在文本框中输入“温度值单位模式”,再点击鼠标键或者工具栏中的V按钮。
b 使用标签工具A,在开关的“条件真”(true)位旁边输入自由标签“摄氏”,再在“条件假”(false)位旁边输入自由标签“华氏”。
5、放置电源开关
取用控制模板中“布尔”子模板中的“椭圆形开关”,并将控件的标签改为“电源”。
6、放置电源指示灯
取用控制模板中“布尔”子模板中的“方形指示灯”,在控件上单击右键,弹出的菜单中选择“显示项”中的标签的命令,去掉控件的标签。
7、放置电流表
取用控制模板中“数值”子模板中的“仪表”控件,并将控件的标签改为“电流表”,在控件上单击右键,弹出的菜单中选择“属性”项,设置电流表的量程为200-400,数据的类型为浮点数,精度为0.01。
(二)子程序框图程序设计:
1、从windows菜单下选择show diagram功能打开程序框图窗口。
2、点击框图程序窗口的空白处,弹出功能模板,从弹出的菜单中选择所需的对象。本程序用到下面的对象:
Multiply(乘法)功能(Numeric子模板)。在本例中,随机数的范围0-1,要转换到电流数据范围乘以100.00,再加上273.15
Subtract(减法)功能(Numeric子模板)。在本例中,电流数据减去273.15,以转换成摄氏温度。摄氏温度乘以1.8,再加上32得到华氏温度。
随机数产生功能(Numeric子模板),用于产生随机温度值。
And(加法)功能(Numeric子模板)。
Select(选择)功能(Comparison子模板)。取决于温标选择开关的值。该功能输出华氏温度(当选择开关为false)或者摄氏温度(选择开关为Ture)数值。
数值常数。用连线工具,点击你希望连接一个数值常数的对象,并选择Create Constant功能。若要修改常数值,用标签工具双点数值,再写入新的数值。
3、使用位移工具Positioning tool),把图标移至图示的位置,再用连线工具连接起来。
注意:如果要显示图标接线端口,则点击图标,再从弹出的菜单中选择Show Terminals功能。也可以从Help菜单中选择Show help功能以打开帮助信息窗口。
4、选择前面板窗口,使之变成当前窗口,并运行VI程序。点击连续运行程序,使程序云新于连续运行模式。
5、再点击连续运行按钮,关闭连续运行模式。
6、创建图标Temp:
此图标可以将程序作为子程序在其他程序中调用。创建方法如下:
在面板窗口右上角的图标框中点击鼠标,从弹出菜单中选择Edit Icon功能。
双击选择工具,并按下Delete键消除缺省的图表图案。
用画图工具画出温度计的图标。
注意:在用鼠标画线使按下 使用文本工具写入文字,双击文本工具把字体换成Small Font。 当图标创建完成后,点击OK以关闭图标编辑。生成的图标在面板窗口的右上角。 7.创建联接器端口: 点击右上角的图标面板,从弹出菜单中选择Show Connector功能。LabVIEW将会根据控制和现实的数量选择一种联接器端口模式。在本例中,只有两个端口,一个是竖直开关,另一个是温度指示。 把联接器端口定义给开关和温度指示。 使用连线工具,在左边的联接器端口框内按鼠标键,则端口将会变黑。在点击开关控制件,一个闪烁的虚线框将包围住该开关。 现在再点击右边的联接器端口框,使它变黑。再点击温度指示部件,一个闪烁的虚线框将包围住温度指示部件,这即表示着右边的联接器端口对应温度指示部件的数据输入。 如果再点击空白处,则虚线框将消失,而前面所选择的联接器端口将变暗,表示你已经将对象部件定义到各个联接器端口。 注意:LabVIEW的惯例是前面板上控制的联接器端口放在图标的连线面板的左边,而现实的联接器端口放在图标的连线面板的右边。也就是说,图标的左边为输入端口而右边为输出端口。 8.文件菜单的SAVE功能保存上述文件,并将文件命名为Thermometer.Vi。 现在,该程序已经编制完成了。他可以在其他程序中作为子程序来调用,在其它程序的框图窗口里,该温度计程序用前面创建的图标来表示。联接器端口的输入端用于选择温度单位,输出端用于输出温度值。 9.关闭程序。 (三)主程序前面板设计: 1.按照下图设计前面板。 2.“温度模式”、“停止并保存数据”均是布尔控制控件,“报警”是布尔显示控件,“设定高限”为数值控件,“当前温度”为布尔显示控件,“当前温度状态”为字符串显示空件,“当前温度”为数值型显示空间,“操作者名”为布尔控制控件,“文件保存路径”为路径控件。 (四)主程序框图程序设计: 1、按照上图所示,完成框图程序, 2、从结构(Structures)工具模板选择条件循环结构“While Loop”放入框图程序窗口,调整该条件循环框的大小,把先前从前面板创建的两个节点放入循环框内。 注意:条件循环结构是一种无限循环结构,只要条件满足,他就一直循环运行下去。在本例中,只要允许开关(Enable Switch)是ON状态,该VI程序就一直运行,采集温度测量值, 并在图标上显示。 3、放入其他的框图程序对象。Thermometer VI,这个VI程序是你在上个练习中创建的,用Select a VI---子模板找到文件。 4、按照上图的框图程序连好线。 5、创建模式开关。把连线工具放在Thermometer VI的Mode输入端口上,按鼠标右键并选择Creat control,这样就可以自动创建模式转换开关,并将它与Thermometer VI子程序相连线,再转换到前面板窗口,将模式转换开关的位置重新调整。 6、在前面板窗口,使用标注工具,双击模式开关的“OFF”标签,并把它转换成“华氏”,再把“ON”标签转换到“摄氏”。要转换开关状态,使用操作工具(Operating Tool)。 7、使用Time&Dialog子模板中的Wait Until Next Ms Multiple功能,再加上时间常数Numeric Constant,把它设置为500。 8、该程序还使用了如下的功能模块: Case结构,右边的TRUE Case与图中的FALSE Case同属于一个Case结构。根据其输入端上的数值,来决定执行哪一个Case程序。如果Thermometer VI子程序返回的温度值大于High Limit数值,将执行True case程序,反之则执行FALSE Case程序。 Write characters to File模块(在File I/O子模板)。该功能把一个字符串写入一个新的文件或者附加到一个已经存在的文件中。它在希尔前打开或者创建一个文件,在完成时关闭该文件。在本例中,它用来建立头文件格式。 Write to Spreadsheet File模块(在Array子模块)。该模块把一个二维或者一维单精度数组转换成字符串,并把字符串写入一个新文件或者附加在一个已经存在的文件后面。在本例中,他将由温度采集数据和上限值组成的二维数组附加在一个已经创建了头文件的数据文件后面。 Transpose 2D Array模块(在Array子模板)。在本例中,他把二维数组转换成以列为分界的二维数组,这样在写入数据文件时它就会以列的形式显示。 Concatenate String模块(在String子模板)。在本例中,它用于创建头文件字符串。 顺序结构程序按指定的顺序执行各个程序步骤。在本例中,我们首先创建数据文件的头文件,然后再将数据写入文件中,顺序结构中的数据传递通道使用快捷菜单中的“sepuence local”创建。 9、条件循环框边线上的方块叫做通道“tunnel”。在本例中,通道是条件循环的数据通道口。若要建立数据索引,点击通道,并选择Enable Indexing选项,表示当条件循环执行时,把数据顺序放入一个数组中。循环结束后,通道输出该数组。否则,通道仅输出最后一次循环放入的数据值。 10、返回前面板,在“设定限高”控制栏中输入30,在“操作者名”控制栏中输入你的名字,再输入数据文件名(例如C:\estdata.txt)。运行改程序。当按下“停止并保存数据”开关后,将产生一个ASCII文件。 11、将文件命名为TemperatureControl。VI,并存盘退出(用Save As选项)。 实训二:实时数据采集与显示 一、实训目的: 以图表方式显示数据并使用分析功能子程序 二、实验原理及线路: 利用实验1创建的VI程序,在数据采集过程中,实时地显示数据。当采集结束后,在图表上画出数据波形,并算出最大值、最小值和平均值。 三、实训仪器设备: 装有Labview7的PC机。 四、实训内容及步骤: (一)前面板设计: 1、打开试验2创建的Temperature control.vi程序。 2、按照下图修改程序。 趋势图“温度历史趋势”显示实时采集数据。采集过程结束后,在Temp Graph中画出数据曲线,同时在Mean、Max和Min数字显示栏中显示出温度的平均值、最大值和最小值。 3.在前面板内再放置一个趋势图(Graph子模板中的Waveform Chart),标注为“温度历史趋势”。该图表将实时地显示温度值。 4.由于趋势图将它的图标注解“plot 0”,你可以用标注工具将其重新标注为“Temp”。 5.因为趋势图用于显示室内温度,需要对它的标尺进行重新定标。将Y轴的“10”改为“100” ,而将“0.0”改为“20”。 (二)框图程序设计: 1.完成上面的框图程序。 2.返回前面板,并运行VI程序。 3.观察并记录温度数据曲线。 4.将修改后的程序命名为Temperature Analysis.vi并存盘。