跳至內容
測試伺服器
開發伺服器

網路設定 (Stereo ace)#

本主題將說明如何設定您的網路介面卡以及變更 Basler Stereo ace 相機的 IP 設定。

本主題中針對 Linux 的相關資訊是基於使用 Ubuntu 20.04 的預設桌面 GUI。由於在 Linux 下有多種設定網路介面的方式,請參閱您的 Linux 發行版說明文件以了解更多詳細資訊。

網路設定逐步指南#

以下步驟將引導您完成在網路設定中建立 Stereo ace 相機的過程。

  1. 決定要如何為相機指派 IP 位址。請考慮以下事項:
    • 您計劃使用幾台相機?
    • 您正在使用幾張網路介面卡?每台相機是否都有專用的介面卡?
      如需詳細資訊,請參閱 建議的網路架構。
    • 您是否有可用的 DHCP 伺服器?
      如果您有 DHCP 伺服器,請使用它。這會讓設定變得簡單許多。
      如果您沒有 DHCP 伺服器,您可以選擇使用靜態 IP 位址或 Auto IP:
      • Auto IP 僅在您設定使用 Auto IP 的網路介面卡不超過一個時才能使用。為多個介面卡設定 Auto IP 會導致無法偵測到相機。
      • 如果您使用多個具有靜態位址的網路介面卡,則每個介面卡必須位於不同的子網路中。
  2. 設定網路卡的地圖 IP 位址。
  3. 使用 pylon IP Configurator 設定相機的 IP 位址。
  4. 在 pylon IP Configurator 中檢查連線。

    1. 如果狀態為 OK,則一切正常。
    2. 如果狀態為 Not reachable,請檢查以下事項:

      1. 確保沒有其他應用程式正在存取相機。
      2. 確保網路卡的子網路遮罩與相機相同。
      3. 確保網路卡與相機的位址位於同一個子網路中。
        範例:如果子網路遮罩為 255.255.0.0,則 IP 位址的前兩個區塊必須相同。
      4. 確保所有其他網路卡都設定為與相機所連接的子網路不同的子網路。
      5. 確保沒有其他網路裝置使用與相機相同的位址。
    3. 如果未列出相機,請檢查以下事項:

      1. 相機是否實體連接至正確的網路卡?
      2. 為相機所連接的網路卡停用防火牆。
    4. 調整效能設定。
    5. 故障排除
      如果在串流傳輸時出現掉格或錯誤訊息,最常見的原因是網路連線不穩定或效能不足。
    6. 檢查是否可以進一步最佳化 Windows 或 Linux 系統上的網路設定。
    7. 為相機所連接的網路卡停用防火牆。

規劃網路有兩種方法。以下列出它們的差異,以協助您選擇合適的設定。

點對點網路架構#

其中一個選項是在相機與主機電腦之間建立直接點對點連線。

相機可以連接至主機電腦中的個別 GigE 網路卡或多埠網路卡。

點對點網路架構

  • 優點:每部相機與主機電腦之間都有獨立的連線。因此,每部相機都擁有完整的連線頻寬可用於傳輸擷取的影像。這表示您可以讓每部相機以其完整的擷取速率運作。
  • 缺點:單一電腦可以連接的相機數量有限。

資訊

在點對點連接中,每個介面卡必須位於不同的子網路中,且每台相機都必須具備與其連接之介面卡同一個子網路中的 IP 位址。
範例:介面卡的 IP 位址分別為 192.168.1.1、192.168.2.1、192.168.3.1 等,而子網路遮罩則設定為 255.255.255.0。此時相機可使用以下 IP 位址:192.168.1.100、192.168.2.100、192.169.3.100 等,子網路遮罩皆設定為 255.255.255.0。

透過網路交換器連接#

或者,您也可以透過網路交換器建立相機與主機電腦之間的連線。

以下範例顯示連接至 4 通訊埠網路交換器的 1 通訊埠 GigE 網路介面卡。您也可以使用多通訊埠網路介面卡或多個交換器。

