首页资源分类其它科学普及 > 学会NI-DAQmx中的十个函数

学会NI-DAQmx中的十个函数

已有 458949个资源

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

文档信息举报收藏

标    签: NIDAQmx

分    享:

文档简介

• DAQ Assistant(数据采集助手) • NI-DAQmx创建虚拟通道函数 • NI-DAQmx触发函数 • NI-DAQmx定时函数 • NI-DAQmx开始任务函数 • NI-DAQmx读取函数 • NI-DAQmx写入函数 • NI-DAQmx等待直至完成函数 • NI-DAQmx清除任务函数 • NI-DAQmx属性节点

文档预览

学会 NI-DAQmx 中的十个函数 解决 80%的数据采集应用问题 自从 NI-DAQmx 发布以来,NI 数据采集(DAQ)用户就充分利用了它的许多特性,这些特性是为节省开发 时间和提高数据采集应用程序的性能而设计的。 一个能节省相当大一部分开发时间的特性是 NI-DAQmx 应用程序编程接口(API),它在各种设备功能 和设备系列中都是相同的。这就意味着一个多功能设备的所有功能可由同样的函数集编程得到(模拟输 入、模拟输出、数字 I/O 和计数器)。而且,一个数字 I/O 设备和一个模拟输出设备都可使用相同的函 数集编程得到。在 LabVIEW 中,由于多态机制,因而这是可以实现的。一个多态的 VI 接受各种数据类 型以用于一个或多个输入和/或输出终端。NI-DAQmx API 在它所支持的所有编程环境中也是保持一致 的。您仅仅需要学会如何使用一个单一的函数集就可以在多种编程环境中对大部分 NI 数据硬件进行编 程。 NI-DAQmx 能够提高您的开发经验的另一个特性是 DAQ ASSISTANT。这个工具通过一个图形化接口来 配置简单和复杂的数据采集任务,从而帮助您无需编程即可创建您的应用程序。而且,同步,一个通常 很难实现的过程(因为触发和/或时钟信号必须手动传递),利用 NI-DAQmx 则可以毫不费力地实现, NI-DAQmx 会自动地完成单一设备上不同功能区域间和多个设备之间的信号传递。 您使用 NI-DAQmx 所建立的数据采集应用程序是受益于一个为实现最大化性能而设计的体系结构。这是 一个高效的状态模型从而免去了不必要的重复配置。由于去除了开头,配置和采集就进行了优化。此外, 您可以达到超过 50Ks/S 的单点 I/O 速率。由于采用内存映射寄存器,这种性能水平是可以实现的。 NI-DAQmx体系结构的另一个重要的特性是测量多线程(Measurement Multithreading.)。自从 NI-DAQmx实现多线程以来,多个数据采集操作可以同时进行,极大地提高了包含多个操作的应用程序 的性能。它也极大地简化了对这些应用的编程。 关于 NI-DAQmx 益处的详细信息可以在文档——NI-DAQmx 的优势——中获得。为了开始利用这些优 势,您只需要学习几个函数。事实上,十个 NI-DAQmx 函数提供的功能即可解决 80%的数据采集应用。 这些函数将会详细地描述以帮助您理解它们的功能和使用它们的应用类型。 注意:本文档中所有引用的例程都可在以下位置获得 LabVIEW 帮助>>寻找例程>>硬件输入和输出>>DAQmx LabWindows/CVI 帮助>>寻找例程>>硬件输入和输出>>DAQmx . NET …\National Instruments\MeasurementStudio70\DotNET\Examples\DAQmx 目录: • DAQ Assistant(数据采集助手) • NI-DAQmx 创建虚拟通道函数 • NI-DAQmx 触发函数 • NI-DAQmx 定时函数 • NI-DAQmx 开始任务函数 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments • NI-DAQmx 读取函数 • NI-DAQmx 写入函数 • NI-DAQmx 等待直至完成函数 • NI-DAQmx 清除任务函数 • NI-DAQmx 属性节点 DAQ Assistant (数据采集助手) 工具>>创建/编辑 DAQmx 任务[CVI] 项目>>添加新项目>>DAQmx 任务[.NET] DAQ Assistant 是一个图形化的界面,用于交互式地 创建、编辑和运行 NI-DAQmx 虚拟通道和任务。一个 NI-DAQmx 虚拟通道包括一个 DAQ 设备上的物理 通道和对这个物理通道的配置信息,例如输入范围和自定义缩放比例。一个 NI-DAQmx 任务是虚拟通道、 定时和触发信息、以及其他与采集或生成相关属性的组合。在下图中,DAQ ASSISTANT 配置成完成一 个应变测量。 下面的文档叙述了 DAQ ASSISTANT 在 LabVIEW、LabWindows/CVI 和.NET 中的使用。 • NI-DAQmx Express VI 指南 • 在 LabWindows/CVI 中使用 DAQ ASSISTANT • 在 Measurement Studio 中使用 DAQ ASSISTANT 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments DAQ ASSISTANT 也可以生成代码来配置和/或完成特定的采集或生成 (Generation)。这个 LabVIEW 中 的过程在 DAQ ASSISTANT 帮助中,以及文档——使用 DAQ ASSISTANT 来自动生成 LabVIEW 代码 ——中进行了叙述。下面显示了一个 DAQ ASSISTANT 的实例以及相应的所自动生成的配置和 LabVIEW 代码例程。 与 DAQ ASSISTANT 所能提供的相比,某些数据采集应用程序需要更大的灵活性和/或性能。这些应用 程序需要下面所叙述的简单、但功能强大的 NI-DAQmx 函数。 NI-DAQmx 创建虚拟通道函数 库>>NI-DAQmx>>通道创建/配置[CVI] 任务.通道.创建通道属性[.NET] NI-DAQmx 创建虚拟通道函数创建了一个虚拟通 道并且将它添加成一个任务。它也可以用来创建多 个虚拟通道并将它们都添加至一个任务。如果没有 指定一个任务,那么这个函数将创建一个任务。NI-DAQmx 创建虚拟通道函数有许多的实例。这些实例 对应于特定的虚拟通道所实现的测量或生成类型。下面是四个不同的 NI-DAQmx 创建虚拟通道 VI 实例 的例程。 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments NI-DAQmx 创建虚拟通道函数的输入随每个函数实例的不同而不同,但是,某些输入对大部分函数的实 例,即使不是全部,也是相同的。例如一个输入需要用来指定虚拟通道将使用的物理通道(模拟输入和 模拟输出)、线数(数字)或计数器。此外,模拟输入、模拟输出和计数器操作使用最小值和最大值输 入来配置和优化基于信号最小和最大预估值的测量和生成。而且,一个自定义的刻度可以用于许多虚拟 通道类型。在下面的 LabVIEW 程序框图中,NI-DAQmx 创建虚拟通道 VI 用来创建一个热电偶虚拟通道。 供检验的实例 LabVIEW Write Dig Port.vi Cont Acq Thermocouple Samples-Int Clk.vi CVI Write Dig Port Cont Thrmcpl Samples-Int Clk .NET WriteDigPort ContAcqThermocoupleSamples_IntClk NI-DAQmx 触发函数 库>>NI-DAQmx>>触发函数[CVI] 任务.触发属性[.NET] NI-DAQmx 触发函数配置一个触发器来完成一个特定的动作。最为常用的动作是一个启动触发器(Start Trigger)和一个参考触发器(Reference Trigger)。启动触发器初始化一个采集或生成。参考触发器确定所 采集的采样集中的位置,在那里前触发器数据(pretrigger)结束,而后触发器(posttrigger)数据开始。 这些触发器都可以配置成发生在数字边沿、模拟边沿或者当模拟信号进入或离开窗口。在下面的 LabVIEW 程序框图中,利用 NI-DAQmx 触发 VI,启动触发器和参考触发器都配置成发生在一个模拟输 入操作的数字边沿。 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments 许多数据采集应用程序需要一个单一设备不同功能区域的同步(例如,模拟输出和计数器)。其他的则 需要多个设备进行同步。为了达到这种同步性,触发信号必须在一个单一设备的不同功能区域和多个设 备之间传递。NI-DAQmx 自动地完成了这种传递。当使用 NI-DAQmx 触发函数时,所有有效的触发信号 都可以作为函数的源输入。例如,在下面的 NI-DAQmx 触发 VI 中,用于设备 2 的启动触发器信号可以 用作设备 1 的启动触发器的源,而无需进行任何显式的传递。 供检验的实例 LabVIEW Acq&Graph Voltage-Int Clk-Dig Start&Ref.vi Cont Acq&Graph Voltage-Int Clk-Analog Start.vi CVI Acq-Int Clk-Dig Start&Ref Cont Acq-Int Clk-Anlg Start .NET AcqVoltageSamples_IntClkDigStartAndRef ContAcqVoltageSamples_IntClkAnalogStart NI-DAQm 定时函数 库>> NI-DAQmx>>定时函数[CVI] 任务.定时属性[.NET] NI-DAQmx 定时函数配置定时以用于硬件定时的数据 采集操作。这包括指定操作是否连续或有限、为有限的操作选择用于采集或生成的采样数量,以及在需 要时创建一个缓冲区。 对于需要采样定时的操作(模拟输入、模拟输出和计数器),NI-DAQmx 定时函数中的采样时钟实例设 置了采样时钟的源(可以是一个内部或外部的源)和它的速率。采样时钟控制了采集或生成采样的速率。 每一个时钟脉冲为每一个包含在任务中的虚拟通道初始化一个采样的采集或生成。下图中,LabVIEW 程 序框图演示了使用 NI-DAQmx 定时 VI 中的采样时钟实例来配置一个连续的模拟输出生成(利用一个内 部的采样时钟)。 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments 为了在数据采集应用程序中实现同步,如同触发信号必须在一个单一设备的不同功能区域或多个设备之 间传递一样,定时信号也必须以同样的方式传递。NI-DAQmx 也是自动地实现这个传递。所有有效的定 时信号都可以作为 NI-DAQmx 定时函数的源输入。例如,在下面的 DAQmx 定时 VI 中,设备的模拟输 出采样时钟信号作为同一个设备模拟输入通道的采样时钟源,而无需完成任何显式的传递。 文档——NI-DAQmx 定时和同步特性——包含了关于使用 NI-DAQmx 定时函数来利用 NI-DAQmx 完成 同步的其他信息。 大部分计数器操作不需要采样定时,因为被测量的信号提供了定时。NI-DAQmx 定时函数的隐式实例应 当用于这些应用程序。在下面的 LabVIEW 程序框图中,NI-DAQmx 定时 VI 的隐式实例用来将一个缓冲 的脉冲宽度采集配置成有限的特定个数的采样。 某些数据采集设备支持将握手作为它们数字 I/O 操作的定时信号的方式。握手使用与外部设备之间请求 和确认定时信号的交换来传输每一个采样。NI-DAQmx 定时函数的握手实例为数字 I/O 操作配置握手定 时。 供检验的实例 LabVIEW Cont Gen Voltage Wfm-Ext Clk.vi Meas Buffered Semi-Period-Finite.vi CVI Cont Gen Volt Wfm-Ext Clk Buff Semi-Period-Finite .NET ContGenVoltageWfm_ExtClk MeasBuffered_SemiPeriodFinite 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments NI-DAQmx 启动任务函数 库>>NI-DAQmx>>任务配置/控制>>启动任务 [CVI] 任务.启动方式[.NET] 正如我们在简介中所提到的那样,NI-DAQmx 所使用的状态模型免去了不需要的重复配置来获得一个更 高的效率并且将性能最大化。这个状态模型包括任务可存在的五个状态。关于每一个状态的详细信息可 以在关键的 NI-DAQmx 概念>>任务>>任务状态模型中的 NI-DAQmx 帮助中找到。 NI-DAQmx 启动任务函数显式地将一个任务转换至运行状态。在运行状态,这个任务完成特定的采集或 生成。如果没有使用 NI-DAQmx 启动任务函数,那么在 NI-DAQmx 读取函数执行时,一个任务可以隐 式地转换至运行状态,或者自动开始。这个隐式的转换也发生在如果 NI-DAQmx 启动任务函数未被使用 而且 NI-DAQmx 写入函数与它相应指定的自启动输入一起执行。 虽然不是经常需要,但是使用 NI-DAQmx 启动任务函数来显式地启动一个与硬件定时相关的采集或生成 任务是更值得选择的。而且,如果 NI-DAQmx 读取函数或 NI-DAQmx 写入函数将会执行多次,例如在 循环中, NI-DAQmx 启动任务函数就应当使用。否则,任务的性能将会降低,因为它将会重复地启动 和停止。阐述何时使用 NI-DAQmx 启动任务函数的其他信息可以在关键的 NI-DAQmx 概念>>任务>>显 式启动一个任务中的 NI-DAQmx 帮助中找到。下面的 LabVIEW 程序框图演示了不需要使用 NI-DAQmx 启动函数的情形,因为模拟输出生成仅仅包含一个单一的、软件定时的采样。 相反,下面的 LabVIEW 程序框图演示了应当使用 NI-DAQmx 启动函数的情形,因为 NI-DAQmx 读取函 数需要执行多次来从计数器读取数据。 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments 供检验的实例 LabVIEW Gen Dig Pulse Train-Continuous.vi Cont Acq 0-20mA Current Samples-Int Clk.vi CVI Dig Pulse Train-Cont Cont 0-20mA Samps-Int Clk .NET GenDigPulseTrain_Continuous ContAcq0_20mACurrentSamples_IntClk NI-DAQmx 读取函数 库>> NI-DAQmx>>读取函数[CVI] 通道读取类[.NET] NI-DAQmx 读取函数需要从特定的采集任务中读取采样。这个函数的不同实例允许选择采集的类型(模 拟、数字或计数器)、虚拟通道数、采样数和数据类型。下面是四个不同的 NI-DAQmx 读取 VI 实例的 例程。 可以读取多个采样的 NI-DAQmx 读取函数的实例包括一个输入来指定在函数执行时读取数据的每通道 采样数。对于有限采集,通过将每通道采样数指定为-1,这个函数就等待采集完所有请求的采样数, 然后读取这些采样。对于连续采集,将每通道采样数指定为-1 将使得这个函数在执行的时候读取所有 现在保存在缓冲中可得的采样。在下面的 LabVIEW 程序框图中,NI-DAQmx 读取 VI 已经被配置成从多 个模拟输入虚拟通道中读取多个采样并以波形的形式返回数据。而且,既然每通道采样数输入已经配置 成常数 10,那么每次 VI 执行的时候它就会从每一个虚拟通道中读取 10 个采样。 供检验的实例 LabVIEW Acq One Sample.vi Read Dig Chan.vi 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments CVI .NET One Sample Read Dig Chan AcqOneVoltageSample ReadDigChan NI-DAQmx 写入函数 库>>NI-DAQmx>>写入函数[CVI] 通道写入类[.NET] NI-DAQmx 写入函数将采样写入指定的生成任务中。这个函数的不同实例允许选择生成类型(模拟或数 字),虚拟通道数、采样数和数据类型。下面是四个不同的 NI-DAQmx 写入 VI 实例的例程。 每一个 NI-DAQmx 写入函数实例都有一个自启动输入来确定,如果还没有显式地启动,那么这个函数是 否将隐式地启动任务。正如我们刚才在本文 NI-DAQmx 启动任务部分所讨论的那样,NI-DAQmx 启动任 务函数应当用来显式地启动一个使用硬件定时的生成任务。它也应当用来最大化性能,如果 NI-DAQmx 写入函数将会多次执行。对于一个有限的模拟输出生成,下面的 LabVIEW 程序框图包括一个 NI-DAQmx 写入 VI 的自启动输入值为“假”的布尔值,因为生成任务是硬件定时的。NI-DAQmx 写入 VI 已经被配 置将一个通道模拟输出数据的多个采样以一个模拟波形的形式写入任务中。 供检验的实例 LabVIEW Gen Voltage Update.vi Write Dig Chan.vi CVI Volt Update Write Dig Chan .NET GenVoltageUpdate WriteDigChan 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments NI-DAQmx 等待直至完成函数 库>> NI-DAQmx>>任务配置/控制>>等待直至任务完成 函数[CVI] 任务.等待直至完成方式[.NET] NI-DAQmx 等待直至完成函数在结束之前等待数据采集操作的完成。这个函数应当用于保证在任务结束 之前完成了特定的采集或生成。最为普遍的是,NI-DAQmx 等待直至完成函数用于有限操作。一旦这个 函数完成了执行,有限采集或生成就完成了,而且无需中断操作就可以结束任务。此外,超时输入允许 指定一个最大的等待时间。如果采集或生成不能在这段时间内完成,那么这个函数将退出而且会生成一 个合适的错误信号。下面 LabVIEW 程序框图中的 NI-DAQmx 等待直至完成 VI 用来验证有限模拟输出 操作在任务清除之前就已经完成。 供检验的实例 LabVIEW Gen Dig Pulse.vi Gen Mult Volt Updates-Int Clk.vi CVI Dig Pulse Mult Volt Updates-Int Clk .NET GenDigPulse GenMultVoltUpdates_IntClk NI-DAQmx 清除任务函数 库>> NI-DAQmx>>任务配置/控制>>清除任务函数[CVI] 任务.处理方式[.NET] NI-DAQmx 清除任务函数可以清除特定的任务。如果任务现在正在运行,那么这个函数首先中止任务然 后释放掉它所有的资源。一旦一个任务被清除,那么它就不能被使用,除非重新创建它。因此,如果一 个任务还会使用,那么 NI-DAQmx 结束任务函数就必须用来中止任务,而不是清除它。 对于连续的操作,NI-DAQmx 清除任务函数必须用来结束真实的采集或生成。在下面的 LabVIEW 程序 框图中,一个计数器生成了一个连续的脉冲序列。这个脉冲序列不断输出直至等待循环退出和 NI-DAQmx 清除任务 VI 执行。 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments 供检验的实例 LabVIEW Cont Gen Voltage Wfm-Int Clk.vi Count Digital Events.vi CVI Cont Gen Volt Wfm-Int Clk Cnt Dig Events .NET ContGenVoltageWfm_IntClk CountDigEvents NI-DAQmx 属性节点 特性[CVI] 属性[.NET] NI-DAQmx 属性节点提供了对所有与数据采集操作相关属性的访问。这些属性可以通过写入 NI-DAQmx 属性节点来设置,而且当前的属性值可以从 NI-DAQmx 属性节点中读取。而且,在 LabVIEW 中,一个 NI-DAQmx 属性节点可以用来写入多个属性或读取多个属性。例如,下面的 LabVIEW NI-DAQmx 定时 属性节点设置了采样时钟的源,然后读取采样时钟的源,最后设置采样时钟的有效边沿。 许多属性可以使用前面讨论的 NI-DAQmx 函数来设置。例如,采样时钟源和采样时钟有效边沿属性可以 使用 NI-DAQmx 定时函数来设置。然而,一些相对不常用的属性只可以通过 NI-DAQmx 属性节点来访 问。在下面的 LabVIEW 程序框图中,一个 NI-DAQmx 通道属性节点用来使能硬件低通滤波器,然后设 置滤波器的截止频率来用于应变测量。 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments 供检验的实例 LabVIEW Cont Acq Strain Samples.vi Cont Acq Accel Samples-Int Clk-Analog Start.vi CVI Cont Strain Samples Cont Accel Samps-Int Clk-Anlg Start .NET AcqStrainSamples ContAcqAccelSamp_IntClk_AnalogStart 结论 NI-DAQmx 节省了数据采集应用程序的开发时间并提高了它的性能。NI-DAQmx 节省开发时间的众多方 式之一是提供一个仅需要少量函数的 API 来使用它绝大多数的功能。事实上,在学习完本文所讨论的 10 个函数之后,您就可以解决 80%的数据采集应用。 021-65557838 • 800-820-3622 • china.info@ni.com • ni.com/china National Instruments

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。