LabVIEW连续函数的平均值采样求中段平均值

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

NI-DAQmx入门指南系列旨在帮助用户了解NI-DAQmx編程的基础知识 从使用Measurement & Automation Explorer (MAX)验证设备运行情况到使用LabVIEW编程数据采集应用,本系列将通过视频和文本教程为您逐一介绍 本系列既适用于希望學习使用DAQ助手的初学者,也适合需要使用NI-DAQmx的高级功能的有经验用户



DAQ助手可通过图形化界面让用户交互式地创建、编辑、运行NI-DAQmx虚拟通道和任务。 NI-DAQmx虚拟通道包含DAQ设备上的一个物理通道以及该物理通道的配置信息比如输入范围和自定义缩放。 NI-DAQmx任务就是一个包含虚拟通道、定时、触发信息、以及其他与采集和生成相关的属性的集合 下图显示了如何配置DAQ助手来实现有限应变测量。

DAQ助手还可生成代码用于配置和/戓执行指定的采集或生成。 DAQ助手帮助和文档均描述了在LabVIEW中实现该操作的步骤 下图显示的是DAQ助手一个实例及其自动生成的配置和LabVIEW代码范例。


DAQ助手提供的灵活性和/或性能有时无法满足某些数据采集应用 这些应用可能需要以下简单但强大的NI-DAQmx函数。



“NI-DAQmx创建虚拟通道”函数可创建┅个虚拟通道并将其添加至任务 也可用于创建多个虚拟通道并将其全部添加至任务。 如未指定任务该函数将自动创建一个任务。 “NI-DAQmx创建虚拟通道”函数包含多个实例 这些实例对应虚拟通道执行的具体测量或生成类型。

下图显示的是“NI-DAQmx创建虚拟通道”VI四个不同实例的范唎


“NI-DAQmx创建虚拟通道”函数不同实例的输入端各不相同, 但某些输入对于大部分(即使不是全部)函数实例都是通用的 例如,指定虚拟通道使用的物理通道(模拟输入和模拟输出)、线路(数字)或计数器需要同一个输入 此外,模拟输入、模拟输出和计数器操作根据信號的最小和最大预估值使用最小值最大值输入来配置和优化测量和生成 此外,多种类型的虚拟通道可进行自定义扩展 下列LabVIEW程序框图Φ,“NI-DAQmx创建虚拟通道”VI用于创建热电偶虚拟通道

大部分NI-DAQmx .NET库中的类无法直接被初始化, 这些类被用作类的子对象

这些类包含了某个特定通道类型的专用属性。 例如:计数器等属性只适用于计数器且只能在CIChannelCIChannel类中找到。 用户可在NI-DAQmx .NET类库中将下列通道类型与某个关联起来:

任務类包含一个适用于六种通道类型的通道集合属性:、、、、和 用户可使用通道集合中任意一种创建通道的方法创建通道。

建立了一个噺的“任务”对象后通过调用“通道”类中相应的成员函数即可创建和分配AIChannel对象。 以下程序片段用于创建一个简单的模拟输入电压通道:



“NI-DAQmx触发”函数可用于对触发进行配置来执行指定操作 常用的操作是开始触发参考触发。 开始触发用于启动采集或生成 参考触发则鼡于在一组采集样本中创建预触发数据结束后和后触发数据开始前的位置。 可对这两个触发进行配置使其发生在数字边沿、模拟边沿、戓模拟信号进入或离开窗口时。

在下面的LabVIEW程序框图中开始触发和参考触发均已通过“NI-DAQmx触发”VI进行配置,可发生在数字边沿上来进行模拟輸入操作


许多数据采集应用程序需要在一个设备上实现不同功能区域的同步(例如,模拟输出和计数器) 而其他的程序也需要在多个設备之间实现同步。 为了实现这些同步触发信号必须在单个设备的不同功能区域间或在不同的设备间进行路由。 NI-DAQmx则可自动执行这些路由 使用“NI-DAQmx触发”函数时,所有有效的触发信号均可作为输入到函数中 例如,在下面的“NI-DAQmx触发”VI中设备2的开始触发信号可用作设备1的開始触发源,而无需进行任何显式路由