透過網路交換器連接

  • 優點:允許將多台相機連接至單一主機電腦。
  • 優點:允許更長的整體纜線長度,因為各裝置之間的纜線長度最高可達 100 公尺。
  • 缺點:交換器只有一個連接至電腦的 GigE 連線。相機必須共用此單一通道上可用的頻寬。單一通道上的可用頻寬約為 125 MByte/s。如果此頻寬不足,透過簡單的系統轉換改用 5GigE 上行鏈路,即可達到五倍的速度。

資訊

當多台相機連接至交換器時,交換器必須具備充足的緩衝區容量。這可讓交換器在傳輸單一輸出線路上的資料時,暫存來自相機的輸入資料。
所有相機都必須擁有同一個子網路(即介面卡的子網路)中的位址。
範例:如果電腦的位址是 192.168.1.1,相機可採用 192.168.1.100、192.168.1.101 等 IP 位址。

為了達到最佳效能與可靠性,Basler 建議使用 Intel PRO 1000、I210、I340 和 I350 系列的介面卡。

網路介面卡 IP 設定#

以下是設定網路介面卡 IP 位址最常見的兩種方式:

  • 指派固定(也稱為「靜態」或「永久」)位址
  • 透過 DHCP (動態主機設定協定) 或自動 IP (自動私有 IP 定址,基於鏈路本地位址 (LLA)) 設定自動定址。

Windows#

指定固定 IP 位址#

若要為網路介面卡指派固定 IP 位址:

  1. 開啟 Windows 控制台中的 網路連線 視窗。
    若要快速存取,請按下 Win+R,輸入 ncpa.cpl,然後按下 輸入.
  2. 在用於相機的網路介面卡連線上按一下滑鼠右鍵,然後按一下內容。
    隨即會開啟內容視窗。
  3. 按兩下網際網路通訊協定第 4 版 (TCP/IPv4)。
    隨即會開啟網際網路通訊協定第 4 版 (TCP/IPv4) 內容視窗。
  4. 按一下使用下列的 IP 位址。
  5. 在IP 位址、子網路遮罩和預設閘道欄位中,輸入 IP 位址、子網路遮罩和預設閘道位址。
  6. 在慣用 DNS 伺服器和其他 DNS 伺服器欄位中,輸入主要和次要 DNS 伺服器位址。(通常不需要網域名稱伺服器。)

    網際網路通訊協定第 4 版 (TCP/IPv4) 內容

  7. 對於所有適用的網路介面卡,重複步驟 2 至 6。

資訊

在相機設計整合期間,您可以使用下列設定來非常快速地建立網路連線:

  • 在自動 IP 位址範圍(169.254.0.1 至 169.254.255.254)內為您的網路介面卡設定固定位址,子網路遮罩為 255.255.0.0。
  • 為您的相機設定自動 IP 位址指派。
  • 如果您的電腦有多個網路介面卡,每個介面卡必須位於不同的子網路中。
  • 建議的固定 IP 位址範圍為 172.16.0.1 至 172.32.255.254(子網路遮罩為 255.255.0.0)以及 192.168.0.1 至 192.168.255.254(子網路遮罩為 255.255.255.0)。根據 IP 標準,這些位址範圍已保留供私人使用。
  • 如果您正在為相機指派固定 IP 位址,請記住,若要讓相機與網路介面卡正常通訊,它必須與所連接的介面卡位於相同的子網路中。

透過 DHCP / Auto IP 指定 IP 位址#

如果介面卡設定為透過 DHCP / Auto IP 接收其 IP 位址,其運作方式如下:

  • 介面卡嘗試從 DHCP 伺服器取得 IP 位址。如果有可用的 DHCP 伺服器,它會從伺服器接收 IP 位址並使用它。
  • 如果沒有可用的 DHCP 伺服器,介面卡會使用 Auto IP 常式來為自己指派 IP 位址。

大多數網路介面卡的預設設定都是 DHCP / Auto IP。在大多數情況下,與相機搭配使用的介面卡將沒有可用的 DHCP 伺服器。因此在預設設定下,介面卡最終會使用自動 IP 定址來為自己指派 IP 位址。

