NILabVIEW中的定時(shí)與同步
概覽
本文引用地址:http://dyxdggzs.com/article/193251.htm定時(shí)對于所有測試、控制和設計應用而言是至關(guān)重要的,在系統中必須作為重點(diǎn)進(jìn)行考慮。當需要完成協(xié)同動(dòng)作時(shí),定時(shí)和同步技術(shù)將事件以時(shí)間進(jìn)行關(guān)聯(lián)。要讓軟件完成這些協(xié)同動(dòng)作,程序必須以時(shí)間為基準來(lái)實(shí)現同步。NILabVIEW中包含了定時(shí)結構,您可以在系統中用它來(lái)同步您的程序。
LabVIEW定時(shí)原理——納秒級引擎和NI-TimeSync
LabVIEW使用稱(chēng)為納秒級引擎的軟件組件在程序中記錄時(shí)間。引擎在后臺運行,與操作系統交互管理時(shí)間。在LabVIEW中有多個(gè)函數和結構,使用此引擎記錄時(shí)間,如等待函數和定時(shí)循環(huán)結構。納秒級引擎可以使用本地實(shí)時(shí)時(shí)鐘(RTC),也可以通過(guò)NI定時(shí)同步架構(NI-TimeSync)用外部參考時(shí)鐘進(jìn)行驅動(dòng)(圖1)。
圖1.LabVIEW納秒級定時(shí)機制與NI-TimeSync協(xié)同為應用程序提供時(shí)鐘。
LabVIEW2010在NI-TimeSync中引入全新時(shí)鐘。NI-TimeSync1.1中的IEEE1588插件提供了精度高達1ms的同步參考時(shí)鐘。您可以在網(wǎng)絡(luò )上配置多個(gè)儀器,使用同一個(gè)IEEE1588參考時(shí)鐘,讓多個(gè)平臺可以在標準的以太網(wǎng)網(wǎng)絡(luò )上進(jìn)行同步。您還可以通過(guò)NI測量與自動(dòng)化瀏覽器(MAX)工具配置設備使用軟件1588精確時(shí)間協(xié)議(圖2)。
圖2.從MAX配置設備的時(shí)間同步源
LabVIEW定時(shí)結構——定時(shí)循環(huán)
定時(shí)循環(huán)是在可配置的定時(shí)源產(chǎn)生事件時(shí)執行的循環(huán)結構。它可以使用多種定時(shí)源(后面的教程會(huì )有詳細介紹)。如果開(kāi)發(fā)多速率處理、精確定時(shí)與同步、循環(huán)執行反饋、動(dòng)態(tài)變化定時(shí)特性或多執行優(yōu)先級的應用,可以使用定時(shí)循環(huán)。除了定時(shí)循環(huán)的嚴密定時(shí)特性之外,定時(shí)結構還可以用于為多核編程分配處理器資源。使用定時(shí)循環(huán),您可以指定包括周期、優(yōu)先級、期限、偏移量和延時(shí)等多個(gè)定時(shí)屬性。結合這些屬性和豐富的定時(shí)源,無(wú)論需要怎樣的定時(shí)方式,您都可以創(chuàng )建復雜的應用程序。
圖3.使用定時(shí)常數執行代碼的LabVIEW定時(shí)循環(huán)結構
定時(shí)循環(huán)的定時(shí)源
定時(shí)源控制定時(shí)結構的執行。您可以從三類(lèi)定時(shí)源中選擇:內部定時(shí)源、軟件觸發(fā)或外部定時(shí)源(圖4)。
圖4.定時(shí)循環(huán)結構的定時(shí)源:內建內置定時(shí)源、軟件觸發(fā)源和外部源
內置定時(shí)源
內置定時(shí)源使用納秒級引擎記錄時(shí)間。您可以使用1kHz時(shí)鐘或1MHz時(shí)鐘在實(shí)時(shí)(RT)目標上配置定時(shí)循環(huán)。您可以使用1kHz時(shí)鐘以毫秒級分辨率使用定時(shí)結構。所有能夠運行定時(shí)結構的LabVIEW平臺都支持1kHz定時(shí)源。支持1MHz定時(shí)源的目標可以提供微秒級分辨率的定時(shí)結構。您還可以配置定時(shí)循環(huán)結構,使用這些內置定時(shí)源,作為絕對時(shí)間參考,用時(shí)間戳開(kāi)始執行循環(huán)結構。例如,您可以配置定時(shí)循環(huán)在每天的確定時(shí)間開(kāi)始運行。
另一個(gè)內置定時(shí)源是同步掃描引擎。它將定時(shí)結構與NI掃描引擎進(jìn)行同步。使用這個(gè)定時(shí)源,定時(shí)結構在每次掃描結束時(shí)執行。循環(huán)執行周期對應于掃描周期(µS)設置,您可以在NI掃描引擎頁(yè)面上進(jìn)行配置。
軟件觸發(fā)定時(shí)源
您可以創(chuàng )建軟件觸發(fā)的定時(shí)源來(lái)觸發(fā)基于軟件事件定時(shí)結構。CreateTimingSourceVI創(chuàng )建軟件觸發(fā)的定時(shí)源。FireSoftware-TriggeredTimingSourceVI以編程方式觸發(fā)用軟件觸發(fā)定時(shí)源控制的定時(shí)循環(huán)。您可以使用軟件觸發(fā)定時(shí)源作為兼容實(shí)時(shí)方式的事件響應器或是在新數據出現時(shí),通知在生產(chǎn)者—消費者模式中中的消費者循環(huán)。
外部定時(shí)源
您可以創(chuàng )建外部定時(shí)源,用NI-DAQmx7.2或以后版本控制定時(shí)結構。用DAQmxCreateTimingSourceVI以編程方式選擇外部定時(shí)源。您還可以使用多種NI-DAQmx定時(shí)源,包括頻率、數字邊沿計數器、數字變化檢測與任務(wù)信號源控制定時(shí)結構。使用DAQmx數據采集VI創(chuàng )建以下類(lèi)型的NI-DAQmx定時(shí)源,控制定時(shí)結構。
頻率——創(chuàng )建用定時(shí)結構以一定頻率執行的定時(shí)源。
數字邊沿觸發(fā)器——創(chuàng )建在數字信號的上升沿或下降沿執行的定時(shí)結構。
數字變化檢測——創(chuàng )建在一條或多條數字線(xiàn)的上升沿或下降沿執行的定時(shí)結構。
任務(wù)信號——創(chuàng )建可以通過(guò)使用信號來(lái)觸發(fā)執行的定時(shí)結構。
LabVIEW中的定時(shí)與同步
利用語(yǔ)言自帶的定時(shí)結構、納秒級定時(shí)引擎和定時(shí)循環(huán)結構,LabVIEW提供了系統必須的定時(shí)與同步功能。
如果您不熟悉同步,可以訪(fǎng)問(wèn)實(shí)現同步了解更多?;蚴遣榭葱袠I(yè)中的案例研究。
評論