那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LabVIEW子VI設(shè)計(jì)—多態(tài)VI與自適應(yīng)VI

華穗科技 ? 來(lái)源:華穗科技 ? 2023-10-23 14:37 ? 次閱讀

使用LabVIEW編寫(xiě)程序時(shí),工程師都會(huì)將自己程序中的部分代碼封裝為子VI,而封裝的部分可能是某個(gè)經(jīng)典的算法,也可能是調(diào)用某個(gè)設(shè)備的專(zhuān)用代碼,還可能是實(shí)現(xiàn)某個(gè)功能的模塊。總之,為了提高程序的整潔度和可閱讀性,使用模塊化思想去封裝子VI是開(kāi)發(fā)過(guò)程中十分重要的步驟。

而在封裝子VI的過(guò)程中有時(shí)會(huì)遇到功能實(shí)現(xiàn)相類(lèi)似但輸入數(shù)據(jù)類(lèi)型不同的情況,這時(shí)可能需要封裝多個(gè)子VI以滿(mǎn)足所有的需求,LabVIEW其實(shí)提供了更適用的方法,今天小編為大家?guī)?lái)的子VI設(shè)計(jì)中的多態(tài)VI和自適應(yīng)VI就是為此而生,進(jìn)一步簡(jiǎn)化程序并提高可閱讀性。

一、多態(tài)VI 多態(tài)VI的概念: 多態(tài)VI最早是在LabVIEW 6.0被引入的,它能夠在指定的輸入以及輸出端口上接受不同的數(shù)據(jù)類(lèi)型。不同的數(shù)據(jù)類(lèi)型可以是指不同的數(shù)據(jù)表示法或不同的數(shù)據(jù)維數(shù)大小。一個(gè)多態(tài)VI是一組子VI的集合,這些子VI都有一個(gè)共同的特點(diǎn),它們的連線(xiàn)板模式都是類(lèi)似的,每一個(gè)子VI對(duì)應(yīng)著多態(tài)VI中的一個(gè)VI實(shí)例。LabVIEW中有很多多態(tài)VI,比如NI-DAQmx驅(qū)動(dòng)庫(kù)中的讀取、寫(xiě)入、定時(shí)、觸發(fā)等。

多態(tài)VI的使用場(chǎng)景:

當(dāng)我們想要對(duì)不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)執(zhí)行類(lèi)似或相同的操作的時(shí)候,就可以使用多態(tài)VI。根據(jù)連接在輸入接線(xiàn)端上數(shù)據(jù)的類(lèi)型不同,多態(tài)VI會(huì)自動(dòng)選擇對(duì)應(yīng)的實(shí)例子VI。多態(tài)VI允許用戶(hù)將它應(yīng)用到功能類(lèi)似的不同應(yīng)用實(shí)例中去, 并且這些不同的應(yīng)用實(shí)例處理了不同的數(shù)據(jù)類(lèi)型的數(shù)據(jù)。這樣就可以讓用戶(hù)把數(shù)據(jù)類(lèi)型不同所造成的VI結(jié)構(gòu)差異在VI的內(nèi)部就自動(dòng)處理掉,從而不需要為不同的數(shù)據(jù)類(lèi)型放置多個(gè)不同的處理VI。

創(chuàng)建多態(tài)VI:

1、創(chuàng)建不同的子VI實(shí)例,小編創(chuàng)建了幾個(gè)不同數(shù)據(jù)類(lèi)型簡(jiǎn)單計(jì)算的實(shí)例,;

f3132862-716c-11ee-939d-92fbcf53809c.png

2、在LabVIEW的新建模板界面選擇新建多態(tài)VI;

f32e377e-716c-11ee-939d-92fbcf53809c.png

