优傲机器人UR ROBOT socket通信脚本解释

1.0socket通信介绍
Socket通讯常用于机器人和相机等设备交互数据,优傲机器人socket通信编程只能作为客户端。当打开机器人端口时需要给定服务端IP及端口号,机器人可以和多个服务端通讯。当仅连接一个服务端时可以省略socket_name参数。当机器人需要和多个服务端通讯时需要给端口指定名字,以便后续区分不同端口。两台机器人如果需要交互信号可以采用modbus连接。由于socket通信机器人可以作为客户端,说以机器人可以连接其他机器人发送dashboard指令,控制其他机器人。
本文档使用socket调试助手和机器人虚拟机测试。调试助手可以收发字符串(文本形式)以及字节流(16进制形式)。

2.0打开关闭脚本
2.1打开端口

socket_open(address, port, socket_name=’socket_0’) 
打开以太网通信。
试图打开端口连接,2秒后超时。
参数 
address:服务器地址(字符串) 
port:端口号(整数) 
socket_name:端口的名称(字符串) 
返回值 
如果失败,则为False;如果成功建立连接,则为True 

2.2关闭端口

socket_close(socket_name=’socket_0’) 
关闭以太网通信。
关闭与服务器的端口连接。
>>> socket_comm_close() 
参数 
socket_name:端口的名称(字符串)
下图是机器人打开和关闭端口脚本。

优傲机器人UR ROBOT socket通信脚本解释_第1张图片


3.0接收脚本
3.1读ASCII字符串转换为浮点数

socket_read_ascii_float(number, socket_name=’socket_0’) 
读取来自所连接TCP/IP的多个ASCII格式化标记。一个命令中最多可读取30个数值。
>>> list_of_four_floats = socket_read_ascii_float(4) 
编号的格式应当在括号内,并且通过“,”隔开。四个编号的示例列表如下所述:“(1.414, 3.14159, 1.616, 0.0)”。
返回的列表含有读取的所有编号,然后每个编号依次排列。例如,上述示例的read_ascii_float应当返回[4, 1.414, 3.14159, 1.616, 0.0]。
读取失败或2秒后超时将返回如下所述的列表:以0作为第一元素,随后的元素中为“非编号(nan)”(例如,对于三个编号的读取:[0, nan., nan, nan])。
参数 
number:要读取的变量个数(整数) 
socket_name:端口的名称(字符串) 
返回值 
读取的编号列表(浮点数列表,长度=个数+1)

优傲机器人UR ROBOT socket通信脚本解释_第2张图片

 

 

3.2读字符串

socket_read_string(socket_name=’socket_0’) 
读取来自所连接TCP/IP的字符串。字节为网络字节顺序。
>>> string_from_server = socket_read_string() 
返回(例如)“reply string from the server”(返回来自服务器的字符串),如果超时(2秒)或者回复无效,则返回空的字符串(“”)。您可以通过if语句测试字符串是否为空。
>>> if(string from server) : 
>>> popup("the string is not empty") 
>>> end 
参数 
socket_name:端口的名称(字符串) 
返回值 
字符串变量

优傲机器人UR ROBOT socket通信脚本解释_第3张图片

3.3读每32位整数保存到列表
socket_read_binary_integer(number, socket_name=’socket_0’) 
读取来自所连接TCP/IP的多个32位整数。字节为网络字节顺序。一个命令中最多可读取30个数值。
>>> list_of_three_ints = socket_read_binary_integer(3) 
返回(例如)[3,100,2000,30000],如果超时(2秒)或者回复无效,则返回[0,-1,-1,-1],表示已经读取了0个整数。
参数 
number:要读取的变量个数(整数) 
socket_name:端口的名称(字符串) 
返回值 
读取的编号列表(整数列表,长度=个数+1) 
按照32位一个整数读取数据并存入列表变量。
3.4读每字节(8位)整数保存到列表

socket_read_byte_list(number, socket_name=’socket_0’) 
读取来自所连接TCP/IP的多个字节。字节为网络字节顺序。一个命令中最多可读取30个数值。
>>> list_of_three_ints = socket_read_byte_list(3) 
返回(例如)[3,100,200,44],如果超时(2秒)或者回复无效,则返回[0,-1,-1,-1],表示已经读取了0个字节。
参数 
number:要读取的变量个数(整数) 
socket_name:端口的名称(字符串) 
返回值 
读取的编号列表(整数列表,长度=个数+1) 
按照8位一个整数读取数据并存入列表变量。

优傲机器人UR ROBOT socket通信脚本解释_第4张图片

4.0发送脚本
4.1将整数以字节长度发送到服务端
socket_send_byte(value, socket_name=’socket_0’) 
将字节发送给服务器。
通过端口发送字节。预期无响应。可用于发送特殊的ASCII字符;10是换行,2是文本开始,3是文本结束。
参数 
value:要发送的编号(字节) 
socket_name:端口的名称(字符串)
4.2将整数以32位长度发送到服务端
socket_send_int(value, socket_name=’socket_0’) 
将整数(int32_t)发送给服务器。
通过端口发送整数。以网络字节顺序发送。预期无响应。
参数 
value:要发送的编号(整数) 
socket_name:端口的名称(字符串) 

4.3发送以换行符结尾的字符串到服务端
socket_send_line(str, socket_name=’socket_0’) 
将带换行符的字符串发送给服务器– 适用于与UR仪表板服务器的通信。
通过端口以ASCII编码发送字符串。预期无响应。
参数 
str:要发送的字符串(ASCII) 
socket_name:端口的名称(字符串)


4.4发送字符串到服务端

 socket_send_string(str, socket_name=’socket_0’) 
将字符串发送给服务器。
通过端口以ASCII编码发送字符串。预期无响应。
参数 
str:要发送的字符串(ASCII) 
socket_name:端口的名称(字符串) 

优傲机器人UR ROBOT socket通信脚本解释_第5张图片

 

 

 

你可能感兴趣的:(c++,人工智能,智能传感器)