基于labview的数据采集论文内容摘要:

6009 进行相应的配置。 在 MAX的目录中: mysystemDevices and interfacesNIDAQmx devices 就可以看到所有连接到系统的物理和仿真的 Nidaqmx 列表。 图 34 物理设备列表 界面 在已经安装的 NIDAQmx 设备上单击右键,就能弹出一个菜单,显示关于数据采集卡的一些信息,包括自检( selftest) ,测试面板( test panels) ,复位设备( reset devices) ,创建任务 (create task),设备引脚等。 虚拟示波器的设计中主要运用的是测试面板。 Test panel 窗口主要用来测试 DAQ 设备的模拟输入 ,模拟输出,数字 I/O 和计算功能。 这是一个功能强大的故障处理实用程序,允许用户从 NIDAQmx 中直接测试设备的功能。 如 果设备在测试面板中不能运行,那么也将不能在 labview 中运行。 如果在 labview 中进行基于 labview 的数据采集 上海交通大 学学士学位论文 13 数据采集时遇到问题,也可以使用自检和测试面板来确保设备运行的正常。 在最后的调试章节会对硬件设置做进一步分析。 另外,通过 device pinouts 选项,能够显示 DAQ 设备 NIUSB6009 的引脚。 帮助用户熟悉各个端口的分布,便于接线。 图 35 USB6009 数据采集卡引脚图 第四 章 设计原理 示波器原理简介 示波器是各类工程实验经常使用电子测量仪器。 利用示波器能观察各种不同信号幅度随时间变化的波形曲线。 它是利用电子射线的偏转,来显示电信号瞬时值图像(常成为时间波形)的一种仪器。 它是能快速把肉眼不能直接看见的电信号的时变规律,以可见的形式,形象的显示出来。 目前,示波器在信号测试 、 信号比较 、 逻辑分析等领域得到了广泛的应用。 在电子实践技术过程中,常常需要同时观察两种(或两种以上)信号随时间变化的过程。 并对这些不同的信号进行电参量的测试和比较,为了达到这个目的,人们在应用普通示波器原理的基础上,采用了双踪示波法。 应用这种方法制造出来的示波器被称为双踪示波器。 基于 labview 的数据采集 上海交通大 学学士学位论文 14 虚拟示波器的设计 Labview 中的前面板中的控件和指示器可以很好的模拟示波器的面板上的各种旋钮以及屏幕。 简单的说前面板就是一个 用户界面 , 由输入,输出控制和显示三部分构成, 用户通过它与程序交互。 当运行 VI 时,必须打开前面板,以便向执行程序输入数据。 前面板主要是由控件和指示器组成的联合体。 控件模拟典型的输入对象,如旋钮 、 开关。 控件可以让用户输入值,向 VI 框图提供数据。 指示器显示由程序产生的输出信息。 以下用两个表达式,可以充分理解控件和指示器: 控件 =来自用户的输入 =数据源 指示器 =给用户的输出 =数据的目的地或“接收器” 两者是不能互换的。 数据采集功能实现 当驱动软件安装完成后,程序框图选项卡中的测量 I/O 选项就会出现 DAQmx 的 函数。 几乎所有的 NIdaqmx 应用程序都将按照以下的逻辑方式组成。 图 41 数据采集 labview 程序 通用 逻辑框图 功能 实现步骤如下:创建一个任务 (或引用一个 MAX DAQmx 任务 )启动任务 读或者写,以及根据需要重复 停止任务 清除任务。 对于 DAQ,第一步要创建一个任务,使用 DAQ 某些 Create Virtual Channel,它创建了一基于 labview 的数据采集 上海交通大 学学士学位论文 15 个虚拟通道并将其添加到一个任务中。 它也可以用来创建多个虚拟通道,并将它们都添加至一个任务。 如果没有指定一个任务,那么这个函数将创建一个任务。 这种多态 VI 的实例对应于通道的 I/O 类型,例如模拟输入,数字输出或者 计数器输出。 它创建的虚拟通道函数的输入随每个函数实例的不同而不同。 DAQmx start task 运行任务。 在能够从任务中读写之前,需要启动任务, 并 将其设置为运行状态。 如果不使用这个 VI,当 DAQmx read VI 运行时,测量任务将自动启动。 NIDAQmx所使用的状态模型免 去 了不需要的重复配置来获得一个更高的效率 , 并且将性能最大化。 这个状态模型包括任务可存在的五个状态。 NIDAQmx 启动任务函数 所 显示 的 是 将一个任务转 换至运行 的 状态。 在运行状态,这个任务完成特定的采集或生成。 如果没有使用 NIDAQmx启动任务函数,那么在其读取函数执行时,一个任务可以隐式的转换。 这个 隐式 转换 也发生在 NIDAQmx 启动任务函数未被使用 , 且 NIDAQmx 写入函数与它指定的自启动输入一起执行 的情况下。 DAQmx read 从指定任务或虚拟通道读取采样值。 这个多态 VI 的实例指定了返回什么格式的采样值,一次读取一个采样值还是多个采样值,从一个还是多个通道读取。 对于有限采样,通过将每通道采样数指定为 1。 这个函数就等待采样完所有请求的采样数,然后读取这些采样。 对于连续采样,将每通道采样数设定为 1 将使得这个函数在执行的时候读取所有现在保存在缓冲中可得的采样。 DAQmx stop 停止任务,测量或产生任务完成后,也许想要停止任务就要使用这个VI,也可能过一段时间后再次启动。 停止任务并将其返回到将 autostart 输入设置为 true 运行DAQmx start task VI 和 DAQmx stop task VI之前的运行状态。 如果不使用 start task和 stop task,当多次使用 DAQmx Read read VI 或 DAQmx write read VI 时,在一个循环中,任务将反复的启动和停止,则降低了应用程序的性能。 DAQmx clear task 消除任务,当任务完成后,使用 DAQmx clear task 来释放任务曾占用的任何资源。 在清除任务之前,如果必要的 话该 VI 先停止任务,释放任务占用的任何资源。 在清除任务之后,不能再使用任务,除非重新创建任务。 因此,如果一个任务还会使用,那么 NIDAQmx 结束任务函数就必须用来中止任务,而不是清除它。 在循环中使用了DAQmx create task VI 或 DAQmx create virtual channel VI,那么在完成任务之后,还要在循环中使用这个 VI,以避免 分配不必要的内存。 基于 labview 的数据采集 上海交通大 学学士学位论文 16 图 42 虚拟示波器 DAQ数据采集 模块 程序 结合数据采集卡,就产生了 虚拟示波器 数据采集 的程序框图 (上图) ,它 在创建的虚拟通道 VI和运行 VI之间添加了一个 定时函数 用于确定系统的采样频率。 这个定时函数配置定时以用于硬件定时的数据采集操作。 这包括指定操作是否连续或有限,为有限的操作选择用于采样或生成的采样数量,以及在需要时创建一个缓冲区。 对于需要采样定时的操作(模拟输入,模拟输出和计数器) NIDAQmx 定时函数 定义了 采样时钟的源(可以是一个内部或外部的源)和它的速率。 采样时钟控制了采样或生成采样的速率。 每一个时钟脉冲为每一个包含在任务中的虚拟通道初始化一个采样的采集或生成。 最左侧的矩形下拉 框可以选择采样的物理通道。 采样时钟上方的下拉框可调采样类型,并可在其左侧的橙色数域内修改采样率。 在 labview 中,函数与函数之间的连线有着不同的颜色,分别表示不同的数据类型,上图的粉色连线,表示传递的数据类型是字符串,而橙色代表传递的是浮点数。 另外还有蓝色为整型,绿色为布尔型,簇类型则用棕色或是粉色表示。 简单的将颜色和类型对应起来,就是为了避免混淆数据类型。 采集波形显示功能 为了模拟示波器对于采样的来的波形进行及时显示 分析 的功能, 利用 labview 中提供的丰富的指示器 ,其中包括波形图表,波形 图以及 XY 图等等,这些 指示器 都将在接下来的设计中运用到。 在显示功能的设计中,需要用到波形图表用于对采样的 信号进行 显示,这个 指示器 横坐标显示的时间,纵坐标显示的是幅值。 本例设计的是双通道示波器,需要对 指示器的属性做一定的设置用于显示两条曲线。 具体为外观属性中的曲线显示数为 2。 在前面板的右上角显示出了两条曲线的图例,用户可以根据需要修改显示曲线的颜色。 基于 labview 的数据采集 上海交通大 学学士学位论文 17 波形能够接受的数据格式有一维数组,簇数据类型,二维数组等。 有了对应的曲线显示,参照对示波器的模拟,就要进一步对两条曲线的显示以及隐藏做设置。 前面板使用了布尔开 关按钮控制两个通道的显示与否。 布尔型数据有两种状态:真或假。 Labview 为布尔型控件和指示器提供了很多种开关, LED 和按钮。 在程序框图中利用 for 循环做对应的设计。 这是本例中第一次使用 for 循环。 无论使用任何程序编程,常常需要重复执行同一段代码。 Labview 提供了两种循环结构while 循环和这里使用的 for 循环,使这项工作变得简单。 For 循环 返 回执行指定的次数。 而while 循环持续执行直到一个指定的条件为真(或为假)。 如 下 图显示 for 循环的框图,右上角是计数端子,代表需要执行循环的次数。 左下角的 i, 是迭代端子,指示循环已经进行的次数并可对其他 VI 进行赋值。 0 表示正在进行第一次迭代, 1 表示正在进行第二次迭代, 以次类推, 直到 N1(N 表示循环所期望的执行次数 )。 使用 属性节点 ,可以使编写程序的功能更加强大。 通过使用属性节点,允许用户编程控制前面板对象的属性:如颜色,显示,位置,数字显示格式等等。 这里的关键是可编程,也就是说,按照框图算法改变前面板对象的属性。 设计中为采集波形图表的通道显示设置了actplot, 两个属性节点,分别表示活动曲线和曲线可见。 这样就能使采集来的波形具有随时 间推移而移动的属性。 属性节点的左右两端分别有小箭头,这是用于修改 节点的读写属性 ,可以通过右击属性节点,对它的读写属性做设置, 这个设计 中运用的是写入属性,如果错误的运用了读出属性,连接线就会出现小红叉,表示坏线。 图 43 虚拟示波器的通道选择 模块框图 而在 for 循环内,用 case 结构 对前面板的通道开关与图表显示控件做关联。 Case 是一种强大的结构。 它是 labview 中执行条件语句的方法,就像 C 语言中 ifthenelse语句。 Case 结构可以有两个或更 多个框图,但只能有一个在执行,也就是说只能显示一个分支,就像一叠纸牌,只能看见最上面一张。 结构右侧带问号的小方块是分支选择器它决定基于 labview 的数据采集。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。