3、在創(chuàng)建的多態(tài)VI中選擇添加剛才創(chuàng)建的幾個(gè)實(shí)例VI,添加完成后可以給它們分別自定義菜單名稱(chēng)(在程序框圖面板右鍵多態(tài)VI>>選擇類(lèi)型中顯示的名稱(chēng))和選擇器名稱(chēng)(多態(tài)VI選擇器顯示的名稱(chēng));

f335bf44-716c-11ee-939d-92fbcf53809c.png ?

4、根據(jù)需要勾選對(duì)應(yīng)的配置,其中程序框圖外觀勾選“繪制多態(tài)VI圖標(biāo)”和“繪制實(shí)例VI圖標(biāo)”會(huì)決定多態(tài)VI顯示的圖標(biāo)。“默認(rèn)顯示選擇器”選項(xiàng)決定在使用時(shí)圖標(biāo)下方是否顯示多態(tài)VI選擇器(舉例說(shuō)明:NI-DAQmx的定時(shí)API就是一個(gè)多態(tài)VI,而它圖標(biāo)下面的下拉列表框其實(shí)就是多態(tài)VI選擇器)。“允許多態(tài)VI自動(dòng)匹配數(shù)據(jù)類(lèi)型”選項(xiàng)可以讓多態(tài)VI自動(dòng)識(shí)別輸入的數(shù)據(jù)類(lèi)型并選擇對(duì)應(yīng)的實(shí)例;

f33970bc-716c-11ee-939d-92fbcf53809c.png

5、多態(tài)VI就制作完成后測(cè)試其功能。如下圖所示,連接不同數(shù)據(jù)類(lèi)型時(shí)多態(tài)VI會(huì)自動(dòng)選擇并執(zhí)行對(duì)應(yīng)的實(shí)例,后續(xù)如果要擴(kuò)展其兼容的數(shù)據(jù)類(lèi)型,可以向多態(tài)VI中添加新的實(shí)例VI;

f343c468-716c-11ee-939d-92fbcf53809c.png

二、自適應(yīng)VI

自適應(yīng)VI的概念:

自適應(yīng)VI可以自動(dòng)適應(yīng)輸入的數(shù)據(jù)類(lèi)型,它的所有接線(xiàn)端均為多態(tài)。用戶(hù)每次將輸入數(shù)據(jù)連線(xiàn)至接線(xiàn)端時(shí),自適應(yīng)VI將自動(dòng)檢查連線(xiàn)的數(shù)據(jù)類(lèi)型是否可以接受。如可以接受該類(lèi)型,自適應(yīng)VI會(huì)將接線(xiàn)端自動(dòng)調(diào)整為該輸入數(shù)據(jù)類(lèi)型;如果不接受該類(lèi)型則會(huì)顯示斷線(xiàn)。通過(guò)自適應(yīng)VI可以對(duì)任意可接收的數(shù)據(jù)類(lèi)型執(zhí)行相同的操作,而無(wú)需為每種數(shù)據(jù)類(lèi)型保存單獨(dú)的VI副本。

自適應(yīng)VI的使用場(chǎng)景:

自適應(yīng)VI和多態(tài)VI的使用場(chǎng)景相類(lèi)似,需要對(duì)不同數(shù)據(jù)類(lèi)型進(jìn)行相似處理的時(shí)候使用,為了提高靈活性,自適應(yīng)VI也可以支持對(duì)某些特定數(shù)據(jù)類(lèi)型進(jìn)行特殊處理。LabVIEW 2020就加入了一些自適應(yīng)VI,它們的圖標(biāo)都是以橙色為背景,比如數(shù)組選板中的“排序二維數(shù)組”。

創(chuàng)建自適應(yīng)VI:

1、在LabVIEW的新建模板界面選擇新建自適應(yīng)VI,也可以新建一個(gè)普通VI后將其后綴名更改為.vim,這個(gè)VI就會(huì)變?yōu)橐粋€(gè)自適應(yīng)VI;

f34c15f0-716c-11ee-939d-92fbcf53809c.png

