跳到主要內容

AI 驅動文件

您想了解什麼?

TCP 通訊設定

本指南介紹如何使用 Node-RED 配置 OV10i 攝像頭與外部裝置之間的 TCP 通訊。TCP 通訊適用於實時資料交換、遠端控制,或與自定義應用程式和系統的整合。

影片指南

檢視本主題的實際操作:Auto-Integration Builder

跳過手動設定

用簡明的英語描述您的 TCP 整合需求,Auto-Integration Builder 將在幾秒鐘內為您生成完整的 Node-RED 流程。

何時使用 TCP 通訊: 實時資料流傳輸、自定義應用程式整合、與外部系統的雙向通訊、高頻資料交換,或當 HTTP/REST API 不適用時。

先決條件

  • OV10i 攝像頭系統已設定並連線
  • 具備 TCP 通訊能力的目標裝置/系統
  • 攝像頭與目標裝置之間的網路連通性
  • 基本瞭解 IP 地址和埠號
  • 已配置活動程式(影象設定與檢查設定已完成)

第一步:驗證網路配置

1.1 檢查攝像頭 IP 地址

  1. 導航至 System Settings
  2. 記錄攝像頭 IP 地址(例如 192.168.0.100
  3. 驗證子網掩碼與網路配置

1.2 確認目標裝置網路

確保網路相容性:

  • 相同子網: 攝像頭和目標裝置必須位於同一網路範圍
  • 可訪問埠: 目標裝置埠不得被防火牆阻止
  • 網路連通性: 如有可能,使用 ping 命令進行測試

1.3 網路要求

要求攝像頭目標裝置備註
IP 範圍192.168.0.100192.168.0.xxx必須為相同子網
子網掩碼255.255.255.0255.255.255.0標準配置
埠訪問49155(示例)49155(示例)避免使用保留埠
防火牆允許 TCP 流量允許 TCP 流量雙向

第二步:訪問 Node-RED 編輯器

2.1 導航至 IO模組

  1. 在程式麵包屑選單中點選 "IO Block",或
  2. 從程式編輯器中選擇 "Configure I/O"

2.2 開啟 Node-RED 編輯器

  1. 點選 Configure IO 進入 Node-RED 流程編輯器
  2. 驗證 Node-RED 介面是否正常載入

檢查點: 您應看到 Node-RED 流程編輯器,左側帶有節點面板。

第三步:配置 TCP 輸入(接收資料)

3.1 新增 TCP 輸入節點

  1. 在左側面板中找到 "tcp in" 節點(Network 部分)
  2. 將 "tcp in" 節點拖放到流程畫布上
  3. 雙擊節點進行配置

3.2 配置 TCP 輸入設定

節點配置:

設定說明
TypeListen on攝像頭作為伺服器
Port49155攝像頭監聽的埠
Data modeStream連續資料流
Data typeUTF8基於文字的通訊
Topic(可選)訊息分類

3.3 TCP 輸入配置步驟

  1. 伺服器配置:
    • 選擇 "Listen on port"(伺服器模式)
    • 輸入埠號(例如 49155
  2. 資料處理:
    • Data mode: 選擇 "Stream" 用於連續資料
    • Data type: 選擇 "UTF8" 用於文字,或選擇 "Buffer" 用於二進位制
  3. 高階設定:
    • 新行字元: 除非需要特定分隔符,否則留空
    • Topic: 可選的訊息路由識別符號
  4. 點選 Done 儲存配置

3.4 埠選擇指南

埠範圍用途建議
1-1023系統保留避免使用
1024-49151已註冊埠檢查可用性
49152-65535動態/私有推薦使用

第四步:配置 TCP 輸出(傳送資料)

4.1 新增 TCP 輸出節點

  1. 在左側面板(Network 部分)中找到 "tcp out" 節點
  2. "tcp out" 節點拖動到流程畫布上
  3. 雙擊節點進行配置

image.png

4.2 配置 TCP 輸出設定

節點配置:

設定說明
TypeConnect to相機作為客戶端
Host192.168.0.200目標裝置 IP 地址
Port49155目標裝置埠
ModeClient出站連線

4.3 TCP 輸出配置步驟

  1. 連線設定:
    • Type: 選擇 "Connect to"(客戶端模式)
    • Host: 輸入目標裝置 IP 地址
    • Port: 輸入目標裝置埠號
  2. 連線選項:
    • Mode: 保持為 "Client"
    • End connection: 根據使用場景進行配置
  3. 資料格式:
    • Base64: 文字資料通常禁用
    • TLS: 僅在需要安全連線時啟用
  4. 點選 Done 儲存配置

第五步:建立通訊流程

5.1 構建完整流程

建立一個既可傳送又可接收 TCP 資料的流程:

  1. 將以下節點新增到畫布:
    • Inject 節點(用於觸發訊息)
    • Function 節點(用於訊息處理)
    • TCP Out 節點(用於傳送資料)
    • TCP In 節點(用於接收資料)
    • Debug 節點(用於監控)

5.2 配置 Inject 節點

  1. 雙擊 inject 節點
  2. 配置設定:
    • Name: "Send Message"
    • Payload: Timestamp
    • Topic: (留空)
  3. 點選 Done

5.3 配置 Function 節點

function 節點將格式化您的傳出訊息:

msg.payload = "Hello from OV10i camera";
return msg;

  1. 雙擊 function 節點
  2. 上述程式碼複製到 "On Message" 選項卡
  3. Name: "Format Message"
  4. 點選 Done

5.4 連線節點

按以下順序連線節點:

傳出流程:

  • Inject → Function → TCP Out
  • Function → Debug(用於檢視傳出訊息)

傳入流程:

  • TCP In → Debug(用於檢視傳入訊息)

5.5 完整流程結構

您的最終流程應包含:

  • Inject 連線到 Function
  • Function 同時連線到 TCP OutDebug
  • TCP In 連線到單獨的 Debug 節點

結果: 您可以透過點選 inject 按鈕傳送訊息,並在 debug 面板中同時檢視傳出和傳入的訊息。

第六步:配置訊息格式

6.1 定義訊息格式

保持訊息結構簡單:

訊息型別格式示例
簡單文字純字串"Hello from camera"
狀態更新帶資訊的文字"STATUS: READY"
資料值鍵值格式"TEMPERATURE: 25.5"

6.2 自定義訊息示例

您可以針對不同的訊息型別修改 function 節點:

簡單狀態訊息:

msg.payload = "Camera Ready";
return msg;

時間戳訊息:

msg.payload = "Time: " + new Date().toLocaleString();
return msg;

帶值的資料:

msg.payload = "INSPECTION_COUNT: 42";
return msg;

第 7 步:部署和測試配置

7.1 部署 Node-RED 流

  1. 點選 Deploy 按鈕(右上角)
  2. 驗證部署成功訊息
  3. 檢查節點狀態指示器:
    • 綠點: 成功連線
    • 紅點: 連線錯誤
    • 黃點: 正在嘗試連線

7.2 測試 TCP 通訊

7.2.1 基本連線測試

使用命令列工具:

# Test TCP connection (Linux/Mac)
telnet [camera-ip] [port]
# Example: telnet 192.168.0.100 49155

# Test with netcat
nc [camera-ip] [port]
# Example: nc 192.168.0.100 49155

Windows PowerShell:

Test-NetConnection -ComputerName 192.168.0.100 -Port 49155

7.2.2 傳送測試訊息

  1. 連線到相機 TCP 埠
  2. 傳送測試命令:
    • "STATUS" → 應收到狀態響應
    • "TRIGGER" → 應觸發檢測
    • "INVALID" → 應處理未知命令

7.2.3 監控除錯輸出

  1. 開啟 Node-RED 除錯面板(右側邊欄)
  2. 透過 TCP 傳送測試訊息
  3. 驗證除錯輸出顯示:
    • 傳入訊息
    • 處理結果
    • 傳出響應

7.3 驗證清單

測試預期結果狀態
TCP 連線成功連線到相機埠
訊息接收除錯顯示傳入訊息
訊息處理function 節點正確處理
響應傳送目標裝置接收響應
錯誤處理無效訊息被妥善處理

第 8 步:與檢測系統整合

8.1 連線到檢測觸發器

將 TCP 通訊與檢測工作流連結:

  1. 新增 "All Block Outputs" 節點(如果尚未存在)
  2. 將檢測結果連線到 TCP 輸出
  3. 格式化檢測資料以便 TCP 傳輸

8.2 檢測資料整合

用於處理檢測結果的 function 節點:

// Get inspection results from All Block Outputs
const results = msg.payload;

// Extract key information
const inspectionSummary = {
result: results.pass ? "PASS" : "FAIL",
timestamp: new Date().toISOString(),
processing_time: results.processing_time,
roi_count: results.roi_results ? results.roi_results.length : 0
};

// Format for TCP transmission
msg.payload = JSON.stringify(inspectionSummary);
return msg;

8.3 雙向控制

透過 TCP 啟用遠端控制:

// Handle remote commands
const command = msg.payload.toString().toUpperCase();

switch(command) {
case "START_INSPECTION":
// Trigger inspection sequence
global.set("trigger_inspection", true);
msg.payload = "INSPECTION_STARTED";
break;

case "STOP_INSPECTION":
// Stop inspection sequence
global.set("trigger_inspection", false);
msg.payload = "INSPECTION_STOPPED";
break;

case "CHANGE_RECIPE":
// Recipe change logic
msg.payload = "RECIPE_CHANGED";
break;
}

return msg;

第 9 步:常見問題故障排除

9.1 連線問題

問題症狀解決方案
無法連線紅色狀態指示燈檢查 IP 地址和埠
連線中斷間歇性黃色狀態驗證網路穩定性
超時錯誤響應延遲調整超時設定
埠衝突連線被拒絕使用不同的埠號

9.2 資料傳輸問題

問題症狀解決方案
未接收到資料除錯顯示空訊息檢查資料格式設定
資料損壞除錯中顯示亂碼驗證編碼(UTF8/Buffer)
訊息丟失訊息缺失檢查網路穩定性
大訊息問題資料被截斷使用較短的訊息

9.3 除錯技巧

系統化故障排除:

  1. 在每個步驟啟用除錯節點
  2. 監控 Node-RED 日誌以查詢錯誤
  3. 首先使用簡單的 TCP 客戶端測試
  4. 透過 ping 驗證網路連通性

成功!您的 TCP 通訊已就緒

您的 TCP 通訊系統現在可以:

  • 在相機和外部裝置之間傳送和接收資料
  • 處理簡單訊息以進行基本通訊
  • 使用除錯節點監控資料流
  • 為您的應用處理基本網路通訊

持續維護

定期系統檢查

  • 長期監控連線穩定性
  • 驗證資料傳輸是否持續正常工作
  • 檢查除錯日誌中是否有任何錯誤模式
  • 網路變更後測試通訊

下一步

設定基本 TCP 通訊後:

  1. 使用已建立的連線測試您的外部系統
  2. 根據您的特定需求定製訊息格式
  3. 隨著需求增長新增更復雜的邏輯
  4. 如果 TCP 無法滿足所有需求,請考慮其他通訊方法

🔗 另請參閱

對於高吞吐量應用:

  1. 降低訊息頻率
  2. 批處理多條訊息
  3. 對大資料使用二進位制格式
  4. 實現壓縮

除錯技巧

系統化故障排除:

  1. 在每個步驟啟用除錯節點
  2. 監控 Node-RED 日誌以查詢錯誤
  3. 使用網路監控工具(Wireshark)
  4. 首先使用簡單的 TCP 客戶端測試

成功!您的 TCP 通訊已就緒

您的 TCP 通訊系統現在可以:

  • 在相機和外部裝置之間傳送和接收資料
  • 處理命令以進行遠端控制
  • 實時傳輸檢查結果
  • 透過適當的錯誤處理優雅地處理錯誤
  • 與生產系統整合以實現自動化工作流

持續維護

定期系統檢查

  • 監控連線穩定性隨時間的變化
  • 驗證生產中的資料完整性
  • 根據需要更新安全配置
  • 根據使用模式最佳化效能

效能監控

  • 跟蹤訊息吞吐量和延遲
  • 監控錯誤率和連線故障
  • 分析資料模式以尋找最佳化機會

後續步驟

設定 TCP 通訊後:

  1. 使用已建立的協議與您的外部系統整合
  2. 為生產使用實施全面的錯誤處理
  3. 設定日誌記錄和監控以確保系統健康
  4. 考慮生產部署的安全增強措施

🔗 另請參閱