LabVIEWCompactRIO 開(kāi)發(fā)指南1
LabVIEWCompactRIO?開(kāi)發(fā)指南1
概述和背景
本指南提供了使用NI?LabVIEW系統(tǒng)設(shè)計(jì)軟件以及LabVIEW實(shí)時(shí)和LabVIEW?FPGA模塊設(shè)計(jì)NI?CompactRIO控制和監(jiān)控應(yīng)用程序的最佳實(shí)踐?;谶@些模塊的控制器的應(yīng)用范圍包括粒子加速器(如CERN大型強(qiáng)子對(duì)撞機(jī))的控制,發(fā)動(dòng)機(jī)電子控制單元(ecu)的硬件在環(huán)測(cè)試,油井鉆井的自適應(yīng)控制,以及預(yù)測(cè)性維護(hù)的高速振動(dòng)監(jiān)測(cè)。本指南提供了開(kāi)發(fā)可讀、可維護(hù)、可擴(kuò)展并針對(duì)性能和可靠性進(jìn)行了優(yōu)化的CompactRIO應(yīng)用程序的技巧。
CompactRIO架構(gòu)
CompactRIO是一個(gè)堅(jiān)固的、可重構(gòu)的嵌入式系統(tǒng),包含三個(gè)組件:一個(gè)運(yùn)行實(shí)時(shí)操作系統(tǒng)(RTOS)的處理器、一個(gè)可重構(gòu)的FPGA和可互換的工業(yè)I/O模塊。實(shí)時(shí)處理器提供可靠,可預(yù)測(cè)的行為,并擅長(zhǎng)浮點(diǎn)數(shù)學(xué)和分析,而FPGA擅長(zhǎng)需要高速邏輯和精確定時(shí)的小型任務(wù)。CompactRIO應(yīng)用程序通常包含人機(jī)界面(HMI),為操作員提供圖形用戶界面(GUI),用于監(jiān)控系統(tǒng)狀態(tài)和設(shè)置操作參數(shù)。

圖1?可重構(gòu)嵌入式系統(tǒng)架構(gòu)
LabVIEW
LabVIEW是一個(gè)圖形化編程環(huán)境,被成千上萬(wàn)的工程師和科學(xué)家用來(lái)開(kāi)發(fā)復(fù)雜的控制系統(tǒng),使用圖形圖標(biāo)和類似流程圖的線。它提供了與數(shù)千種硬件設(shè)備的集成,并提供了數(shù)百個(gè)內(nèi)置庫(kù),用于高級(jí)控制、分析和數(shù)據(jù)可視化——所有這些都是為了更快地創(chuàng)建用戶定義的系統(tǒng)。LabVIEW平臺(tái)可擴(kuò)展到多個(gè)目標(biāo)和操作系統(tǒng),在CompactRIO的情況下,LabVIEW可用于訪問(wèn)和集成LabVIEW可重構(gòu)I/O(RIO)架構(gòu)的所有組件。
實(shí)時(shí)控制器
實(shí)時(shí)控制器包含一個(gè)處理器,該處理器可靠且確定地執(zhí)行LabVIEW實(shí)時(shí)應(yīng)用程序,并提供多速率控制,執(zhí)行跟蹤,板載數(shù)據(jù)記錄以及與外設(shè)的通信。額外的選項(xiàng)包括冗余9?VDC至30?VDC供電輸入,實(shí)時(shí)時(shí)鐘,硬件看門狗定時(shí)器,雙以太網(wǎng)端口,高達(dá)2gb的數(shù)據(jù)存儲(chǔ),內(nèi)置USB和RS232支持。

