您或許未曾了解的LabVIEW 8.5的五大特性
類數(shù)據(jù)訪問(wèn)函數(shù)的自動(dòng)創(chuàng)建
利用面向?qū)ο蟮膭?dòng)態(tài)分配子VI與迭代處理
混合復(fù)選框
MathScript調(diào)試功能
指針與互操作性的改進(jìn)
基于客戶與用戶的需求,NI LabVIEW 8.5軟件引入了多項(xiàng)新的特性與改進(jìn)。許多時(shí)常提及的特性被添加到了LabVIEW項(xiàng)目瀏覽器,這些工具幫助您管理大量的VI并防止交叉連接等常見(jiàn)問(wèn)題。NI還在8.5版本中添加了一些您或許尚未意識(shí)到的其他特性,其中包括對(duì)于面向?qū)ο缶幊痰母倪M(jìn)和對(duì)于DLL的互操作性。
類數(shù)據(jù)訪問(wèn)函數(shù)的自動(dòng)創(chuàng)建
LabVIEW類中的數(shù)據(jù)是私有的,這意味著該數(shù)據(jù)除非通過(guò)接口發(fā)布,否則任何外部函數(shù)都不能對(duì)其進(jìn)行操作。由于防止了對(duì)一個(gè)實(shí)例化對(duì)象中數(shù)據(jù)的直接操作,并要求您為之創(chuàng)建一個(gè)訪問(wèn)函數(shù),這促成了良好的編程習(xí)慣?,F(xiàn)今在LabVIEW 8.5中自動(dòng)實(shí)現(xiàn)了創(chuàng)建這些訪問(wèn)函數(shù)的過(guò)程,節(jié)省了您在處理大規(guī)模、復(fù)雜類時(shí)所需的開(kāi)發(fā)時(shí)間。
圖1.“創(chuàng)建訪問(wèn)函數(shù)”對(duì)話框自動(dòng)實(shí)現(xiàn)了創(chuàng)建數(shù)據(jù)訪問(wèn)函數(shù)的過(guò)程。
如欲自動(dòng)創(chuàng)建成員數(shù)據(jù)訪問(wèn)函數(shù),右擊LabVIEW項(xiàng)目資源管理器中的類并選中“創(chuàng)建新的訪問(wèn)函數(shù)”,接著是“成員數(shù)據(jù)訪問(wèn)VI…”該類的所有數(shù)據(jù)成員將展示在窗口中,您可以選擇需要為之創(chuàng)建訪問(wèn)函數(shù)的數(shù)據(jù)成員(詳見(jiàn)圖1)。您也可以設(shè)置訪問(wèn)模式為讀、寫(xiě)或讀寫(xiě)。對(duì)于復(fù)雜的數(shù)據(jù)類型,如數(shù)組,您可以選擇指向整個(gè)數(shù)組或是該數(shù)組中的一個(gè)特定元素。如果指向一個(gè)特定元素,您的VI將需要一個(gè)指定該元素的索引的參數(shù)。
利用面向?qū)ο蟮膭?dòng)態(tài)分配子VI與迭代處理
動(dòng)態(tài)分配子VI可以調(diào)用LabVIEW類層級(jí)中的任一個(gè)VI。LabVIEW根據(jù)輸入自動(dòng)態(tài)分配終端的類數(shù)據(jù)類型,確定運(yùn)行時(shí)所調(diào)用的子VI的實(shí)現(xiàn)方式。如欲創(chuàng)建一個(gè)動(dòng)態(tài)分配成員VI,將連接端子面板上的一個(gè)輸入終端設(shè)置為“動(dòng)態(tài)分配輸入(必需)”,這里假定該終端具有與擁有該成員VI的類具有相同的類類型。
利用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ì)話框的“執(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)用。
圖2.選擇“VI屬性”對(duì)話框中高亮顯示的選項(xiàng)以支持迭代調(diào)用。
混合復(fù)選框
LabVIEW 8.5在系統(tǒng)選板中提供了一個(gè)稱為混合復(fù)選框的新型前面板控件。不同于傳統(tǒng)的布爾復(fù)選框,該控件具有三種狀態(tài)。這對(duì)于或許具有未知或未定義狀態(tài)的用戶輸入很有用。例如,如果您使用單個(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è)用戶定義的函數(shù),或.m文件,LabVIEW將在編輯時(shí)而不是運(yùn)行時(shí)返回該用戶定義函數(shù)中存在的編輯狀態(tài)錯(cuò)誤。如果您修改了該用戶定義的函數(shù),LabVIEW在您保存該.m文件后即時(shí)更新錯(cuò)誤列表窗口。
指針與互操作性的改進(jìn)
LabVIEW8.2及其后版本包含有導(dǎo)入共享庫(kù)向?qū)?mdash;—一個(gè)強(qiáng)大的VI生成工具,它顯著節(jié)約開(kāi)發(fā)時(shí)間并減少用戶錯(cuò)誤。利用該向?qū)В梢苑奖愕嘏渲冒行枰﹫D形化代碼使用的大量輸入?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中不是必需的。