資訊

只能將一個介面卡設定為使用 Auto IP. 如果在多個介面卡上設定了 DHCP / Auto IP,Auto IP 指派將無法正常運作,且相機將無法透過 Auto IP 連線到網路。

如果您的電腦中有多個網路介面卡,Basler 建議在您的網路中安裝 DHCP 伺服器,或為介面卡和相機指派靜態 IP 位址。

若要使用 DHCP / Auto IP 指派 IP 位址:

  1. 開啟 Windows 控制台中的 網路連線 視窗。
    若要快速存取,請按下 Win+R,輸入 ncpa.cpl,然後按下 輸入.
  2. 在用於相機的網路介面卡連線上按一下滑鼠右鍵,然後按一下內容。
    隨即會開啟內容視窗。
  3. 按兩下網際網路通訊協定第 4 版 (TCP/IPv4)。
    隨即會開啟網際網路通訊協定第 4 版 (TCP/IPv4) 內容視窗。
  4. 確定已選取 自動取得 IP 位址。
    這會使介面卡將尋找 DHCP 伺服器作為首選。
  5. 按一下 替代設定 索引標籤。
    此索引標籤上的設定用於設定當找不到 DHCP 伺服器時,介面卡將使用的 Auto IP 位址指派。
  6. 確定已選取 自動私有 IP 位址。

    網際網路通訊協定第 4 版 (TCP/IPv4) 內容(替代設定)

Linux#

若要設定網路介面卡:

  1. 透過 顯示應用程式 或右上角的圖示開啟 設定 應用程式。
  2. 在 網路 索引標籤上,按一下相機所連接之網路介面卡旁邊的齒輪圖示。

    設定應用程式

  3. 按一下 IPv4 索引標籤。

    網路介面卡設定

    • 對於 DHCP,將 IPv4 方法 設定為 自動 (DHCP)。
    • 若要進行靜態位址指派,請將 IPv4 Method 設定為 Manual,然後在 Addresses 區域中輸入 Address、Netmask,以及必要的 Gateway。
    • 若要進行自動位址指派,請將 IPv4 Method 設定為 Link-Local Only。
  4. 按一下 Apply 以儲存設定。

相機 IP 位址設定#

若要變更相機的 IP 組態,請使用 pylon IP Configurator:

  • Windows:按一下 Start > Basler > pylon IP Configurator。
  • Linux:執行下列指令:/opt/pylon/bin/ipconfigurator

資訊

如需詳細資訊,請參閱 pylon IP Configurator 線上說明(僅限 Windows)或本說明文件中的 pylon IP Configurator 小節。
Auto IP (LLA):此選項無法使用。不過,如果您的相機設定為透過 DHCP 伺服器進行 IP 位址指派,但找不到 DHCP 伺服器,相機將會回復使用 Auto IP 來自行設定 IP 位址。相對地,如果您想要使用 Auto IP,請選取 DHCP 選項而不提供 DHCP 伺服器。

防火牆設定#

Windows#

停用 Windows 防火牆是一項極端的措施,通常不建議這樣做。不過,在某些情況下,為了修正效能問題,這可能是必要的。

若要關閉特定網路卡上的防火牆:

  1. 按下 Win+R,輸入 wf.msc,然後按下 Enter 鍵。
    隨即會開啟 Windows Firewall with Advanced Security 視窗。
  2. 按一下 Windows Firewall Properties。

    Windows Firewall with Advanced Security 視窗

    隨即會開啟 Windows Firewall with Advanced Security on Local Computer Properties… 視窗。

  3. 按一下您要關閉防火牆保護的設定檔標籤。
    通常這會是 Public Profile 標籤。不過,如果您使用的是專用網路卡,Basler 建議同時停用其他設定檔的防火牆保護。

  4. 按一下 Customize。

    Windows Firewall with Advanced Security Settings

    隨即會開啟 Protected Network Connections for the Public Profile 視窗。該視窗會列出已開啟防火牆的連線。

    Protected Network Connections 視窗

  5. 清除連接了相機的連線勾選。這會關閉其防火牆保護。

  6. 對所有您想要關閉防火牆保護的設定檔重複步驟 3 到 5。