圖2?NI?cRIO-9024實(shí)時(shí)控制器
實(shí)時(shí)操作系統(tǒng)(RTOS)
RTOS能夠可靠地執(zhí)行具有特定時(shí)序要求的程序,這對(duì)于許多科學(xué)和工程項(xiàng)目非常重要。構(gòu)建實(shí)時(shí)系統(tǒng)所需的關(guān)鍵組件是一個(gè)特殊的實(shí)時(shí)操作系統(tǒng);下一節(jié)將討論構(gòu)成整個(gè)實(shí)時(shí)系統(tǒng)的其他硬件和軟件部分。對(duì)于許多工程師和科學(xué)家來(lái)說(shuō),在安裝了通用操作系統(tǒng)(如Windows)的標(biāo)準(zhǔn)PC上運(yùn)行測(cè)量或控制程序是不可接受的。在任何時(shí)候,操作系統(tǒng)都可能因?yàn)樵S多原因而延遲用戶程序的執(zhí)行:運(yùn)行病毒掃描、更新圖形、執(zhí)行系統(tǒng)后臺(tái)任務(wù)等等。對(duì)于需要不間斷地以特定速率運(yùn)行的程序(例如,巡航控制系統(tǒng)),這種延遲可能導(dǎo)致系統(tǒng)故障。請(qǐng)注意,這種行為是由設(shè)計(jì)決定的——通用操作系統(tǒng)被優(yōu)化為同時(shí)運(yùn)行多個(gè)進(jìn)程和應(yīng)用程序,并提供其他功能,如豐富用戶界面圖形。相比之下,實(shí)時(shí)操作系統(tǒng)被設(shè)計(jì)為以精確的時(shí)間運(yùn)行單個(gè)程序。具體來(lái)說(shuō),實(shí)時(shí)操作系統(tǒng)可以幫助實(shí)現(xiàn)以下功能:
■在最壞的情況下完成任務(wù)
■仔細(xì)劃分項(xiàng)目的不同部分的優(yōu)先級(jí)
■在每次迭代中以幾乎相同的時(shí)間運(yùn)行循環(huán)(通常在微秒內(nèi))
■檢測(cè)一個(gè)循環(huán)是否錯(cuò)過(guò)了計(jì)時(shí)目標(biāo)
可靠性
除了提供精確的定時(shí)外,RTOSs還可以設(shè)置為可靠地運(yùn)行數(shù)天、數(shù)月或數(shù)年而不停止。這不僅對(duì)構(gòu)建需要全天候運(yùn)行的系統(tǒng)的工程師很重要,而且對(duì)任何停機(jī)時(shí)間昂貴的應(yīng)用程序也很重要?!翱撮T狗”功能通常也包含在實(shí)時(shí)系統(tǒng)中,如果用戶程序停止運(yùn)行,它可以自動(dòng)重新啟動(dòng)整個(gè)計(jì)算機(jī)。此外,實(shí)時(shí)系統(tǒng)中使用的硬件通常被設(shè)計(jì)為堅(jiān)固耐用,以長(zhǎng)時(shí)間維持惡劣的條件。
NI硬件上的RTOSs
每個(gè)系列的NI實(shí)時(shí)目標(biāo)都至少運(yùn)行在三種不同的RTOSs中的一種。LabVIEW?Real-Time提供了一個(gè)抽象層次,幫助程序員在很大程度上忽略底層RTOS的細(xì)節(jié)。然而,為了向更高級(jí)的用戶提供上下文,請(qǐng)注意NI實(shí)時(shí)目標(biāo)上的RTOSs包括Phar?Lap/ETS、VxWorks和NI?Linux?real-time。請(qǐng)?jiān)L問(wèn)ni.com/linux了解更多關(guān)于新的基于linux的RTOS的信息。
可重構(gòu)I/O?FPGA
可重構(gòu)I/O?FPGA機(jī)箱是嵌入式系統(tǒng)架構(gòu)的核心。它直接連接到I/O,用于高性能訪問(wèn)每個(gè)模塊的I/O電路和定時(shí)、觸發(fā)和同步。由于每個(gè)模塊都直接連接到FPGA而不是通過(guò)總線,因此與其他控制器體系結(jié)構(gòu)相比,用戶幾乎不會(huì)遇到系統(tǒng)響應(yīng)的控制延遲。默認(rèn)情況下,該FPGA自動(dòng)與I/O模塊通信,并向?qū)崟r(shí)處理器提供確定性I/O。開(kāi)箱即用,F(xiàn)PGA使實(shí)時(shí)控制器上的程序能夠以小于500?ns的環(huán)路抖動(dòng)訪問(wèn)I/O。也可以直接對(duì)該FPGA進(jìn)行編程以進(jìn)一步定制系統(tǒng)。由于FPGA的速度,該機(jī)箱經(jīng)常用于創(chuàng)建包含高速緩存I/O,快速控制回路或自定義信號(hào)濾波的控制器系統(tǒng)。例如,使用FPGA,單個(gè)機(jī)箱可以以100?kHz的速率同時(shí)執(zhí)行20多個(gè)PID控制回路。此外,由于FPGA在硬件中運(yùn)行所有代碼,因此它提供了最高的可靠性和確定性,這對(duì)于基于硬件的聯(lián)鎖、自定義定時(shí)和觸發(fā)或消除非標(biāo)準(zhǔn)傳感器和總線通常需要的自定義電路是理想的。有關(guān)FPGA技術(shù)的概述,請(qǐng)參見(jiàn)第5章:通過(guò)LabVIEW?FPGA定制硬件。

