AI 驅動文件
您想了解什麼?
透過 TCP/IP 的 Universal Robot (UR) 整合
要將 Universal Robot (UR) 與攝像頭系統整合,雙方裝置必須連線到同一本地網路。通訊透過 TCP/IP 套接字建立——除了確保兩臺裝置處於同一網路之外,不需要額外的啟用。
在此設定中,通訊以請求-響應的模式在機器人和攝像頭之間進行。攝像頭充當伺服器,機器人充當客戶端。
典型通訊流程
-
由機器人開啟一個套接字。
-
機器人向攝像頭髮送資訊。
-
攝像頭讀取資訊並將其轉換為所需格式(例如,字串、ASCII、位元組)。
-
攝像頭使用該資訊執行功能並透過 TCP 返回響應。
-
機器人等待 TCP 響應。如果在幾秒內未收到響應,機器人將繼續其流程,不依賴該響應。
備註
建議新增一個條件以確認資料是否返回。
- 機器人關閉套接字通訊。
網路配置與防火牆
網路設定
- 確保 UR 機器人與攝像頭連線到同一本地網路。
- 在同一子網內分配 IP 地址以便於通訊。
防火牆設定
- 在兩臺裝置上配置防火牆規則,以允許透過指定埠進行 TCP/IP 通訊。
- 驗證沒有網路策略阻止所需的通訊。
URScript 與 Socket 程式設計 - UR
資料格式
- 通訊可以使用多種資料格式,例如字串、ASCII 或位元組。
- 確保雙方對資料格式達成一致,以避免通訊不暢。
URScript 的 Socket 通訊函式
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 伺服器的配置 - OV10i
伺服器設定
- 將攝像頭配置為在指定埠監聽傳入的 TCP 連線(例如,埠 3000)。
- 確保攝像頭的 IP 地址是靜態地址,或對機器人是已知的,以實現穩定通訊。
資料解析
- 在相機端實現邏輯,以讀取來自機器人的傳入資料。
- 按相機功能的要求翻譯並處理資料。
- 準備並將適當的響應傳送回機器人。
UR Robot 整合的 Node-RED 邏輯
要使用 Node-RED 將 Universal Robot (UR) 整合到您的系統中,您可以建立一個簡單的流程,該流程處理來自 TCP 的傳入訊息、基於接收到的資料執行動作,並在必要時向機器人傳送響應。
示例流程
以下是一個用於分類的流程示例,其中相機在觸發後將檢查部件的完整 Pass/Fail 條件,並將響應傳送回機器人。

流程 1:
- TCP IN:在 Node-RED 中在埠 30000 開啟一個 TCP 伺服器。
- Function 1 (Reads UR):將來自 UR 機器人傳入的資料轉換為字串。要使此流工作,UR 必須傳送字串 "Trigger"。
- Switch:若字串為 "Trigger",流程繼續;若為其他值,流程停止,UR 機器人將經歷超時。
- HTTP Request:向端點(API Trigger)傳送請求以啟用相機觸發。
- Function 2 (Read Data):從全域性記憶體讀取資料(1 或 0),併為 UR 機器人上的 ASCII 讀取正確格式化。
- TCP Response:將資訊傳送回機器人。
流程 2:
- Trigger Command:此流程以觸發命令開頭。
- All Block Outputs:從上一次拍攝的影象(在 Flow 1 中觸發)生成資訊。
- Classification Block Logic:為每個 ROI(Region of Interest)設定條件,以確定 Pass 或 Fail 狀態。(單擊該塊進行設定。)
- Function 3 (Information Setup):將 Pass/Fail 條件轉換為 1 或 0,並儲存在全域性記憶體中,便於翻譯給 UR robot。
注意事項
- Flow Continuity:確保處理傳入資料的所有節點在同一 Flow 中按順序連線。如果流程分裂為並行路徑,TCP Response 可能無法正常工作。
- No Response Scenario:如果不需要響應,可以省略 TCP Response 節點。機器人應配置為在一定超時內處理未收到響應的情況。
錯誤處理與魯棒性
超時與重試
- 實現套接字操作的超時,以防機器人無限等待。
- 在臨時網路問題時包含重試機制。