创建“任务”对象和“通道”后,用户可以调用“任务.触发”集合中的方法将触发添加至任务中 以下程序代码显示了创建“数字边沿开始触发”:

] “NI-DAQmx定时”函数用于对硬件定时的数据采集操作进行定时配置, 包括指定操作是连续函數的平均值执行还是有限执行、选择采集或生成的样本数量以进行有限操作、以及需要时创建缓冲区

对于需要采样定时(模拟输入、模擬输出和计数器)的操作,“NI-DAQmx定时”函数的采样时钟实例可用于设置采样时钟源和采样速率采样时钟源可以是内部也可以是外部的信号源。 采样时钟能够控制采集或生成样本的速率 每个时钟脉冲将启动任务中每个虚拟通道的样本采集或生成。

在LabVIEW中配置任务定时


下面的LabVIEW程序框图显示的是如何使用“NI-DAQmx定时”VI的“采样时钟”实例来配置使用外部采样时钟的连续函数的平均值模拟输出生成


为了实现数据采集程序间的同步,定时信号必须以与触发信号同样的方式在一个设备的不同功能区域间或在多个设备间进行路由 NI-DAQmx可自动完成这些路由。 所有囿效的定时信号都可作为“NI-DAQmx定时”函数的输入 例如,在以下“DAQmx定时”VI中设备的模拟输出采样时钟信号可用作模拟输入通道采样时钟嘚信号源,而无需进行任何显式路由


文档中介绍了更多关于借助NI-DAQmx使用“NI-DAQmx定时”函数来实现同步的信息。

由于所测信号可提供定时因此夶多数计数器操作都不需要采样定时。 这些应用应使用“NI-DAQmx定时”函数的隐式实例 在以下LabVIEW程序框图中,“NI-DAQmx定时”VI的隐式实例用于以指定的采样数量将缓冲脉冲宽度采集配置为有限值


在.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开始”函数的情况

Start()函数用于在“任务”对象中开始任务。 下面的代码是Start()函数的一个使用范例


“NI-DAQmx读取”函数可从指定的采集任务中读取样本。 针对不同的函数实例可选择不同的采集类型(模拟、数字、或计数器)、虚拟通道数量、采样数量和数据类型 指定的采样数量從DAQ板卡上的FIFO传输到RAM中的PC缓存后,“NI-DAQmx读取”函数再将样本从PC缓存转移到应用程序开发环境(ADE)内存中

下图显示的是四个不同 “NI-DAQmx读取”VI实例的范唎。


可读取多个采样的“NI-DAQmx读取”函数实例包括一个用于指定函数执行时每通道采样数的输入 对于有限采集,将每通道采样数指定为-1函數将等待所有请求的样本采集完毕,然后再对这些样本进行读取 对于连续函数的平均值采集,如果将每通道采样数指定为-1则函数执行時将读取当前缓存区中的所有样本。 在以下LabVIEW程序框图中“NI-DAQmx读取”VI已进行配置,可从多个模拟输入虚拟通道读取多个采样然后将数据以波形的方式返回。 而且由于每通道采样数输入已设置为常数10,每次执行VI时将从每个虚拟通道读取10个样本

读取NI-DAQmx .NET库需要使用读取器和流对潒。 该编程模式与.NET Framework读取文件和网络I/O的方式相似

类包含与I/O相关的属性(如)和获取原始I/O的方法。属性用于获取某个指定相对应的DaqStream类实例 鼡户无法直接获得DaqStream类的例程。

为了在NI-DAQmx库中进行读取需要创建一个读取器实例,并在构造器中传递DaqStream类的实例 然后调用读取器类上的方法來读取数据,代码如下所示:


“NI-DAQmx写入”函数用于将样本写入指定的生成任务中 针对不同的函数例程可选择不同的生成类型(模拟或数字)、虚拟通道数量、采样数量和数据类型。 “NI-DAQmx写入”函数将样本从应用程序开发环境(ADE)写入到PC缓存中 然后这些样本从PC缓存传输到DAQ板卡FIFO鉯进行生成。

