概覽
定時對于所有測試、控制和設計應用而言是至關重要的,在系統中必須作為重點進行考慮。當需要完成協同動作時,定時和同步技術將事件以時間進行關聯。要讓軟件完成這些協同動作,程序必須以時間為基準來實現同步。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. 定時循環結構的定時源:內建內置定時源、軟件觸發源和外部源
內置定時源
內置定時源使用納秒級引擎記錄時間。您可以使用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 更多信息,請訪問ni.com/labview/zhs