最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

LabVIEW CompactRIO 開發(fā)指南2 CompactRIO軟件架構(gòu)

2023-04-27 20:20 作者:bjcyck  | 我要投稿

第一章

CompactRIO軟件架構(gòu)

幾乎所有的CompactRIO系統(tǒng)都至少有三個(gè)頂層VIs在三個(gè)不同的目標(biāo)上異步執(zhí)行:FPGA、實(shí)時(shí)操作系統(tǒng)(RTOS)和主機(jī)PC。如果開始軟件開發(fā)時(shí)沒有某種架構(gòu)或流程圖可供參考,那么可能會(huì)發(fā)現(xiàn)跟蹤所有軟件組件和通信路徑是具有挑戰(zhàn)性的。擁有一個(gè)在高層次上描述所有系統(tǒng)部分的圖有助于指導(dǎo)開發(fā)和與相關(guān)人員溝通設(shè)計(jì)。本節(jié)描述了幾種常見的CompactRIO體系結(jié)構(gòu),可以將它們用作許多應(yīng)用程序的起點(diǎn)。還可以使用它們作為創(chuàng)建自己的體系結(jié)構(gòu)的指南。以下章節(jié)中的示例體系結(jié)構(gòu)是使用一個(gè)名為yEd?Graph?Editor的基于矢量的繪圖程序創(chuàng)建的,這是一個(gè)可以從yworks.com下載的免費(fèi)設(shè)計(jì)工具。

CompactRIO參考架構(gòu)

CompactRIO系統(tǒng)架構(gòu)應(yīng)該提供系統(tǒng)的基本概述?;緝?nèi)容包括過程和數(shù)據(jù)通信路徑。如前所述,進(jìn)程是一個(gè)獨(dú)立的、異步執(zhí)行的代碼段——基本上是一個(gè)循環(huán)。本文中引用的體系結(jié)構(gòu)包括由黃色框表示的進(jìn)程,由藍(lán)色框表示的進(jìn)程執(zhí)行的硬件目標(biāo),以及由黑色箭頭表示的數(shù)據(jù)通信路徑。當(dāng)使用掃描模式或混合模式對(duì)CompactRIO設(shè)備進(jìn)行編程時(shí),使用可選的RIO掃描接口進(jìn)程。RIO描接口包含在LabVIEW實(shí)時(shí)引擎中,因此可以在LabVIEW實(shí)時(shí)開發(fā)環(huán)境中訪問I/O通道作為變量。

圖1.1?CompactRIO架構(gòu)的基本組件

流程

確定應(yīng)用程序流程的第一步是創(chuàng)建應(yīng)用程序需要完成的任務(wù)列表。常見的任務(wù)包括PID控制、數(shù)據(jù)記錄、與人機(jī)界面的通信、與I/O的通信以及安全邏輯或故障處理。下一步是決定如何將任務(wù)劃分為流程。具有大量進(jìn)程的應(yīng)用程序需要在進(jìn)程間數(shù)據(jù)通信上花費(fèi)更多時(shí)間。同時(shí),將任務(wù)分解為單獨(dú)的進(jìn)程會(huì)使程序更具可伸縮性。例如,在項(xiàng)目的第一階段,可能有一個(gè)實(shí)時(shí)應(yīng)用程序,該應(yīng)用程序通過網(wǎng)絡(luò)與用LabVIEW構(gòu)建的用戶界面(UI)通信,但稍后該應(yīng)用程序需要與Web瀏覽器通信。如果將網(wǎng)絡(luò)通信任務(wù)與應(yīng)用程序中的其他任務(wù)分開,則可以重新設(shè)計(jì)網(wǎng)絡(luò)通信過程,而不會(huì)影響控制過程。更多關(guān)于在LabVIEW實(shí)時(shí)中設(shè)計(jì)過程的信息可以在第3章:設(shè)計(jì)一個(gè)LabVIEW實(shí)時(shí)應(yīng)用程序中找到。

數(shù)據(jù)通信

