Bootstrap

NI-​DAQmx​的​定​时​和​同步​特性

NI-​DAQmx​的​定​时​和​同步​特性

原位置:https://www.ni.com/zh-cn/support/documentation/supplemental/06/timing-and-synchronization-features-of-ni-daqmx.html

已​更新 2021​年​7​月​26​日

概览

本文​档​介绍​了​LabVIEW 7​中​NI-​DAQmx​的​定​时​和​同步​基础​知识。  主要​讨论​主题​包括:​采用​混合​模式​测量、​同步​模拟​及​更多​功能,​以及​在​数据​采集​(DAQ)​设备​之间​共享​定​时​信号。

内容

为什么​需要​定​时​和​同步?

许多​应用​都​需要​精确​的​定​时​控制​和​同步​操作​功能。​例如,​在​测量​和​分析​大量​高​动态​信号​时,​任何​相位​不​匹配​都是​不可​接受​的。​这​就​需要​将​某​一点​某​个​信号​的​即时​测量​数据​与​同一​点​其他​信号​的​即时​测量​数据​进行​比较​评估,​因此,​这些​数据​采集​就​需要​采用​某种​同步​方案。​NI-​DAQmx​和​LabVIEW​图形​化​编​程​环境​为​用户​提供​了​各种​工具,​让​用户​可以​轻松​构​建​此类​数据​采集​系统。

返回​顶部

后台​API

NI-​DAQmx​为​用户​提供​了​许多​强大​的​定​时​和​同步​解决​方案。​在​LabVIEW​中​使用​NI-​DAQmx​的​自​带​功能,​预示​着​新一代​数据​采集​编​程​已经​到来。​专​为​设备​之间​的​信号​指定​路径​连​线​的​时代​已经​一去不复​返​了,​NI-​DAQmx​可在​用户​需要​时​自动​帮助​用户​获取​信号。​用户​只需​指定​目标​即可。​从​这个​意义​上​讲,​驱动​程序​可在​后台​智能​运行,​帮助​用户​省去​复杂​的​配置​操作。​不过,​这​仅仅​是​定​时​和​同步​的​冰山​一角……

返回​顶部

混合​模式​测量

由于​大部分​E​系列​数据​采集​设备​都​具有​模拟​输入、​模拟​输出、​计数​器/​定​时​器​和​数字​输入/​输出​功能,​因此​其中​的​挑战​往往是​在​同步​不同​类型​的​测量​的​同时,​利用​这些​测量​对​设备​进行​编​程。​以下​是​部分​用​例:

1) 模拟​输入​和​模拟​输出​同时​启动

不同​操作​同时​启动,​但​不​同步

同步​模拟​输入​和​模拟​输出

不同​操作​同时​启动​并​以​同一​速率​运行

不同​操作​之间​共享​采样​时钟

2) 使用​触发​器​同步​模拟​输入​和​模拟​输出

共享​硬件​触发​器​和​采样​时钟

3) 同步​模拟​和​计数​器​操作

4) 计数​器​创建​脉冲​序列​作为​时钟,​进行​模拟​操作

5) 模拟​时钟​门​控​计数​器​操作

​在​NI-​DAQmx API​中,​用户​可​使用​极​少​的​VI​来​满足​大部分​的​定​时​和​同步​需求。​尤其是“DAQmx​定​时”和“DAQmx​触发”,​这​两​个​VI​允许​用户​指定​扫描​通道​的​间隔​时间​和​开始​(或​停止)​时间。​利用​LabVIEW​的​多​态​性,​这​两​个​VI​不仅​可​定义​模拟​输入​信号​的​定​时​和​触发,​还​可​定义​上述​模拟​输出、​计数​器/​定​时​器​和​数字​输入/​输出​信号​的​定​时​和​触发​(见​图​1)。
 



​图1

返回​顶部

同步​模拟​输入/​输出

一个​常见​的​同步​用例​是​使用​同一​时钟​启动​模拟​输入​和​模拟​输出。​这种​情况​需要​两​个​代码​链:​一个​用于​模拟​输入,​另​一个​用于​模拟​输出。​使用“DAQmx​定​时”VI​指定​每​个​代码​链​所需​的​连续​操作。​对于​模拟​输出​定​时,​选择​默认​的“源”输入,​这​意味​着​模拟​输出​操作​将​根据​默认​的​模拟​输出​时钟​(内部​时钟)​运行。​而​对于​模拟​输入“DAQmx​定​时”VI,​用户​只需​指定“源”作为​模拟​输出​的​采样​时钟。​这样,​模拟​输入​和​模拟​输出​操作​便​会​根据​模拟​输出​的​定​时​信号​运行​(见​图​2)。

 

模拟输入和模拟输出操作会根据模拟输出的定时信号运行



​图2

返回​顶部

同步​模拟​及​更多​功能

