Skip to content

复位点

概述

上位机与控制器通过复位点协议进行通信,用于设置和查询机器人复位点位置、复位 IO 参数、安全位置等相关配置。

复位点概念

复位点是机器人在特定条件下需要返回的安全参考位置。典型的应用场景包括:

  • 安全事件后复位:急停或安全门触发后,机器人需要先回到复位点才能继续运行
  • 程序异常中断后复位:程序执行中断后,机器人需要回到复位点重新开始
  • 断电重启后复位:断电后重新上电,机器人需要从复位点开始运行

复位形式

形式selectPiontOrFile 值说明
复位点0机器人移动到预设的复位点关节位置
复位程序1机器人执行预设的复位程序

插补方式

方式returnWay 值说明
关节插补0各轴以关节插补方式同时移动到复位点
直线插补1末端以直线路径移动到复位点(需要逆解)

复位点配置参数总览

参数类别参数说明
位置参数pos / posSync本体轴/外部轴复位点位置
安全参数deviation / deviationSync各轴安全范围偏差
IO 参数inPort / inValue / outPort开始/结束 IO 信号
控制参数returnWay / safeEnable / selectPiontOrFile插补方式/安全使能/复位形式

安全使能 (safeEnable)

safeEnabletrue 时:

  • 机器人在安全事件后必须手动回到安全点位置才能重新运行
  • 控制器通过 0x3665 上报当前不在安全位置的机器人状态

1. 上位机设置复位点位置

命令字: 0x3660

请求参数

参数名类型长度说明
posdouble[]7机器人复位点位置列表
posSyncdouble[]5机器人外部轴复位点位置列表
robotint1当前机器人号,范围[1,4]

请求示例

json
{
  "pos": [10.20, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  "posSync": [0.0, 0.0, 0.0, 0.0, 0.0],
  "robot": 1
}

2. 上位机查询复位点位置

命令字: 0x3661

请求参数

参数名类型说明
robotint当前机器人号,范围[1,4]

请求示例

json
{
  "robot": 1
}

3. 控制器回复上位机复位点位置

命令字: 0x3662

响应参数

参数名类型长度说明
deviationdouble[]7机器人各轴安全范围,范围[0,10]
deviationSyncdouble[]5机器人外部轴各轴安全范围,范围[0,10]
inPortint1开始 DIN
inValueint1开始 DIN 参数,范围[0,1]
outPortint1结束 DOUT
posdouble[]7机器人复位点位置列表
posSyncdouble[]5外部轴复位点位置列表
returnWayint1插补方式:0-关节插补,1-直线插补
robotint1当前机器人号,范围[1,4]
safeEnablebool1安全使能:安全使能开始时,机器人必须手动回到安全点位置才能重新运行
selectPiontOrFileint1机器人复位形式:0-复位点,1-复位程序

响应示例

json
{
  "deviation": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
  "deviationSync": [1.0, 1.0, 1.0, 1.0, 1.0],
  "inPort": 0,
  "inValue": 1,
  "outPort": 0,
  "pos": [10.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  "posSync": [0.0, 0.0, 0.0, 0.0, 0.0],
  "returnWay": 0,
  "robot": 1,
  "safeEnable": false,
  "selectPiontOrFile": 0
}

4. 上位机设置复位 IO 参数

命令字: 0x3663

请求参数

参数名类型说明
inPortint开始 DIN
inValueint开始 DIN 参数,范围[0,1]
outPortint结束 DOUT
returnWayint插补方式:0-关节插补,1-直线插补
robotint当前机器人号,范围[1,4]
safeEnablebool安全使能:安全使能开始时,机器人必须手动回到安全点位置才能重新运行
selectPiontOrFileint机器人复位形式:0-复位点,1-复位程序

请求示例

json
{
  "inPort": 0,
  "inValue": 1,
  "outPort": 0,
  "returnWay": 0,
  "robot": 1,
  "safeEnable": false,
  "selectPiontOrFile": 0
}

5. 上位机设置复位点安全位置

命令字: 0x3664

请求参数

参数名类型长度说明
deviationdouble[]7机器人各轴安全范围,范围[0,10]
deviationSyncdouble[]5机器人外部轴各轴安全范围,范围[0,10]
robotint1当前机器人号,范围[1,4]

请求示例

json
{
  "deviation": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
  "deviationSync": [1.0, 1.0, 1.0, 1.0, 1.0],
  "robot": 1
}

6. 控制器回复上位机当前不在安全位置

命令字: 0x3665

响应参数

参数名类型长度说明
currentPosdouble[]6当前机器人位置列表,长度为当前机器人轴数
isSyncbool1是否为外部轴
robotint1当前机器人号,范围[1,4]
safePosdouble[]6复位点位置列表

响应示例

json
{
  "currentPos": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
  "isSync": false,
  "robot": 1,
  "safePos": [10.2, 0.0, 0.0, 0.0, 0.0, 0.0]
}

复位点配置流程

建议按以下顺序配置复位点:

  1. 设置复位点位置 (0x3660):定义复位点的各轴关节角度
  2. 设置安全范围 (0x3664):定义各轴允许的偏差范围
  3. 设置 IO 参数 (0x3663):配置复位开始/结束的 IO 信号条件
  4. 查询验证 (0x3661/0x3662):查询当前配置,确认参数正确

注意: returnWay 选择直线插补时,需确保复位点位置在机器人的可达工作空间内,否则可能导致逆解失败。