移動版網(wǎng)站開發(fā)電商網(wǎng)站平臺搭建
于NI kb摘錄
1.概述
? ? ? ? 對于NI RIO系列設(shè)備(CompactRIO、sbRIO、myRIO等)進行編程時,需要注意有三個不同的組件。
- 人機界面 (HMI) 。有時稱為“主機”,為用戶提供圖形用戶界面(GUI),用于監(jiān)控系統(tǒng)狀態(tài)和設(shè)置操作參數(shù)。使用 HMI 是可選的,因為 RIO 產(chǎn)品可以編程為無頭運行,并且有些產(chǎn)品可以直接連接到嵌入式用戶界面,但是當實施 HMI 時,它們可以采用 Windows 臺式計算機、平板電腦或觸摸面板的形式以計算機為例。
- 實時(RT)處理器:RT 處理器運行主要的實時程序,并且允許 RIO 可靠地執(zhí)行具有特定時序要求的程序。
- 現(xiàn)場殼編程門陣列:FPGA是一種可重新編程的硅芯片,是嵌入式系統(tǒng)的核心。FPGA 將機箱 I/O 直接連接到 RT 處理器,無需通過總線,與其他控制器架構(gòu)相比,系統(tǒng)響應(yīng)的控制延遲非常低。由于 FPGA 通過 LabVIEW FPGA 模塊在硬件而不是軟件中運行其代碼,因此其速度和可靠性通常用于使用高速緩沖 I/O、快速控制循環(huán)或自定義信號過濾的應(yīng)用。
????????HMI、RT 和 FPGA 在 LabVIEW 項目中都有自己獨特的編程位置,并且每個組件內(nèi)部和組件之間的通信方法也不同。本白皮書闡述了這些方法及其差異。下圖顯示了這些組件如何交互(假定 PC 用作 HMI)。
2.調(diào)用IO
????????在深入研究不同的通信方法之前,了解數(shù)據(jù)如何從 RIO 目標上的物理輸入和輸出端口傳輸?shù)角度胧较到y(tǒng)組件非常重要。使用CompactRIO時,可以通過三種方式訪問??I/O:
- 對于實時(NI-DAQmx)模式,數(shù)據(jù)通過處理器通過 NI-DAQmx VI 讀取。
- 對于實時掃描(IO變量)模式,數(shù)據(jù)通過FPGA發(fā)送,但最終通過將IO節(jié)點拖放到實時VI來在處理器上訪問。
- 對于LabVIEW FPGA模式,通過將IO節(jié)點拖放到FPGA VI中,可以直接從FPGA內(nèi)部讀取I/O。
????????編程模式由 LabVIEW 項目中模塊旁邊的文本指示。
????????下圖顯示了每種模式如何通過不重疊的唯一路徑發(fā)送 I/O 數(shù)據(jù)。
????????請注意,并非所有 CompactRIO 都支持使用 NI-DAQmx 進行編程。請參閱文檔了解哪些型號的 CompactRIO 支持使用 NI-DAQmx 進行編程。?
3.標簽、流、消息
????????對 RIO 目標進行編程時,了解三種通信范例非常重要:?
????????標簽類型有時稱為當前值類型,用于傳達最新值。標簽的一個示例是操作員通過 HMI 給出的控制設(shè)定點。該標簽不需要傳達控制設(shè)定點的所有歷史數(shù)據(jù),而只需傳達操作員輸入的最新值。此外,由于不需要所有先前設(shè)定點的歷史數(shù)據(jù),因此不能保證標簽傳輸。無保證傳輸?shù)倪@一方面有時被稱為“有損”通信。?
????????相比之下,流類型使用緩沖來傳輸每個數(shù)據(jù)點,其中吞吐量比延遲更重要。流通信的一種用例是通過 FPGA 將所有溫度數(shù)據(jù)傳輸?shù)?RT 處理器以記錄到文件中。在這種情況下,歷史數(shù)據(jù)是必要的,因此每個數(shù)據(jù)點的傳輸都得到保證。有保證的傳輸?shù)倪@個方面被稱為“無損”通信。?
????????當需要保證信息的傳遞并且具有低延遲時,使用最后一種通信類型,即消息。緊急停止命令是消息通信類型的一個示例。在下表中,通信選項將指定為標簽、流或消息類型。在大多數(shù)情況下,由于該選項的保證傳遞方面,可以支持流類型的通信選項也將支持消息類型。下表總結(jié)了這些通信類型。?
通訊類型 | 基本特征 | 可選功能 | 表現(xiàn) |
標簽 | 僅當前值,定期讀取 | 動態(tài)查找、分組管理 | 低延遲、高通道數(shù) |
流 | 緩沖、阻塞(超時) | 多層緩沖 | 高吞吐量 |
消息 | 緩沖、阻塞(超時) | 確認數(shù)據(jù)傳輸 | 低延遲 |
?4.通信選型摘要
????????
????????下表提供了 HMI、RT 處理器和 FPGA 之間不同通信選項的最高級別概述。適用時請參閱更詳細的表格。單擊各個鏈接可查找有關(guān)該通信選項的更多詳細信息。
From\To | HMI | RT | FPGA |
HMI | Tag
Stream
Message
| 詳情看RT/HMI通信 | T用于 FPGA 和 RT 處理器之間通信的相同通信方法也可用于 FPGA 和 HMI 之間的通信。然而,這種情況不太常見,因為一旦通過以太網(wǎng)與 HMI 進行通信,就無法保證確定性。? |
RT | ??? 詳情看RT/HMI通信 | 詳情看RT進程間通信 | Tag
Stream
|
FPGA | 用于 FPGA 和 RT 處理器之間通信的相同通信方法也可用于 FPGA 和 HMI 之間的通信。然而,這種情況不太常見,因為一旦通過以太網(wǎng)與 HMI 進行通信,就無法保證確定性 | Tag
Stream
| ?? ?詳情查看FPGA進程間通信 |
?
RT進程間通信
????????下表概述了 RT 程序上不同進程之間進行通信時可用的通信選項。該表分為在確定性循環(huán)(例如定時循環(huán))與非確定性循環(huán)之間通信或在非確定性循環(huán)與另一個非確定性循環(huán)之間通信時可用的選項。最佳實踐是,實時處理器上的每個內(nèi)核僅運行一個確定性循環(huán),以避免優(yōu)先級沖突。
通訊類型 | 確定性循環(huán)到非確定性循環(huán) | 非確定性循環(huán)到非確定性循環(huán) |
標簽 |
|
|
流、消息 |
|
|
RT/HMI 通訊
????????下表概述了實時程序與 Windows PC 上運行的 HMI 之間進行通信時可用的不同通信選項。該表還列出了通信選項是否支持一個或多個 RT 處理器或 HMI 之間的通信。值得注意的是,我們的 CompactRIO 目標運行 64 位 NI Linux Real-Time 操作系統(tǒng),有一個嵌入式 UI 選項,允許顯示 Real-Time VI 的前面板。在這種情況下,無需對 HMI 進行編程。
通訊類型 | 通訊選項 | RT 目標數(shù)量:HMI 數(shù)量 |
標簽 | 網(wǎng)絡(luò)發(fā)布的共享變量 | 1:1、1:N、N:1 |
TCP/IP | 1:1 | |
UDP協(xié)議 | 1:N 或 N:1 | |
網(wǎng)頁服務(wù) | 1:1、1:N | |
流、消息 | 網(wǎng)絡(luò)流 | 1:1 |
TCP/IP(僅消息) | 1:1 |
?FPGA 進程間通信
????????
通訊類型 | 通訊選項 | 常用 |
標簽 | 局部/全局變量 | 分享最新數(shù)據(jù) |
記憶項目 | 分享最新數(shù)據(jù) | |
注冊項目 | 分享最新數(shù)據(jù) | |
流、消息 | 握手 | 建立持續(xù)通信的參數(shù) |
FIFO(觸發(fā)器) | 傳輸緩沖數(shù)據(jù) (FIFO < 100 字節(jié)) | |
FIFO(查找表) | 傳輸緩沖數(shù)據(jù) (100 字節(jié) ≤ FIFO ≤ 300 字節(jié)) | |
FIFO(塊存儲器) | 傳輸緩沖數(shù)據(jù) (FIFO > 300 字節(jié)) *可用塊存儲器的上限由FPGA目標指定 |
????????下表概述了 FPGA 上不同進程之間進行通信時可用的通信選項。有多種方法可以在兩個不同的 FPGA 之間進行通信,但這里不討論這些選項。?
5.RIO開發(fā)人員必備指南?
? ? ? ? 此鏈接必看,文檔范例皆有:RIO Developer Essentials Guide for Academia
?6.FPGA、實時處理器和分布式系統(tǒng)之間的通信范例
Communicate Between FPGA, Real-Time Processor, and Distributed Systems - NI
其他
????????初學(xué)者可以先看一下NI對于每個工具包的說明文檔,這個對于知識盲區(qū)打開有一定的幫助。
????????????????LabVIEW Real Time Module:?產(chǎn)品文檔 - NI ? ? ?
????????????????LabVIEW FPGA Module:產(chǎn)品文檔 - NI
???????
LabVIEW Real-Time和LabVIEW FPGA項目范例
嵌入式系統(tǒng)通常需要具有可靠性和確定性的架構(gòu)。因此,許多嵌入式應(yīng)用需要專門處理系統(tǒng)狀態(tài)監(jiān)測、錯誤處理和看門狗定時器。針對CompactRIO和PXI RT DAQ的LabVIEW項目范例提供了推薦的軟件架構(gòu),可用于各種嵌入式控制與監(jiān)控系統(tǒng),這是滿足這些需求的最佳實踐。這些項目范例還給出了數(shù)據(jù)通信、網(wǎng)絡(luò)連接、控制例程、數(shù)據(jù)記錄等的最佳實踐。
為了在LabVIEW中查看這些模板,您必須安裝LabVIEW Real-Time和/或LabVIEW FPGA模塊。
CompactRIO項目范例
| CompactRIO的LabVIEW FPGA控制 此項目范例專為需要高性能控制和/或基于硬件的安全邏輯的應(yīng)用程序而設(shè)計??刂仆ㄟ^FPGA架構(gòu)實現(xiàn),而并非在軟件中運行控制算法,使控制循環(huán)速率能夠達到10 kHz以上,且抖動極小。FPGA VI還包含安全邏輯,可在出現(xiàn)嚴重錯誤或者實時軟件故障時立即將所有輸出設(shè)置成安全狀態(tài),從而更大限度地確保系統(tǒng)的可靠性。 參閱相關(guān)文檔?|?參閱NI社區(qū)的詳細指南 |
| CompactRIO的LabVIEW Real-Time控制(RIO掃描接口) 此項目范例專為需要確定性控制性能的控制應(yīng)用而設(shè)計,其單點I/O速率不超過100 Hz。此項目范例不使用FPGA硬件,而是使用確定性的實時處理器進行系統(tǒng)控制。此范例使用RIO掃描接口(RSI)在實時應(yīng)用中獲取I/O數(shù)據(jù),如同變量一樣。 |
| CompactRIO的LabVIEW FPGA波形采集與記錄 此項目范例包含基于FPGA的可自定義高速模擬采集,并可在滿足觸發(fā)條件時,將采集到的數(shù)據(jù)記錄至實時系統(tǒng)的磁盤。此項目范例可以自主運行,或者連接到所提供的可選用戶界面。 |
| CompactRIO的LabVIEW Real-Time序列生成器 此項目范例可實現(xiàn)序列引擎,可針對控制應(yīng)用在LabVIEW Real-Time中執(zhí)行用戶自定義的序列或方法。它包括一個基于Windows的用戶界面,該界面能夠生成用戶定義的序列,將此類序列部署到CompactRIO,以及監(jiān)測序列引擎狀態(tài)。用戶界面動態(tài)加載子面板,展示了高效、響應(yīng)流暢的用戶界面架構(gòu)。 查看視頻教程 |
Real-Time項目范例(使用DAQmx)
LabVIEW Real-Time (NI-DAQmx)項目范例專為實時控制和/或波形采集與記錄應(yīng)用而設(shè)計。
| LabVIEW Real-Time控制(NI-DAQmx) 實現(xiàn)基于軟件的確定性設(shè)備控制。此項目范例采用NI-DAQmx,并專為使用NI Real-Time PXI控制器和NI DAQ且需要確定性DAQ控制I/O的控制應(yīng)用而設(shè)計。 參閱相關(guān)文檔 |
| LabVIEW Real-Time波形采集與記錄(NI-DAQmx) 采集連續(xù)波形數(shù)據(jù)并將數(shù)據(jù)記錄至磁盤。此項目范例采用NI-DAQmx,包含模擬數(shù)據(jù)采集,并在可滿足觸發(fā)條件時,將采集到的數(shù)據(jù)記錄至實時系統(tǒng)的磁盤。此項目范例可以自主運行,或者連接到所提供的可選用戶界面。此范例專為使用NI Real-Time PXI控制器和NI DAQ或者NI獨立式CompactDAQ的應(yīng)用而設(shè)計。 參閱相關(guān)文檔 |