跳到主要內容

AI 驅動文件

您想了解什麼?

透過 TCP/IP 整合通用機器人 (UR)

要將通用機器人 (UR) 與相機系統整合,兩個裝置必須連線到同一區域網。通訊透過 TCP/IP 套接字建立——除了確保兩個裝置共享同一網路外,無需額外啟用。

在此設定中,通訊以請求和響應的形式在機器人和相機之間進行。相機充當伺服器,機器人則作為客戶端。

典型通訊流程

  1. 從機器人開啟一個套接字。

  2. 從機器人向相機傳送資訊。

  3. 相機讀取資訊並將其轉換為所需格式(例如,字串、ASCII、位元組)。

  4. 相機使用該資訊執行功能,並透過 TCP 返回響應。

  5. 機器人等待 TCP 響應。如果在幾秒鐘內未收到響應,機器人將繼續其流程而不等待響應。

備註

建議新增條件以確認資料已返回。

  1. 機器人關閉套接字通訊。

網路配置和防火牆

網路設定

  • 確保 UR 機器人和相機連線到同一區域網。
  • 在同一子網內分配 IP 地址以促進通訊。

防火牆設定

  • 在兩個裝置上配置防火牆規則,以允許透過指定埠進行 TCP/IP 通訊。
  • 驗證沒有網路策略阻止所需的通訊。

URScript 和套接字程式設計 - UR

資料格式

  • 通訊可以使用多種資料格式,例如字串、ASCII 或位元組。
  • 確保兩個裝置就資料格式達成一致,以避免誤通訊。

用於套接字通訊的 URScript 函式

  • socket_open(address, port, "socket_name"):開啟到指定地址和埠的套接字連線。
  • socket_send_string("message", "socket_name"):透過套接字傳送字串訊息。
  • socket_send_byte(value, "socket_name"):透過套接字傳送位元組值。
  • socket_read_string("socket_name"):從套接字讀取字串訊息。
  • socket_read_ascii_float(number, "socket_name"):從套接字讀取 ASCII 浮點訊息。
  • socket_read_byte("socket_name"):從套接字讀取位元組值。
  • socket_close("socket_name"):關閉套接字連線。
# Open socket connection to the camera server
socket_open("192.168.0.2", 3000, "camera_socket")

# Send a string message
socket_send_string("Request Data", "camera_socket")

# Alternatively, send a byte value
socket_send_byte(42, "camera_socket") # Sends the byte value 42

# Read the response as a string
response = socket_read_string("camera_socket")

# Read the response as a byte
response_byte = socket_read_byte("camera_socket")

# Close the socket connection
socket_close("camera_socket")

配置為 TCP/IP 伺服器 - OV80i

伺服器設定

  • 配置相機以在特定埠(例如,埠 3000)監聽傳入的 TCP 連線。
  • 確保相機的 IP 地址是靜態的或已知的,以便機器人能夠進行一致的通訊。

資料解析

  • 在相機上實現邏輯以讀取來自機器人的傳入資料。
  • 根據相機的功能翻譯和處理資料。
  • 準備並將適當的響應傳送回機器人。

Node-RED 與 UR 機器人整合邏輯

要使用 Node-RED 將通用機器人(UR)與您的系統整合,您可以建立一個簡單的流程,處理傳入的 TCP 訊息,根據接收到的資料執行操作,並在必要時向機器人響應。

示例流程

以下是一個分類流程示例,其中相機會在觸發後檢查零件的完整透過/失敗條件,並將響應傳送回機器人。

UR 機器人分類流程示例

流程 1:

  • TCP IN:在 Node-RED 中開啟一個埠為 30000 的 TCP 伺服器。
  • 功能 1(讀取 UR):將來自 UR 機器人的傳入資料轉換為字串。為了使此流程正常工作,UR 必須傳送字串“Trigger”。
  • 開關:如果字串為“Trigger”,則流程繼續;如果是其他內容,則流程停止,UR 機器人將經歷超時。
  • HTTP 請求:向一個端點(API Trigger)傳送請求以啟用相機觸發。
  • 功能 2(讀取資料):從全域性記憶體中檢索資料(1 或 0),並將其格式化為 UR 機器人可讀取的 ASCII 格式。
  • TCP 響應:將資訊傳送回機器人。

流程 2:

  • 觸發命令:此流程以觸發命令開始。
  • 所有塊輸出:生成最後一次拍攝的圖片的資訊(在流程 1 中觸發)。
  • 分類塊邏輯:為每個 ROI(興趣區域)設定條件以確定透過或失敗狀態。(點選該塊進行設定。)
  • 功能 3(資訊設定):將透過/失敗條件轉換為 1 或 0,並將其儲存在全域性記憶體中,以便於翻譯到 UR 機器人。

注意事項

  • 流程連續性:確保處理傳入資料的所有節點在同一流程中按順序連線。如果流程分成並行路徑,TCP 響應可能無法正常工作。
  • 無響應場景:如果不需要響應,可以省略 TCP 響應節點。機器人應配置為處理在特定超時內未收到響應的情況。

錯誤處理與魯棒性

超時和重試

  • 為套接字操作實現超時,以防止機器人無限期等待。
  • 包括重試機制,以應對臨時網路問題。

🔗 另請參閱