虚拟仪器入门基础By吕姝慧2019/10/291目录010203虚拟仪器简介LabVIEW编程基础数据采集2019/10/29201虚拟仪器简介2019/10/293什么是LabVIEW?2019/10/294图形化编程什么是虚拟仪器?2019/10/29602LabVIEW编程基础2019/10/299LabVIEW编程环境LabVIEW2012启动画面(演示)前面板和框图窗口主菜单栏简介快捷工具栏简介LabVIEW的操作模板工具模板(ToolsPalette)控制模板(ControlsPalette)功能模板(FunctionsPalette)习题创建一个VI程序,比较两个数,如果其中一个数大于或等于另一个数,则LED点亮。用两种方法求出N!(for和while循环)求一个二维数组的各元素之和。求0-99之间所有偶数之和程序结构循环结构:While循环循环变量条件端子For循环程序结构移位寄存器程序结构顺序结构程序结构反馈节点程序结构Case结构程序结构通知事件•通知(Notify)描述了发生用户动作,例如按下按钮,且LabVIEW已经处理的一类事件•Source=LabVIEWUI•Type=ValueChange•CtlRef(ControlReference)这里是按钮的Reference•OldVal和NewVal指示了事件发生前后的控件值程序结构过滤事件•过滤(Filter)事件描述了发生的用户动作,并在LabVIEW处理之前反馈给应用程序,程序可以干涉用户动作•在SelectorLabel中以“?”结尾区分Notify;左右边框均有事件数据节点•Char返回字符的ASCII码•VKey返回按键类型:ASCII或Fn、Up/Down、Ctrl、Shift等•ScanCode返回按键在键盘上的代码•可以修改或者放弃(Discard?)用户动作程序结构公式节点•公式节点(FormulaNode)允许用户使用类似于多数文本编程语言的语法,编写数学表达式•每个语句须以分号结束,类似C语言•输入输出变量大小写敏感程序结构数组、簇和波形ABC0ArrayConstantABC0ArrayConstant0ArrayConstant程序结构ABC0ArrayConstantABC0ArrayConstant0ArrayConstant初始化数组(InitializeArray)程序结构数组大小ArraySize程序结构数组子集(ArraySubset)程序结构索引数组(IndexArray)程序结构多态化程序结构簇程序结构Waveform类型程序结构图形显示•Chart是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映被测物理量的变化趋势•Graph则是对已采集数据进行事后处理的结果。它先将被采集数据存放在一个数组之中,然后根据需要组织成所需的图形显示出来。ChartGraphWaveform(波形)**XY*Intensity(强度图)**Digital(数字图)*3DSurface(三维曲面)*3DParametric(三维参变量)*3DCurve(三维曲线)*程序结构Graph控件程序结构Chart的独有控件•滚动条(Scrollbar)它直接对应于显示缓冲器,通过它可以前后观察缓冲器内任何位置的数据。•刷新模式(UpdateMode)Chart提供了三种画面的刷新模式,分别是StripChartMode(条壮图):它与纸带式图表记录仪类似。曲线从左到右连续绘制,当新的数据点到达右部边界时,先前的数据点逐次左移。ScopeChartMode(示波器模式):它与示波器类似。曲线从左到右连续绘制,当新的数据点到达右部边界时,清屏刷新,从左边开始新的绘制。它的速度较快。SweepChartMode(扫描模式):与示波器模式的不同在于当新的数据点到达右部边界时,不清屏,而是在最左边出现一条垂直扫描线,以它为分界线,将原有曲线逐点向右推,同时在左边画出新的数据点。如此循环下去。•堆叠式图区(StackPlots)在相同的纵坐标下,由于各种测量信号的差异,将几条曲线显示在同一个图区有困难时,可以组织出一种纵坐标相同,而有各自横坐标的堆叠式图区。程序结构Chart和Graph的比较程序结构XY图形控件(XYGraph)程序结构强度图形控件(IntensityGraph)程序结构数字波形图控件(DigitalWaveformGraph)程序结构字符串和文件I/O组合字符串SETHeaderVOLTSTrailer5.50NumberSET5.5000VOLTS输出字符串16输出串长度程序结构字符串提取程序结构文件I/O•文件输入输出(I/O):存储数据到磁盘文件中,或从磁盘文件中读取数据•三个步骤:打开或创建、写入或读取、关闭•支持文本字节流、二进制字节流、数据日志(Datalog)、TDM(TestDataExchangeFormat)、LVM(LabVIEWMeasurement)等格式的数据文件•可操作目录•读写配置文件(*.ini)程序结构读写普通文件•Open/Create/Replace+Read/Write+Close•ASCII文件(*.txt)、二进制文件(*.dat)程序结构写文件的例子20数据点个数90.070.075.080.085.0593984.96温度Chartnewfileappendtofile?程序结构读出数据87.402344,86.914062,86.425781,85.937500,85.449219,85.449219,84.960937,84.472656,83.984375,83.984375,83.984375,83.984375,从文件读字符串100.050.060.070.080.090.0100123456789温度Graph程序结构读写配置文件•配置(Configuration)文件:*.ini•Section(节)、Key(关键词)、Value(值)程序结构测试报告•LabVIEW支持生成标准文本格式(StandardReport)和网页格式(HTML)的测试报告•使用LabVIEWReportGenerationToolkit可以生成Word、Excel等格式更为复杂的测试报告程序结构数据采集•AC:AlternatingCurrent,交流电流,泛指交流信号。•DC:DirectCurrent,直流电流,泛指直流信号。•ADC:Analog-to-DigitalConversion,模数变换,有时也表示为A/D。•DAQ:DataAcquisition,数据采集。•DMA:DirectMemoryAccess,直接内存访问。它允许将采集的数据直接送给计算机的内存,数据传输速率较高。•GPIB:GeneralPurposeInterfaceBus,也称为IEEE488.2总线。它是一种应用最广泛的仪器总线。•SCXI:SignalConditioningextensionsforInstrumention,信号调理器。•VISA:VirtualInstrumentStandardArchitecture,虚拟仪器软件体系结构。它是控制GPIB、VXI、RS-232和其他类型仪器的接口库。程序结构数据采集结构程序结构数据采集过程程序结构驱动程序•NI硬件与LabVIEW无缝结合,可以通过NIDAQmx、NIScope、NISwitch等API控制硬件设备,LabVIEW提供了丰富完备的函数支持•第三方产商的硬件设备一般通过调用动态链接库(DLL)来访问,LabVIEW提供了CallLibraryFunctionNode调用动态链接库程序结构调用DLL程序结构03数据采集2019/10/2949数据采集的结构触发•触发涉及初始化、终止或同步数据采集事件的任何方法。•触发可分为软件触发和硬件触发,硬件触发又可分为内部触发和外部触发采样率的选择•采样率决定了模数转换(A/D)的频率奈奎斯特定理•为了防止发生混频,最低采样频率必须是信号频率的两倍。对于某个给定的采样率,能够正确显示信号而不发生畸变的最大频率叫做奈奎斯特频率,它是采样频率的一半。USB2002的技术指标•模拟通道输入数:32路单端/16路双端模拟信号输入•模拟电压输入范围:5V,±10V•模拟输入共模电压范围:±2V•放大器建立时间:2uS•A/D分辨率:14Bit(16384)•非线性误差:±1LSB(最大)•转换时间:2.5μS•系统测量精度(满量程):0.1%•采样速率:400K•系统测量精度(满量程):0.1%•16路数字量输入、16路数字量输出•数字端口满足标准TTL电气特性:输入TTL电平,吸入电流小于0.5毫安。输出TTL电平,最大下拉电流20mA,上拉电流2.6毫安。USB2002的技术指标•数字量输入高电平(即“1”)的最低电压:2V•数字量输入低电平(即“0”)的最高电压:0.8V•数字量输出高电平(即“1”)的最低电压:3.4V•数字量输出低电平(即“0”)的最高电压:0.5V板卡的信号插座、跳线和数据定义•RP1:程控仪表放大器零点调整电位器•RP2:程控仪表放大器满度调整电位器•XF2、XF3:模拟电压输入单端、双端选择•XF1:模拟电压输入量程选择•XS1:模拟信号输入连接插座•XS2:开关量输入插座•XS3:开关量输出插座•XS5:计数器输入输出插座•第一个POWERLED:USB2002卡电源指示灯,USB2002与计算机通过USB带缆连接后,此指示灯应亮•第二个POWERLED:与POWERLED并联联接,当将USB2002放置于机箱内时,可将其电源指示灯移到机箱上•第一个OVERFLOWLED:当USB2002卡上FIFO存储器“全满”指示灯亮时,说明USB2002卡的A/D数据已经溢出•第二个OVERFLOWLED:与第一个并联联结,通过它可以将FIFO存储器“全满”指示灯移到上XS1的管脚定义XS2开关量输入的管脚定义XS3开关量输出的管脚定义XS5计数器管脚定义模拟信号输入方式选择模拟信号输入量程选择数据格式数据转换模拟输入信号的连接方式采样模式•伪同步采集模式:当由定时器脉冲或外部时钟有效边沿启动后,在板上逻辑的控制下以400KHz的速度,从第首通道FirstChannel开始顺序转换到末通道FirstChannel结束(FirstChannel=LastChannel)。同时转换数据顺序写入FIFO存储器中,转换完后重新进入等待比较长的时间(时间长短由用户设定),等待下一个启动信号,再开始从FirstChannel到LastChannel通道的转换,如此循环下去。•分频器采集模式:也叫连续采集模式当由定时器脉冲或外部时钟有效边沿启动后,AD开始转换当前通道,并且AD在转换时板上逻辑电路自动设置为下一个转换通道,等待下一个有效启动脉冲到来。通道转换顺序为:从首通道FirstChannel开始顺序转换到第末通道LastChannel结束,然后由重新从FirstChannel到LastChannel通道,如此循环直到用户结束转换,(FirstChannel=LastChannel)。AD转换数据顺序写入FIFO寄存器中。FIFO数据存储•FIFO中的数据按从首通道FirstChannel到末通道LastChannel的采样数据依次循环存放,如下FirstChannel,FirstChannel+1,….,LastChannel…….FirstChannel,..,LastChannel,……结束计数器8254工作方式•方式1—可编程单次脉冲方式•方式2—频率发生器方式•方式3—方波频率发生器方式•方式4—软件触发选通方式•方式5—硬件触发选通方式方式1—可编程单次脉冲方式•该方式要在门控信号GATE作用下工作。当装入计数初值N之后,要等GATE由低变高,并保持高时开始计数,此时输出OUT变成低电平,当计数结束时,输出变成高电