一旦繪制了流程圖,下一步就是確定數(shù)據(jù)通信路徑。數(shù)據(jù)通信是設(shè)計(jì)嵌入式系統(tǒng)時(shí)需要考慮的重要因素之一。LabVIEW、LabVIEW?Real-Time和LabVIEW?FPGA包括許多不同的機(jī)制,用于在單個(gè)目標(biāo)上的進(jìn)程之間傳輸數(shù)據(jù),以及跨目標(biāo)通信的進(jìn)程。

圖1.2?數(shù)據(jù)通信是設(shè)計(jì)嵌入式系統(tǒng)時(shí)最重要的因素之一。

選擇數(shù)據(jù)通信機(jī)制取決于幾個(gè)因素,其中最主要的因素是數(shù)據(jù)通信模型。大多數(shù)CompactRIO應(yīng)用程序可以包含以下列出的至少兩種或更多的數(shù)據(jù)通信模型:

■消息/命令

■當(dāng)前值(標(biāo)簽)

■流

每個(gè)模型都有不同的數(shù)據(jù)傳輸需求。這些模型既適用于進(jìn)程間通信,也適用于目標(biāo)間通信。后面的章節(jié)在推薦LabVIEW機(jī)制用于Windows目標(biāo)、實(shí)時(shí)目標(biāo)或FPGA目標(biāo)上的進(jìn)程之間的數(shù)據(jù)傳輸時(shí),除了CompactRIO設(shè)備和主機(jī)PC之間的通信外,還會(huì)參考這些數(shù)據(jù)通信類型。

消息/命令

基于命令或消息的通信發(fā)生的頻率相對(duì)較低,并且由某些特定事件觸發(fā)。一個(gè)例子是用戶在人機(jī)界面上按下一個(gè)按鈕來停止傳送帶。在基于消息的通信中,確保及時(shí)或低延遲地傳遞消息是很重要的。在前面的例子中,當(dāng)操作員按下停止按鈕時(shí),操作員期望立即得到響應(yīng)(人類對(duì)“立即”的感知是在十分之一秒的數(shù)量級(jí)上)。通常需要將進(jìn)程與傳入消息或命令同步,以節(jié)省處理器資源。這涉及到阻塞,直到接收到消息或發(fā)生超時(shí)。

當(dāng)前值(標(biāo)簽)

標(biāo)簽用于在進(jìn)程之間或從控制器到HMI之間定期通信的當(dāng)前值。標(biāo)簽通常用于表示過程變量,例如控制系統(tǒng)的設(shè)定值或當(dāng)前溫度數(shù)據(jù)。標(biāo)簽通常被綁定到高通道數(shù)系統(tǒng)(如機(jī)器控制器)中的I/O通道。對(duì)于當(dāng)前值數(shù)據(jù)或標(biāo)簽,不需要保證每次數(shù)據(jù)傳輸,因?yàn)榭刂破骰騂MI總是對(duì)最新值感興趣,而不是歷史值。由于標(biāo)記通常與高通道數(shù)相關(guān)聯(lián),因此通常希望具有可用于動(dòng)態(tài)查找標(biāo)記和管理不同組的特性。

流通信是緩存的,涉及每個(gè)數(shù)據(jù)點(diǎn)的高吞吐量傳輸,吞吐量比延遲更重要。通常,一個(gè)進(jìn)程將數(shù)據(jù)寫入另一個(gè)進(jìn)程,后者讀取、顯示或處理該數(shù)據(jù)。一個(gè)例子是車載數(shù)據(jù)記錄器,它將數(shù)據(jù)從FPGA發(fā)送到RTOS進(jìn)行數(shù)據(jù)記錄。流通常需要多層緩存,在此期間,每端(發(fā)送方和接收方)都有自己唯一大小的緩存區(qū)。當(dāng)有一個(gè)想要一次讀取大塊數(shù)據(jù)的處理器循環(huán)和一個(gè)想要以較短的間隔寫入較小數(shù)據(jù)塊的DAQ循環(huán)時(shí),這是理想的。表1.1總結(jié)了不同類型的數(shù)據(jù)通信模型及其特點(diǎn)。在選擇數(shù)據(jù)通信模型時(shí),請(qǐng)記住這些特性。

表1.1。數(shù)據(jù)通信模型綜述

典型的CompactRIO架構(gòu)

