在 GigE 網路拓撲中,相機與 Host PC 的網路卡(NIC)常因 DHCP 分配逾時、LLA(Link-Local Address, 169.254.x.x)自動配置,或人為靜態 IP 設定混亂,導致兩者不在同一個子網段(Subnet)。在 GenICam 標準中,這會使相機的存取狀態顯示為 NoAccess,導致標準 SDK 無法開啟或控制它。本文說明 IDS 生態系提供的三層解決機制,以及 RTSP 監控相機的專屬整合路徑。
痛點一:GigE 相機「網卡與相機 IP 不匹配」
1. Force IP 自動修正演算法
當自動化腳本枚舉設備時,若偵測到 GigE 相機存在但存取狀態為無法存取,可在相機尚未被開啟的情況下,透過底層傳輸層(TL)的 Force IP 機制進行實體層修正:
- 讀取網卡子網段:探索對應網路卡(Interface)的
GevInterfaceSubnetIPAddress與GevInterfaceSubnetMask節點,取得當前主機網卡的 IP 與遮罩。 - 計算並配置同網段 IP:自動計算一個同網段且不衝突的暫時性 IP,寫入相機未開啟前的虛擬節點:
GevDeviceForceIPAddress、GevDeviceForceSubnetMask、GevDeviceForceGateway。 - 執行 Force IP 命令:調用
GevDeviceForceIP命令節點並執行,例如:
node_map_interface.FindNode("GevDeviceForceIP").Execute()
此時相機會在暫時性實體層重啟並強行加入與網卡相同的子網段,狀態轉為 ReadWrite,即可順利呼叫標準的相機開啟 API。
2. 命令列無 GUI 工具:ids_ipconfig
IDS peak SDK 內建了強大的命令列網路配置公用程式 ids_ipconfig。在產線布建或系統背景服務初始化時,腳本可直接調用它——不需啟動任何厚重 GUI(如 peak Cockpit),即可掃描所有連接的網路相機,並一鍵或透過指令引數強制將其配置為符合當前網卡子網段的暫時性 IP,或永久寫入其 Persistent IP(GevPersistentIPAddress 系列節點)。
3. 系統級效能優化:Ensenso Network Wizard
若使用 3D Ensenso 系列,SDK 提供的 Network Wizard 會全自動修改系統層的網卡配置:
- 一鍵開啟網卡的巨型影格(Jumbo Frames,將 MTU 設為 9000 bytes)以提升傳輸吞吐量。
- 擴大接收緩衝區(Receive Buffer Size)。
- 自動解決逆向路徑過濾(Reverse Path Filtering, RPF)問題。
從系統根源解決因網卡效能限制導致的丟包(Frame Dropped)與 IP 衝突。
痛點二:RTSP 智慧監控相機與 uEyeLiveDeviceManager 整合
對於 uEye Live 系列(SCP / SLE / SFA 工業監控與 Dashcam 串流相機) 以及 IDS NXT 系列(malibu / oslo 等 Edge AI 智慧相機),它們的底層架構並非標準的主機採集(Host Grabbing)工業相機,而是搭載 Ambarella SoC、內建 OS 的獨立網路串流設備。因此在自動化拓撲規劃中,必須將其通訊與探索路徑與標準 2D / 3D 相機完全分流。
uEyeLiveDeviceManager 的技術定位
IDS 為工業監控與智慧 AI 串流相機打造的專屬探索與整合工具:
- 免驅動網路探索:不需在 Host 端安裝任何工業級相機驅動,即可在區域網路內自動廣播、發現並列出所有 uEye Live(SCP / SLE)與 IDS NXT(malibu / oslo)網路設備。
- 一鍵 IP 分配:直接在工具中變更相機的 DHCP 或靜態 IP。
- Web GUI 與 REST 橋接:偵測到 IP 後引導登入相機內建 Web UI,進行多路獨立 RTSP 串流設定(MJPEG / H.264)、數位 PTZ 或 Swagger 介面測試 REST API。
與調度器的整合
在自動偵測程式中,對這類 RTSP 監控相機進行專屬識別與分流:
# 節錄自設備自動化調度器
if any(k in model_name.lower() for k in ["scp", "sle", "live", "malibu", "oslo"]):
return {
"ProductFamily": "uEye Live / IDS NXT 網路串流系列",
"RecommendedTool": "uEyeLiveDeviceManager (IDS 監控與串流設備管理器)",
"DriverRequired": "無需 IDS peak 或 Software Suite,直接網路整合",
"Action": (
"1. 啟動 uEyeLiveDeviceManager 探索設備並配置 IP 網段。\n"
"2. 進入相機網頁端設定串流壓縮 (H.264/MJPEG)。\n"
"3. 以 rtsp://<ip>:8554 拉流,或呼叫 REST API 控制事件錄影。"
),
}
透過這種分流,當使用者接入 SCP 或 malibu 相機時,系統不會錯誤地引導其去尋找 pyueye 或標準 ids-peak-examples 的採集範例,而是明確指引使用 uEyeLiveDeviceManager 進行網路對齊,並提供基於 OpenCV 的標準 RTSP 拉流程式碼——完美貼合這類設備免 Host 端程式、去中心化運作的物理特性。