德國 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)。
- 命令列:使用 IDS peak 套件隨附的
二、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,
}
此類調度器可作為工業控制或機器人視覺系統最外層的「硬體隨插即用自動化初始化模組」,在相機到手的瞬間,一次完成網段匹配、驅動判定與安全解鎖策略派發。永視可協助將此邏輯整合進您現有的產線或視覺系統。