<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 您或許未曾了解的LabVIEW 8.5的五大特性

          您或許未曾了解的LabVIEW 8.5的五大特性

          作者: 時(shí)間:2012-06-13 來(lái)源:網(wǎng)絡(luò) 收藏

          類(lèi)數(shù)據(jù)訪(fǎng)問(wèn)函數(shù)的自動(dòng)創(chuàng)建

          本文引用地址:http://www.ex-cimer.com/article/193745.htm

          利用面向?qū)ο蟮膭?dòng)態(tài)分配子VI與迭代處理

          混合復(fù)選框

          MathScript調(diào)試功能

          指針與互操作性的改進(jìn)

          基于客戶(hù)與用戶(hù)的需求,NI 軟件引入了多項(xiàng)新的特性與改進(jìn)。許多時(shí)常提及的特性被添加到了項(xiàng)目瀏覽器,這些工具幫助您管理大量的VI并防止交叉連接等常見(jiàn)問(wèn)題。NI還在版本中添加了一些您或許尚未意識(shí)到的其他特性,其中包括對(duì)于面向?qū)ο缶幊痰母倪M(jìn)和對(duì)于DLL的互操作性。

          類(lèi)數(shù)據(jù)訪(fǎng)問(wèn)函數(shù)的自動(dòng)創(chuàng)建

          類(lèi)中的數(shù)據(jù)是私有的,這意味著該數(shù)據(jù)除非通過(guò)接口發(fā)布,否則任何外部函數(shù)都不能對(duì)其進(jìn)行操作。由于防止了對(duì)一個(gè)實(shí)例化對(duì)象中數(shù)據(jù)的直接操作,并要求您為之創(chuàng)建一個(gè)訪(fǎng)問(wèn)函數(shù),這促成了良好的編程習(xí)慣?,F(xiàn)今在LabVIEW 中自動(dòng)實(shí)現(xiàn)了創(chuàng)建這些訪(fǎng)問(wèn)函數(shù)的過(guò)程,節(jié)省了您在處理大規(guī)模、復(fù)雜類(lèi)時(shí)所需的開(kāi)發(fā)時(shí)間。

          11.jpg

          圖1.“創(chuàng)建訪(fǎng)問(wèn)函數(shù)”對(duì)話(huà)框自動(dòng)實(shí)現(xiàn)了創(chuàng)建數(shù)據(jù)訪(fǎng)問(wèn)函數(shù)的過(guò)程。

          如欲自動(dòng)創(chuàng)建成員數(shù)據(jù)訪(fǎng)問(wèn)函數(shù),右擊LabVIEW項(xiàng)目資源管理器中的類(lèi)并選中“創(chuàng)建新的訪(fǎng)問(wèn)函數(shù)”,接著是“成員數(shù)據(jù)訪(fǎng)問(wèn)VI…”該類(lèi)的所有數(shù)據(jù)成員將展示在窗口中,您可以選擇需要為之創(chuàng)建訪(fǎng)問(wèn)函數(shù)的數(shù)據(jù)成員(詳見(jiàn)圖1)。您也可以設(shè)置訪(fǎng)問(wèn)模式為讀、寫(xiě)或讀寫(xiě)。對(duì)于復(fù)雜的數(shù)據(jù)類(lèi)型,如數(shù)組,您可以選擇指向整個(gè)數(shù)組或是該數(shù)組中的一個(gè)特定元素。如果指向一個(gè)特定元素,您的VI將需要一個(gè)指定該元素的索引的參數(shù)。

          利用面向?qū)ο蟮膭?dòng)態(tài)分配子VI與迭代處理

          動(dòng)態(tài)分配子VI可以調(diào)用LabVIEW類(lèi)層級(jí)中的任一個(gè)VI。LabVIEW根據(jù)輸入自動(dòng)態(tài)分配終端的類(lèi)數(shù)據(jù)類(lèi)型,確定運(yùn)行時(shí)所調(diào)用的子VI的實(shí)現(xiàn)方式。如欲創(chuàng)建一個(gè)動(dòng)態(tài)分配成員VI,將連接端子面板上的一個(gè)輸入終端設(shè)置為“動(dòng)態(tài)分配輸入(必需)”,這里假定該終端具有與擁有該成員VI的類(lèi)具有相同的類(lèi)類(lèi)型。

          利用LabVIEW 8.5,您可以使用動(dòng)態(tài)分配成員VI實(shí)現(xiàn)迭代算法。迭代VI可以在其所在模塊框圖和任何子VI所在的模塊框圖中調(diào)用自身。當(dāng)您希望對(duì)同一個(gè)過(guò)程的輸入進(jìn)行多次操作時(shí),這一點(diǎn)非常有用。如欲支持迭代算法,選擇“VI屬性”對(duì)話(huà)框的“執(zhí)行屬性”頁(yè)中的“共享實(shí)例間的克隆”選項(xiàng)。

          迭代的恰當(dāng)使用可以提高效率并優(yōu)化LabVIEW應(yīng)用的代碼,但也往往會(huì)導(dǎo)致算法變得極為復(fù)雜?;谖谋镜沫h(huán)境中迭代所要求的一般編程實(shí)踐同樣適用于LabVIEW編程。迭代算法需要一個(gè)預(yù)先定義的最終可達(dá)到并終止迭代調(diào)用的基本條件。此外,迭代VI 不能作為應(yīng)用的頂層VI,它必須由一個(gè)更高層次的VI首先調(diào)用。

          22.jpg

          圖2.選擇“VI屬性”對(duì)話(huà)框中高亮顯示的選項(xiàng)以支持迭代調(diào)用。

          混合復(fù)選框

          LabVIEW 8.5在系統(tǒng)選板中提供了一個(gè)稱(chēng)為混合復(fù)選框的新型前面板控件。不同于傳統(tǒng)的布爾復(fù)選框,該控件具有三種狀態(tài)。這對(duì)于或許具有未知或未定義狀態(tài)的用戶(hù)輸入很有用。例如,如果您使用單個(gè)復(fù)選框設(shè)置多個(gè)對(duì)象的選項(xiàng),當(dāng)混合復(fù)選框設(shè)置為第三種狀態(tài)時(shí),多個(gè)對(duì)象間的任何狀態(tài)沖突都將會(huì)被指示出來(lái)。

          MathScript調(diào)試功能

          LabVIEW 8.5包含有增強(qiáng)的面向MathScript節(jié)點(diǎn)的錯(cuò)誤報(bào)告功能。例如,如果您從MathScript節(jié)點(diǎn)調(diào)用一個(gè)用戶(hù)定義的函數(shù),或.m文件,LabVIEW將在編輯時(shí)而不是運(yùn)行時(shí)返回該用戶(hù)定義函數(shù)中存在的編輯狀態(tài)錯(cuò)誤。如果您修改了該用戶(hù)定義的函數(shù),LabVIEW在您保存該.m文件后即時(shí)更新錯(cuò)誤列表窗口。

          指針與互操作性的改進(jìn)

          LabVIEW8.2及其后版本包含有導(dǎo)入共享庫(kù)向?qū)?mdash;—一個(gè)強(qiáng)大的VI生成工具,它顯著節(jié)約開(kāi)發(fā)時(shí)間并減少用戶(hù)錯(cuò)誤。利用該向?qū)?,您可以方便地配置包含有需要供圖形化代碼使用的大量輸入?yún)?shù)的復(fù)雜函數(shù)的DLL。該向?qū)г贚abVIEW 8.5中引入對(duì)包含帶有指針元素的結(jié)構(gòu)體的導(dǎo)入函數(shù)的支持。指針常用于基于文本的編程語(yǔ)言,以指向數(shù)值的存儲(chǔ)位置。由于圖形化編程遵守?cái)?shù)據(jù)流編程模式,指針通常在LabVIEW中不是必需的。



          關(guān)鍵詞: LabVIEW 8.5

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();