在PC上運(yùn)行的實(shí)時(shí)操作系統(tǒng)LabVIEWRT
掃描二維碼
隨時(shí)隨地手機(jī)看文章
實(shí)時(shí)操作和硬實(shí)時(shí)操作系統(tǒng)
電子測試和工業(yè)測控都依賴各種PC作為控制器,因?yàn)镻C的硬件、軟件資源豐富,價(jià)格實(shí)惠,采用開放式工業(yè)標(biāo)準(zhǔn),完全滿足作為測試系統(tǒng)的主控機(jī),以及單機(jī)的嵌入式微控制器的各種要求。特別是PC基數(shù)據(jù)采集系統(tǒng)和虛擬儀器的問世,PC在系統(tǒng)、單臺(tái)、手提、模塊、板卡中同樣起著核心作用,反過來,測試產(chǎn)品可從PC中獲得最新的計(jì)算機(jī)和網(wǎng)絡(luò)成果。PC基的數(shù)據(jù)采集廣泛用來解決信號測控的各種問題,可用比傳統(tǒng)儀器和控制器更低的投入,更快的上市時(shí)間開發(fā)功能強(qiáng)大的測控系統(tǒng)。
表1 RT系列數(shù)據(jù)采集卡
當(dāng)前,大部分PC采用奔騰芯片和Windows操作系統(tǒng),芯片時(shí)鐘不斷升高,今年將超過1GHz,Windows版本也從95、98、NT升級至2000,PC不但是精巧的控制器,而且也是很好的服務(wù)器,性能直迫工作部。然而,由于 Windows著重事務(wù)處理,雖然具有多任務(wù)、多線程、多媒體、網(wǎng)絡(luò)和通信功能,仍然不適用于對過程時(shí)間有嚴(yán)格要求的實(shí)時(shí)測控系統(tǒng)。
“實(shí)時(shí)”是工業(yè)最廣泛使用的術(shù)語,但意義不夠明確,多數(shù)工程為員認(rèn)為實(shí)時(shí)是指在可接受的延時(shí)內(nèi)的時(shí)間,因?yàn)槿魏芜^程都不可能在瞬時(shí)產(chǎn)生。并且且硬實(shí)時(shí)間間表示一種對系統(tǒng)反應(yīng)時(shí)間的約束,在限定時(shí)間內(nèi)系統(tǒng)保證作業(yè)的無失效執(zhí)行,并符合實(shí)時(shí)的要求。我們用一個(gè)控制回路來表達(dá)實(shí)時(shí)應(yīng)用(見圖1),傳感器在某一時(shí)刻測得的物理量,經(jīng)過過程收集后作出控制決定,再產(chǎn)生控制輸出由執(zhí)行機(jī)構(gòu)去執(zhí)行。顯然,從傳感器測量至執(zhí)行器動(dòng)作之間需要占有一定時(shí)間,這個(gè)時(shí)間間隔稱為控制回路周期時(shí)間。如果回路周期時(shí)間得到保證,則系統(tǒng)是在確定情況下運(yùn)行。亦即,如果回路周期時(shí)間不確定,則系統(tǒng)是在不穩(wěn)定狀態(tài)下運(yùn)行。
測控系統(tǒng)一般是在PC的Windows下運(yùn)行。雖然Windows是可靠的操作系統(tǒng),但是并非可時(shí)操作系統(tǒng),工程為員不敢依靠Windows去執(zhí)行嚴(yán)格的硬實(shí)時(shí)應(yīng)用,因?yàn)閾?dān)心操作系統(tǒng)會(huì)“崩潰”。
LabVIEW RT和RT系列硬件
測控使用的PC基插卡中,以數(shù)據(jù)采集卡最普遍,數(shù)據(jù)采集卡充分利用計(jì)算技術(shù)的開放系統(tǒng)、圖形用戶接口、連續(xù)性、網(wǎng)絡(luò)能力,構(gòu)建適于快速實(shí)時(shí)控制的對時(shí)間有嚴(yán)格要求的應(yīng)用。在編程工具中,美國國家儀器公司的LabVIEW已有20年的經(jīng)驗(yàn),在PC基儀器編程中,LabVIEW占有最大的份額。國家儀器公司生產(chǎn)的數(shù)據(jù)采集系統(tǒng)也是性能最好的產(chǎn)品之一。
然而,國家儀器公司的數(shù)據(jù)采集卡和LabVIEW都是在Windows平臺(tái)上運(yùn)行的,Windows并非確定性的實(shí)時(shí)操作系統(tǒng),在它的控制算法中,回路周期時(shí)間是變動(dòng)的,不能解決硬實(shí)時(shí)控制。對于Windows基PC來說,數(shù)據(jù)采集系統(tǒng)在執(zhí)行回控制時(shí)典型延時(shí)或抖動(dòng)是幾百毫秒。對于一般控制系統(tǒng)幾百毫秒的回路周期時(shí)間是可以接受的,例如溫度控制器通常只執(zhí)行每秒幾次的取樣和控制溫度,幾百毫秒的回路抖致力或不確定并不影響系統(tǒng)的穩(wěn)定。顯然,對于需要硬實(shí)時(shí)控制來說,往往要求控制回路的周期時(shí)間穩(wěn)定在幾十毫秒或者幾毫秒。 Windows操作系統(tǒng)不適合這種高速的控制回路使用。
采用LabVIEW進(jìn)行處理,周期時(shí)間可達(dá)到8ms,但不夠穩(wěn)定,每隔幾分鐘左右周期時(shí)間會(huì)突然增加到30ms,原因是底層內(nèi)核或Windows內(nèi)務(wù)處理引起的變化。既然Windows和LabVIEW都不能解決硬實(shí)時(shí)控制的確定周期時(shí)間,用戶只能尋求其它解決方案,例如UNIX操作系統(tǒng)的實(shí)時(shí)軟件,使控制系統(tǒng)的總費(fèi)用達(dá)到幾萬美元,而且編程為員還要重新學(xué)習(xí)難以掌握的命令集和在工作站上編程。
當(dāng)然,還有在PC和Windows平臺(tái)上發(fā)展的實(shí)時(shí)專用硬件和控制器,即有獨(dú)立的設(shè)備也有插卡,總線多種多樣,如VME、PCI或CompactPCI。這些控制器只有固定的或很有限的編程能力,編程軟件也是專用開發(fā)工具。專用控制器和開發(fā)工具的售價(jià)仍在一萬美元以上。由于缺乏公認(rèn)的標(biāo)準(zhǔn)和缺少靈活性。妨礙這些專用實(shí)時(shí)產(chǎn)品用于PC基的軟實(shí)時(shí)控制系統(tǒng)中。
為解決硬實(shí)時(shí)的測控問題,國家儀器公司在LabVIEW的基礎(chǔ)上開發(fā)出LabVIEW RT軟件,在普通數(shù)據(jù)采集卡上開發(fā)出RT系列硬件,構(gòu)成真正實(shí)時(shí)測控系統(tǒng),而價(jià)位在一萬美元以下。
實(shí)時(shí)操作系統(tǒng)的構(gòu)成
LabVIEW RT實(shí)時(shí)圖形編程工具要在RT系列數(shù)據(jù)采集卡上的RT CPU運(yùn)行,RT CPU是一個(gè)AMD486DX5處理器,時(shí)鐘頻率133MHz,PCI總線速度33MHz,用戶編程用在DRAM存儲(chǔ)容量8MB。RT CPU相當(dāng)于RT系列數(shù)據(jù)采集卡上的嵌入式處理器,執(zhí)行主機(jī)PC的命令,與主機(jī)交換信息。RT系列數(shù)據(jù)采集卡目前有兩種,性能如表1所示。
為增加數(shù)據(jù)采集的I/O數(shù)目,RT系列6533型I/O插卡的特點(diǎn)是,I/O數(shù) 32個(gè),傳輸率13MB/s(圖形)和76MB/S(信號交換),TTL電平。RT系列插卡是雙槽PCI板卡,由堆疊在一起的處理器母板和功能子板構(gòu)成。處理器板實(shí)際上是一塊PC板,由PC芯片集、BIOS、RAM和RT專用CPU組成,只是沒有硬盤、鍵盤、鼠標(biāo)、串并口等I/O器件。因此RT系列插卡必須與主機(jī)PC一起工作,執(zhí)行程序開發(fā)、調(diào)試、數(shù)據(jù)收集、用戶界面等操作。RT系列插卡有PCI、PXI和Compact PCI三種總線選擇。RT系列插卡的處理器板方框圖如圖2所示。
子板就是6430E/6440E數(shù)據(jù)采集卡,備有16個(gè)單端模擬輸入或8個(gè)差分模擬輸入,分辨率是16/12位,取樣率是100/250ks/s??梢姰?dāng)前的RT系列硬件主要用于過程控制,在主機(jī)PC和Windows平臺(tái)下運(yùn)行時(shí) RT系列插卡可在750μs內(nèi)響應(yīng)一個(gè)事件,采用軟件定時(shí)的最大周期時(shí)間抖動(dòng)為10μs,采用板上定時(shí)器的硬件定時(shí)的抖動(dòng)降低到ns量級。實(shí)時(shí)控制性能顯然比LabVIEW好得多,而且不會(huì)出現(xiàn)不穩(wěn)定的周期時(shí)間突變,是名副其實(shí)的硬實(shí)時(shí)控制系統(tǒng)。實(shí)時(shí)LabVIEW RT的編程與標(biāo)準(zhǔn)LabVIEW的編程基本相同。
LabVIEW RT圖形編程工具由兩部分構(gòu)成,亦即開發(fā)系統(tǒng)和RT引擎。RT開發(fā)系統(tǒng)的功能是編制和調(diào)試LabVIEW RT代碼,然后將程序下載到RT系列插卡上的RT CPU,以及提供用戶界面??梢奟T實(shí)時(shí)系統(tǒng)是在主機(jī)PC下運(yùn)行的應(yīng)用軟件,RT引擎是在RT CPU內(nèi)運(yùn)行和執(zhí)行嵌入的LabVIEW RT程序。實(shí)時(shí)引擎實(shí)上是一個(gè)32位的內(nèi)核,但增強(qiáng)了與開發(fā)系統(tǒng)通信服務(wù)等功能。
RT引擎運(yùn)行LabVIEW RT的代碼,提供確切的實(shí)時(shí)特性。因?yàn)?,RT引擎不在主機(jī)PC運(yùn)行,而在RT系列插板上運(yùn)行,對實(shí)時(shí)特性調(diào)諧,減少瓶頸。RT引擎是在實(shí)時(shí)操作系統(tǒng)下運(yùn)行,保證調(diào)度程序和其它操作系統(tǒng)服務(wù)粘附到實(shí)時(shí)操作上。RT引擎是多線程的,較高優(yōu)先級的線程一定比低優(yōu)先級的線程先執(zhí)行。使用者無需了解內(nèi)核的詳細(xì)運(yùn)行,實(shí)時(shí)操作系統(tǒng)管理全部實(shí)時(shí)細(xì)節(jié)。這種屏蔽作用保證在實(shí)時(shí)操作系統(tǒng)更新時(shí),用戶不必更改代碼。
實(shí)時(shí)控制與分布式實(shí)時(shí)控制
有了LabVIEW RT之后,構(gòu)建實(shí)時(shí)測控應(yīng)用變得很容易和方便。對熟悉LabVIEW的使用者來說,先在LabVIEW RT軟件開發(fā)環(huán)境下編寫應(yīng)用程序,然后將代碼下載到RT系列數(shù)據(jù)采集板上的RT處理器內(nèi)。這樣,使用者就備有可靠的獨(dú)立運(yùn)行的處理器全力以赴地執(zhí)行硬實(shí)時(shí)控制的要求,而其它對時(shí)間沒有嚴(yán)格要求的用戶界面臨視,數(shù)據(jù)收集和有其它功能留給主機(jī)PC去處理。因?yàn)長abVIEW RT代碼在智能的RT系列數(shù)據(jù)采集卡運(yùn)行,即使主機(jī)PC崩潰,控制回路應(yīng)用程序仍然工作。對于熟悉LabVIEW編程和傳統(tǒng)數(shù)據(jù)采集插卡的使用者,由于 LabVIEW RT和RT系列數(shù)據(jù)采集卡采用同樣的應(yīng)用程序接口,使用者可利用從前的編程經(jīng)驗(yàn)而不必深入了解實(shí)時(shí)技術(shù)來構(gòu)建硬實(shí)時(shí)應(yīng)用。
由LabVIEW RT開發(fā)實(shí)時(shí)應(yīng)用程序可用于大型測控系統(tǒng)的頒結(jié)構(gòu),在分布結(jié)構(gòu)中主機(jī)PC運(yùn)用標(biāo)準(zhǔn)的LabVIEW主程序和對用戶提供界面,對時(shí)間要求不嚴(yán)格的控制硬件可接入分布網(wǎng)絡(luò)中,對時(shí)間要求嚴(yán)格的RT系列硬件執(zhí)行LabVIEW RT程序。標(biāo)準(zhǔn)的LabVIEW主程序軟件與嵌入的LabVIEW RT程序相互通信和分享RT系列的板上存儲(chǔ)器,在網(wǎng)絡(luò)上運(yùn)行TCP/IP協(xié)調(diào)或調(diào)用虛擬儀器(VI)服務(wù)器,執(zhí)行分布式硬實(shí)時(shí)測控作業(yè)。