运动控制
伺服状态
说明
- 伺服状态的设置与查询,当前已连接伺服方式的查询
- 当前伺服状态为伺服错误时,无法通过0x3000命令修改伺服状态
- 上位机设置机器人伺服状态
上位机设置机器人伺服状态
命令字: 0x3000
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
| state | int | [0,1] | 伺服状态;0表示伺服停止,1表示伺服就绪 |
{
"robot": 1,
"state": 1
}上位机查询机器人伺服状态
命令字: 0x3001
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}控制器回复上位机机器人伺服状态
命令字: 0x3002
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| mode | int | [0,1] | 0表示单机模式,1表示多机模式 |
| robot | int | [1,4] | 当前机器人号 |
| state | int | [0,3] | 伺服状态;0表示伺服停止,1表示伺服就绪,2表示伺服错误,3表示伺服运行 |
{
"mode": 0,
"robot": 1,
"state": 0
}上位机查询机器人伺服连接方式
命令字: 0x3003
{}控制器回复上位机机器人伺服连接方式
命令字: 0x3004
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| servoType | int | [0,1] | 0表示实际伺服,1表示虚拟伺服 |
{
"robot": 1,
"servoType": 0
}查询伺服连接状态
命令字: 0x3005
控制器回复
| 字段 | 类型 | 说明 |
|---|---|---|
| robot | int | 当前机器人号,范围 [1,4] |
| servoType | int | 当前机器人伺服连接状态:0 实际伺服,1 虚拟伺服 |
{
"robot": 1,
"servoType": 0
}操作模式
说明
- 机器人当前操作模式的设置与查询
- 操作模式默认为示教模式
上位机设置当前机器人操作模式
命令字: 0x3010
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| mode | int | [0,2] | 操作模式;0表示示教模式,1表示远程模式,2表示运行模式 |
{
"mode": 0
}上位机查询当前机器人操作模式
命令字: 0x3011
{}控制器回复上位机当前机器人操作模式
命令字: 0x3012
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| mode | int | [0,2] | 操作模式;0表示示教模式,1表示远程模式,2表示运行模式 |
{
"mode": 0
}示教模式
说明
- 示教模式类型的设置与查询
- 拖拽模式运动时切换为点动模式会失败
上位机设置当前示教模式类型
命令字: 0x3020
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| teachType | int | [0,2] | 示教模式类型;0表示点动(单动),1表示拖拽示教,2表示点动(联动) |
{
"teachType": 0
}上位机查询当前示教模式类型
命令字: 0x3021
{}控制器回复上位机当前示教模式类型
命令字: 0x3022
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| type | int | [0,2] | 示教模式类型;0表示点动(单动),1表示拖拽示教,2表示点动(联动) |
{
"type": 0
}使能
说明
- 使能状态与触发模式的设置与查询
- 触发模式设置为硬件触发时,上下使能端口不能都为0
上位机设置使能状态
命令字: 0x3030
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| deadman | int | [0,1] | 上下使能开关;0表示下使能,1表示上使能 |
| deadmanmode | int | - | 使能触发方式;默认为0,即软件触发 |
{
"deadman": 1,
"deadmanmode": 0
}上位机查询使能状态
命令字: 0x3031
{}控制器回复上位机使能状态
命令字: 0x3032
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| deadman | int | [0,1] | 上下使能开关;0表示下使能,1表示上使能 |
{
"deadman": 1
}上位机设置机器人使能触发模式
命令字: 0x3033
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| deadmanPortOne | int | [0,端口总数] | 使能端口1(上使能端口) |
| deadmanPortTwo | int | [0,端口总数] | 使能端口2(下使能端口),和上使能端口不能同时为0 |
| mode | int | [0,1] | 使能触发模式;0为软件触发,1为硬件触发 |
| robot | int | [1,4] | 当前机器人号 |
{
"deadmanPortOne": 14,
"deadmanPortTwo": 2,
"mode": 0,
"robot": 1
}上位机查询机器人使能触发方式
命令字: 0x3034
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}控制器回复上位机机器人使能触发方式
命令字: 0x3035
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| deadmanPortOne | int | [0,端口总数] | 使能端口1(上使能端口) |
| deadmanPortTwo | int | [0,端口总数] | 使能端口2(下使能端口) |
| mode | int | [0,1] | 使能触发模式;0为软件触发,1为硬件触发 |
| robot | int | [1,4] | 当前机器人号 |
{
"deadmanPortOne": 14,
"deadmanPortTwo": 2,
"mode": 0,
"robot": 1
}上位机请求伺服上使能
命令字: 0x3036
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}上位机请求伺服下使能
命令字: 0x3037
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}点动坐标模式
说明
- 机器人点动运行坐标模式的设置与查询
上位机设置机器人点动坐标模式
命令字: 0x3040
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coordinate | int | [0,3] | 点动坐标模式;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| robot | int | [1,4] | 当前机器人号 |
{
"coordinate": 1,
"robot": 1
}上位机查询机器人点动坐标模式
命令字: 0x3041
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}控制器回复上位机机器人点动坐标模式
命令字: 0x3042
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coordinate | int | [0,3] | 点动坐标模式;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| robot | int | [1,4] | 当前机器人号 |
{
"coordinate": 1,
"robot": 1
}机器人速度
说明
- 包括有点动模式和定距移动速度的设置与查询
上位机请求设置机器人速度参数
命令字: 0x3050
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
| type | int | [0,2] | 当前速度模式;0表示点动速度,1表示关节坐标定距移动,2表示直角坐标定距移动 |
| speed | int | [1,100] | 全局速度(%) |
| mocroDotSpeedACS | double | (0,2000] | 关节坐标定距移动(°);仅当前点动坐标为关节坐标时使用 |
| mocroDotSpeedMCS | double | (0,2000] | 直角坐标定距移动(mm);当前点动坐标不为关节坐标时使用 |
{
"robot": 1,
"type": 0,
"speed": 5,
"mocroDotSpeedACS": 0.1,
"mocroDotSpeedMCS": 0.1
}上位机查询机器人速度参数
命令字: 0x3051
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}控制器回复上位机机器人速度参数
命令字: 0x3052
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
| type | int | [0,2] | 当前速度模式;0表示点动速度,1表示关节坐标定距移动,2表示直角坐标定距移动 |
| speed | int | [1,100] | 全局速度 |
| mocroDotSpeedACS | double | (0,2000] | 关节坐标定距移动(°) |
| mocroDotSpeedMCS | double | (0,2000] | 直角坐标定距移动(mm) |
{
"robot": 1,
"type": 0,
"speed": 5,
"mocroDotSpeedACS": 0.1,
"mocroDotSpeedMCS": 0.1
}运动到点
说明
- 包含有回零、运动到标记点、关节直线运动等操作
- 机器人运动前需将伺服改为使能状态,否则发送以下命令机器人也不会动作
上位机请求机器人回零
命令字: 0x3070
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| isWithExternal | int | [0,1] | 是否包含外部轴 |
| robot | int | [1,4] | 当前机器人号 |
{
"isWithExternal": 0,
"robot": 1
}上位机请求机器人运行到目标点
命令字: 0x3071
RobotPos 对象:
| 参数名 | 类型 | 说明 |
|---|---|---|
| ctype | int | P 点类型;0表示 NONE_TYPE,1表示 P_TYPE,2表示 E_TYPE,3表示 RP_TYPE,4表示 AP_TYPE,5表示 GP_TYPE,6表示 GE_TYPE |
| data | array | 点位数据列表 |
| key | string | 变量名称 |
| note | string | 变量注释 |
| paraVarData | array | 点位列表,对"data"节点数据进行进一步说明 |
data 列表说明:
- 第一二位:坐标类型(0,0表示关节坐标,1,1表示直角坐标,2,1工具坐标,3,1用户坐标)
- 第三位:左右手(1表示左手,2表示右手,0表示无左右手)
- 第四五六七位:备用,默认位0
- 第八至十四位:机器人本体坐标值(7位)
- 第十五至十九位:外部轴坐标值(最大支持五个外部轴)
paraVarData 元素:
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| data | double | - | 同"data"节点 |
| secondvalue | int | [0,1] | 0表示位置变量名固定(如 P001),1表示不固定(如 P[I001]) |
| value | int | [0,17] | 数值类型;0表示数值类型;1表示 int 变量;2表示 double 变量;3表示 bool 变量;4表示全局 int 变量;5表示全局 double 变量;6表示全局 bool 变量;7表示 string 常量;8表示 string 变量;9表示全局 string 变量;10表示 P 点变量;11表示全局 P 点变量;12表示 E 点变量;13表示全局 E 点变量 |
| varname | string | - | 使用的变量名称 |
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| positionName | string | - | 目标点位名 |
| robot | int | [1,4] | 当前机器人号 |
{
"RobotPos": {
"ctype": 0,
"data": [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 470.7460, 0.0, 817.3340, 3.1410, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
"key": "",
"note": "",
"paraVarData": [
{"data": 1.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 1.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 470.7460, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 817.3340, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 3.1410, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""}
]
},
"positionName": "MoveToGetPoint",
"robot": 1
}上位机请求机器人外部轴运行到目标点
命令字: 0x3072
RobotPos 对象:
| 参数名 | 类型 | 说明 |
|---|---|---|
| ctype | int | P 点类型;0表示 NONE_TYPE,1表示 P_TYPE,2表示 E_TYPE,3表示 RP_TYPE,4表示 AP_TYPE,5表示 GP_TYPE,6表示 GE_TYPE |
| data | array | 点位数据列表(长度21) |
| key | string | 变量名称 |
| note | string | 变量注释 |
| paraVarData | array | 点位列表 |
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"RobotPos": {
"ctype": 0,
"data": [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 470.7460, 0.0, 817.3340, 3.1410, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
"key": "",
"note": "",
"paraVarData": [
{"data": 1.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 1.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 470.7460, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 817.3340, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 3.1410, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
{"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""}
]
},
"robot": 1
}上位机请求机器人运行到程序点
命令字: 0x3073
| 参数名 | 类型 | 说明 |
|---|---|---|
| job | string | 程序名称 |
| robot | int | 当前机器人号 |
| suffix | string | 程序文件后缀;.JBR 表示主程序,.JBP 表示后台局部程序,.JBPG 表示后台全局程序 |
| var | string | 点位名称 |
{
"job": "WWW",
"robot": 1,
"suffix": ".JBR",
"var": "P0001"
}上位机请求机器人运行到用户坐标标定点
命令字: 0x3074
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| posType | int | [0,2] | 移动到点类型;0表示原点,1表示 X 值,2表示 Y 值 |
| robot | int | [1,4] | 当前机器人号 |
| userNum | int | [1,999] | 当前用户坐标坐标号 |
{
"posType": 0,
"robot": 1,
"userNum": 1
}上位机请求机器人运行到复位点(不含外部轴)
命令字: 0x3075
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}上位机请求机器人运行到复位点(含外部轴)
命令字: 0x3076
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}上位机请求机器人点到点运动到点
命令字: 0x3077
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coord | int | [0,3] | 坐标类型;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| pos | array | 目标点信息列表(长度7,机器人本体坐标) | |
| robot | int | [1,4] | 当前机器人号 |
| vel | int | [1,100] | 运行速度 |
{
"coord": 0,
"pos": [0.0, 10.2, 0.0, 0.0, 0.0, 0.0, 0.0],
"robot": 1,
"vel": 5
}上位机请求机器人直线运动到点
命令字: 0x3078
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coord | int | [0,3] | 坐标类型;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| pos | array | 目标点信息列表(长度7,机器人本体坐标) | |
| robot | int | [1,4] | 当前机器人号 |
| vel | int | [1,100] | 运行速度 |
{
"coord": 0,
"pos": [0.0, 10.2, 0.0, 0.0, 0.0, 0.0, 0.0],
"robot": 1,
"vel": 5
}上位机请求机器人圆弧运动到点
命令字: 0x3079
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coord | int | [0,3] | 坐标类型;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| isFull | bool | - | false 表示 MOVC,true 表示 MOVCA |
| posOne | array | 圆弧起始点位置信息(长度7) | |
| posTwo | array | 圆弧经过中间点位置信息(长度7) | |
| posThree | array | 圆弧目标点位置信息(长度7) | |
| robot | int | [1,4] | 当前机器人号 |
| vel | int | [1,100] | 运行速度 |
{
"coord": 0,
"isFull": false,
"posOne": [0.0, 10.2, 0.0, 0.0, 0.0, 0.0, 0.0],
"posTwo": [0.0, 15.3, 0.0, 0.0, 0.0, 0.0, 0.0],
"posThree": [0.0, 20.4, 0.0, 0.0, 0.0, 0.0, 0.0],
"robot": 1,
"vel": 5
}上位机请求机器人样条曲线运动到点
命令字: 0x307A
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coord | int | [0,3] | 坐标类型;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| pos | array | 样条曲线的轨迹点位二维数组;一维表示轨迹上的目标点位,二维机器人本体坐标(长度7) | |
| robot | int | [1,4] | 当前机器人号 |
| size | int | - | 样条曲线的点数目,最小为4 |
| vel | int | [1,100] | 运行速度 |
{
"coord": 0,
"pos": [
[0.0, 10.2, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 15.3, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 20.4, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 25.5, 0.0, 0.0, 0.0, 0.0, 0.0]
],
"robot": 1,
"size": 4,
"vel": 5
}上位机请求机器人外部轴点到点运动到点
命令字: 0x307B
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coord | int | [0,3] | 坐标类型;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| pos | array | 目标点信息列表(长度12,前7位为机器人本体坐标,后5位为外部轴坐标) | |
| robot | int | [1,4] | 当前机器人号 |
| vel | int | [1,100] | 运行速度 |
{
"coord": 0,
"pos": [0.0, 10.2, 0.0, 0.0, 0.0, 0.0, 0.0, 7.1, 0.0, 0.0, 0.0, 0.0],
"robot": 1,
"vel": 5
}上位机请求机器人外部轴直线运动到点
命令字: 0x307C
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coord | int | [0,3] | 坐标类型;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| pos | array | 目标点信息列表(长度12,前7位为机器人本体坐标,后5位为外部轴坐标) | |
| robot | int | [1,4] | 当前机器人号 |
| vel | int | [1,100] | 运行速度 |
{
"coord": 0,
"pos": [0.0, 10.2, 0.0, 0.0, 0.0, 0.0, 0.0, 7.1, 0.0, 0.0, 0.0, 0.0],
"robot": 1,
"vel": 5
}上位机请求机器人外部轴圆弧运动到点
命令字: 0x307D
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| coord | int | [0,3] | 坐标类型;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
| posOne | array | 圆弧起始点位置信息(长度12,前7位为机器人本体坐标,后5位为外部轴坐标) | |
| posTwo | array | 圆弧经过中间点位置信息(长度12) | |
| posThree | array | 圆弧目标点位置信息(长度12) | |
| robot | int | [1,4] | 当前机器人号 |
| vel | int | [1,100] | 运行速度 |
{
"coord": 0,
"posOne": [0.0, 10.2, 0.0, 0.0, 0.0, 0.0, 0.0, 7.1, 0.0, 0.0, 0.0, 0.0],
"posTwo": [0.0, 15.3, 0.0, 0.0, 0.0, 0.0, 0.0, 14.2, 0.0, 0.0, 0.0, 0.0],
"posThree": [0.0, 20.4, 0.0, 0.0, 0.0, 0.0, 0.0, 21.3, 0.0, 0.0, 0.0, 0.0],
"robot": 1,
"vel": 5
}上位机请求机器人门控运动
命令字: 0x3081
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
| ParaACC | double | - | 加速度 |
| ParaDEC | double | - | 减速度 |
| ParaV | double | - | 速度 |
| ParaPL | int | [0,5] | 平滑 |
| aheadtype | int | [0,2] | 提前执行类型;0表示时间,1表示距离,2表示进度 |
| ParaAHEAD | double | - | 提前执行值 |
| offsetAxis | int | [0,2] | 走门型的轴 |
| axis_offset_type | int | [0,1] | 偏移轴的偏移方式;0表示最大高度,1表示最大坐标 |
| para_line_or_coord_max | double | - | 偏移轴最大坐标或者最大偏移量 |
| para_straight_up_dis | double | - | 垂直上升距离 |
| para_straight_down_dis | double | - | 垂直下降距离 |
| ParaSPIN | int | [0,1] | 门型运动方式;0表示关节,1表示直线 |
| pos | array | 长度14,前7位为机器人本体坐标,后7位为外部轴坐标 | 目标位置 |
| coord | int | [0,3] | 坐标类型;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
{
"robot": 1,
"ParaACC": 100.0,
"ParaDEC": 100.0,
"ParaV": 10,
"ParaPL": 0,
"aheadtype": 0,
"ParaAHEAD": 5,
"offsetAxis": 2,
"axis_offset_type": 0,
"para_line_or_coord_max": 1000,
"para_straight_up_dis": 10,
"para_straight_down_dis": 10,
"ParaSPIN": 0,
"pos": [791.9649933992308, -122.76709767976902, 360.000035291658, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
"coord": 1
}运动参数
说明
- 上位机设置机器人运动参数
上位机设置机器人运动参数
命令字: 0x3090
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| absolutePosResolution | double | [0.0001,0.1] | 绝对位置分辨率(°) |
| interpolationMethod | int | [0,2] | 机器人插补方式;0表示 S 型插补,1表示梯形插补,2表示加加速度插补 |
| minTrajectTime | object | - | 最小加/减速度时间 |
| minTrajectTime.minAccTime | double | [0.05,1] | 最小加速度时间(s) |
| minTrajectTime.minDecTime | double | [0.05,1] | 最小减速度时间(s) |
| runDelayTime | int | [500,20000] | 运行延时时间(ms) |
| stopTime | int | [240,2000] | 暂停时间(ms) |
{
"absolutePosResolution": 0.010,
"interpolationMethod": 0,
"minTrajectTime": {
"minAccTime": 0.10,
"minDecTime": 0.10
},
"runDelayTime": 500,
"stopTime": 240
}上位机查询机器人运动参数
命令字: 0x3091
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}控制器回复上位机机器人运动参数
命令字: 0x3092
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| absolutePosResolution | double | [0.0001,0.1] | 绝对位置分辨率(°) |
| interpolationMethod | int | [0,2] | 机器人插补方式;0表示 S 型插补,1表示梯形插补,2表示加加速度插补 |
| minTrajectTime | object | - | 最小加/减速度时间 |
| minTrajectTime.minAccTime | double | [0.05,1] | 最小加速度时间(s) |
| minTrajectTime.minDecTime | double | [0.05,1] | 最小减速度时间(s) |
| runDelayTime | int | [500,20000] | 运行延时时间(ms) |
| stopTime | int | [240,2000] | 暂停时间(ms) |
{
"absolutePosResolution": 0.010,
"interpolationMethod": 0,
"minTrajectTime": {
"minAccTime": 0.10,
"minDecTime": 0.10
},
"runDelayTime": 500,
"stopTime": 240
}点动
说明
- 包括有关节/直角点动速度的设置与查询,点动灵敏度的设置与查询,开启/关闭点动操作
上位机请求进行点动操作
命令字: 0x30A0
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| axis | int | [1,12] | 当前需要运动的轴 |
| direction | int | [-1,1] | 轴移动方向;-1表示负方向移动,1表示正方向移动 |
| robot | int | [1,4] | 当前机器人号 |
axis 参数说明:
- 关节坐标时:表示对应的轴,从8开始为外部轴
- 直角坐标时:按顺序分别表示 X 轴、Y 轴、Z 轴、A 轴、B 轴、C 轴
- 工具坐标时:按顺序分别表示 TX 轴、TY 轴、TZ 轴、TA 轴、TB 轴、TC 轴
- 用户坐标时:按顺序分别表示 UX 轴、UY 轴、UZ 轴、UA 轴、UB 轴、UC 轴
{
"axis": 1,
"direction": 1,
"robot": 1
}上位机请求停止点动操作
命令字: 0x30A1
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| axis | int | [1,12] | 当前需要停止运动的轴 |
| robot | int | [1,4] | 当前机器人号 |
axis 参数说明:
- 关节坐标时:表示对应的轴,从8开始为外部轴
- 直角坐标时:按顺序分别表示 X 轴、Y 轴、Z 轴、A 轴、B 轴、C 轴
- 工具坐标时:按顺序分别表示 TX 轴、TY 轴、TZ 轴、TA 轴、TB 轴、TC 轴
- 用户坐标时:按顺序分别表示 UX 轴、UY 轴、UZ 轴、UA 轴、UB 轴、UC 轴
{
"axis": 1,
"robot": 1
}上位机设置机器人轴关节点动速度
命令字: 0x30A2
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| axis | int | - | 当前设置关节点动速度的轴号;范围[1,轴数] |
| maxAcc | double | [1,1000] | 关节轴点动加速度(°/s) |
| maxSpeed | double | [1,100] | 关节轴最大点动速度(°/s²) |
| robot | int | [1,4] | 当前机器人号 |
{
"axis": 1,
"maxAcc": 800.0,
"maxSpeed": 40.0,
"robot": 1
}上位机查询机器人轴关节点动速度
命令字: 0x30A3
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| axis | int | - | 需要查询关节点动速度的轴号;范围[1,轴数] |
| robot | int | [1,4] | 当前机器人号 |
{
"axis": 1,
"robot": 1
}控制器回复上位机机器人轴关节点动速度
命令字: 0x30A4
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| axis | int | - | 当前设置关节点动速度的轴号 |
| maxAcc | double | [1,1000] | 关节轴点动加速度(°/s) |
| maxSpeed | double | [1,100] | 关节轴最大点动速度(°/s²) |
| robot | int | [1,4] | 当前机器人号 |
{
"axis": 1,
"maxAcc": 800.0,
"maxSpeed": 40.0,
"robot": 1
}上位机设置机器人直角点动速度
命令字: 0x30A5
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| maxAcc | double | [1,4000] | 直角轴点动加速度(mm/s²) |
| maxSpeed | double | [1,250] | 直角轴最大点动速度(mm/s²) |
| robot | int | [1,4] | 当前机器人号 |
{
"maxAcc": 1500.0,
"maxSpeed": 200.0,
"robot": 1
}上位机查询机器人直角点动速度
命令字: 0x30A6
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}控制器回复上位机机器人直角点动速度
命令字: 0x30A7
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| maxAcc | double | [1,4000] | 直角轴点动加速度(mm/s²) |
| maxSpeed | double | [1,250] | 直角轴最大点动速度(mm/s²) |
| robot | int | [1,4] | 当前机器人号 |
{
"maxAcc": 1500.0,
"maxSpeed": 200.0,
"robot": 1
}上位机设置机器人点动灵敏度
命令字: 0x30A8
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
| sensitivity | double | [0.001,1] | 点动灵敏度 |
{
"robot": 1,
"sensitivity": 0.0010
}上位机查询机器人点动灵敏度
命令字: 0x30A9
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}控制器回复上位机机器人点动灵敏度
命令字: 0x30AA
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
| sensitivity | double | [0.001,1] | 点动灵敏度 |
{
"robot": 1,
"sensitivity": 0.0010
}点位坐标转换
说明
- 机器人在各个坐标的值相互转换
上位机请求转换坐标值
命令字: 0x30C0
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 需要转换坐标的点位名称 |
| pos | array | 点位数据列表 |
| robot | int | 当前机器人号 |
| targetCoord | int | 目标转换坐标;0表示关节坐标,1表示直角坐标,2表示工具坐标,3表示用户坐标 |
pos 列表说明:
- 第一二位:坐标类型(0,0表示关节坐标,1,1表示直角坐标,2,1工具坐标,3,1用户坐标)
- 第三位:当前点位姿态
- 第四位:当前点位的工具手号
- 第五位:当前点位的用户坐标号
- 第六七位:备用
- 后七位:当前点在当前坐标系下的位置信息
{
"name": "P0002",
"pos": [0, 0.0, 8.0, 0.0, 1.0, 0.0, 0.0, 0.0, 10.20, 0.0, 0.0, 0.0, 0.0, 0.0],
"robot": 1,
"targetCoord": 1
}控制器回复上位机转换后的坐标值
命令字: 0x30C1
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 需要转换坐标的点位名称 |
| pos | array | 点位数据列表(弧度制) |
| posDeg | array | 点位数据列表(角度制) |
| result | bool | 转换是否成功 |
| robot | int | 当前机器人号 |
{
"name": "P0002",
"pos": [1, 1, 8.0, 0.0, 1.0, 0.0, 0.0, 387.623217660095, 0.0, 894.038513201144, -3.14159265359, 0.178023583703, 0.0, 0.0],
"posDeg": [1, 1, 8.0, 0.0, 1.0, 0.0, 0.0, 387.623217660095, 0.0, 894.038513201144, -180.0, 10.2, 0.0, 0.0],
"result": true,
"robot": 1
}上位机发送获取任意工具手下位置
命令字: 0x30C2
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
| toolNum | int | [0,9] | 目标工具手 |
| toolNowNum | int | [0,9] | 当前工具手;0是无工具手 |
| pos | array | 需要转换的点位;元素为 double 类型数组 |
{
"robot": 1,
"toolNum": 1,
"toolNowNum": 0,
"pos": [[19998, 0, 19998, 180, 0, 0, 0], [19998, 0, 19998, 180, 0, 0, 0]]
}控制器返回目标工具手坐标
命令字: 0x30C3
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
| toolNum | int | [0,9] | 目标工具手 |
{
"robot": 1,
"toolNum": 1,
"pos": [[19998, 0, 19998, 180, 0, 0, 0], [19998, 0, 19998, 180, 0, 0, 0]]
}机器人切换
说明
- 切换当前使用的机器人
上位机请求切换当前使用机器人
命令字: 0x30D0
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| isMultiRobot | bool | - | 是否为双机协作 |
| mode | int | [0,1] | 当前机器人模式;0表示单机模式,1表示多机模式 |
| robot | int | [1,4] | 需要切换到的机器人号 |
{
"isMultiRobot": false,
"mode": 0,
"robot": 1
}上位机查询当前使用机器人号
命令字: 0x30D1
{}控制器回复上位机当前使用机器人号
命令字: 0x30D2
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| mode | int | [0,1] | 当前机器人模式;0表示单机模式,1表示多机模式 |
| robot | int | [1,4] | 当前机器人号 |
{
"mode": 0,
"robot": 1
}上位机设置角度制或弧度制
命令字: 0x30D3
| 参数名 | 类型 | 说明 |
|---|---|---|
| isDeg | bool | 是否为角度制;false 表示弧度制,true 表示角度制 |
{
"isDeg": false
}上位机设置机器人运动队列停止但不下使能
命令字: 0x30D4
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| robot | int | [1,4] | 当前机器人号 |
{
"robot": 1
}控制器回复当前机器人当前为角度制还是弧度制
命令字: 0x30D5
| 参数名 | 类型 | 说明 |
|---|---|---|
| tmpDeg | bool | 是否为角度制;false 表示弧度制,true 表示角度制 |
注:此为0x30D3的回复,只有切换角度/弧度时才会回复
{
"tmpDeg": false
}最大加速度
说明
- 最大加速度相关通讯
上位机查询轴最大加速度
命令字: 0x20E0
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| joint_num | int | - | 查询的轴号 |
{
"joint_num": 1
}控制器回复轴最大加速度
命令字: 0x20E1
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| joint_num | int | - | 轴号 |
| max_acc | double | - | 轴最大加速度 |
注:此为 0x20E0 的回复
{
"joint_num": 1,
"max_acc": 0.0
}上位机请求测量关节最大加速度
命令字: 0x20E2
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| joint_num | int | - | 测量的轴号 |
{
"joint_num": 1
}上位机请求结束测量关节最大加速度
命令字: 0x20E3
注:无请求参数
{
}上位机请求应用关节最大加速度
命令字: 0x20E4
注:无请求参数
{
}上位机请求导出关节最大加速度数据
命令字: 0x20E5
注:无请求参数
{
}上位机查询测量加速度参数
命令字: 0x20E6
| 参数名 | 类型 | 范围 | 说明 |
|---|---|---|---|
| joint_num | int | - | 查询的轴号 |
{
"joint_num": 1
}上位机设置测量加速度参数
命令字: 0x20E7
| 参数名 | 类型 | 说明 |
|---|---|---|
| joint_num | int | 轴号 |
| jitter_ratio_thresh | int | 速度抖动比值 |
| jitter_ratio_thresh_enable | bool | 是否启用速度抖动比值 |
| overshoot_limit_percent | double | 速度超调百分比 |
| overshoot_limit_percent_enable | bool | 是否启用速度超调百分比 |
| range_max | double | 量程上限 |
| range_min | double | 量程下限 |
| segment_length | double | 均速段长度 |
| settling_time_limit | double | 最大调节时间 |
| settling_time_limit_enable | bool | 是否启用最大调节时间 |
| torque_fluctuation_limit | int | 大转矩差分标准 |
| torque_fluctuation_limit_enable | bool | 是否启用大转矩差分标准 |
| torque_hf_thresh | int | 转矩高频比值 |
| torque_hf_thresh_enable | bool | 是否启用转矩高频比值 |
| torque_limit | double | 转矩幅度 |
{
"jitter_ratio_thresh": 0,
"jitter_ratio_thresh_enable": true,
"joint_num": 1,
"overshoot_limit_percent": 1.0,
"overshoot_limit_percent_enable": true,
"range_max": 0.0,
"range_min": 0.0,
"segment_length": 20.0,
"settling_time_limit": 20.0,
"settling_time_limit_enable": true,
"torque_fluctuation_limit": 0,
"torque_fluctuation_limit_enable": true,
"torque_hf_thresh": 0,
"torque_hf_thresh_enable": true,
"torque_limit": 2000.0
}控制器回复测量加速度参数
命令字: 0x20E8
| 参数名 | 类型 | 说明 |
|---|---|---|
| joint_num | int | 轴号 |
| jitter_ratio_thresh | int | 速度抖动比值 |
| jitter_ratio_thresh_enable | bool | 是否启用速度抖动比值 |
| overshoot_limit_percent | double | 速度超调百分比 |
| overshoot_limit_percent_enable | bool | 是否启用速度超调百分比 |
| range_max | double | 量程上限 |
| range_min | double | 量程下限 |
| segment_length | double | 均速段长度 |
| settling_time_limit | double | 最大调节时间 |
| settling_time_limit_enable | bool | 是否启用最大调节时间 |
| torque_fluctuation_limit | int | 大转矩差分标准 |
| torque_fluctuation_limit_enable | bool | 是否启用大转矩差分标准 |
| torque_hf_thresh | int | 转矩高频比值 |
| torque_hf_thresh_enable | bool | 是否启用转矩高频比值 |
| torque_limit | double | 转矩幅度 |
注:此为 0x20E6 查询后的控制器回复
{
"jitter_ratio_thresh": 0,
"jitter_ratio_thresh_enable": true,
"joint_num": 1,
"overshoot_limit_percent": 1,
"overshoot_limit_percent_enable": true,
"range_max": 0,
"range_min": 0,
"segment_length": 20,
"settling_time_limit": 20,
"settling_time_limit_enable": true,
"torque_fluctuation_limit": 0,
"torque_fluctuation_limit_enable": true,
"torque_hf_thresh": 0,
"torque_hf_thresh_enable": true,
"torque_limit": 2000
}控制器回复测量加速度结果
命令字: 0x20E9
| 参数名 | 类型 | 说明 |
|---|---|---|
| conclusion | string | 测量结论 |
| jitter_ratio | double | 速度抖动比值实际值 |
| jitter_ratio_thresh | double | 速度抖动比值阈值 |
| joint_num | int | 轴号 |
| max_acc | double | 最大加速度 |
| overshoot_percent | double | 速度超调百分比实际值 |
| settling_time_samples | int | 整定时间采样数 |
| torque_fluctuation | double | 大转矩差分实际值 |
| torque_fluctuation_limit | double | 大转矩差分阈值 |
| torque_hf_ratio | double | 转矩高频比值实际值 |
| torque_hf_thresh | double | 转矩高频比值阈值 |
注:设置最大加速度参数0x20e7时会回复
{
"conclusion": "",
"jitter_ratio": 0,
"jitter_ratio_thresh": 0.0,
"joint_num": 1,
"max_acc": 0.0,
"overshoot_percent": 0,
"settling_time_samples": 0,
"torque_fluctuation": 0,
"torque_fluctuation_limit": 0.0,
"torque_hf_ratio": 0,
"torque_hf_thresh": 0.0
}