圖1.3顯示了一個(gè)通用的體系結(jié)構(gòu),可以將其用作大多數(shù)控制和監(jiān)視應(yīng)用程序的起點(diǎn)。主機(jī)VI提供了一個(gè)基于事件的用戶界面,因此操作員可以與嵌入式系統(tǒng)進(jìn)行交互。RTOS執(zhí)行高級(jí)控制,F(xiàn)PGA執(zhí)行低級(jí)控制。

有兩條網(wǎng)絡(luò)通信路徑:一條用于從用戶界面向CompactRIO硬件發(fā)送命令,另一條用于從CompactRIO硬件向用戶界面發(fā)送標(biāo)簽(當(dāng)前值數(shù)據(jù))以進(jìn)行顯示。要構(gòu)建靈活的應(yīng)用程序,可以采用這種系統(tǒng)結(jié)構(gòu),使其具有單個(gè)命令解析器任務(wù),開發(fā)人員可以使用該任務(wù)根據(jù)需要解釋和重新分發(fā)命令。這確保了正在進(jìn)行的關(guān)鍵任務(wù)不會(huì)因命令的到來而受到干擾,并使修改代碼以處理其他命令變得容易。

圖1.3?通用軟件體系結(jié)構(gòu)RTOS_Main上的控制和監(jiān)控應(yīng)用。

在RTOS_Main.vi中,將通信任務(wù)和控制任務(wù)設(shè)計(jì)為兩個(gè)獨(dú)立的循環(huán)。這通常是一種很好的做法,因?yàn)槿绻蝿?wù)在單個(gè)循環(huán)中執(zhí)行,網(wǎng)絡(luò)通信可能會(huì)影響控制算法的確定性。此外,模塊化使模擬系統(tǒng)的各個(gè)部分變得更加容易。例如,可以很容易地將實(shí)際控制回路替換為模擬控制回路,以測(cè)試網(wǎng)絡(luò)通信。

通用變體架構(gòu)

控制和監(jiān)視體系結(jié)構(gòu)對(duì)于大多數(shù)應(yīng)用程序來說都是一個(gè)很好的起點(diǎn),但是如果想要設(shè)計(jì)嵌入式數(shù)據(jù)記錄器、嵌入式監(jiān)視系統(tǒng)或監(jiān)控和數(shù)據(jù)采集(SCADA)系統(tǒng),則可以在下面的部分中利用專用的應(yīng)用程序的體系結(jié)構(gòu)。

無(wú)頭數(shù)據(jù)記錄儀

無(wú)頭CompactRIO系統(tǒng)不需要在遠(yuǎn)程機(jī)器上運(yùn)行用戶界面。在無(wú)頭數(shù)據(jù)記錄器的情況下,遠(yuǎn)程計(jì)算機(jī)可能用于檢索包含來自FTP服務(wù)器的記錄數(shù)據(jù)的文件。在該體系結(jié)構(gòu)中,F(xiàn)PGA執(zhí)行底層控制,同時(shí)高速獲取NI?C系列I/O模塊的數(shù)據(jù)。這些數(shù)據(jù)從FPGA流到RTOS,在那里它可以被記錄到板載內(nèi)存。FPGA通信進(jìn)程與日志引擎進(jìn)程分開,以最大限度地提高讀取數(shù)據(jù)的速率

圖1.4?無(wú)頭數(shù)據(jù)記錄器架構(gòu)

嵌入式監(jiān)控

嵌入式監(jiān)控應(yīng)用,通常需要數(shù)據(jù)以高速率從C系列I/O模塊以流式傳輸?shù)街鳈C(jī)用戶界面,在那里數(shù)據(jù)顯示給操作員。用戶界面還允許操作員配置硬件,這需要一種將命令從主機(jī)發(fā)送到RTOS的機(jī)制

圖1.5??嵌入式監(jiān)控架構(gòu)

監(jiān)控和數(shù)據(jù)采集(SCADA)架構(gòu)