2、使用“類(lèi)型專(zhuān)用結(jié)構(gòu)”編寫(xiě)自適應(yīng)VI的功能,如果有特殊數(shù)據(jù)類(lèi)型需要做特殊處理,可以單獨(dú)為其創(chuàng)建分支來(lái)處理該數(shù)據(jù)。小編創(chuàng)建了一個(gè)數(shù)組求和的自適應(yīng)VI,該VI可以對(duì)一維數(shù)組進(jìn)行求和。其中一維布爾數(shù)組要先經(jīng)過(guò)“布爾至0,1轉(zhuǎn)換”之后再求和;一維字符串?dāng)?shù)組要先進(jìn)行“分?jǐn)?shù)/指數(shù)字符串至數(shù)值轉(zhuǎn)換”后再求和。

f34fd6b8-716c-11ee-939d-92fbcf53809c.png

一維數(shù)組求和

f35e306e-716c-11ee-939d-92fbcf53809c.png

對(duì)布爾數(shù)組進(jìn)行特殊處理

f36b89d0-716c-11ee-939d-92fbcf53809c.png

對(duì)字符串?dāng)?shù)組進(jìn)行特殊處理

3、自適應(yīng)VI創(chuàng)建完成后測(cè)試其功能。如下圖所示,該自適應(yīng)VI可以自動(dòng)適配輸入的一維數(shù)組數(shù)據(jù)類(lèi)型并且執(zhí)行對(duì)應(yīng)功能,如果后續(xù)有要擴(kuò)展的數(shù)據(jù)類(lèi)型,也可以直接打開(kāi)自適應(yīng)VI為它創(chuàng)建專(zhuān)用的分支。

f379f060-716c-11ee-939d-92fbcf53809c.png

、兩者對(duì)比

多態(tài)VI與自適應(yīng)VI都可以為不同輸入數(shù)據(jù)類(lèi)型執(zhí)行其對(duì)應(yīng)的功能,但他們并不是完全相同的,它們之間也有一些不同點(diǎn),下面這個(gè)表格可以清晰地看到兩種VI之間的一些對(duì)比:

多態(tài)VI 自適應(yīng)VI
實(shí)現(xiàn)方式 帶一組預(yù)定義的可接受數(shù)據(jù)類(lèi)型的實(shí)例VI組。 自動(dòng)計(jì)算實(shí)現(xiàn)是否接受某種數(shù)據(jù)類(lèi)型的單個(gè)VI。
連線(xiàn)板 不同實(shí)例VI可以自定義不同的連線(xiàn)板。 所有數(shù)據(jù)類(lèi)型的連線(xiàn)板相同。
生成 為每種數(shù)據(jù)類(lèi)型創(chuàng)建一個(gè)實(shí)例VI,并將實(shí)例VI包含在多態(tài)VI中。 創(chuàng)建帶.vim文件擴(kuò)展名的VI,或通過(guò)將VI擴(kuò)展名更改為.vim以將標(biāo)準(zhǔn)VI轉(zhuǎn)換為自適應(yīng)VI。
自定義 在不同實(shí)例VI中實(shí)現(xiàn)不同的代碼,以此對(duì)不同數(shù)據(jù)類(lèi)型定義不同行為。 使用類(lèi)型專(zhuān)用結(jié)構(gòu)在自適應(yīng)VI中為特定數(shù)據(jù)類(lèi)型自定義代碼。
自適應(yīng)類(lèi)? 否,調(diào)用類(lèi)A方法a的多態(tài)VI只接受類(lèi)A或類(lèi)A的子孫類(lèi)。 是,如果自適應(yīng)VI調(diào)用類(lèi)A方法a,則其可接受任何具有與類(lèi)A方法a相同名稱(chēng)、連線(xiàn)板模式、接線(xiàn)端方向的公共方法的類(lèi)。

在封裝子VI時(shí),工程師應(yīng)該在什么情況下選擇使用多態(tài)VI?在什么情況下使用自適應(yīng)VI呢?下面這個(gè)表格可以帶給我們答案:

類(lèi)型 適用場(chǎng)景
多態(tài)VI 1、對(duì)于不同的數(shù)據(jù)類(lèi)型,操作的實(shí)現(xiàn)不同。
2、不同數(shù)據(jù)類(lèi)型的連線(xiàn)板不同。
自適應(yīng)VI 1、可對(duì)不同數(shù)據(jù)類(lèi)型以相似方式實(shí)現(xiàn)操作而無(wú)需針對(duì)特定數(shù)據(jù)進(jìn)行大量自定義。
2、面向?qū)ο?a href="http://www.qldv.cn/v/tag/1315/" target="_blank">編程時(shí)可以自動(dòng)適應(yīng)輸入類(lèi)。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 驅(qū)動(dòng)器
    +關(guān)注

    關(guān)注

    53

    文章

    8271

    瀏覽量

    147058
  • LabVIEW
    +關(guān)注

    關(guān)注

    1977

    文章

    3657

    瀏覽量

    325621
  • 選擇器
    +關(guān)注

    關(guān)注

    0

    文章

    109

    瀏覽量

    14588

原文標(biāo)題:知識(shí)分享 | LabVIEW子VI設(shè)計(jì)—多態(tài)VI與自適應(yīng)VI

文章出處:【微信號(hào):華穗科技,微信公眾號(hào):華穗科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【資料】多態(tài)VI

    多態(tài)VI,剛看到的,分享給大家,希望對(duì)新學(xué)者有幫助。。。。。。
    發(fā)表于 12-11 13:50

    LabVIEW中DAQmxVI斷開(kāi)或這是“無(wú)法執(zhí)行VI”?

    最近弄LabVIEW數(shù)據(jù)采集的內(nèi)容,打開(kāi)了一個(gè)老師給的代碼給出的錯(cuò)誤就是DAQmx Read 多態(tài)VI無(wú)法執(zhí)行或者是
    發(fā)表于 02-26 15:30

    多態(tài)VI已斷開(kāi),運(yùn)行該VI前必須解決多態(tài)VI的所有錯(cuò)誤。

    多態(tài)VI已斷開(kāi),運(yùn)行該VI前必須解決多態(tài)VI的所
    發(fā)表于 01-14 20:35

    LabVIEW多態(tài) VI (Polymorphic VIs)的使用

    對(duì)不同的數(shù)據(jù)類(lèi)型的數(shù)據(jù)執(zhí)行類(lèi)似或相同的操作的時(shí)候,多態(tài) VI 就會(huì)非常有幫助。 根據(jù)連接在輸入接線(xiàn)端上的數(shù)據(jù)的類(lèi)型的不同, 一個(gè)對(duì)應(yīng)的 VI 就會(huì)被
    發(fā)表于 05-10 21:04

    創(chuàng)建和編輯VI程序、及建立和調(diào)用VI

    創(chuàng)建和編輯VI程序、及建立和調(diào)用VI 一、實(shí)驗(yàn)室名稱(chēng):虛擬儀器實(shí)驗(yàn)室             
    發(fā)表于 06-22 09:01 ?6286次閱讀

    VI圖標(biāo)和連線(xiàn)板

    當(dāng)一個(gè)VI A.viVI B.vi 中使用,就稱(chēng)A.vi為B.vi
    發(fā)表于 09-12 10:41 ?33次下載

    Labview之上調(diào)用VI

    Labview之上調(diào)用VI,很好的Labview資料,快來(lái)下載學(xué)習(xí)吧。
    發(fā)表于 04-19 09:54 ?0次下載

    Labview之子VI的建立

    Labview之子VI的建立,很好的Labview資料,快來(lái)下載學(xué)習(xí)吧。
    發(fā)表于 04-19 10:23 ?0次下載

    LabVIEW的登錄主程序和VI程序運(yùn)行的詳細(xì)概述

    LabVIEW【登錄程序】:利用LaBVIEW簡(jiǎn)單的比較判斷,當(dāng)密碼正確時(shí),進(jìn)入下一個(gè)VI程序運(yùn)行。
    發(fā)表于 06-01 11:00 ?74次下載

    labview如何調(diào)用vi

    labview如何調(diào)用vi?這種技巧經(jīng)常用在多個(gè)參數(shù)順序測(cè)量時(shí),實(shí)現(xiàn)波形實(shí)時(shí)切換,顯示當(dāng)前測(cè)試參數(shù)的波形。具體步驟為:在主VI中右鍵,單擊選擇VI
    的頭像 發(fā)表于 11-14 16:10 ?4.9w次閱讀

    LabVIEW編程實(shí)用教程之多態(tài)VI的創(chuàng)建的視頻教程免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是LabVIEW編程實(shí)用教程之多態(tài)VI的創(chuàng)建的視頻教程免費(fèi)下載。
    發(fā)表于 12-27 08:00 ?15次下載

    LabVIEW編程的實(shí)用技巧多態(tài)VI的創(chuàng)建視頻教程免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是LabVIEW編程的實(shí)用技巧多態(tài)VI的創(chuàng)建視頻教程免費(fèi)下載。
    發(fā)表于 03-07 08:00 ?8次下載
    <b class='flag-5'>LabVIEW</b>編程的實(shí)用技巧<b class='flag-5'>多態(tài)</b><b class='flag-5'>VI</b>的創(chuàng)建視頻教程免費(fèi)下載

    基于LABVIEW編程的USB攝像頭拍照VI文件

    LABVIEW2018編寫(xiě)的USB攝像頭攝像拍照VI,給有需要的朋友。
    發(fā)表于 09-15 14:31 ?56次下載

    LABVIEW打開(kāi)調(diào)用VI的幾種辦法

    總結(jié)了LABVIEW打開(kāi)調(diào)用VI的幾種辦法,程序?qū)懛?/div>
    發(fā)表于 08-20 15:31 ?53次下載

    LabVIEW中執(zhí)行系統(tǒng)命令VI介紹

    LabVIEW自帶一個(gè)執(zhí)行系統(tǒng)命令VI(System Exec.vi),位于函數(shù)選板的“互連接口”>>“庫(kù)與可執(zhí)行程序”>>“執(zhí)行系統(tǒng)命令”
    的頭像 發(fā)表于 04-25 11:47 ?9716次閱讀
    <b class='flag-5'>LabVIEW</b>中執(zhí)行系統(tǒng)命令<b class='flag-5'>VI</b>介紹
    阳宅24方位座向| 百家乐优博u2bet| 乐天堂百家乐娱乐平台| 大发888代充平台| 皇冠走地| 合乐8百家乐官网娱乐城| 网上百家乐网站导航| 大发888娱乐送体验金| 百家乐官网分析下载| 尊龙百家乐官网娱乐场开户注册 | 百家乐官网vshow| 百家乐保证赢| 瑞丰娱乐| 百家乐官网正式版| 宝马会百家乐的玩法技巧和规则| 八大胜开户| 百家乐官网入庄闲概率| 百家乐最新套路| 大发888大发下载| 百家乐官网平台开发| 高级百家乐官网桌布| 百家乐电影网| 六合彩投注网| 百家乐官网五湖四海娱乐网| 百家乐官网小型抽水泵| 真人百家乐破解软件下载| 六合彩码报| 圆梦城百家乐官网娱乐城| 威尼斯人娱乐城代理佣金| 百家乐改单| 百家乐游戏机出千| 棋牌类玩具| 高科技百家乐官网牌具| 缅甸百家乐娱乐| 深水埗区| 澳门百家乐如何算牌| 大玩家娱乐城| 百家乐官网代理合作| 大发888下载网址| 筹码百家乐官网的玩法技巧和规则| 大发888怎么赢钱|