Linux#

連接相機的網路卡必須停用防火牆。否則,裝置尋找和接收來自相機的資料串流可能會無法運作。

若要停用防火牆,請輸入:

sudo ufw disable

效能最佳化#

Windows#

如果您的網路卡不支援效能驅動程式,將會預設安裝篩選器驅動程式。若是如此,必須先設定網路卡,才能將其與相機搭配使用。

首先,Basler 建議停用可能會干擾篩選器驅動程式的特定通訊協定或服務。

若要停用通訊協定或服務:

  1. 開啟 Windows 控制台中的 網路連線 視窗。
    若要快速存取,請按下 Win+R ,輸入 ncpa.cpl,然後按下 輸入.
  2. 在用於相機的網路介面卡連線上按一下滑鼠右鍵,然後按一下內容。
    隨即會開啟內容視窗。
  3. 清除除 pylon GigE Vision Driver 和 Internet Protocol Version 4 (TCP/IPv4) 之外的所有核取方塊:

    網路介面卡 Properties 視窗

  4. 對所有適用的網路介面卡重複步驟 2 和 3。

其次,Basler 建議最佳化特定的介面卡 Property。

若要最佳化介面卡 Property:

  1. 開啟 Windows 控制台中的 網路連線 視窗。
    若要快速存取,請按下 Win+R ,輸入 ncpa.cpl,然後按下 輸入.
  2. 在與相機搭配使用的網路介面卡連線上按一下滑鼠右鍵,然後按一下 Properties。
    隨即會開啟 Properties 視窗。
  3. 按一下 Configure。
    隨即會開啟網路驅動程式的設定視窗。
  4. 按一下 Advanced。
  5. 調整以下 Property(請參閱下方的備註):
    1. 將 Jumbo Frames Property 設定為最大值。
      如果沒有 Jumbo Frames Property,請選取與畫面大小相關的參數並將其設定為最大值。
    2. 選取與接收描述元數量相關的參數(例如 Receive Descriptors)並將其設定為最大值。
    3. 選取與 CPU 中斷次數相關的參數(例如 Interrupt Moderation Rate)並將其設定為較低的值,例如 1000。設定 CPU 中斷次數的方式可能會因您的網路介面卡而異。您可能必須使用單獨的參數來啟用中斷調節。
    4. 選取與速度和雙工模式相關的參數(例如 Speed and Duplex Mode)並將其設定為自動(例如 Auto Negotiation)。
  6. 對所有適用的網路介面卡重複步驟 2 至 5。

Linux#

防止封包遺失的首要任務是啟用巨型畫面 (jumbo frames) 並增加 UDP 接收緩衝區大小。如果您已執行此操作但仍遇到封包遺失的問題,請嘗試調整即時優先權、環形緩衝區大小和中斷調節率。

啟用巨型封包 (Jumbo Frames)#

使用巨型畫面對於降低負擔和 CPU 負載非常重要。畫面大小越大,產生的 CPU 中斷就越少,因此 CPU 負載也就越低。透過使用以下工具將最大傳輸單元 (MTU) 設定為其最大值 9000 來啟用巨型畫面 ifconfig 命令。

若要將 MTU 設定為 eth0 網路介面設為 9000,請輸入:

sudo ifconfig eth0 mtu 9000

增加 UDP 接收緩衝區大小#

為了確保使用 Stereo ace 相機進行穩定的影像擷取,Basler 建議增加系統的最大 UDP 接收緩衝區大小,以確保穩定的影像擷取。建議最大大小至少為 4 MB。

若要增加最大 UDP 接收緩衝區大小,請輸入:

sudo sysctl net.core.rmem_max=4194304

若要使此設定永久生效,您可以將 net.core.rmem_max 設定新增至 /etc/sysctl.conf 檔案。

