德國 IDS 的相機安全與密碼保護機制,依據產品線架構(GenICam、嵌入式系統、傳統驅動)主要分為三種安全防護拓撲。掌握這些差異,才能在系統整合時正確取得寫入權限、避免設定被未授權修改。

一、標準 2D uEye+ / Modern GenICam 相機(U3V / GEV)

  • 運作機制:符合 GenICam / SFNC 標準的相機,其硬體暫存器防護由傳輸層(Transport Layer)與相機內建的 DevicePassword 節點控制。
  • 安全狀態:相機出廠預設未啟用密碼。若用戶啟用密碼保護,關鍵配置節點(例如調整曝光、更改增益或將 UserSet 儲存到 EEPROM)會顯示為唯讀(ReadOnly)隱藏(Hidden)
  • 解鎖方式
    • 命令列:使用 IDS peak 套件隨附的 ids_devicecommand 工具。
    • 程式化:在初始化並取得 NodeMap 後,先往 DevicePassword 節點寫入密碼字串以取得寫入權限(Write Access)。

二、uEye Live 監控相機(SCP / SLE)與 IDS NXT 智慧相機

  • 運作機制:這類設備是免 Host 運作、內建 Ambarella 晶片與網頁伺服器(Web Server)的網路設備,安全機制採用標準的 HTTP 登入與身份驗證
  • 權限分流(RBAC):使用者存取相機網頁端(Web UI)或內建 REST API 時,需登入為以下身分之一:
    • Administrator(管理員):具備修改 ISP 色彩、RTSP 串流、數位 PTZ、事件錄影及下載影片的完整控制權。
    • User(一般使用者):僅具備受限的即時影像檢視(Live View)權限。
  • 程式解鎖:若以 Python 呼叫其 REST API 控制錄影(例如透過 requests 庫),必須在 HTTP 請求中帶入 HTTP Digest 驗證資訊

三、Legacy uEye 相機(IDS Software Suite 4.95+)

  • 運作機制:早期 UI- 開頭相機的密碼鎖定與保護,透過 IDS Software Suite 控制。
  • 解鎖方式:整合人員可透過 Windows 的 uEye 密碼管理 GUI 工具,或在背景以命令列執行密碼解鎖,確保參數集(Parameterset)不被未授權修改。

整合:把拓撲分流、IP 匹配與密碼策略合成一支腳本

設備拓撲分流GigE IP 匹配密碼保護策略整合,可讓相機在接上系統的瞬間自動完成:讀取型號與網路狀態、判定家族與驅動、派發對應的密碼防護策略。核心邏輯如下:

def dispatch_device(self, device_info):
    model = device_info["ModelName"]
    current_ip = device_info["CurrentIP"]

    # 1. 網路適配與 IP 衝突偵測(GigE)
    network_action = "IP 網段匹配正確。"
    if self.is_gige(model):
        target_ip, _, need_fix = self.calculate_force_ip(current_ip)
        if need_fix:
            network_action = f"執行 Force IP,寫入同網段暫時性 IP:{target_ip}"

    # 2. 拓撲調度
    if model.startswith("UI-"):
        family, driver, sdk = "Legacy uEye 2D", "IDS Software Suite", "uEye SDK / pyueye"
    elif model.startswith(("U3-", "GV-")) or "nion" in model.lower():
        family, driver, sdk = "Modern uEye+ 2D / ToF", "IDS peak SDK", "genericSDK / comfortSDK"
    elif any(p in model for p in ["N3", "N4", "C5", "B5", "S1", "X3", "XR"]):
        family, driver, sdk = "Ensenso 3D", "Ensenso SDK", "NxLib API"
    elif any(k in model.lower() for k in ["scp", "sle", "live", "malibu", "oslo"]):
        family, driver, sdk = "uEye Live / IDS NXT", "無需主機驅動", "REST API / RTSP / OPC UA"
    else:
        family, driver, sdk = "未知/客製", "-", "-"

    # 3. 密碼解鎖策略
    security = self.resolve_password_strategy(family, model)

    return {
        "Family": family, "Driver": driver, "SDK": sdk,
        "Network_Action": network_action, "Security_Strategy": security,
    }

此類調度器可作為工業控制或機器人視覺系統最外層的「硬體隨插即用自動化初始化模組」,在相機到手的瞬間,一次完成網段匹配、驅動判定與安全解鎖策略派發。永視可協助將此邏輯整合進您現有的產線或視覺系統。