AI 驱动文档
您想了解什么?
通过 TCP/IP 集成通用机器人 (UR)
要将通用机器人 (UR) 与相机系统集成,两个设备必须连接到同一局域网。通信通过 TCP/IP 套接字建立——除了确保两个设备共享同一网络外,无需额外激活。
在此设置中,通信以请求和响应的形式在机器人和相机之间进行。相机充当服务器,机器人则作为客户端。
典型通信流程
-
从机器人打开一个套接字。
-
从机器人向相机发送信息。
-
相机读取信息并将其转换为所需格式(例如,字符串、ASCII、字节)。
-
相机使用该信息执行功能,并通过 TCP 返回响应。
-
机器人等待 TCP 响应。如果在几秒钟内未收到响应,机器人将继续其流程而不等待响应。
备注
建议添加条件以确认数据已返回。
- 机器人关闭套接字通信。
网络配置和防火墙
网络设置
- 确保 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 消息,根据接收到的数据执行操作,并在必要时向机器人响应。
示例流程
以下是一个分类流程示例,其中相机会在触发后检查零件的完整通过/失败条件,并将响应发送回机器人。

流程 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 响应节点。机器人应配置为处理在特定超时内未收到响应的情况。
错误处理与鲁棒性
超时和重试
- 为套接字操作实现超时,以防止机器人无限期等待。
- 包括重试机制,以应对临时网络问题。