圖3?可重構(gòu)FPGA機(jī)箱
I/?O模塊
I/O模塊包含隔離、轉(zhuǎn)換電路、信號(hào)調(diào)理和內(nèi)置連接,可直接連接到工業(yè)傳感器/執(zhí)行器。通過(guò)提供多種布線選擇,并將連接器接線盒集成到模塊中,CompactRIO系統(tǒng)顯著降低了空間要求和現(xiàn)場(chǎng)布線成本。用戶可以選擇超過(guò)70?NI的C系列I/O模塊,用于CompactRIO連接幾乎任何傳感器或執(zhí)行器。模塊類型包括熱電偶輸入;±10v同步采樣,24位模擬I/O;24?V工業(yè)數(shù)字I/O與高達(dá)1?A電流驅(qū)動(dòng);差分/TTL數(shù)字輸入;24位IEPE加速度計(jì)輸入;應(yīng)變測(cè)量;RTD測(cè)量;模擬輸出;功率測(cè)量;控制器局域網(wǎng)(CAN)連接;以及用于記錄的安全數(shù)字(SD)卡。此外,用戶可以構(gòu)建自己的模塊或從第三方供應(yīng)商處購(gòu)買模塊。使用NIcRIO-9951?CompactRIO模塊開(kāi)發(fā)套件,用戶可以開(kāi)發(fā)自定義模塊以滿足特定應(yīng)用的需求。該套件提供訪問(wèn)低級(jí)電子CompactRIO嵌入式系統(tǒng)架構(gòu),用于設(shè)計(jì)專門的I/O,通信和控制模塊。它包括LabVIEW?FPGA庫(kù)與用戶的自定義模塊電路接口。

圖4?用戶可以選擇超過(guò)50?NI?C系列I/O模塊
系統(tǒng)配置
最簡(jiǎn)單的嵌入式系統(tǒng)由一個(gè)以“無(wú)頭”配置運(yùn)行的單個(gè)控制器組成。此配置用于除了維護(hù)或診斷目的之外不需要HMI的應(yīng)用程序中。然而,大多數(shù)控制和監(jiān)控應(yīng)用需要HMI向操作員顯示數(shù)據(jù)或允許操作員向嵌入式系統(tǒng)發(fā)送命令。常見(jiàn)的配置是1:1,即1臺(tái)主機(jī)對(duì)1個(gè)目標(biāo),如圖5所示。HMI通過(guò)直接連接、集線器或無(wú)線路由器通過(guò)以太網(wǎng)與CompactRIO硬件通信。

圖5?1:1(1主機(jī)對(duì)1目標(biāo)器)配置
系統(tǒng)能力和復(fù)雜性低一個(gè)級(jí)別是1:N(1臺(tái)主機(jī)到N個(gè)目標(biāo))或N:1?(N臺(tái)主機(jī)到1個(gè)目標(biāo))配置。主機(jī)通常是臺(tái)式PC或工業(yè)觸摸面板設(shè)備。圖6中所示的1:N配置是由本地操作員控制的系統(tǒng)的典型配置。當(dāng)多個(gè)操作員使用HMI從不同位置檢查系統(tǒng)狀態(tài)時(shí),N:1配置很常見(jiàn)。

圖6?對(duì)于由本地操作員控制的系統(tǒng),通常采用1:N(1臺(tái)主機(jī)對(duì)N個(gè)目標(biāo))配置。
復(fù)雜的機(jī)器控制應(yīng)用程序可能具有許多控制器和HMI的N:N配置(圖7)。它們通常涉及充當(dāng)數(shù)據(jù)記錄和轉(zhuǎn)發(fā)引擎的高端服務(wù)器。這種系統(tǒng)配置適用于物理上較大或復(fù)雜的機(jī)器。使用它,用戶可以從不同的位置與機(jī)器進(jìn)行交互,或者在一組操作員之間分配特定的監(jiān)視和控制職責(zé)。

圖7?分布式機(jī)器控制系統(tǒng)
指南通過(guò)各種FPGA,控制器和HMI架構(gòu)組件的推薦實(shí)現(xiàn)。它還提供了示例代碼,在某些情況下,還提供了可選實(shí)現(xiàn)和實(shí)現(xiàn)之間的權(quán)衡。
需要說(shuō)明的是,上述的例程和文檔,都是可以下載的,雙擊即可打開(kāi),其中壓縮文件是可以采用粘貼復(fù)制的方式,拷貝到硬盤上。這不是圖片,各位小伙伴看到后嘗試一下,這個(gè)問(wèn)題就不用加微信咨詢了。有關(guān)LabVIEW編程、LabVIEW開(kāi)發(fā)等相關(guān)項(xiàng)目,可聯(lián)系們。附件中的資料這里無(wú)法上傳,可去公司網(wǎng)站搜索下載。