上​一​范​例​演示​了​如何​将​不同​的​模拟​定​时​信号​连接​起来。​如果​是​模拟​和​数字​信号​混合​的​情况​又​会​怎么​样​呢?​是否​仍​可​实现​同样​的​无缝​集成​性能?​答案​是​肯定​的。

​假设​我们​根据​外部​或​非​传统​时钟​信号​来​进行​模拟​测量。​例如:​每​毫秒​进行​一次​采样,​连续​操作​10​毫秒​后​等待​3​毫秒,​然后​再​重复​该​操作。​在​这种​情况​下,​用户​可​使用​E​系列​设备​的​计数​器​功能​来​生成​所需​的​定​时​信号,​但是​模拟​端​如何​知道​该​信号​是​时钟​信号​呢?​答案​还是“DAQmx​定​时”VI。​通过​将“源”指定​为​计数​器​的​内部​输出​引​脚,​计数​器​输出​便可​成为​模拟​输入​时钟,​而无​需​使用​外部​线​缆​来​连接​接​线​盒​的​引​脚​(见​图​3)。
 

使用外部线缆来连接接线盒的引脚



​图3


​触发​功能​与​同步​功能​一样,​也​非常​便于​使用。​使用“DAQmx​触发”VI,​用户​可​轻松​设置​操作,​以​等待​内部​或​外部​触发​信号​(模拟​或​数字)。​一个​典型​的​范​例​是​事件​触发。​进行​事件​触发​时,​设备​会​忽略​数据​采集​之前​的​前​N​次​触发。​要​实现​这​一​操作,​可​使用​计数​器​来​创建​单​个​脉冲,​以​启动​模拟​输入​采集。​计数​器​将​前​N​次​触发​用作​脉冲​的​低​电​平​部分,​而将​有效​触发​用作​脉冲​的​高​电​平​部分​并​触发​实际​采集。​以下​范​例​包含​两​行​并行​代码;​上面​一行​用于​配置​模拟​输入​操作,​下面​一行​用于​配置​计数​器。​计数​器​0​的​输出​用作​触发​源,​且​计数​器​0​在​接收​第​n​个​脉冲​输入​之后​便​配置​为​输出​触发​脉冲。​在​这种​情况​下,​选择​100 kHz​内部​时​基​作为​输入​源,​但​也​可​指定​某​个​外部​输入​源,​便于​用户​根据​外部​脉冲​序列​设置​延迟​触发​(见​图​4)。
 

根据外部脉冲序列设置延迟触发


​图4



​注意:​在​最后​两​个​范​例​中,​Ctr0InternalOutput​和​Crt0Out​为​时钟​或​触发​信号​的​来源。​Ctr0Internal Out​信号​可​路​由​至​板​卡​内部。​将​计数​器​输出​路​由​至​PFI​和​RTSI​时,​应​使用​Crt0Out。​图​4​中的​范​例​可​使用​CtrOInternal Out​来​代替​Ctr0Out。

返回​顶部

信号​路​由​选项


​如​上述​范​例​所​示,​要​将​设备​上​某​个​位置​的​信号​路​由​至​其他​位置,​则​需要​考虑​以下​几点。​首先,​NI-​DAQmx​能否​通过​配置​来​路​由​这些​信号?​其次,​哪些​信号​可​进行​路​由?​由于​能否​传输​这些​信号​取决​于​中间​通信​路径,​因此​需要​采用​实​时​系统​集成​(RTSI)​总​线。

​RTSI​总​线​(在​PCI​设备​的​34​针​连接​器​上​可用​或​包含​在​PXI​的​背​板​连接​器​中)​提供​了​7​个​引​脚,​用于​将​定​时​信号​从​一个​设备​发送​至​其他​设备​(或​在​设备​内部​之间​发送)。​在​使用​该​通信​路径​之前,​应​使​驱动​程序​了解​系统​中​设备​的​连接​方式。​对于​PCI​设备,​使用​RTSI​线​缆​连接​相应​的​设备,​并​在​Measurement & Automation Explorer (MAX)​中​注册​此​连接。​在​MAX 3.0​中,​只需​右击NI-​DAQmx​设备​(NI-​DAQmx Devices)并​选择创建​新​NI-​DAQmx​设备​(Create New NI-​DAQmx Device) >> RTSI​线​缆​(RTSI Cable),​便可​完成​此​操作。​这样,​RTSI​线​缆​便​会​添加​到​NI-​DAQmx​设备​列表​中​​。​对于​PXI​系统,​只需​通过​右​击PXI​系统​(PXI System) >>​识别​为​(Identify As)来​识别​PXI​系统。​RTSI​总​线​在​PXI​系统​中​用作​PXI​触发​总​线。​(图​5​显示​了​连接​至​DAQ​设备​的​RTSI​线​缆。)

 



​图5


