10.4.2 配置
在使用各项交互指令之前,需要先配置 Socket 通信相关参数,并启用该功能。配置界面位于 HMI-“通信”→“外部通信”,如下图所示:
|
注意:Socket 通信接口支持机器人作为客户端或服务端,但同一时刻仅能作为一种状态使用。 |
当机器人作为客户端使用时,需要配置参数如下:
| 配置参数 | 说明 |
|---|---|
IP |
服务端 IP,比如连接的 PLC、MES 系统 IP 地址。 |
端口 |
服务端监听端口。 |
后缀 |
服务端向机器人发送控制指令或者监控指令时,指令结束处需要附加的后缀字符。通常使用简单结束符 |
当机器人作为服务端使用时,支持多连接,如果使用多连接需要客户端注意处理控制时序冲突。需要配置参数如下:
| 配置参数 | 说明 |
|---|---|
端口 |
服务端监听端口。 |
后缀 |
服务端向机器人发送控制指令或者监控指令时,指令结束处需要附加的后缀字符。通常使用简单结束符 |
10.4.3 交互指令
交互命令包括控制指令和监控指令。
下表给出了具体的指令内容和格式。(假设用户使用 \r 作为指定的命令结束符,\r 是转义字符,表示回车,十进制值是 13)。
控制命令:
| 指令名称 | 发送的字符串 | 返回值 | 备注 |
|---|---|---|---|
关闭 socket 接口 |
|
无返回值 |
|
启动 socket 接口 |
|
无返回值 |
|
启动程序 |
|
成功返回 |
当有绑定了暂停功能的寄存器或系统 IO 没有复位时不允许启动;触发功能码后,若示教器报警提示“程序未同步至控制器,启动失败”,请同步程序后,再次触发该功能码。 |
停止程序 |
|
成功返回 |
|
清除伺服报警 |
|
成功返回 |
|
程序指针到 main |
|
成功返回 |
|
电机上电指令 |
|
成功返回 |
|
电机下电指令 |
|
成功返回 |
|
切换至手动模式 |
|
成功返回 |
|
切换至自动模式 |
|
成功返回 |
|
打开拖动 |
|
成功返回 |
仅协作机器人 |
关闭拖动 |
|
成功返回 |
仅协作机器人 |
获取工程列表 |
|
返回工程列表;无工程返回 |
|
获取当前工程 |
|
返回当前加载工程;无工程返回 |
|
切换工程 |
|
成功返回 |
|
设置 DO 的值 |
|
设置成功返回 |
示例: |
修改控制器和示教器的时间 |
|
成功返回 |
|
急停复位 |
|
成功返回 |
RSC 专用,mini 板无效 |
急停复位并清除报警 |
|
成功返回 |
|
依次执行上电、程序指针到 main、启动程序 |
|
成功返回 |
触发功能码后,若示教器报警提示“程序未同步至控制器,启动失败”,请同步程序后,再次触发该功能码。 |
依次执行上电、启动程序 |
|
成功返回 |
触发功能码后,若示教器报警提示“程序未同步至控制器,启动失败”,请同步程序后,再次触发该功能码。 |
依次执行暂停程序、下电 |
|
成功返回 |
|
设置程序运行速率 |
|
成功返回 |
|
触发和取消机器人软急停 |
|
成功返回 |
|
依次执行切换自动模式、上电 |
|
成功返回 |
|
打开对应的安全区域 |
|
成功返回 |
区域索引范围 [1-10] |
关闭对应的安全区域 |
|
成功返回 |
区域索引范围 [1-10] |
开启缩减模式 |
|
成功返回 |
|
关闭缩减模式 |
|
成功返回 |
监控指令:
| 指令名称 | 发送的字符串 | 返回值 | 备注 |
|---|---|---|---|
电机上电状态 |
|
成功返回 |
|
程序运行状态 |
|
成功返回 |
|
急停状态 |
|
当急停触发电平类型设置为高时:true(急停状态),false(非急停状态);当急停触发电平类型设置为低时:true(非急停状态),false(急停状态) |
此状态的返回值受急停触发电平类型设置的影响,当设置为高电平时,触发软急停时输出有效,未触发时输出无效;当设置为低电平时,触发软急停输出无效,未触发时输出有效 |
故障状态 |
|
成功返回 |
|
工作模式 |
|
成功返回 |
|
获取笛卡尔位置 |
|
笛卡尔位置字符串 + |
|
获取笛卡尔位置 |
|
|
|
获取轴位置 |
|
轴位置字符串 + |
|
获取轴位置 |
|
|
|
获取轴速度 |
|
轴速度字符串 + |
单位:rad/s |
获取轴速度 |
|
|
单位:rad/s |
获取轴力矩 |
|
轴力矩字符串 + |
单位:N·m |
获取轴力矩 |
|
|
单位:N·m |
Home 状态输出 |
|
有输出返回 |
|
碰撞检测状态 |
|
触发碰撞返回 |
仅协作机器人 |
获取机器人任务状态 |
|
机器人当前在进行的任务。包括: |
详见“HMI简介章节”中关于机器人当前状态的图标和描述 |
获取报警状态 |
|
有报警返回 true,无报警返回 false |
|
获取碰撞检测报警状态 |
|
有报警返回 true,无报警返回 false |
|
获取碰撞检测开启状态 |
|
碰撞检测开关开启返回 true,没开启返回 false |
|
判断控制器是否开机 |
|
机器人已开机返回 true,没开机返回 false |
|
编码器低电压报警状态 |
|
有低电压报警返回 true,没低电压报警返回 false |
|
获取机器人错误码 |
|
有错误时返回机器的错误码,没有错误码时返回 0 |
|
获取 RL 的暂停状态 |
|
RL的暂停状态,包括: |
|
获取程序复位状态 |
|
当程序指针在 main 函数第一行,且程序未开始时,输出 true;否则输出 false |
|
获取机器人当前程序运行的实际速度 |
|
当前程序运行的实际速度 范围:1~100 |
|
获取程序忙碌状态 |
|
如果是正在 pptomain,则返回 true;否则返回 false |
获取机器人是否在执行 pptomain 等耗时操作 |
获取机器人是否在运行(这里不是指程序运行) |
|
如果机器人正在动,则返回 true;否则返回 false |
|
获取安全门状态 |
|
如果安全门打开返回 true;否则返回 false |
|
获取软急停的触发状态 |
|
如果触发软急停,则返回 true;否则返回 false |
|
获取笛卡尔速度 |
|
笛卡尔速度 + |
|
获取机器人 TCP 的位姿 |
|
机器人 TCP 的位姿 + |
|
获取机器人 TCP 的速度 |
|
机器人 TCP 的速度 + |
|
获取机器人 TCP 的合成线速度 |
|
机器人 TCP 的合成线速度 + |
|
获取外部急停状态 |
|
外部急停触发返回 |
安全板为 mini 板,且固件版本不低于 1.0.8.7 |
获取手持急停状态 |
|
手持急停触发返回 |
安全板为 mini 板,且固件版本不低于 1.0.8.7 |
获取协作模式状态 |
|
协作模式触发返回 |
|
获取缩减开启模式状态 |
|
开启返回 true,未开启返回 false |
|
获取 IO 状态 |
|
返回 IO 的值,用 true 和 false 表示,如果没找到对应的 IO,则返回 null |
|
是否在路径上 |
|
在路径上返回 |
详细使用见寄存器功能码 |
是否在路径点附近 |
|
在路径点附近返回 |
详细使用见寄存器功能码 |
获取控制器时间 |
|
返回当前控制器时间,失败则返回 false |
|
拖动状态 |
|
拖动开关打开返回 |
只在协作机型生效 |
拖动按钮 1 状态 |
|
按下拖动按钮 1 时返回 |
只在协作机型生效 |
拖动按钮 2 状态 |
|
按下拖动按钮 2 时返回 |
只在非SR的协作机型生效;对于只有一个拖动按钮的CR机型,按下按钮后,drag_button1和drag_button2都返回 |
获取 TCP 相对机器人基坐标系的合成线速度 |
|
TCP 相对机器人基坐标系的合成线速度 + |
float 类型,单位 mm/s |
获取 TCP 相对世界坐标系的合成线速度 |
|
TCP 相对世界坐标系的合成线速度 + |
float,单位 mm/s |
获取 TCP 相对机器人基坐标系的位姿 |
|
TCP 相对机器人基坐标系的位姿 + |
float 数组,数组长度 7(位置 mm、四元数) |
获取 TCP 相对机器人世界坐标系的位姿 |
|
TCP 相对机器人世界坐标系的位姿 + |
float 数组,数组长度 7(位置 mm、四元数) |
获取机器人关节位置 |
|
机器人关节位置 + |
float 数组,数组长度 7,单位 rad 或 mm |
获取机器人关节速度 |
|
机器人关节速度 + |
float 数组,数组长度 7,单位 rad/s 或 mm/s |
获取机器人关节转矩 |
|
机器人关节转矩 + |
float 数组,数组长度 7,单位 N·mm |
获取附加轴关节位置 |
|
附加轴关节位置 + |
float 数组,数组长度 6,单位 rad 或 mm |
获取附加轴关节速度 |
|
附加轴关节速度 + |
float 数组,数组长度 6,单位 rad/s 或 mm/s |
获取附加轴关节转矩 |
|
附加轴关节转矩 + |
float 数组,数组长度 7,单位 N·mm |
备注:
| 字符串格式 | 单位 | |
|---|---|---|
笛卡尔位置 |
x、y、z、a、b、c、q1、q2、q3、q4 |
x、y、z 单位 mm; |
轴位置 |
j1、j2、j3、j4、j5、j6、j7 |
机器人轴角度单位 rad; |
轴速度 |
vj1、vj2、vj3、vj4、vj5、vj6、vj7 |
机器人轴速度单位 rad/s; |
轴力矩 |
tj1、tj2、tj3、tj4、tj5、tj6、tj7 |
机器人轴与附加轴力矩的单位都是电机额定力矩的千分比 |