設定 CompactRIO 軟體
若要在 CompactRIO 硬體上安裝正確軟體,必須先在主機電腦(Host PC)上完成安裝。必要的兩個元件為:
-
NI Vision 9.0 或更新版本
-
NI-IMAQdx 3.4 或更新版本驅動程式
你可以在 Measurement & Automation Explorer(MAX)中展開「My System」下的 Software 樹狀結構,確認這些軟體是否已安裝。
當確認主機電腦具備正確軟體後,接下來需將這些軟體安裝至 CompactRIO 控制器上,才能使用 IP 攝影機進行影像擷取。CompactRIO 控制器會出現在 MAX 的「Remote Systems」標籤下。展開該控制器節點後,右鍵點選「Software」,並選擇 Add/Remove Software。
這將開啟 LabVIEW Real-Time Software Wizard。選擇 Custom software installation,然後點選「Next」。選擇「Yes」以繼續進行手動安裝。需要安裝的兩個主要元件為:
-
NI Vision RT 9.0.0 或更新版本
-
IP Camera Support
請在 NI-IMAQdx RT 分類下找到 IP Camera Support。勾選這兩個項目後,點選「Next」以開始安裝程序。

選擇 IP 攝影機
自 NI-IMAQdx 4.0 起,僅支援 Basler IP 和 Axis IP 攝影機 可在 CompactRIO 上正式使用。NI 目前販售數款 Basler IP 攝影機,並由 IMAQdx 官方支援。
若使用 CompactRIO 的第二個乙太網路埠,建議選用較低解析度的攝影機,因為該埠的頻寬較有限。解析度高於 1MP 的攝影機在此情況下可能會出現明顯低於預期的影格率。
攝影機 IP 設定
為使攝影機能與 CompactRIO 正常運作,需正確設定其 IP 位址。最簡單的方式是將 CompactRIO 和 IP 攝影機設定在同一個子網路(subnet)。若兩者擁有相同子網內的 IP 位址,則可在相同專案中同時使用攝影機與 CompactRIO。這種作法在 CompactRIO 僅有一個乙太網埠的情況下尤其重要(甚至是唯一可行方式)。
若 CompactRIO 有第二個乙太網埠,也可以將攝影機接至該埠。這時,攝影機與該乙太網埠也必須設定在同一個子網中。不過,此子網的 IP 位址需與 CompactRIO 的主要網路埠不同。攝影機的 IP 設定方式會因廠牌與型號而異,通常會需要使用製造商所提供的軟體工具來進行設定。
下文會介紹 Basler IP 與 Axis IP 攝影機的 IP 位址設定方式。
Basler IP 攝影機設定
若要設定 Basler IP 攝影機的 IP 位址,需要使用 Basler BIP Finder 軟體。該軟體可從 Basler 官網 下載。
為能正確設定攝影機,攝影機必須與執行 BIP Finder 軟體的電腦在相同子網中。
依預設,Basler 攝影機將會自動指派 IP 位址與子網遮罩,具體設定方式可見於下方圖示。

不過,若要讓攝影機能夠被 CompactRIO 控制器的第二個網路埠辨識,則攝影機必須設定為固定 IP(Static IP)。
若要進行這項變更,請選取攝影機,然後選擇 Edit > IP Settings。此時你將可以在「IP Address」欄位中輸入靜態 IP 位址,範例如下圖所示。

請注意,此靜態 IP 位址必須與稍後你為 CompactRIO 第二網路埠所設定的子網相同,但不得與控制器的主網路埠處於相同子網中。
下方截圖展示了 Basler 攝影機最終 IP 設定的範例。此款 Basler 攝影機支援同時使用兩個不同 IP 位址:
一個是靜態 IP(供 CompactRIO 控制器使用),另一個是動態 IP(用於上述 IP 設定過程)。

Axis IP 攝影機設定
若要設定 Axis IP 攝影機的 IP 位址,必須使用 Axis IP Utility 軟體。該軟體可於 Axis 官方網站下載。
使用此工具設定攝影機時,攝影機必須與執行該軟體的電腦位於相同子網內。下方圖片顯示正確辨識 Axis 攝影機的畫面。

如前面對 Basler 攝影機所述,若要讓 Axis 攝影機能在 CompactRIO 控制器的第二網路埠上正常運作,也必須為攝影機指派一個靜態 IP 位址。
若要變更 IP 位址,請選取該攝影機,然後點選 Assign new IP address to selected device 按鈕。這會開啟下方所示的 IP 設定視窗。

