日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大型的labview程序实例_【学院推荐】LabVIEW的核心要素——数据流

發(fā)布時間:2024/9/30 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大型的labview程序实例_【学院推荐】LabVIEW的核心要素——数据流 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

每天1小時,龍哥教你學(xué)LabVIEW視覺,參與送福利:

1、低至兩折!全套課程眾籌價:588元(原價2980元)

2、《LabVIEW視覺算子手冊》配套電子書

3、價值58元《LabVIEW機(jī)器視覺實用教程基礎(chǔ)篇》

知識

學(xué)習(xí)過LabVIEW的朋友都知道:LabVIEW是一個圖形化軟件開發(fā)環(huán)境,它所使用的編程語言是G語言,也稱為圖形化編程語言。由于LabVIEW是G語言中開發(fā)的比較早、且開發(fā)的最成功的,所以人們還是習(xí)慣上用LabVIEW來指代G語言。當(dāng)然,還有其它的G語言,比如像Agilent 的VEE等。

傳統(tǒng)文本編程語言根據(jù)指令的先后順序決定應(yīng)用程序執(zhí)行順序,也稱為:“控制流”;而LabVIEW則按照“數(shù)據(jù)流”的模式運(yùn)行VI。所謂數(shù)據(jù)流也就是說:當(dāng)所有的輸入端都具備了必要的輸入數(shù)據(jù)時,程序框圖節(jié)點將運(yùn)行。節(jié)點在運(yùn)行時產(chǎn)生輸出數(shù)據(jù)并將該數(shù)據(jù)傳送給數(shù)據(jù)流路徑中的下一個節(jié)點。數(shù)據(jù)流經(jīng)節(jié)點的動作決定了程序框圖上VI和函數(shù)的執(zhí)行順序。

使用LabVIEW進(jìn)行編程則必須按數(shù)據(jù)流的方式進(jìn)行程序設(shè)計。所以,養(yǎng)成良好的數(shù)據(jù)流編程習(xí)慣是非常必要的。那么根據(jù)數(shù)據(jù)流的特點,編程時要注意哪些問題呢?

01

根據(jù)自然的數(shù)據(jù)的依賴關(guān)系,從左向右進(jìn)行程序設(shè)計

圖1數(shù)據(jù)依賴關(guān)系

圖1 可以清晰的表明數(shù)據(jù)流是依據(jù)數(shù)據(jù)依賴關(guān)系從左向右流動的。“差”只有在“和”完成后才能得到;以此類推,“積”必須在“差”完成后獲得;而“商”也必須在得到“積”后獲得。所以,這里是利用數(shù)據(jù)依賴關(guān)系實現(xiàn)數(shù)據(jù)流的。圖1中的下圖比較好的呈現(xiàn)出數(shù)據(jù)流的關(guān)系,所以我們稱之為“好的習(xí)慣”,建議大家習(xí)慣用這種方式來進(jìn)行程序設(shè)計。

圖2 是一個數(shù)據(jù)采集任務(wù)設(shè)計的實例(良好的數(shù)據(jù)流概念)

圖2 數(shù)據(jù)采集任務(wù)設(shè)計

我們上面談到利用數(shù)據(jù)依賴關(guān)系很容易滿足數(shù)據(jù)流的要求(自然的數(shù)據(jù)依賴關(guān)系)那么,當(dāng)數(shù)據(jù)依賴關(guān)系不存在或不明顯時,怎么辦?

02

利用強(qiáng)制數(shù)據(jù)依賴關(guān)系之一:順序結(jié)構(gòu)

如果我們想要知道一個vi的運(yùn)行時間可以通過下面的實例程序進(jìn)行測試,程序如圖3所示。這 里我們利用強(qiáng)制數(shù)據(jù)依賴關(guān)系“順序結(jié)構(gòu)”來滿足數(shù)據(jù)流的要求。這里待測vi我們用一個“等 待”函數(shù)來代替。

圖3強(qiáng)制人工數(shù)據(jù)依賴關(guān)系“順序結(jié)構(gòu)”

