概览
定时对于所有测试、控制和设计应用而言是至关重要的,在系统中必须作为重点进行考虑。当需要完成协同动作时,定时和同步技术将事件以时间进行关联。要让软件完成这些协同动作,程序必须以时间为基准来实现同步。NI LabVIEW中包含了定时结构,您可以在系统中用它来同步您的程序。
LabVIEW定时原理——纳秒级引擎和NI-TimeSync
LabVIEW使用称为纳秒级引擎的软件组件在程序中记录时间。引擎在后台运行,与操作系统交互管理时间。在LabVIEW中有多个函数和结构,使用此引擎记录时间,如等待函数和定时循环结构。纳秒级引擎可以使用本地实时时钟(RTC),也可以通过NI定时同步架构(NI-TimeSync)用外部参考时钟进行驱动(图1)。
图1. LabVIEW纳秒级定时机制与NI-TimeSync协同为应用程序提供时钟。
LabVIEW 2010在NI-TimeSync中引入全新时钟。NI-TimeSync 1.1中的IEEE1588插件提供了精度高达1 ms的同步参考时钟。您可以在网络上配置多个仪器,使用同一个IEEE 1588参考时钟,让多个平台可以在标准的以太网网络上进行同步。您还可以通过NI测量与自动化浏览器(MAX)工具配置设备使用软件1588精确时间协议(图2)。
图2. 从MAX配置设备的时间同步源
LabVIEW定时结构——定时循环
定时循环是在可配置的定时源产生事件时执行的循环结构。它可以使用多种定时源(后面的教程会有详细介绍)。如果开发多速率处理、精确定时与同步、循环执行反馈、动态变化定时特性或多执行优先级的应用,可以使用定时循环。除了定时循环的严密定时特性之外,定时结构还可以用于为多核编程分配处理器资源。使用定时循环,您可以指定包括周期、优先级、期限、偏移量和延时等多个定时属性。结合这些属性和丰富的定时源,无论需要怎样的定时方式,您都可以创建复杂的应用程序。
图3. 使用定时常数执行代码的LabVIEW定时循环结构
定时循环的定时源
定时源控制定时结构的执行。您可以从三类定时源中选择:内部定时源、软件触发或外部定时源(图4)。
图4. 定时循环结构的定时源:内建内置定时源、软件触发源和外部源
[DividePage:NextPage]
内置定时源
内置定时源使用纳秒级引擎记录时间。您可以使用1 kHz时钟或1 MHz时钟在实时(RT)目标上配置定时循环。您可以使用1 kHz时钟以毫秒级分辨率使用定时结构。所有能够运行定时结构的LabVIEW平台都支持1 kHz定时源。支持1 MHz定时源的目标可以提供微秒级分辨率的定时结构。您还可以配置定时循环结构,使用这些内置定时源,作为绝对时间参考,用时间戳开始执行循环结构。例如,您可以配置定时循环在每天的确定时间开始运行。
另一个内置定时源是同步扫描引擎。它将定时结构与NI扫描引擎进行同步。使用这个定时源,定时结构在每次扫描结束时执行。循环执行周期对应于扫描周期(µS)设置,您可以在NI扫描引擎页面上进行配置。
软件触发定时源
您可以创建软件触发的定时源来触发基于软件事件定时结构。Create Timing Source VI创建软件触发的定时源。Fire Software-Triggered Timing Source VI以编程方式触发用软件触发定时源控制的定时循环。您可以使用软件触发定时源作为兼容实时方式的事件响应器或是在新数据出现时,通知在生产者—消费者模式中中的消费者循环。
外部定时源
您可以创建外部定时源,用NI-DAQmx7.2或以后版本控制定时结构。用DAQmx Create Timing Source VI以编程方式选择外部定时源。您还可以使用多种NI-DAQmx定时源,包括频率、数字边沿计数器、数字变化检测与任务信号源控制定时结构。使用DAQmx数据采集VI创建以下类型的NI-DAQmx定时源,控制定时结构。
频率——创建用定时结构以一定频率执行的定时源。
数字边沿触发器——创建在数字信号的上升沿或下降沿执行的定时结构。
数字变化检测——创建在一条或多条数字线的上升沿或下降沿执行的定时结构。
任务信号——创建可以通过使用信号来触发执行的定时结构。
LabVIEW中的定时与同步
利用语言自带的定时结构、纳秒级定时引擎和定时循环结构,LabVIEW提供了系统必须的定时与同步功能。
如果您不熟悉同步,可以访问实现同步了解更多。或是查看行业中的案例研究。
了解LabVIEW 更多信息,请访问
(转载)