每个“NI-DAQmx写入”函数的实例包含一个自动开始输入用于在任务没有显式启动时判定该函数是否隐式启动任务。 本文“NI-DAQmx开始任務”一节已介绍过显式启动硬件定时的生成任务时应使用“NI-DAQmx开始任务”函数。 如果需要多次执行“NI-DAQmx写入”函数则还应使用该函数来使性能最优化。

下图显示的是四个不同 “NI-DAQmx写入”VI实例的范例


下面的LabVIEW程序框图用于实现有限模拟输出生成,其中一个"False"布尔常量连接至“NI-DAQmx写入”VI的自动开始输出这是由于该生成是硬件定时的。 “NI-DAQmx写入”VI已进行配置可将一个通道的多个模拟输入数据样本以模拟波形的形式写入任务。

写入NI-DAQmx .NET库需要使用写入器和流对象 该过程与上述数据读取过程相似。

执行写入操作需要创建一个写入器实例并在构造器中传递DaqStream类嘚实例。 然后调用写入器类上的方法来写入数据代码如下所示:


“NI-DAQmx结束前等待”函数用于等待数据采集完毕后结束任务。 该函数可用于確保停止任务前已完成指定的采集或生成 一般情况下,“NI-DAQmx结束前等待”函数用于有限操作 一旦该函数执行完毕,则表示有限采集或生荿已完成任务可在不影响操作的情况下停止。 此外超时输入可用于指定最长等待时间。 如果采集或生成没有在该时间内完成则函数將退出并生成一个相应错误。

以下LabVIEW程序框图中的“NI-DAQmx结束前等待”VI用于确认有限数字输出完成后才将任务清除


在.NET中结束前等待

在C/C++中结束前等待

DAQmxWaitUntilTaskDone()函数用于等待直至缓存区的所有样本均生成完毕。 该函数在写入或开始函数之后调用


“NI-DAQmx清除任务”函数用于清除指定的任务。 如果任务正在运行则函数将先停止任务,然后释放任务所有的资源 一旦任务被清除后,除非再次创建否者该任务无法再使用。 因此如果需要再次使用任务,则应使用“NI-DAQmx停止任务”函数来停止任务而不是将其清除。

对于连续函数的平均值操作应使用“NI-DAQmx清除任务”函数來停止实际的采集或生成。

在下面的LabVIEW程序框图中连续函数的平均值脉冲序列通过计数器来生成。 脉冲序列将连续函数的平均值输出直至退出While循环然后开始执行“NI-DAQmx清除任务”VI。

任务完成读取或写入后调用



通过“NI-DAQmx属性”可以访问与数据采集操作相关的的所有属性。 这些属性可通过“NI-DAQmx属性”写入来进行设置当前的属性值也可以通过“NI-DAQmx属性”读取。

前面我们已讨论过许多属性可使用NI-DAQmx函数进行设置。 比如采样时钟源采样时钟有效边沿属性可通过“NI-DAQmx定时”函数进行设置。 然而一些较少使用的属性只能通过“NI-DAQmx属性”来进行设置。

在LabVIEW中使用屬性(属性节点)

在LabVIEW中一个“NI-DAQmx属性节点”可用于写入和/读取多个属性。 例如下面的“LabVIEW NI-DAQmx定时属性节点”先设置了采样时钟源, 然后读取采样时钟源 最后设置采样时钟的有效边沿。


在下面的LabVIEW程序框图中“NI-DAQmx通道属性节点”用于启用硬件低通滤波器,然后设置滤波器的截止頻率以便进行应变计测量

我们在“定时”部分已介绍过,许多属性是通过“任务”对象内部的子类和集合进行设置 以下代码片段是NI-DAQmx属性使用的一个常见范例:

NI-DAQmx可通过多种方式来帮助用户节省开发时间并提高数据采集应用的性能, 其中一种方式是提供仅需使用少量函数却鈳实现大部分功能的API 事实上,用户只需学习本文介绍的10个函数便可解决80%的数据采集应用问题。

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

我要回帖

更多关于 连续函数的平均值 的文章

 

随机推荐