​如需​查看​哪些​信号​可以​在​单​个​DAQ​设备​中​进行​路​由,​可​浏览​MAX​中的设备​连​线​(Device Routes)选项​卡。​单击​MAX​中的​DAQ​设备​时,​可​通过​配置​树​右侧​的​窗口​查看​设备​的​属性。​如果​选择​该​窗口​底部的设备​连​线​(Device Routes)选项​卡,​则​可​看到​每​个​可用​信号​路​由​的​列表。​绿色​的​方框​表示​可​直接​进行​的​路​由,​黄色​的​方框​表示​必须​通过​设备​的​某些​子​系统​才能​实现​的​路​由。​将​鼠​标​悬​停在​黄色​方框​时,“被​使用​的​子​系统”(Subsystem Used)​框​中​会​列出​完成​路​由​所需​的​中间​子​系统。​这​有时​非常​有用,​因为​间接​路​由​可能​会​干扰​正在​执行​的​其他​操作​(见​图​6)。

 

间接路由可能会干扰正在执行的其他操作




​图6

返回​顶部

高级​功能

“DAQmx​定​时”和“DAQmx​触发”VI​提供​的​高级​功能​可​用于​设置​操作,​但是​有些​情况​下,​较​底层​的​信息​更​为​重要。​假设​我们​需要​知道​某​个​模拟​输出​操作​更新​时​的​时​基​或者​某​个​模拟​边沿​触发​的​配置​级别。​这些​信息​均可​从“DAQmx​定​时”和“DAQmx​触发”属性​节点​获得​(见​图​7)。​用户​可​通过​这些​属性​节点​访问​所有​相关​的​配置​值,​以​进行​设置​或​查看。
 


​图7



​通过“DAQmx​触发”属性​节点​可​显示​的​一个​复杂​功能​是​计数​器​的​可​重​触发​选项。​在​前面​介绍​的​API​中,​重新​触发​计数​器​会​完全​改变​计数​器​的​运行​代码。​通过“DAQmx​触发”​属性​节点​轻松​添加​NI-​DAQmx API,​设为开始.​可​重​触发​(Start.Retriggerable),​将​计数​器​从​单​次​触发​更改​为​可​重​触发​操作​(见​图​8)。
 



​图8

返回​顶部

多​设备​同步

前​几个​范​例​介绍​了​在​同一​设备​上​将​不同​操作​联系​在一起​的​一些​方法​(通过​触发​或​定​时)。​但是,​如果​一个​设备​的​功能​无法​完成​系统​的​特性​分析,​该​怎么​办?​有​时候​仅仅​是​计算​系统​的​通道​数​就​需要​结合​多个​设备。​如果​每​个​设备​都​包含​RTSI​连接,​则​每​个​设备​均​具有​相同​的​同步​选项。
 

RTSI连接



​图9


​如需​显示​设备​之间​的​连接,​请​右​击​MAX​中的​RTSI​线​缆,​并​在“添加​设备​至​线​缆”(Add Device to Cable)​下​选择​每​个​相应​的​设备。​添加​每​个​设备​后,​NI-​DAQmx​就​可​利用​设备​之间​的​所有​可用​路​由​路径​(实现​无缝​同步)。​如果​是​PCI​设备,​则​需要​手​动​添加​设备​之间​的​RTSI​线​缆。

​现在,​用户​可​从​其他​设备​引用​相应​定​时​或​触发​引​脚​作为“DAQmx​定​时”和“DAQmx​触发”VI​的“源”。​(虽然​RTSI​总​线​的​管理​选项​用于​通过“导出​信号”来​将​特定​信号​路​由​至​指定​的​RTSI​引​脚,​但是​该​选项​默认​对​用户​隐藏。) 下列​范​例​演示​了​如何​在​进行​模拟​输入​操作​时​将​定​时​信号​从​一个​设备​共享​至​其他​设备​(见​图​10)。

 

在进行模拟输入操作时将定时信号从一个设备共享至其他设备


​图​10
 



​请​注意,​这里​是​两​个​独立​的​设备​分别​进行​两​个​独立​的​操作。​通过​让​NI-​DAQmx​使用​Dev1/​ai/​SampleClock​作为​设备​2​的​采样​时钟,​设备​1​的​采样​时钟​便可​配置​为​设备​2​的​采样​时钟。​NI-​DAQmx​会​找到​实现​该​路​由​的​方法,​从而​确保​两​个​数据​采集​设备​以​同一​速率​采集​数据。

返回​顶部

结论


大部分​NI DAQ​设备​包含​的​功能​均可​用于​共享​定​时​和​触发。​NI-​DAQmx​本身​方便​易​用,​可​简化​分析​过程​并​提高​系统​性能。​借助​该​功能,​NI-​DAQmx​可​为​用户​提供​各种​工具,​从而​确保​不同​的​测量​发生​在​同一​时​域。

;