How To - 如何列出電腦中的所有通訊埠?

在進行通訊管理的時候,往往要判別通訊的裝置為何,有多少裝置。此時若能列出電腦中的所有通訊埠,便可簡單的一一詢問,即便途中變更了裝置,亦可自動得知該裝置所在的通訊埠為何。

以下將會簡單介紹如何製作此功能。


圖片程式版本:LabVIEW 2013
範例程式版本:LabVIEW 8.6


首先要使用的元件為 VISA Find Resources ,位置在 block diagram >> Instrument I/O >> VISA >> Advanced >> VISA Find Resources 。接下來對這個元件的 find list 接腳產生顯示器,就可以看到目前電腦可以被讀取的通訊埠有哪些。



然而,光這樣子的資訊並不足以判斷裝置,至少也要有敘述出來才看得懂,因此我們要在多加一個功能來表列裝置的敘述。

首先,先拉出 Property Node ,位置在 block diagram >> Programming >> Application >> Property Node ,接下來將該 property 的 class 變更至 Serial Instr. ,在 Property Node上按右鍵,選擇 Select Class >> VISA >> I/O Session >> Serial Instr.


選擇完 class 之後就可以去變更 property 。在 Property Node 上按左鍵,選擇 Interface Information >> Description


如此,Property Node 就會根據輸入的通訊埠位置來回傳該通訊埠的敘述。但是 Property Node 的 reference 輸入是 VISA I/O Session 的資料型態,之前的 find list 卻是 string 的資料型態,因此要利用 Type Cast 的功能來作資料型態的轉換。 Type Cast 的位置在 block diagram >> Programming >> Numeric >> Data Manip >> Type Cast 。另,版本不同,此元件的位置可能不同,若找不到元件,請善用 HELP 或 search 功能

Type Cast 的使用方式,左邊的輸入是變更前資料,上方的輸入點是要變更的資料型態,右方的輸出典則是變更後的資料


所以我們在 Property Node 的 reference 接腳上先建立一個常數,在把這個常數接線改到 Type Cast 的上方,這樣就相當於告訴 Type Cast 說要把輸入的資料改成跟這個常數一樣的資料型態。再利用 For loop 解開 find list 的陣列,將其元素輸入至 Type Cast ,並把輸出值接接入Property Node 的 reference ,最後再把 Property Node 的輸出拉出迴圈外就可以完成整個功能。



簡單的範例程式在這裡下載。