LabVIEW的定时与同步功能实现
扫描二维码
随时随地手机看文章
概览
定时对于所有测试、控制和设计应用而言是至关重要的,在系统中必须作为重点进行考虑。当需要完成协同动作时,定时和同步技术将事件以时间进行关联。要让软件完成这些协同动作,程序必须以时间为基准来实现同步。NI
LabVIEW定时原理--纳秒级引擎和NI-TimeSync
LabVIEW使用称为纳秒级引擎的软件组件在程序中记录时间。引擎在后台运行,与操作系统交互管理时间。在LabVIEW中有多个函数和结构,使用此引擎记录时间,如等待函数和定时循环结构。纳秒级引擎可以使用本地实时时钟(RTC),也可以通过NI定时同步架构(NI-TimeSync) 用外部参考时钟进行驱动。
LabVIEW
LabVIEW定时结构--定时循环
定时循环是在可配置的定时源产生事件时执行的循环结构。它可以使用多种定时源(后面的教程会有详细介绍)。如果开发多速率处理、精确定时与同步、循环执行反馈、动态变化定时特性或多执行优先级的应用,可以使用定时循环。除了定时循环的严密定时特性之外,定时结构还可以用于为多核编程分配处理器资源。使用定时循环,您可以指定包括周期、优先级、期限、偏移量和延时等多个定时属性。结合这些属性和丰富的定时源,无论需要怎样的定时方式,您都可以创建复杂的应用程序。
定时循环的定时源
定时源控制定时结构的执行。您可以从三类定时源中选择:内部定时源、软件触发或外部定时源。
内置定时源
内置定时源使用纳秒级引擎记录时间。您可以使用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提供了系统必须的定时与同步功能。