LabVIEW中的同步

概览

定时是所有测试、控制和设计应用程序的基本要素,在任何​系统​中都应​必须​作为​重点​进行​考虑。定时和同步技术及时关联事件,这是执行协同动作​所必需的。​要编排​软件​以完成​这些​协同动作,程序​必须​以​时间​为​基准​来​实现​同步。NI LabVIEW软件具有该语言固有的定时结构,您可将其用于在系统内同步软件。

内容

LabVIEW原理-​纳​秒​级​引擎NI-TimeSync

LabVIEW使用名为​纳​秒​级引擎的软件组件​在​程序​中​记录​时间。该纳​秒​级引擎在​后台​运行,并与​操作​系统​交互​管理​时间。​LabVIEW​中的多个​函数​和​结构(如​等待​函数​和​定​时​循环​结构)使用​此​引擎​记录​时间​。纳秒级引擎可使用本地实时时钟(RTC),或可由通过NI定时同步框架(NI-Time Sync)集成的外部参考时钟驱动(图1)。

图1:LabVIEW纳秒级定时机制和NI-TimeSync协同为应用程序提供时钟。

LabVIEW 2010引入了可用于NI-TimeSync的全新时钟。随附于NI-Time Sync1.1的IEEE标准1588插件提供了分辨率为1 ms的同步时钟参考。您可以将网络上的多个设备配置为使用同一个IEEE 1588参考时钟,让​多个​平台​可以​在​标准​的​以太​网​网络​上​进行​同步。您还可以通过NI测量和自动化资源​浏览​器(MAX)工具,将设备配置为使用软件1588精确时间协议(图2)。

图2:在MAX中配置设备的时间同步源

 

LabVIEW结构循环

定时循环是一种在已配置的定时源产生事件时执行的循环结构。它具有多种定时源(本教程稍后将对此进行介绍)。如果要开发的应用程序需要多速率处理、精确定时和同步、循环执行反馈、动态变化定时特性或多种执行优先级时,可以使用定时循环。除了定时循环的严密定时特性之外,该结构还可用于为多核编程分配处理器亲和。使用定时循环,您可指定各种定时属性,包括周期、优先级、期限、偏移量和超时。通过将这些属性和大量定时源相结合,您可以创建复杂的应用程序,而无需考虑所需的定时约束(图3)。

图3:LabVIEW定时循环结构,通过定时约束执行代码

 

循环时源

定时源控制定时结构的执行。您可以从三类定时源中选择:内部定​时​源、软件触发定​时​源或外部定​时​源(图4)。

图4:定时循环结构的定时源:内置内部定时源、软件触发定​时​源和外部定​时​源

内部时源

内部定时源使用纳​秒​级​引擎来记录时间。您可将定时循环配置为在受支持的实时(RT)目标上使用1 kHz时钟或1 MHz时钟。使用1 kHz时钟,您可以调度毫秒​级分辨率的定时结构。可运行定时结构的所有LabVIEW平台均支持1 kHz定时源。支持1 MHz定时源的目标可以调度微秒级分辨率的定时结构。您还可将定时循环结构配置为使用这些内置定时源作为绝对时间参考,以使用时间标识开始执行循环结构。例如,可以将定时循环配置为​在​每天​的​确定​时间​开始​运行。

另一个内部定时源是同步至扫描引擎。这会将定时结构与NI扫描引擎同步。通过该定时源,将在每次扫描结束时执行定时结构。两次迭代之间的间隔对应于您在NI Scan Engine page(NI扫描引擎)页面上配置的Scan Period (µS)(扫描周期(µS))设置。

软件触发时源

您可以创建软件触发定时源,以触发基于软件定义事件的定时结构。创建定时源VI能够创建软件触发定时源。发射软件触发定时源VI则能以编程方式触发一个由软件触发定时源控制的定时循环。也可使用软件触发定时源作为与RT兼容的事件处理器,或者在生产者-消费者应用程序中生成可用新数据时通知消费者定时循环。

外部时源

您可以使用NI-DAQmx 7.2或更高版本创建用于控制定时结构的外部定时源。DAQmx创建定时源VI能以编程方式选择外部定时源。另有几种类型NI-DAQmx定时源可用于控制定时结构,如频率、数字边沿计数器、数字改动检测和任务源信号等。DAQmx数据采集VI能够创建以下用于控制定时结构的NI-DAQmx定时源。

频率-创建以恒定频率执行定时结构的定时源。

数字边沿计数器-创建在数字信号上升或下降边沿上执行定时结构的定时源。

数字改动检测-创建在一个或多个数字线路上升或下降边沿上执行定时结构的定时源。

任务源信号-创建以特定信号确定定时结构执行时间的定时源。

LabVIEW中的同步

借助语言固有的定时结构、纳秒级​定时引擎和定时循环结构,LabVIEW可为系统提供必不可少的定时和同步功能。