LabVIEW環境下的Polymorphic VIs概述

在LabVIEW的環境下,往往會發現Polymorphic Vis的蹤影。例如在Configuration Files Vis裡,使用Read Key.vi時,使用者可以利用Default Value來改變輸出Value的資料型態 圖1;

![|225x169](upload://1L9CpFo0FuM1yhyAZFFo5BizHh1.png)
圖1 Configuration VIs的Read Key多型

或是使用Input Device Control的Acquire Input Data.vi時,會因為Device ID不同而改變輸出參數 圖2,這些都是利用Polymorphic VIs方式來建構的。

![|294x152](upload://boD344zIpjvosrXbLrpg9AbCPC0.png)
圖2 Input Device Control的多型

![|286x149](upload://tVByYkpzrplSdD87JsyC5qTZVYq.png)
圖3 使用Polymorphic Vis Selector選擇不同資料型態的VI

透過Polymorphic Vis的方式,可以容許不同資料型態的Vis在同一個VI裡,透過Polymorphic Vis Selector可以選擇使用不同型態的VI。

開始建構Polymorphic VIs
在開始建立Polymorphic Vis前,必須先建立所需要的不同類型的VI。在建立這些VI時,必須要注意的是所有VI的Patterns必須要相同,以範例中所指定的Patterns數目皆為4個輸入及4個輸出。

步驟一、
設計Add DBL 圖4、Add I32圖5及Add String圖6等3個VI,在Block Diagram或Front Panel上幾乎一樣,而只有輸入的Data Type接點及輸出的接點C資料型態上有些許不同而已。

![|442x436](upload://uW6LLGMzuPTN15Juz5SrRFvbn0B.png)
圖4資料型態為DBL的VI

![|440x431](upload://7RGccFiP71Nxiradxns0JAkJJ74.png)
圖4 資料型態為I32的VI

![|440x433](upload://hpIZIAGF3zyp1WFr17eYeiUgMSS.png)
圖5 資料型態為String的VI

步驟二、
在LabVIEW工具列上選擇File>>New,出現圖6的Create New畫面,選擇Polymorphic VI選項。

![|248x349](upload://dHfbmLftyDSZscICwJHk3bhA1T1.png)
圖6 Create New畫面

![|494x420](upload://qcMEiS7ModJrW6IMPO2Mm2txOEA.png)
圖7 Polymorphic VI畫面

步驟三、
出現Polymorphic VI畫面,利用Add按鈕將步驟一所建立的Vi增加到Instance Vis的List裡 圖7。新增完成後,存檔(檔名Polymorphic Main.vi)並關閉。

![|454x298](upload://c994ztDqEJuY0SnWhQHyFnK3aEd.png)
圖8 將新增的Polymorphic Main.vi引用到Block Diagram上

步驟四、
將建立的Polymorphic Main.vi在Block Diagram上直接引用 圖8並且在Data

![|299x326](upload://sCBsHZ9XUQusozTomD9n0AGfPFA.png)
圖9 不同資料型態的輸出

Type接點上指定資料型態,就可以發現Vi會隨著Data Type的不同而改變Vi的C接點輸出的型態,圖9為指定不同Data Type所產生的輸出結果。

結論
由圖10可以發現整個Polymorphic Main.vi其實是由三個不同資料型態的Vi所構成的,當資料型態改變時,程式會自動依據Data的改變而引用相對應的Vi。

![|197x236](upload://bgjHvx0tiffKHIul7T4gvbSl9CU.png)
圖10 Polymorphic Main.vi的Hierarchy

利用Polymorphic Vis的方式,可以增加SubVi的適應性,增加程式在設計階段的彈性。