在典型的SCADA應(yīng)用程序中,CompactRIO設(shè)備將I/O通道作為標(biāo)簽與監(jiān)控器通信。一些控制可以在FPGA或RTOS上實(shí)現(xiàn)。通??梢允褂肦IO?Scan?Interface來處理這些類型的應(yīng)用程序的I/O,因?yàn)樗鼈儾恍枰咚俚腄AQ速率或定制的硬件。使用LabVIEW數(shù)據(jù)記錄和監(jiān)控(DSC)模塊,可以擴(kuò)展SCADA系統(tǒng)的軟件功能,包括將數(shù)據(jù)記錄到歷史數(shù)據(jù)庫(kù),設(shè)置警報(bào)和管理事件的能力。LabVIEW?DSC還支持常用的工業(yè)協(xié)議,包括用于過程控制的OLE?(OPC),因此LabVIEW可以與第三方可編程邏輯控制器(PLC)通信。

圖1.6?SCADA架構(gòu)

示例-渦輪測(cè)試系統(tǒng):本節(jié)提供LabVIEW示例代碼。

渦輪機(jī)測(cè)試系統(tǒng)的一個(gè)示例演示了圖1.3中的控制和監(jiān)控架構(gòu)如何應(yīng)用于實(shí)際應(yīng)用。渦輪機(jī)是一種旋轉(zhuǎn)發(fā)動(dòng)機(jī),通過使帶葉片的轉(zhuǎn)子旋轉(zhuǎn),將風(fēng)、水或蒸汽動(dòng)力的動(dòng)能轉(zhuǎn)化為機(jī)械能。葉片轉(zhuǎn)動(dòng)連接到發(fā)電機(jī)的軸,如圖1.7所示。發(fā)電機(jī)轉(zhuǎn)動(dòng)時(shí)發(fā)電。

圖1.7?一種常見的渦輪機(jī)是風(fēng)力渦輪機(jī)。

本例中使用的渦輪測(cè)試系統(tǒng)軟件要求如下:

■使用模擬PWM信號(hào)控制渦輪轉(zhuǎn)速

■使用轉(zhuǎn)速表監(jiān)測(cè)渦輪機(jī)的每分鐘轉(zhuǎn)數(shù)(rpm)

■觸發(fā)可用于分析的有限采集

■計(jì)算并顯示加速度計(jì)數(shù)據(jù)的頻率

■在測(cè)試過程中監(jiān)測(cè)溫度,防止渦輪機(jī)過熱

■顯示溫度,轉(zhuǎn)速表速度(rpm),加速度計(jì)數(shù)據(jù),加速度計(jì)數(shù)據(jù)的頻率到UI

為了創(chuàng)建渦輪測(cè)試系統(tǒng)的體系結(jié)構(gòu),從圖1.8所示的控制和監(jiān)控體系結(jié)構(gòu)開始

圖1.8??用于控制和監(jiān)視應(yīng)用的通用軟件體系結(jié)構(gòu)

該應(yīng)用程序以混合模式實(shí)現(xiàn),同時(shí)使用RIO掃描接口和LabVIEW?FPGA模塊。

■渦輪轉(zhuǎn)速控制-該回路產(chǎn)生PWM信號(hào),根據(jù)從LabVIEW?Real-Time?VI通信的占空比(%)和周期(mS)控制渦輪轉(zhuǎn)速。

■加速度計(jì)和轉(zhuǎn)速計(jì)采集-該回路接收啟動(dòng)觸發(fā)器并從轉(zhuǎn)速計(jì)和加速度計(jì)獲取數(shù)據(jù),直到達(dá)到指定的樣本數(shù)量。它還使用DMA先進(jìn)先出(FIFO)內(nèi)存緩沖區(qū)將傳感器數(shù)據(jù)流式傳輸?shù)絃abVIEW實(shí)時(shí)VI。RIO掃描接口用于溫度監(jiān)測(cè),頻率為10hz

LabVIEWReal-Time?VI有四個(gè)并行運(yùn)行的任務(wù)。數(shù)據(jù)采集和分析任務(wù)使用定時(shí)循環(huán),其他三個(gè)任務(wù)使用While循環(huán)。在LabVIEW?Real-Time中,定時(shí)循環(huán)用于實(shí)現(xiàn)高優(yōu)先級(jí)任務(wù),While循環(huán)用于實(shí)現(xiàn)正常優(yōu)先級(jí)任務(wù)。有關(guān)何時(shí)使用定時(shí)循環(huán)與While循環(huán)的更多信息,請(qǐng)參見第3章:設(shè)計(jì)LabVIEW實(shí)時(shí)應(yīng)用程序。

