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

網路設定 (blaze)#

本主題說明如何設定網路介面卡並變更您的 Basler blaze 或 Smart blaze 相機的 IP 設定。

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

資訊

本主題中的所有資訊均適用於所有 blaze 與 Smart blaze 相機型號。為求簡潔,文中以 "blaze" 統稱所有型號。

網路設定逐步指南#

下列步驟將引導您完成在網路設定中建立 blaze 相機的程序。

  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. 停用相機所連接之網路介面的 防火牆。

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

點對點網路架構#

其中一個選項是在相機與主機電腦之間建立點對點(peer-to-peer)連線。

相機可以連接至個別的 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。

透過網路交換器連接#

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

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

透過網路交換器連接

  • 優點: 允許將多個相機連接至單一主機電腦。
  • 優點: 允許更長的整體纜線長度,因為各裝置之間的纜線長度最高可達 100 公尺。
  • 缺點: 交換器到電腦只有一個 GigE 連線。相機必須共用此單一通道上可用的頻寬。單一通道上可用的頻寬約為 125 MByte/s。

資訊

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

為了獲得最佳效能與可靠性,Basler 建議使用 Intel PRO 1000、I210、I340 和 I350 系列的網路卡。

網路介面卡 IP 設定#

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

  • 指派固定(也稱為「靜態」或「永久」)位址
  • 透過 DHCP (Dynamic Host Configuration Protocol) 或 Auto IP(Automatic Private IP Addressing,基於鏈路本地位址 (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 版內容

  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 版內容 (替代組態)

Linux#

若要設定網路卡:

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

    設定應用程式

  3. 按一下 IPv4 標籤。

    網路卡設定

    • 對於 DHCP,將 IPv4 方法 設定為 自動 (DHCP)。
    • 對於靜態位址指派,請將 IPv4 方法 設定為 手動,然後在 位址 區域中輸入 位址、網路遮罩,以及必要的 閘道。
    • 對於自動位址指派,請將 IPv4 方法 設定為 僅限本機連結。
  4. 按一下 套用 以儲存設定。

相機 IP 位址設定#

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

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

資訊

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

防火牆設定#

Windows#

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

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

  1. 按下 Win+R,輸入 wf.msc,然後按下 Enter 鍵。
    隨即會開啟具有進階安全性的 Windows 防火牆視窗。
  2. 按一下Windows 防火牆內容。

    具有進階安全性的 Windows 防火牆視窗

    隨即會開啟本機電腦上的具有進階安全性的 Windows 防火牆內容…視窗。

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

  4. 按一下自訂。

    具有進階安全性的 Windows 防火牆設定

    隨即會開啟公用設定檔的受保護網路連線視窗。該視窗會列出已開啟防火牆的連線。

    受保護網路連線視窗

  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) 以外的所有核取方塊:

    網路卡內容視窗

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

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

若要最佳化介面卡屬性:

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

Linux#

防止封包遺失的首要步驟是增加 UDP receive buffer size。如果您已執行此操作,但仍遇到封包遺失的問題,請嘗試調整real-time priority、ring buffer size 以及 interrupt moderation rate。

增加 UDP 接收緩衝區大小#

為了讓 blaze 相機進行穩定的影像擷取,Basler 建議增加系統的最大 UDP receive buffer size,以確保影像擷取穩定。建議最大大小至少為 4 MB。

若要增加最大 UDP receive buffer size,請輸入:

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 應用程式的使用者指定最大即時優先順序 $\ge 1$。

對於核心 2.6.12 或更低版本,Basler 建議使用 root 權限啟動基於 pylon SDK 的應用程式,或者設定基於 pylon 應用程式的 SUID 位元。

資訊

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

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

增加環形緩衝區大小#

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

若要使用 ethtool 命令增加 ring buffer size:

範例: 若要將 eth0 網路介面的接收 (Rx) 與傳輸 (Tx) 環形緩衝區大小設為 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」。

解決方法: 當可用開啟檔案描述元數量耗盡時,可能會發生此情況。通常可以使用此命令為目前程序增加限制: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 設定允許嚴格 (strict) 與寬鬆 (loose) 過濾。若要接受非對稱路由封包,請修改 /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,以確保影像擷取穩定。

Solution 2:請確保應用程式具有必要的權限,能將接收執行緒優先順序 (receive thread's priority)設定為即時執行緒優先順序。

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

未顯示影像

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

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

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

Solution 3:由於其他原因導致擷取影像失敗。請將應用程式所列印的錯誤訊息回報給 Basler 技術支援。

後續步驟#

您的相機現已準備好使用。如需如何開始使用的資訊,請參閱使用 blaze 相機。