分布式系統(tǒng)有多種形式。例如,在與中央處理器不同的位置處理輸入和輸出(I/O)的方法通常稱為分布式I/O。另一個(gè)例子是為單系統(tǒng)添加多個(gè)處理器,對運(yùn)算分布式化。本文討論了如何使用NI VeriStand 2010創(chuàng)建分布式處理和I/O系統(tǒng),其中包含將開發(fā)分布式系統(tǒng)變得更為有效和有力的許多特性。例如飛機(jī)、汽車或其他工業(yè)項(xiàng)目中的控制系統(tǒng)常常需要比單個(gè)處理器板卡和機(jī)箱所能提供的更多的計(jì)算能力和I/O來進(jìn)行監(jiān)視、測試或仿真。本白皮書詳細(xì)介紹了如何創(chuàng)建可擴(kuò)展、分布式的同步系統(tǒng),滿足大型硬件在環(huán)(HIL)或?qū)崟r(shí)測試系統(tǒng)的需求。NI VeriStand 2010是用于配置包括HIL測試系統(tǒng)在內(nèi)的實(shí)時(shí)測試應(yīng)用的即用型軟件環(huán)境。利用NI VeriStand 2010特性,無需對軟件體系結(jié)構(gòu)進(jìn)行設(shè)計(jì)、編程和維護(hù),就可以創(chuàng)建系統(tǒng)。
分布式系統(tǒng)需求
您通??梢詫⒋笮拖到y(tǒng)分解為多個(gè)不同組件,獨(dú)立實(shí)現(xiàn)每個(gè)組件的硬件和軟件。要提供更高計(jì)算能力和I/O容量,您可以在不同硬件上實(shí)現(xiàn)系統(tǒng)的各個(gè)組件。
例如,飛機(jī)的襟翼、縫翼、方向舵、引擎、副翼等都需要仿真和測試??梢匀鐖D1所示,將系統(tǒng)分解為多個(gè)硬件部件,從而使用模塊化方法。
圖1. 可以用多個(gè)PXI系統(tǒng)仿真飛機(jī)組件
系統(tǒng)級集成特性
使用NI VeriStand 2010,一個(gè)或多個(gè)操作者(主機(jī))計(jì)算機(jī)可以在最少用戶配置的情況下,與一個(gè)或多個(gè)實(shí)時(shí)執(zhí)行目標(biāo)進(jìn)行通信。NI VeriStand處理操作者計(jì)算機(jī)(主機(jī))與實(shí)時(shí)執(zhí)行目標(biāo)之間的通信。圖2給出了包含主機(jī)和目標(biāo)的簡單拓?fù)浣Y(jié)構(gòu)。
圖2. 簡單拓?fù)浣Y(jié)構(gòu)
主機(jī)用于和目標(biāo)通信的組件是NI VeriStand Gateway。雖然通信管理是自動完成的,它是理解大型拓?fù)浣Y(jié)構(gòu)所需的重要概念。
您可以方便地在NI VeriStand 2010系統(tǒng)瀏覽器中將目標(biāo)添加到拓?fù)浣Y(jié)構(gòu)中。
圖3. 在系統(tǒng)瀏覽器中添加目標(biāo)
單個(gè)系統(tǒng)定義文件可以包含無限多個(gè)目標(biāo),甚至可以混和不同目標(biāo)類型。
圖4. 單個(gè)系統(tǒng)定義文件可以包含多個(gè)目標(biāo)
每個(gè)目標(biāo)有自己的專用硬件和軟件配置,所有目標(biāo)可以通過單個(gè)網(wǎng)關(guān)實(shí)現(xiàn)部署和交互。
圖5. 可在單個(gè)主機(jī)上部署多個(gè)目標(biāo)并進(jìn)行交互
通過與另一個(gè)主機(jī)網(wǎng)關(guān)進(jìn)行通信,其他主機(jī)計(jì)算機(jī)可以與相同的拓?fù)浣Y(jié)構(gòu)進(jìn)行通信。
圖6. 多個(gè)主機(jī)與多個(gè)目標(biāo)拓?fù)浣Y(jié)構(gòu)
要完成這點(diǎn),其他主機(jī)只需要修改NI VeriStand網(wǎng)關(guān)地址為遠(yuǎn)程主機(jī)即可。其他應(yīng)用程序保持不變。
在分布式計(jì)算機(jī)之間共享數(shù)據(jù)
要讓分布式系統(tǒng)如同單個(gè)系統(tǒng)一樣工作,必須在系統(tǒng)組件之間共享數(shù)據(jù)。這是讓不同部分可以一起工作的關(guān)鍵要素。通常可以使用反射內(nèi)存接口實(shí)現(xiàn)。
反射內(nèi)存網(wǎng)絡(luò)是實(shí)時(shí)本地局域網(wǎng)(LAN),每個(gè)計(jì)算機(jī)總是擁有共享內(nèi)存集合的最新本地復(fù)本。這些專用網(wǎng)絡(luò)是為了提供高確定性的數(shù)據(jù)通信而專門設(shè)計(jì)的。可以提供多種分布式仿真和工業(yè)控制應(yīng)用所需的高級定時(shí)性能。反射內(nèi)存網(wǎng)絡(luò)獲益于通用數(shù)據(jù)網(wǎng)絡(luò),是不同需求推動下產(chǎn)生的完全獨(dú)立的技術(shù),適用于要求確定性、簡單實(shí)現(xiàn)和軟件負(fù)荷小的應(yīng)用程序1。
反射內(nèi)存為NI VeriStand提供了在多個(gè)目標(biāo)之間共享數(shù)據(jù)的能力,并且滿足了整個(gè)系統(tǒng)的性能與確定性需求。使用反射內(nèi)存,仿真模型可以分割在不同的目標(biāo)系統(tǒng)上同時(shí)執(zhí)行。輸入與輸出數(shù)值通過反射內(nèi)存在不同目標(biāo)系統(tǒng)上共享。GE Fanuc反射內(nèi)存板卡本地支持NI VeriStand 2010。NI VeriStand 2010的許多組件可以使用反射內(nèi)存無縫創(chuàng)建多目標(biāo)系統(tǒng)。
此外,NI VeriStand 2010將數(shù)據(jù)在目標(biāo)之間自動分步用于不同的用途。例如,您可以配置激勵(lì)(測試)檔案運(yùn)行在需要目標(biāo)B數(shù)據(jù)的目標(biāo)A上。NI VeriStand 2010在目標(biāo)之間自動創(chuàng)建并激活鏈路獲取數(shù)據(jù)。這可以在無需用戶配置的情況下自動完成。
圖7顯示了包含反射內(nèi)存板卡的實(shí)例系統(tǒng)。
圖7. 使用反射內(nèi)存的多個(gè)機(jī)箱
同步分布式系統(tǒng)
在設(shè)計(jì)系統(tǒng)時(shí),考慮時(shí)序與同步的需求是十分重要的。如果分布式硬件不進(jìn)行同步,輸入和輸出的采樣將不同時(shí)發(fā)生。另外,隨著時(shí)間的推移,漂移會導(dǎo)致系統(tǒng)的一個(gè)組件比另一個(gè)組件得到更多采樣,盡管它們被配置為同樣的速率。如果仿真是您的目標(biāo),這將導(dǎo)致問題。例如,兩個(gè)襟翼仿真可能處于不同的時(shí)間狀態(tài)。另外,因?yàn)閿?shù)據(jù)并非來自相同的時(shí)間點(diǎn),數(shù)據(jù)記錄和分析將被破壞。
同步基礎(chǔ)概要介紹了例如時(shí)鐘漂移和時(shí)鐘偏差的許多細(xì)節(jié)。
分布式系統(tǒng)的同步包括硬件同步和軟件同步。您可以選擇性地將整個(gè)系統(tǒng)與GPS或IRIG等外部時(shí)間參考進(jìn)行同步。
硬件同步
硬件同步意味著系統(tǒng)的每個(gè)硬件共享一個(gè)硬件參考時(shí)鐘,用于定時(shí)和開始I/O任務(wù)。系統(tǒng)中的每個(gè)硬件都利用相同的硬件參考時(shí)鐘生成其自己的時(shí)鐘,每個(gè)硬件都在相同的時(shí)間開始。
常見的硬件定時(shí)和同步任務(wù)實(shí)例包含多個(gè)數(shù)據(jù)采集板卡的同步采樣,在更新數(shù)據(jù)采集模擬輸出同時(shí),更新現(xiàn)場可編程門陣列(FPGA)板卡數(shù)字輸出PWM的占空比,在數(shù)字萬用表(DMM)與開關(guān)之間握手,波形發(fā)生器和數(shù)字化儀的鎖相,或者射頻(RF)下變頻器和中頻(IF)數(shù)字化儀的同步。
您可以用NI PXI機(jī)箱創(chuàng)建NI VeriStand分布式系統(tǒng)。PXI(PCI eXtensions for InstrumentaTIon,面向儀器系統(tǒng)的PCI擴(kuò)展)是基于PC的堅(jiān)固平臺,提供了用于測量與自動化系統(tǒng)的高性能低成本部署解決方案。PXI將外設(shè)組件互連標(biāo)準(zhǔn)(PCI)電子總線與堅(jiān)固的CompactPCI模塊化Eurocard機(jī)械封裝結(jié)合在一起,并增加了專用同步總線和關(guān)鍵軟件特性。
機(jī)箱包含高性能PXI背板,其中包含PCI總線和定時(shí)與觸發(fā)總線。PXI模塊化儀器增加了10 MHz專用系統(tǒng)參考時(shí)鐘、PXI觸發(fā)總線、星型觸發(fā)總線和槽對槽局部總線,滿足了高級定時(shí)、同步與邊帶通信的需求,并且不損失任何PCI的優(yōu)點(diǎn)。
在PXI機(jī)箱之間共享參考時(shí)鐘最簡單的方法是使用機(jī)箱背部的CLK10 BNC接頭。幾乎所有的現(xiàn)代PXI機(jī)箱都有BNC端子。每個(gè)機(jī)箱有CLK10輸出接頭和CLK10輸入接頭。將機(jī)箱的CLK10輸出與另一個(gè)機(jī)箱的CLK10輸入相連,就可以確保使用相同的參考時(shí)鐘。
要共享開始觸發(fā)器,推薦使用NI數(shù)據(jù)采集(DAQ)設(shè)備。一個(gè)機(jī)箱可以將觸發(fā)信號導(dǎo)出供一個(gè)或多個(gè)其他機(jī)箱作為開始信號使用。
圖8 是硬件同步配置的例子。在這個(gè)配置中,NI PXI-1042主機(jī)箱利用BNC電纜將CLK10作為時(shí)鐘參考導(dǎo)出到N個(gè)其他PXI機(jī)箱。所有機(jī)箱均導(dǎo)入外部開始信號。您可以閱讀高級定時(shí)與同步系統(tǒng)設(shè)計(jì)了解多機(jī)箱同步的更多信息。
圖8. 多機(jī)箱的硬件同步
NI VeriStand在一個(gè)機(jī)箱內(nèi)自動處理所有硬件同步,還可以導(dǎo)出或?qū)氩蓸訒r(shí)鐘和觸發(fā)信號到其他目標(biāo)上。
在NI VeriStand系統(tǒng)瀏覽器中將數(shù)據(jù)采集設(shè)備添加到系統(tǒng)配置后,您可以在圖9中看到一個(gè)數(shù)據(jù)采集設(shè)備的名稱用粗體顯示。NI VeriStand自動選擇了這個(gè)設(shè)備作為機(jī)箱的主數(shù)據(jù)采集設(shè)備。主數(shù)據(jù)采集設(shè)備接受外部觸發(fā)信號完成多目標(biāo)同步。NI VeriStand在單個(gè)機(jī)箱中將從數(shù)據(jù)采集設(shè)備與主數(shù)據(jù)采集設(shè)備進(jìn)行同步,從設(shè)備不包含在多機(jī)箱同步中。
圖9. 粗體顯示的設(shè)備被選中作為主數(shù)據(jù)采集設(shè)備
在機(jī)箱頁面中,您可以定制主數(shù)據(jù)采集設(shè)備選擇并進(jìn)行觸發(fā)。在樹形結(jié)構(gòu)中選擇機(jī)箱。您可以看到如圖10所示的頁面,圖中標(biāo)出了對多機(jī)箱硬件同步而言重要的環(huán)節(jié)。
圖10. 在PFI 6機(jī)箱中導(dǎo)入觸發(fā)器
在圖10中,機(jī)箱配置為在PFI 6的Dev1中導(dǎo)入觸發(fā)器。查閱Dev1設(shè)備的硬件手冊尋找PFI 6端子。
在創(chuàng)建這些配置并完成BNC與觸發(fā)器排線之后,可以將它們部署到運(yùn)行VeriStand的實(shí)時(shí)執(zhí)行目標(biāo)上來實(shí)現(xiàn)硬件同步。
如果您所使用的機(jī)箱沒有CLK10 BNC接頭,或是您需要更好的同步性能,您可以使用定時(shí)與同步板卡(NI-665x)實(shí)現(xiàn)相同功能。如果您決定使用NI-665x板卡實(shí)現(xiàn)這個(gè)功能,需要確定每個(gè)系統(tǒng)配置都添加了“10MHz PLL”定時(shí)與同步設(shè)備,而且配置為導(dǎo)入或?qū)С?0 MHz時(shí)鐘。
軟件同步
軟件同步意味著系統(tǒng)中(在這個(gè)例子中是NI VeriStand實(shí)時(shí)引擎),不同代碼塊共享相同的執(zhí)行時(shí)鐘和一個(gè)開始信號實(shí)現(xiàn)在相同時(shí)間開始執(zhí)行。
在適當(dāng)?shù)挠布O(shè)備可用時(shí),NI VeriStand實(shí)時(shí)引擎被設(shè)計(jì)為使用硬件定時(shí)單點(diǎn)I/O(HWTSPIO)。HWTSPIO是一種數(shù)據(jù)采集軟硬件特性,允許將軟件執(zhí)行鎖定到物理硬件時(shí)鐘上。將軟件鎖定到硬件只適用于模擬輸入,因此即使不使用模擬輸入通道,PXI系統(tǒng)配置中至少要包含一個(gè)模擬輸入通道。
所以如果硬件采用如上同步方式,模擬輸入通道會出現(xiàn)在每個(gè)配置中,每個(gè)目標(biāo)的NI VeriStand實(shí)時(shí)引擎軟件被自動同步。
參考時(shí)鐘同步
在一些情況下,不僅要求系統(tǒng)組件相互同步,還要求同步到外部時(shí)鐘參考。因?yàn)樯鲜鐾较到y(tǒng)組件的方法包含主目標(biāo)與分布式系統(tǒng)其他部分共享時(shí)鐘和觸發(fā)信號,參考時(shí)鐘同步可以通過簡單地將主目標(biāo)連接到外部時(shí)鐘參考實(shí)現(xiàn)。
NI VeriStand的Clock 10 Discipline附加組件讓NI VeriStand引擎可以根據(jù)外部參考時(shí)鐘進(jìn)行同步。外部參考時(shí)鐘可以是NI PXI-6682模塊支持的參考之一。附加組件結(jié)合PXI-6682和其他定時(shí)與同步板卡,對PXI機(jī)箱按照外部參考時(shí)鐘約束。您可以在這個(gè)頁面了解關(guān)于這個(gè)附加組件的更多細(xì)節(jié)。
圖11給出了相互同步并與外部時(shí)鐘參考進(jìn)行同步的分布式系統(tǒng)實(shí)例。
圖11. 多機(jī)箱與外部時(shí)鐘參考的硬件同步
結(jié)論
使用NI VeriStand,您可以配置實(shí)時(shí)I/O、激勵(lì)檔案、數(shù)據(jù)記錄、警報(bào)和其他任務(wù),通過從多個(gè)軟件環(huán)境中導(dǎo)入模型實(shí)現(xiàn)控制算法或系統(tǒng)仿真,使用運(yùn)行時(shí)間可編輯的用戶界面快速構(gòu)建可以和商用工具媲美的測試系統(tǒng)界面,使用NI LabVIEW、NI TestStand、ANSI C/C++、.NET、Python和其他軟件環(huán)境添加定制功能。
通過利用NI VeriStand 2010,您可以方便地創(chuàng)建分布式HIL、實(shí)時(shí)測試或是采用高效多目標(biāo)特性監(jiān)視系統(tǒng)。
評論
查看更多