請記住,此新靜態 IP 位址必須與 CompactRIO 第二網路埠所設定的子網相同,同時也必須與控制器的主網路埠位於不同的子網。
然而,使用 Axis IP Utility 無法設定與電腦不同子網的靜態 IP 位址。
與 Basler 攝影機不同,Axis 攝影機一次僅能擁有一個 IP 設定。因此,如果攝影機、電腦與 CompactRIO 全部處於同一子網,將無法正確為第二網路埠設定 Axis 攝影機。
一個簡單的解法是:將攝影機直接連接至電腦的乙太網路埠。這通常會為攝影機指派一個「連結本地位址(link-local address)」。
你接著可以為攝影機設定一個靜態 IP(也是 link-local 位址),如此就會與 CompactRIO 的主網路埠處於不同子網。
以下為採用此方法的範例設定畫面。

CompactRIO IP 設定
當你完成必要軟體安裝並設定好攝影機的 IP 位址後,請在 MAX 中點選 Remote Systems 下的 CompactRIO,進入 Network Settings。
預設情況下,CompactRIO 的第二乙太網路埠是未啟用的。
若要啟用此埠與 IP 攝影機通訊,請選擇 Advanced Ethernet Settings。
開啟設定視窗後,點選在 Ethernet Devices 下所列的第二 MAC 位址,
將 Mode 設定為 TCP/IP,子網遮罩(Subnet Mask)設為 255.255.255.0
。
接著指定一個與你攝影機設定相同子網的 IP 位址(僅最後一位不同即可)。
當設定完成且畫面與下方範例相似時,點選 OK,並在提示時選擇 Yes 以重新啟動系統。

攝影機設定
當你啟用了 CompactRIO 的第二乙太網路埠後,攝影機會出現在 MAX 中。你可以透過 MAX 正確設定它。
將攝影機插入 CompactRIO 的第二網路埠。若乙太網路埠的指示燈亮起,表示連線成功,系統應會偵測到攝影機。
在 MAX 的 CompactRIO 模組下,展開 Devices and Interfaces,再展開 NI-IMAQdx Devices,你應該會看到 IP 攝影機名稱為 camX
(X 為驅動程式自動指派的數字)。

在選單列上方你可以點選:
-
Snap:取得一張靜態影像
-
Grab:即時擷取攝影機畫面

此畫面也可讓你透過底部的頁籤,變更 Acquisition Attributes 和 Camera Attributes。
當你可以在 MAX 中看到攝影機並成功擷取影像後,就可以關閉 MAX。
請記住該攝影機的名稱(例如 cam1
),之後會在 LabVIEW 使用它。
設定 LabVIEW
現在 CompactRIO 控制器與 IP 攝影機都已設定完成,接下來需要在 LabVIEW 中撰寫 VI 來使用這些硬體。
請依下列步驟操作:
-
開啟 LabVIEW,選擇 File > New…
-
展開 Project,並選擇 Empty Project
-
LabVIEW 會建立一個名為 Untitled Project 1 的新專案
-
前往 File > Save As,將專案命名為 Vision
接著在 Project:Vision.lvproj 上按右鍵,選擇 New > Targets and Devices… 進行後續的硬體加入與配置。

展開 Real-Time CompactRIO,你正在使用 IP 攝影機的 CompactRIO 控制器名稱應會出現在清單中。選取該控制器並點選 OK。
選擇 Continue(繼續)即可,因為對於本應用而言,使用 Scan Interface 模式即可,不需要透過 CompactRIO 的 FPGA 來操作 IP 攝影機。
此時 CompactRIO 控制器會作為一個目標列在 Vision 專案中。
若要從 IP 攝影機擷取影像,可使用範例程式 Grab.vi。
將此 VI 加入目標的方法如下:
-
右鍵點選專案中的 CompactRIO 控制器,選擇 Add > File…
-
在開啟的視窗中,前往 NI 軟體安裝路徑,定位至
C:\Program Files\National Instruments\LabVIEW 2009\examples\IMAQ\IMAQdx Examples.llb\Grab.vi
-
選取 Grab.vi 並點選 Select
接著,在專案中雙擊 Grab.vi,其 Front Panel(前面板)將會開啟。
在 Camera Name 下拉選單中選取你先前於 MAX 中設定的 IP 攝影機名稱(例如:cam1
)。
按下執行箭頭(Run Arrow)後,應可看到從 IP 攝影機擷取的即時影像畫面。