設定即時優先權#

pylon SDK 使用執行緒來接收影像資料。它嘗試將接收執行緒的執行緒優先權設定為即時執行緒優先權,以將抖動和封包遺失降到最低。這通常需要特殊的權限。

不過,對於使用 Linux 核心 2.6.13 或更新版本的系統,可以允許沒有 root 權限的行程設定即時排程策略。在 Ubuntu 系統上,您可以透過 /etc/security/limits.conf 檔案針對每個使用者或群組控制非特權行程的最大即時優先權。

例如,將以下行新增至 /etc/security/limits.conf 允許所有使用者啟動將執行緒優先權設定為即時優先權的應用程式:

*      -      rtprio      99

變更 /etc/security/limits.conf 需要 root 權限。

修改 /etc/security/limits.conf 檔案後,您必須先登出再重新登入。如需關於 /etc/security/limits.conf 檔案的更多詳細資料,請參閱 limits.conf man 說明頁面。

Basler 建議為所有將啟動基於 pylon SDK 之應用程式的使用者,指定大於或等於 1 的最大即時優先權 (real-time priority)。

對於核心版本 2.6.12 或更舊版本,Basler 建議以 root 權限啟動基於 pylon SDK 的應用程式,或設定基於 pylon 之應用程式的 SUID 位元 (bit)。

資訊

當設定了應用程式的 SUID 位元時,執行階段連結器 (runtime linker) 在啟動該應用程式時會忽略 LD_LIBRARY_PATH 變數的值。

您可以使用 pylon 3D Viewer 來檢查 GigE library 是否具備設定即時執行緒優先權所需的權限。啟動 pylon 3D Viewer 後,從裝置清單中開啟相機裝置。在 Features 窗格中,展開 Stream Parameters 節點。ReceiveThreadPriority 參數表示接收執行緒的執行緒優先權。如果值為零,表示該 library 沒有設定即時執行緒優先權所需的權限。大於零的值表示該執行緒是以即時執行緒優先權進行排程。

增加環形緩衝區 (Ring Buffer) 大小#

接收 (Rx) 環形緩衝區定義了 NIC 驅動程式用來接收和處理來自相機之接收影像資料的緩衝區數量。通常,環形緩衝區的設定較小,在接收大量網路流量的系統上可能需要增大。

若要使用 ethtool 指令增加環形緩衝區大小:

範例: 若要將接收 (Rx) 與傳輸 (Tx) 環形緩衝區大小設定為 eth0 網路介面設為 4096,請輸入:

sudo ethtool -G eth0 rx 4096 tx 4096

資訊

您的網路介面卡可能不支援上述組態。如果 ethtool 傳回錯誤,請略過此最佳化。

設定中斷調節速率#

中斷調節率 (IMR) 定義了延遲與效能之間的取捨。IMR 會控制中斷節流率 (ITR),也就是控制器調節中斷的速率。ITR 越低,驅動程式的回應速度就會越快,但 CPU 負載也會越高,因為會產生更多中斷。另一方面,ITR 越高,處理中斷的延遲就會越高,但 CPU 負載會較低。因此,對於大多數應用程式,Basler 建議使用較高的 IMR 值,例如 Extreme 或 3600。如果您需要較低的延遲,請使用較低的值。

若要使用 ethtool 指令設定中斷調節率:

範例: 若要套用建議的設定至 eth0 網路介面,請輸入:

sudo ethtool -C eth0 adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62

資訊

您的網路介面卡可能不支援上述組態。如果 ethtool 傳回錯誤,請略過此最佳化。

故障排除#

擷取時發生錯誤

問題: 嘗試從多部相機擷取影像時,顯示錯誤訊息 "PrepareGrab (StartStreaming) failed for device" 或 "Insufficient system resources exist to complete the API"。

解決方案: 當可用開啟檔案描述元 (file descriptors) 的數量耗盡時,可能會發生此狀況。通常可以使用以下指令為目前程序增加此限制:ulimit -n

未顯示相機