順序結(jié)構(gòu)確保:第一幀:開始計時,第二幀:運(yùn)行“等待”函數(shù)或待測vi,第三幀:停止計時并顯示結(jié)果。

這里要注意兩點:

第一:Windows操作系統(tǒng)的定時精度為:1mS。所以,測量結(jié)果會出現(xiàn)100±1mS。

第二:如果vi的運(yùn)行時間很短小于1mS,可在第二幀內(nèi)的vi外面加個N次的for循環(huán)增加運(yùn)行時間。然后,在結(jié)果中再除個N。

現(xiàn)在,我們用“等待下一個整數(shù)倍毫秒”(定時選板)函數(shù)來替代“等待”函數(shù),運(yùn)行后會發(fā)生什么情況?這應(yīng)該對理解這兩個函數(shù)的不同會有所幫助。

03

利用人工數(shù)據(jù)依賴關(guān)系之二:引用句柄

對于引用句柄LabVIEW的幫助文檔是這樣介紹的:引用句柄可作為對象(例如,文件、設(shè)備或網(wǎng)絡(luò)連接)的唯一標(biāo)識。可使用不同類型的引用句柄控件將引用句柄輸入或輸出VI。

由于引用句柄是一個打開對象的臨時指針,因此它僅在對象打開期間有效。如關(guān)閉對象,LabVIEW會將引用句柄與對象分開,引用句柄隨即失效。如再次打開對象,LabVIEW將創(chuàng)建一個與第一個引用句柄不同的新引用句柄。LabVIEW將為引用句柄指向的對象分配內(nèi)存空間。關(guān)閉引用句柄,該對象就會從內(nèi)存中釋放。

由于LabVIEW可以記住每個引用句柄所指的信息,如讀取或?qū)懭氲膶ο蟮漠?dāng)前地址和用戶訪問情況,因此可以對單一對象執(zhí)行并行但相互獨(dú)立的操作。如一個VI多次打開同一個對象,那么每次的打開操作都將返回一個不同的引用句柄。VI結(jié)束運(yùn)行時LabVIEW會自動關(guān)閉引用句柄,如果用戶在結(jié)束使用引用句柄時就立即將其關(guān)閉,可最有效地利用內(nèi)存空間和其它資源,這是一個良好的編程習(xí)慣。關(guān)閉引用句柄的順序與打開時相反。例如,如果獲得了對象A的一個引用句柄,然后對對象A調(diào)用方法使獲得對象B的引用句柄,請先關(guān)閉對象B的引用句柄然后再關(guān)閉對象A的引用句柄。

圖4引用句柄的幾個示例

關(guān)于引用句柄我們要注意的是:“引用句柄”是有“生命周期“的。從我們打開引用句柄開始,它就進(jìn)入新的“生命周期”,直道關(guān)閉“引用句柄”后它的“生命周期”結(jié)束。如果一個引用句柄的生命周期無限長,那么就意味著發(fā)生了“內(nèi)存泄露”。所以使用時必須注意“打開”與“關(guān)閉”必須是成雙成對出現(xiàn)的。

對于本地變量和全局變量來講,因無法保證數(shù)據(jù)按數(shù)據(jù)流的方式工作,所以要盡量避免大量使用。由于順序結(jié)構(gòu)是強(qiáng)制數(shù)據(jù)流也盡量甚用。

上面我們分別介紹了實現(xiàn)或確保數(shù)據(jù)流編程的幾個方法,供大家參考,希望對大家能有一定的幫助。

掃碼進(jìn)入LabVIEW專屬技術(shù)交流群

獲取更多學(xué)習(xí)資料

相關(guān)課程推薦:

《龍哥手把手教你學(xué)LabVIEW視覺設(shè)計》

https://mp.weixin.qq.com/s/IVvrzHu9rwoEfBA7IKXbAg

https://mp.weixin.qq.com/s/WANlR2ph-6hNJ-TICXOptw

總結(jié)

以上是生活随笔為你收集整理的大型的labview程序实例_【学院推荐】LabVIEW的核心要素——数据流的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。