■數(shù)據(jù)采集和分析(高優(yōu)先級(jí))-該回路與LabVIEW?FPGA?VI中的加速度計(jì)和轉(zhuǎn)速計(jì)采集回路通信。它發(fā)送一個(gè)觸發(fā)器開始有限采集,從DMA?FIFO檢索加速度計(jì)數(shù)據(jù),并將收集和分析的數(shù)據(jù)發(fā)送到用戶界面進(jìn)行顯示。它還檢索轉(zhuǎn)速表數(shù)據(jù),并將其轉(zhuǎn)換為每分鐘轉(zhuǎn)數(shù)。

■渦輪PWM特性-該回路監(jiān)測(cè)溫度,如果溫度高于最大限制,則關(guān)閉渦輪機(jī)。

■Message?Handler——此循環(huán)接收UI命令并將其分發(fā)到適當(dāng)?shù)膶?shí)時(shí)或FPGA進(jìn)程。

■命令解析器——此循環(huán)使用網(wǎng)絡(luò)流通過以太網(wǎng)接收來自用戶界面的命令。命令被放置到隊(duì)列中,并發(fā)送到Message?Handler循環(huán)進(jìn)行分發(fā)。用戶界面VI在Windows機(jī)器上運(yùn)行,允許用戶查看數(shù)據(jù)并與CompactRIO系統(tǒng)進(jìn)行交互。

■UI事件處理——這個(gè)進(jìn)程用事件結(jié)構(gòu)處理用戶事件,比如“停止”和“觸發(fā)獲取”。

■命令發(fā)送——這個(gè)進(jìn)程使用網(wǎng)絡(luò)流將從UI事件處理程序接收到的任何命令發(fā)送到CompactRIO控制器。

■UI更新-此過程接收最新的溫度值,加速度計(jì)值,加速度計(jì)值頻率,和轉(zhuǎn)速表速度,并顯示到用戶界面。

圖1.9?渦輪測(cè)試應(yīng)用程序的CompactRIO架構(gòu)

要查看實(shí)際的渦輪機(jī)測(cè)試應(yīng)用程序,請(qǐng)從第1節(jié)下載渦輪機(jī)測(cè)試示例。第三章:LabVIEW實(shí)時(shí)應(yīng)用程序的設(shè)計(jì)詳細(xì)介紹了應(yīng)用程序中的實(shí)時(shí)VI。

除了渦輪機(jī)測(cè)試示例之外,LabVIEW?2012及以后版本還包括幾個(gè)類似于本文中討論的架構(gòu),可以將其用作應(yīng)用程序的起點(diǎn)。這些架構(gòu)被稱為CompactRIO樣例項(xiàng)目,它們列在下面。

■?LabVIEW?FPGA?Control?Sample?Project

■?LabVIEW?Real-Time?Control?Sample?Project

■?LabVIEW?FPGA?Waveform?Acquisition?andData?Logging?Sample?Project

■?LabVIEW?Real-Time?Sequencer?SampleProject?(LabVIEW?2013?and?later)

■?LabVIEW?Supervisory?Control?and?DataAcquisition?Sample?Project?(LabVIEW?2013?and?later)。

有關(guān)使用這些示例項(xiàng)目的更多信息,請(qǐng)參見第13章:使用LabVIEW?For?CompactRIO示例項(xiàng)目



LabVIEW CompactRIO 開發(fā)指南2 CompactRIO軟件架構(gòu)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
平定县| 金昌市| 施甸县| 巴中市| 洪泽县| 平阳县| 瑞丽市| 泗阳县| 嘉祥县| 壤塘县| 张家界市| 邓州市| 阿鲁科尔沁旗| 聂荣县| 武功县| 嘉兴市| 新干县| 汝阳县| 中卫市| 利辛县| 广平县| 西林县| 宣汉县| 兴化市| 宿松县| 青川县| 蛟河市| 合阳县| 砚山县| 蒲城县| 犍为县| 淮滨县| 沙坪坝区| 太康县| 双鸭山市| 巫溪县| 泰兴市| 申扎县| 扶绥县| 芒康县| 理塘县|