問題: 我的應用程式看不到相機,即使等待超過一分鐘也是如此。
根據相機與介面卡的 IP 組態,可能需要長達一分鐘的時間才能將有效的 IP 位址指派給相機。

解決方案: 如果 pylon IP Configurator 可用,請啟動 pylon IP Configurator (/opt/pylon/bin/ipconfigurator)。IP Configurator 中是否顯示該相機?

  • 如果相機狀態為 Not Reachable,請檢查相機的 IP 位址以及介面卡的 IP 位址。相機與網路介面卡都必須使用位於相同子網路內的 IP 位址。請參閱上方 Network Adapter IP Configuration 節。庫
  • 如果 IP Configurator 中未顯示相機,最可能的原因是啟用了防火牆。請針對相機將連接的那些網路介面卡停用防火牆。如果您沒有防火牆,核心中啟用的反向路徑過濾 (reverse-path filtering) 可能會阻止相機被偵測到。請參閱下一個問題說明以取得更多詳細資料。

無法設定相機

問題: 我的應用程式看不到我的相機。我無法重新設定相機以使其再次可見。

解決方案:首先,請確定連接相機的網路介面卡上未啟用防火牆。
如果您仍然無法看到相機,則核心中的反向路徑過濾可能會阻止您的應用程式偵測相機。當相機的 IP 位址與連接相機的網路介面卡不在同一子網路中時,可能會發生這種情況。
若要檢查是否已開啟過濾功能,請執行以下命令:

sysctl -a 2>/dev/null | grep '\.rp_filter'

在輸出中,尋找以下幾行:

net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.eth1.rp_filter=1

其中 eth1 是連接相機的網路介面卡。net.ipv4.conf.all.rp_filter 是一個必須關閉的全域開關。net.ipv4.conf.eth1.rp_filter 顯示是否啟用了指定網路介面卡的過濾功能。若要停用過濾功能,您必須先關閉 all 以及特定網路介面卡(在此範例中為 eth1)的過濾功能。請使用下列命令在執行階段變更過濾行為:

sudo sysctl net.ipv4.conf.all.rp_filter=0
sudo sysctl net.ipv4.conf.eth1.rp_filter=0

重新啟動您的應用程式,並檢查是否已偵測到相機。重新設定相機並使用 Write Configuration 使您的變更永久生效。您可以透過執行相同的命令但將值設為 1 來重新啟用過濾功能。如果您想要永久關閉過濾功能,可以在 /etc/sysctl.conf 中編輯相同的值。

從 Linux 核心版本 2.6.32 開始,rp_filter 設定允許嚴格和寬鬆的過濾。若要接受非對稱路由的封包,請修改 /etc/sysctl.conf:

net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2

錯誤代碼 0x81010014

問題:擷取影像導致錯誤,錯誤代碼為 0x81010014。此錯誤代碼表示電腦接收到不完整的影像,亦即網路封包已遺失。

解決方案 1:將最大的 UDP receive buffer size 增加到夠大的值。這可讓 pylon SDK 將通訊端緩衝區大小增加至 2 MB,以確保穩定的影像擷取。

解決方案 2:確保應用程式具有必要的權限,可將 receive thread's priority 設定為即時執行緒優先權。

解決方案 3:檢查纜線。對於 GigE,建議使用 Cat 5e 纜線。品質不良或受損的纜線可能會導致無法復原的傳輸錯誤。

未顯示影像

問題:我的應用程式似乎正在擷取影像,但未顯示任何影像。

解決方案 1:從命令列啟動您的應用程式,以查看它是否列印任何訊息。

解決方案 2:您的應用程式只接收到不完整的張。在這種情況下,會顯示諸如 Failed to grab image: GX status 0x81010014 的錯誤訊息。請參閱先前的問題以取得如何解決此問題的提示。

解決方案 3:擷取影像因其他原因而失敗。請將應用程式列印的錯誤訊息回報給 Basler 技術支援。

後續步驟#

您的相機現在已準備好使用。如需如何開始使用的資訊,請參閱 Using Stereo ace cameras。