基于通信协议包开发使用
通信设置
网口TCP/IP
- 总线接口:千兆网口
- IP:静态IP:192.168.0.232;wifi或者动态ip请看屏幕connection界面
- 端口:4500
485modbus
- 总线接口:底部485
- 波特率:115200
- 数据位: 8
- 奇偶校验:无
- 停止位: 1
机械臂运动和速度参数表
| 关节 | 关节最小值(°) | 关节最大值(°) | 关节最大速度(°/s) | 关节最大加速度(°/s²) |
|---|---|---|---|---|
| J1 | -162 | 162 | 150 | 200 |
| J2 | -125 | 125 | 150 | 200 |
| J3 | -154 | 154 | 150 | 200 |
| J4 | -162 | 162 | 150 | 200 |
| J5 | -162 | 162 | 150 | 200 |
| J6 | -165 | 165 | 150 | 200 |
| 坐标 | 坐标最小值(mm) | 坐标最大值(mm) | 坐标最大速度(mm/s) | 坐标最大加速度(mm/s²) |
|---|---|---|---|---|
| x | -466 | 466 | 200 | 400 |
| y | -466 | 466 | 200 | 400 |
| z | -150 | 677 | 200 | 400 |
| rx/ry/rz | -180° | 180° | 40°/s | 66°/s² |
网口TCP/IP指令介绍
收发格式
发送和接收都以十六进制表示,每条指令包含5个部分,如下所示:
[帧头][帧头][长度][功能码][数据][校验码-高字节][校验码-低字节]
1、帧头2字节:0xFE 0XFE
2、有效长度1字节:3-N,长度从功能码开始,校验码结束
3、功能码1字节:1-255
4、数据位:0-N,高字节在前
5、帧尾:crc16-modbus,高字节在前
- 所有指令都有第一层接收反馈,位置模式控制有到位反馈。
基础控制
读取主控版本号
功能码: 02
发送数据位:无
反馈数据位:版本号-1字节,需要/10.0
发送指令:FE FE 03 02 0D D1
反馈指令例如:FE FE 04 02 0A 51 7D, 此时版本号为V1.0读取末端版本号
功能码:09
发送数据位:无
反馈数据位:字节1:版本号,需要/10.0启动机器人
功能码:0x10
发送数据位:无
反馈数据位:字节1:启动状态,0-2;0-启动失败 1-启动成功 2-急停被拍下关闭机器人
功能码:0x11
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01
反馈指令:FE FE 05 11 FF 01 E8 EC读取机器人启动状态
功能码:0x12
发送数据位:无
反馈数据位:字节1:启动状态,0-2;0-启动失败 1-启动成功 2-急停被拍下读取零位校准状态
功能码:0x5A
发送数据位:无
反馈数据位:字节1:0/1;整机零位校准状态 字节2-7: 1X6关节零位校准状态开关modbus通信
功能码:0x6A
发送数据位:字节1:0/1 1-打开,0-关闭 默认关闭
开modbus发送指令:FE FE 04 6A 01 9D 92反馈固定数据位:字节1-2: 0xFF 0x01读取modbus通信状态
功能码:0x6B
发送数据位:无
反馈数据位:字节1:状态0/1 1-打开,0-关闭
运动控制
- 运动控制速度范围:1-100,实际速度百分比请看上方机械臂运动和速度参数表
- 运动模式:位置插补、刷新打断、力矩,仅位置插补下有运动到位反馈
- 到位反馈数据:FE FE 04 5B 状态 CRC-高 CRC-低;运动正常指令:
FE FE 04 5B 00 CD 46运动异常指令-J6超限:FE FE 04 5B 06 CF C6 全关节角度控制
功能码:0x22
发送数据位:字节1-12:2X6关节角度(角度*100.0) 字节13:速度
[90, 10, -90, 45, 80, -100],运行速度50%,发送指令:FE FE 10 22 23 28 03 E8 DC D8 11 94 1F 40 27 10 32 E3 57
第一层反馈固定数据位:字节1-2: 0xFF 0x01
第二层到位反馈:仅插补运动模式有,FE FE 04 5B 00 CD 46单关节角度控制
功能码:0x21
发送数据位:字节1:关节; 字节2-3:角度(角度*100.0) 字节4:速度
J1运动到50°,运行速度10%,发送指令:FE FE 07 21 01 13 88 0A 82 7A
第一层反馈固定数据位:字节1-2: 0xFF 0x01读取全关节角度
功能码:0x20
发送数据位:无
反馈数据位:字节1-12:2X6关节角度(角度/100.0)
[90, 10, -90, 45, 80, -100]反馈指令:FE FE 10 20 23 28 03 E8 DC D8 11 94 1F 40 27 10 32 21 54全坐标控制
功能码:0x25
发送数据位:字节1-12:2X6坐标(XYZ10.0,RXRYRZ100.0) 字节13:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01单坐标控制
功能码:0x24
发送数据位:字节1:坐标轴; 字节2-3:坐标(XYZ10.0,RXRYRZ100.0) 字节4:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01读取全坐标
功能码:0x23
发送数据位:无
反馈数据位:字节1-12:2X6坐标(XYZ/10.0,RXRYRZ/100.0)读取机器人运动状态
功能码:0x2B
发送数据位:无
反馈数据位:字节1:运动状态0/1,0-未运动;1-运动中检测机器人是否到达点位
功能码:0x2A,误差精度角度为1°内,坐标为2mm内
发送数据位:字节1-12:26关节角度/坐标(角度100.0,坐标XYZ10.0,RXRYRZ100.0);字节13:模式1/2 1-角度 2-坐标
反馈数据位:字节1:到位状态0/1 0-未到位,1-到位运动暂停
功能码:0x26
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01运动恢复
功能码:0x28
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01运动结束
功能码:0x29
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01检测运动是否暂停
功能码:0x27
发送数据位:无
反馈数据位:字节1:暂停状态0/1,0-未手动暂停;1-已暂停关节持续运动
功能码:0x30
发送数据位:字节1:关节; 字节2:方向0/1 0-反转 1-正转 字节3:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01坐标持续运动
功能码:0x32
发送数据位:字节1:坐标轴; 字节2:方向0/1 0-反转 1-正转 字节3:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01RPY旋转
功能码:0xF5
发送数据位:字节1:模式1-3 1-翻滚角 2-俯仰角 3-偏航角; 字节2:方向0/1 0-反转 1-正转 字节3:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01关节步进控制
功能码:0x33
发送数据位:字节1:关节; 字节2-3:步进值*100.0 字节3:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01坐标步进控制
功能码:0x34
发送数据位:字节1:坐标轴; 字节2-3:步进值(XYZ10.0,RXRYRZ100.0) 字节4:速度
第一层反馈固定数据位:字节1-2: 0xFF 0x01计算运动学逆解
功能码:0x8D
发送数据位:字节1-12:2X6关节当前角度 字节13-26:2X6目标坐标值
反馈数据位:字节1-24:4X6关节角度(/100.0)启动拖动示教
功能码:0x70
发送数据位:无
反馈数据位:0xFF 0x01暂停采样
功能码:0x72
发送数据位:无
反馈数据位:0xFF 0x01执行示教点位
功能码:0x71
发送数据位:无
反馈数据位:0xFF 0x01清除采样点
功能码:0x73
发送数据位:无
反馈数据位:0xFF 0x01查询碰撞检测模式
功能码:0xFD
发送数据位:无
反馈数据位:字节1:0/1,1-open 0-close设置碰撞检测模式
功能码:0x74
发送数据位:1-open 0-close 开启碰撞检测后,机械臂在运动过程中发生持续(>200ms)且超出碰撞阈值的碰撞时会自动停下
反馈数据位:0xFF 0x01设置碰撞阈值
功能码:0x75
发送数据位:
字节 1: joint range:(1-6) 字节 2:radio range:(50-250)%
可以设置关节的碰撞阈值,默认为100%,该数值越小越容易触发碰撞
反馈数据位:0xFF 0x01获取碰撞阈值
功能码:0x76
发送数据位:无
反馈数据位:
字节1-6:全关节碰撞阈值设置力矩补偿系数
功能码:0x77
发送数据位:
字节 1: joint range:(1-6)
字节 2:radio range:(0-250)% 力矩环的摩擦力补偿系数,默认为0,系数越大越容易拖动
字节 3: damping: 0-close 1-open 阻抗开关,默认关闭,开启后会增加阻尼,阻尼越大越难拖动
反馈数据位:0xFF 0x01获取力矩补偿系数
功能码:0x78
发送数据位:无
反馈数据位:
字节1-6:全关节力矩补偿系数
字节7-12:全关节阻抗开关执行动力学辨识轨迹
功能码:0xF8
发送数据位:字节1:rank(0-1) 0:辨识轨迹 1:低速辨识轨迹
反馈数据位:0xFF 0x01
执行辨识轨迹,全时长24s,动作幅度较大注意安全 使用前需先fourier_trajectories(1)执行低速轨迹确认安全范围,待低速执行完毕后执行正常速度fourier_trajectories(0)动力学参数辨识
功能码:0x97
发送数据位:无
反馈数据位:0xFF 0x01
一键辨识,需先执行动力学辨识轨迹生成identify_data.log文件,辨识耗时五分钟,辨识完成后会自动计算辨识精度,若精度达标则自动写入dynamic_paremeters.log文件圆弧轨迹运动
功能码:0x8C
发送数据位:
圆弧途经点transpoint 圆弧结束点endpoint
字节1-2:transpoint.x(10) 字节3-4:transpoint.y
字节5-6:transpoint.z 字节7-8:transpoint.rx(100)
字节9-10:transpoint.ry
字节11-12:transpoint.rz 字节13-14:endpoint.x(10)
字节15-16:endpoint.y 字节17-18:endpoint.z
字节19-20:endpoint.rx(100) 字节21-22:endpoint.ry
字节23-24:endpoint.rz
字节25:speed(1-100)
反馈数据位:0xFF 0x01
根据机械臂当前位置(起始点)、给定的圆弧途经点transpoint以及圆弧结束点endpoint,三点确定一个圆弧,使机械臂以起始点、途经点、结束点的顺序执行圆弧轨迹设置运动模式
该接口执行时间较久,4ms左右
功能码:0x16
发送数据位:字节1:模式0/1 0-位置 1-刷新,具身智能使用刷新模式;默认位置模式
反馈固定数据位:字节1-2: 0xFF 0x01读取运动模式
功能码:0x17
发送数据位:无
反馈数据位:字节1:模式0/1 0-位置 1-刷新设置运动控制模式
该接口执行时间较久,4ms左右
功能码:0x1E
发送数据位:字节1:模式0/1 0-位置 1-力矩,零力拖动;默认位置模式
反馈数据位:字节1:0xFF, 字节2:0/1 0-设置失败,参数不对;1-参数正确读取运动控制模式
功能码:0x1F
发送数据位:无
反馈数据位:字节1:字节1:模式0/1 0-位置 1-力矩,零力拖动超限回零
- 超出限位后可以不用手动移到限位内;目前仅位置模式支持,刷新模式控制不支持
功能码:04
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01
辅助功能
配置
- 更新系统后需要设置零位再运动
设置零位
功能码:0x54
发送数据位:字节1:关节
反馈固定数据位:字节1-2: 0xFF 0x01设置机器人力矩状态
功能码:0x13
发送数据位:字节1:关节1-6 254-所有;字节2:模式0/1 0-掉使能 1-使能;使能情况下才能运动
反馈固定数据位:字节1-2: 0xFF 0x01设置RGB颜色
功能码:0x0C
发送数据位:字节1-3:R、G、B 范围0-255,全0-灯不亮
反馈固定数据位:字节1-2: 0xFF 0x01设置最大速度
功能码:0x41
发送数据位:字节1:模式0/1 0-角度 1-坐标 字节2-3:速度,仅可在最大范围内设置
反馈固定数据位:字节1-2: 0xFF 0x01设置最大加速度
功能码:0x43
发送数据位:字节1:模式0/1 0-角度 1-坐标 字节2-3:加速度,仅可在最大范围内设置
反馈固定数据位:字节1-2: 0xFF 0x01读取最大速度
功能码:0x40
发送数据位:无
反馈数据位:字节1-2:速度读取最大加速度
功能码:0x42
发送数据位:无
反馈数据位:字节1-2:加速度设置关节最小角度
功能码:0x4c
发送数据位:字节1:关节 字节2-3:最小角度*10.0;仅可设置为默认范围内的,掉电不报错
反馈固定数据位:字节1-2: 0xFF 0x01读取关节最小角度
功能码:0x4a
发送数据位:字节1:关节
反馈数据位:字节1-2:最小角度/10.0设置关节最大角度
功能码:0x4d
发送数据位:字节1:关节 字节2-3:最大角度*10.0;仅可设置为默认范围内的,掉电不报错
反馈固定数据位:字节1-2: 0xFF 0x01读取关节最大角度
功能码:0x4b
发送数据位:字节1:关节
反馈数据位:字节1-2:最大角度/10.0设置关节方向
设置前需要先回零,先读取当前方向,再设置
功能码:0x7D
发送数据位:字节1:关节 字节2:方向0/1 1-同向 0-反向
反馈固定数据位:字节1-2: 0xFF 0x01读取关节方向
功能码:0x7C
发送数据位:无
反馈数据位:字节1-6:1X6关节方向读取VR模式
功能码:0x79
发送数据位:无
反馈数据位:字节:1-open 0-close
VR模式开启后会减少运动指令缓存长度,由80减少至2 适用于不希望积压运动缓存的开发场景,比如VR控制、遥控制设置VR模式
功能码:0x7A
发送数据位:字节:1-open 0-close
反馈数据位:0xFF 0x01设置自由移动状态
默认关闭,开启后可长按1s末端按钮手动转动机械臂
功能码:0x1A
发送数据位:字节1:1-open 0-close
反馈数据位:0xFF 0x01读取自由移动状态
功能码:0x1B
发送数据位:无
反馈数据位:字节1:1-open 0-close
IO控制
底部IO
设置底座IO输出
功能码:0xA0
发送数据位:字节1:引脚号1-12 字节2:状态0/1 0-低电平 1-高电平
反馈固定数据位:字节1-2: 0xFF 0x01读取底座IO输入
功能码:0xA1
发送数据位:字节1:引脚号1-12
反馈数据位:字节1:状态0/1 0-低电平 1-高电平
末端IO
设置末端IO输出
功能码:0x61
发送数据位:字节1:引脚号1/2 字节2:状态0/1 0-低电平 1-高电平
反馈固定数据位:字节1-2: 0xFF 0x01读取末端所有引脚状态
功能码:0x7B
发送数据位:无
反馈数据位:字节1:输入1状态0/1 0-低电平 1-高电平;字节2:输入2状态;字节3:末端按钮1状态;字节4:末端按钮2状态
外部485/can通信设备控制
底部外部设备配置
功能码:0x65
发送数据位:字节1:模式1/2 1-485设备 2-can设备;字节2-5:波特率;字节6-9:超时
反馈固定数据位:字节1-2: 0xFF 0x01读取底部外部设备配置
功能码:0x67
发送数据位:无
反馈数据位:字节1:模式1/2 1-485设备 2-can设备;字节2-5:波特率;字节6-9:超时底部外部设备控制
功能码:0x66
发送数据位:can设备:字节1-4:can_id 5-N:can数据,最大数8;485设备:1-N:485数据,最多100
反馈固定数据位:字节1-2: 0xFF 0x01末端485外部设备控制
功能码:0xB5
发送数据位:字节1-N:485数据,最多45个
反馈数据位:字节1-N: 设备返回的485数据设置末端485波特率
默认115200
功能码:0xB8
发送数据位:字节1-4:波特率
反馈数据位:0xFF 0x01设置末端485超时
默认10s
功能码:0xB9
发送数据位:字节1-2:超时,单位:ms,范围:1-10s
反馈数据位:0xFF 0x01读取末端485波特率超时
功能码:0xBA
发送数据位:无
反馈数据位:字节1-4:波特率,字节5-6:超时
状态查询
读取机器人状态
功能码:0xA2
发送数据位:无
反馈数据位:字节1:碰撞检测状态0/1 1-碰撞 ;字节2:移动状态0/1 1-运动中;字节3-8:1X6关节是否超限0/1 1-超限;字节9-20:2X6关节电机是否报错 0-正常 >0异常;字节21-32:2X6关节电机软件报错 0-正常 >0异常;具体看报错信息和到位反馈表读取运动报错信息
功能码:0x07
发送数据位:无
反馈数据位:字节1-2:报错信息,具体看报错信息和到位反馈表读取关节通信异常次数
功能码:0xA3
发送数据位:字节1:关节1-6
反馈数据位:字节1-2:关节发送异常次数0-32700;字节3-4:关节读取异常次数0-32700;字节5-6:末端发送异常次数0-32700;字节7-8:末端读取异常次数0-32700读取关节运行速度
功能码:0xE1
发送数据位:无
反馈数据位:字节1-12:2X6运行速度/100.0 0-30rpm获取关节电流
功能码:0xE2
发送数据位:无
反馈数据位:字节1-12:2X6关节电流 单位:MA
设置坐标系
设置工具坐标系
功能码:0x81
发送数据位:
字节1-2: x (±1000) (10xmm)
字节3-4: y(±1000)
字节5-6: z (±1000)
字节7-8: rx (±180) (100xDeg)
字节9-10: ry (±180)
字节11-12: rz (±180)
反馈数据位:0xFF 0x01读取工具坐标系
功能码:0x82
发送数据位:无
反馈数据位:
字节1-2: x (±1000) (10xmm)
字节3-4: y(±1000)
字节5-6: z (±1000)
字节7-8: rx (±180) (100xDeg)
字节9-10: ry (±180)
字节11-12: rz (±180)设置世界坐标系
功能码:0x83
发送数据位:
字节1-2: x (±1000) (10xmm)
字节3-4: y(±1000)
字节5-6: z (±1000)
字节7-8: rx (±180) (100xDeg)
字节9-10: ry (±180)
字节11-12: rz (±180)
反馈数据位:0xFF 0x01读取世界坐标系
功能码:0x84
发送数据位:无
反馈数据位:
字节1-2: x (±1000) (10xmm)
字节3-4: y(±1000)
字节5-6: z (±1000)
字节7-8: rx (±180) (100xDeg)
字节9-10: ry (±180)
字节11-12: rz (±180)设置基坐标系
功能码:0x85
发送数据位:字节1:base type(0-基坐标系 1-世界坐标系)
反馈数据位:0xFF 0x01读取基坐标系
功能码:0x86
发送数据位:无
反馈数据位:字节1:base type(0-基坐标系 1-世界坐标系)设置末端坐标系
功能码:0x89
发送数据位:字节1:end type(0-法兰 1-工具)
反馈数据位:0xFF 0x01读取末端坐标系
功能码:0x8A
发送数据位:无
反馈数据位:字节1:end type(0-法兰 1-工具)
异常清除
- 清除运动报错
清除读取运动报错,如超限、坐标无法到达等
功能码:08
发送数据位:无
反馈固定数据位:字节1-2: 0xFF 0x01关节异常恢复
- 清除部分关节电机报错
功能码:0xE7
发送数据位:字节1:关节1-6、254-所有关节
反馈固定数据位:字节1-2: 0xFF 0x01
485Modbus RTU指令介绍
收发格式
基本参数
| 参数 | 值(十进制) | 值(十六进制) |
|---|---|---|
| 地址 | 45 | 0x2D |
| 写功能码 | 16 | 0x10 |
| 读功能码 | 03 | 0x03 |
通信帧格式
1. 写命令(主机 → 设备)
| 字段 | 长度 | 十六进制表示 | 说明 |
|---|---|---|---|
| 地址 | 1字节 | 0x2D |
设备地址:45(0x2D) |
| 功能码 | 1字节 | 0x10 |
写多个寄存器 |
| 起始寄存器地址 | 2字节 | HH LL |
寄存器起始地址(低字节在前) |
| 寄存器数量 | 2字节 | HH LL |
要写入的寄存器数量N |
| 数据字节数 | 1字节 | 0xMM |
数据字节数 = 2×N |
| 数据 | 2×N字节 | DD DD ... |
实际数据(每个寄存器2字节) |
| 校验码 | 2字节 | CC CC |
Modbus CRC16(低字节在前) |
格式: [地址-45][功能码-0x10][起始寄存器地址-2字节][寄存器数量-2字节][数据字节数-1字节][数据-2*N字节数][校验码-2字节 modbus_crc16-低字节在前]
2. 写反馈(设备 → 主机)
| 字段 | 长度 | 十六进制表示 | 说明 |
|---|---|---|---|
| 地址 | 1字节 | 0x2D |
设备地址:45(0x2D) |
| 功能码 | 1字节 | 0x10 |
写多个寄存器 |
| 起始寄存器地址 | 2字节 | HH LL |
寄存器起始地址(低字节在前) |
| 寄存器数量 | 2字节 | HH LL |
已写入的寄存器数量 |
| 校验码 | 2字节 | CC CC |
Modbus CRC16(低字节在前) |
格式: [地址-45][功能码-0x10][起始寄存器地址-2字节][寄存器数量-2字节][校验码-2字节 modbus_crc16-低字节在前]
3. 读命令(主机 → 设备)
| 字段 | 长度 | 十六进制表示 | 说明 |
|---|---|---|---|
| 地址 | 1字节 | 0x2D |
设备地址:45(0x2D) |
| 功能码 | 1字节 | 0x03 |
读多个寄存器 |
| 起始寄存器地址 | 2字节 | HH LL |
寄存器起始地址(低字节在前) |
| 寄存器数量 | 2字节 | HH LL |
要读取的寄存器数量N |
| 校验码 | 2字节 | CC CC |
Modbus CRC16(低字节在前) |
格式: [地址-45][功能码-03][起始寄存器地址-2字节][寄存器数量-2字节][校验码-2字节 modbus_crc16-低字节在前]
4. 读反馈(设备 → 主机)
| 字段 | 长度 | 十六进制表示 | 说明 |
|---|---|---|---|
| 地址 | 1字节 | 0x2D |
设备地址:45(0x2D) |
| 功能码 | 1字节 | 0x03 |
读多个寄存器 |
| 数据字节数 | 1字节 | 0xMM |
数据字节数 = 2×N |
| 数据 | 2×N字节 | DD DD ... |
读取的数据(每个寄存器2字节) |
| 校验码 | 2字节 | CC CC |
Modbus CRC16(低字节在前) |
格式: [地址-45][功能码-03][数据字节数-1字节][数据-2*N字节数][校验码-2字节 modbus_crc16-低字节在前]
案例:
- 读角度16进制指令:
2D 03 00 20 00 01 82 6C
反馈:`2D 03 0C 23 28 00 10 11 94 00 20 03 A8 DC D8 3B 46`<br> - 全关节16%速度运动到
[90, 0.16, 45, 0.32, 10, -90]指令:2D 10 00 22 00 07 0E 23 28 00 10 11 94 00 20 03 A8 DC D8 00 10 66 60第一层反馈:`2D 10 00 22 00 07 26 6D`<br> 第二层反馈:正常到位:`2D 10 00 5B 00 07 00 00 46 47`,J1超限:`2D 10 00 5B 00 07 00 01 87 87`<br>
基础控制
读取主控版本号
寄存器地址: 00 02
寄存器个数:00 01
反馈数据位:2字节,需要/10.0
发送指令(16进制):2D 03 00 02 00 01 22 66
反馈指令例如:2D 03 02 00 0A A9 85,此时版本号为V1.0启动机器人
寄存器地址: 00 16
寄存器个数:00 00
发送数据位:无
反馈数据位:字节1-2:启动状态,0-2;0-启动失败 1-启动成功 2-急停被拍下关闭机器人
寄存器地址: 00 17
寄存器个数:00 00
发送数据位:无读取机器人启动状态
寄存器地址: 00 18
寄存器个数:00 01
反馈数据位:字节1-2:启动状态,0-2;0-启动失败 1-启动成功 2-急停被拍下
运动控制
- 运动控制速度范围:1-100,实际速度百分比请看机械臂运动和速度参数表
- 到位反馈格式:
[地址][功能码][寄存器地址][寄存器数量][到位状态][crc] - 到位反馈数据:正常到位:
2D 10 00 5B 00 07 00 00 46 47,J3超限:2D 10 00 5B 00 07 00 03 06 46 全关节角度控制
寄存器地址: 00 34
寄存器个数:00 07
发送数据位:字节1-12:2X6关节角度(角度*100.0) 字节13-14:速度单关节角度控制
寄存器地址: 00 33
寄存器个数:00 03
发送数据位:字节1-2:关节; 字节3-4:角度(角度*100.0) 字节5-6:速度读取全关节角度
寄存器地址: 00 32
寄存器个数:00 01
反馈数据位:字节1-12:2X6关节角度(角度/100.0)全坐标控制
寄存器地址: 00 37
寄存器个数:00 07
发送数据位:字节1-12:2X6坐标(XYZ10.0,RXRYRZ100.0) 字节13-14:速度单坐标控制
寄存器地址: 00 36
寄存器个数:00 03
发送数据位:字节1-2:坐标轴; 字节3-4:坐标(XYZ10.0,RXRYRZ100.0) 字节5-6:速度读取全坐标
寄存器地址: 00 35
寄存器个数:00 01
反馈数据位:字节1-12:2X6坐标(XYZ/10.0,RXRYRZ/100.0)读取机器人运动状态
寄存器地址: 00 43
寄存器个数:00 01
反馈数据位:字节1-2:运动状态0/1,0-未运动;1-运动中运动暂停
寄存器地址: 00 38
寄存器个数:00 01
发送数据位:字节1-2:0/1 1-缓暂停 0-急暂停运动恢复
寄存器地址: 00 40
寄存器个数:00 00
发送数据位:无运动结束
寄存器地址: 00 41
寄存器个数:00 00
发送数据位:无检测运动是否暂停
寄存器地址: 00 39
寄存器个数:00 01
反馈数据位:字节1-2:暂停状态0/1,0-未手动暂停;1-已暂停关节持续运动
寄存器地址: 00 48
寄存器个数:00 03
发送数据位:字节1-2:关节; 字节3-4:方向0/1 0-反转 1-正转 字节5-6:速度坐标持续运动
寄存器地址: 00 50
寄存器个数:00 03
发送数据位:字节1-2:坐标轴; 字节3-4:方向0/1 0-反转 1-正转 字节5-6:速度RPY旋转
寄存器地址: 00 245
寄存器个数:00 03
发送数据位:字节1-2:模式1-3 1-翻滚角 2-俯仰角 3-偏航角; 字节3-4:方向0/1 0-反转 1-正转 字节5-6:速度关节步进控制
寄存器地址: 00 51
寄存器个数:00 03
发送数据位:字节1-2:关节; 字节3-4:步进值*100.0 字节5-6:速度坐标步进控制
寄存器地址: 00 52
寄存器个数:00 03
发送数据位:字节1-2:坐标轴; 字节3-4:步进值(XYZ10.0,RXRYRZ100.0) 字节5-6:速度超限回零
- 超出限位后可以不用手动移到限位内;目前仅位置模式支持,刷新模式控制不支持
寄存器地址: 00 04
寄存器个数:00 00
发送数据位:无
辅助功能
配置
设置RGB颜色
寄存器地址: 00 12
寄存器个数:00 03
发送数据位:字节1-2:R;字节3-4:G;字节5-6:B 范围0-255,全0-灯不亮设置机器人力矩状态
寄存器地址: 00 19
寄存器个数:00 02
发送数据位:字节1-2:关节1-6 254-所有;字节3-4:模式0/1 0-掉使能 1-使能;使能情况下才能运动
IO控制
底部IO
设置底座IO输出
寄存器地址: 00 160
寄存器个数:00 02
发送数据位:字节1-2:引脚号1-12 字节3-4:状态0/1 0-低电平 1-高电平读取底座IO输入
寄存器地址: 00 161
寄存器个数:00 01
反馈数据位:字节1-24:2*12个引脚状态0/1 0-低电平 1-高电平
末端IO
设置末端IO输出
寄存器地址: 00 97
寄存器个数:00 02
发送数据位:字节1-2:引脚号1/2 字节3-4:状态0/1 0-低电平 1-高电平读取末端所有引脚状态
寄存器地址: 00 123
寄存器个数:00 01
发送数据位:无
反馈数据位:字节1-2:输入1状态0/1 0-低电平 1-高电平;字节3-4:输入2状态;字节5-6:末端按钮1状态;字节7-8:末端按钮2状态
状态查询
读取机器人状态
寄存器地址: 00 162
寄存器个数:00 01
反馈数据位:字节1-2:碰撞检测状态0/1 1-碰撞 ;字节3-4:移动状态0/1 1-运动中;字节5-16:1X6关节是否超限0/1 1-超限;字节17-28:2X6关节电机是否报错 0-正常 >0异常;字节29-40:2X6关节电机软件报错 0-正常 >0异常;具体看报错信息和到位反馈表读取运动报错信息
寄存器地址: 00 07
寄存器个数:00 01
反馈数据位:字节1-2:报错信息,具体看报错信息和到位反馈表读取关节运行速度
寄存器地址: 00 225
寄存器个数:00 01
反馈数据位:字节1-12:2X6运行速度/100.0 +-30rpm获取关节电流
寄存器地址: 00 226
寄存器个数:00 01
反馈数据位:字节1-12:2X6关节电流 单位:MA
异常清除
- 清除运动报错
清除读取运动报错,如超限、坐标无法到达等
寄存器地址: 00 08
寄存器个数:00 00
发送数据位:无关节异常恢复
- 清除部分关节电机报错
寄存器地址: 00 231
寄存器个数:00 01
发送数据位:字节1-2:关节1-6、254-所有关节
常见问题
- 机械臂无法运动?
- 查看机械臂是否已使能、关节电机有无报错、关节有无超限,可调用读取机器人状态。
- 指令无响应
- 查看发送指令是否正确,所有指令都有第一层握手反馈。
报错信息和到位反馈表
到位反馈表
0-20 关节超限、碰撞、暂停等
| 16进制(10进制) | 说明 |
|---|---|
| 0 | 运动到位 |
| 1-7 | 关节超限 |
| 8 | 设置运动模式结束 |
| 10-13 | 碰撞保护 |
| A(10) | 缓停结束标志 |
| B(11) | 指令停止标志 |
20-23(32-35)坐标运动异常(检查关节限位)
| 16进制(10进制) | 说明 |
|---|---|
| 20(32) | 坐标无解 |
| 21(33) | 直线运动无相邻解 |
| 22(34) | 速度融合报错 |
| 23(35) | 零空间运动无相邻解 |
| 24(36) | 奇异位置无解 |
| 31(49) | 辨识精度错误 |
41-47(65-71)关节异常
| 16进制(10进制) | 说明 |
|---|---|
| 41-47(65-71) | 1-7关节位置精度异常 |
| 51-57(81-87) | 1-7关节碰撞检测异常 |
| 0x61-67 | 1-7关节can发送失败 |
| 0x71-77 | 1-7关节can接收异常 |
| 0x81-87 | 1-7关节掉使能 |
| 0x91-97 | 1-7关节电机报错(报错后可搭配0x9c接口使用) |
| 0xA1-A7 | 1-7关节电机编码器报错 |
| 0xC1-C7 | 1-7关节位置超差 |
运动报错信息表
返回数据格式: 0xD0 + xx(例如:0xD001 表示1关节超限)
0-6 关节超限
| 状态码(10进制) | 16进制 | 说明 |
|---|---|---|
| 0 | 0x00 | 运动正常 |
| 1 | 0x01 | 1关节超限 |
| 2 | 0x02 | 2关节超限 |
| 3 | 0x03 | 3关节超限 |
| 4 | 0x04 | 4关节超限 |
| 5 | 0x05 | 5关节超限 |
| 6 | 0x06 | 6关节超限 |
20-24(32-36)坐标运动异常
| 状态码(10进制) | 16进制 | 说明 |
|---|---|---|
| 20(32) | 0x14 | 坐标无解,请检查臂展是否临近限位 |
| 21(33) | 0x15 | 直线运动无相邻解 |
| 22(34) | 0x16 | 速度融合报错 |
| 23(35) | 0x17 | 零空间运动无相邻解 |
| 24(36) | 0x18 | 奇异位置无解,请使用关节控制离开奇异点 |
关节电机报错信息表
1 软件内的错误报警
| 比特位(2字节) | 错误状态(1-异常,0-正常) | 说明与处理建议 |
|---|---|---|
| 0 | Can初始化异常 | 需检查主控板。修复控制板异常后,掉电再上电。 表现:机器无法使能、控制等 |
| 1 | 电机初始化异常 | 需检查电机通信线路等,修复异常后,掉电再上电。 表现:机器无法正常反馈关节信息、控制等 |
| 2 | 电机发送异常 | 需检查电机通信线路等。 表现:机器位置反馈等异常;可使用异常恢复清除 |
| 3 | 电机接收异常 | 需检查电机通信线路等。 表现:机器位置反馈等异常;可使用异常恢复清除。 此反馈可正常控制机器,无需提示用户,主要用于排查异常 |
| 4 | 位置超差 | 需检查电机编码器等。 表现:机器掉使能,无法运动控制;可使用异常恢复清除 |
| 5 | 末端发送异常 | 需检查末端通信线路等。 表现:末端接口反馈异常;可使用异常恢复清除 |
| 6 | 末端接收异常 | 需检查末端通信线路等。 表现:末端接口反馈异常;可使用异常恢复清除。 此反馈可正常控制机器,无需提示用户,主要用于排查异常 |
| 7 | 电机编码器报错 | 编码器报错时,不可运动,需要清除编码器报错。 旧版电机驱动板无报错-即使报了编码器错误,软件无法反馈异常。 如何区分新旧:板子上带电池的为新驱动板 |
| 8 | 掉使能反馈 | 运动前机器必须是使能状态 |
2 电机自带的错误报警
| 比特位(2字节) | 错误状态 | 处理方式 |
|---|---|---|
| 0 | CAN总线错误 | 可使用异常恢复,无法恢复时,检查通信线路,修复后重新通电使能 |
| 1 | 短路 | 可使用异常恢复 |
| 2 | 无效的设置数据 | — |
| 3 | 控制错误 | 可使用异常恢复 |
| 4 | CAN通信错误 | 可使用异常恢复,无法恢复时,检查通信线路,修复后重新通电使能 |
| 5 | 反馈错误 | 可使用异常恢复 |
| 6 | 正限位开关激活 | — |
| 7 | 负限位开关激活 | — |
| 8 | 过流 | 可使用异常恢复 |
| 9 | I2t保护 | 可使用异常恢复 |
| 10 | 过温 | 可使用异常恢复 |
| 11 | 驱动板过温 | 可使用异常恢复 |
| 12 | 过压 | 可使用异常恢复 |
| 13 | 欠压 | 可使用异常恢复 |
| 14 | 命令错误 | — |
| 15 | 启用处于非活动状态 | — |