- 03 Feb 2025
- 打印
- PDF
通用机器人 (UR) 通信 - TCP/IP
- 更新于 03 Feb 2025
- 打印
- PDF
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")
: 关闭套接字连接。
# 打开到相机服务器的套接字连接
socket_open("192.168.0.2", 3000, "camera_socket")
# 发送字符串消息
socket_send_string("Request Data", "camera_socket")
# 或者,发送字节值
socket_send_byte(42, "camera_socket") # 发送字节值 42
# 以字符串形式读取响应
response = socket_read_string("camera_socket")
# 以字节形式读取响应
response_byte = socket_read_byte("camera_socket")
# 关闭套接字连接
socket_close("camera_socket")
配置为 TCP/IP 服务器 - OV20i
服务器设置
配置相机监听 指定端口(例如端口 3000)的传入 TCP 连接。
确保相机的 IP 地址为静态 或已知,以便机器人能够保持稳定的通信。
数据解析
在相机上实现逻辑 以读取来自机器人的传入数据。
根据相机功能翻译和处理数据。
准备并发送适当的响应 返回给机器人。
Node-RED 逻辑用于 UR 机器人集成
要使用 Node-RED 将通用机器人 (UR) 与系统集成,可以创建一个简单的流程,用于处理传入的 TCP 消息、根据接收到的数据执行操作,并在必要时返回响应给机器人。
示例
以下是一个分类流程示例,其中相机将在触发后检查部件的完整通过/失败条件,并将响应返回给机器人。
流程 1
TCP IN: 在 Node-RED 上的端口 30000 启动 TCP 服务器。
Function 1 (读取 UR): 将来自 UR 机器人的传入数据转换为字符串。为了使此流程正常工作,UR 必须发送字符串 "Trigger"。
Switch: 如果字符串是 "Trigger",流程继续;如果是其他内容,流程停止,UR 机器人将经历超时。
HTTP 请求: 向端点(API 触发器)发送请求以激活相机触发。
Function 2 (读取数据): 从全局内存中检索数据(1 或 0),并将其正确格式化以便 UR 机器人进行 ASCII 阅读。
TCP 响应: 将信息返回给机器人。
流程 2
触发命令: 该流程从触发命令开始。
所有块输出: 生成来自上次拍摄的图片的信息(在流程 1 中触发)。
分类块逻辑: 为每个 ROI(感兴趣区域)设置条件,以确定通过或失败状态。(点击该块进行设置。)
Function 3 (信息设置): 将通过/失败条件转换为 1 或 0,并存储在全局内存中,便于 UR 机器人进行翻译。
注意事项
流程连续性: 确保所有处理传入数据的节点按顺序连接在同一流程中。如果流程分成并行路径,TCP 响应可能无法正常工作。
无响应场景: 如果无需响应,可以省略 TCP 响应节点。机器人应配置为处理在一定超时内未收到响应的情况。
错误处理与健壮性
超时与重试
实现套接字操作超时,防止机器人无限期等待。
包含重试机制,以应对临时网络问题。
参考文献
URScript 手册:
有关 URScript 套接字函数的详细信息,请参阅 URScript 编程语言 - 脚本手册。
Node-RED 文档
请访问 Node-RED 网站,查阅关于设置和使用 Node-RED 进行应用集成的指南。