磁编码 UAVCAN 舵机 - 内存表解析¶
适用于 UAVCAN(CAN 总线)磁编码舵机。寄存器数据为 16 位,按大端格式(高字节在前)传输。
1 通信协议¶
舵机使用UAVCAN通讯协议,出厂CAN默认波特率为1M,波特率可配置范围 20K~1M,通信地址,CAN波特率、通信站点地址可通过上位机软件进行设置。
2 UAVCAN指令实例¶
UAVCAN通讯协议
以下指令为CAN2.0B标准,电机NODE_ID默认为100(0x64)
单电机位置指令:1807DB01(帧ID):00 64 05 D5(数据)
等级:18
帧类型:07DB(2011)
帧源ID:01
帧数据:00 64 05,电机通道(00),位置数据(0564)
帧尾:D5
多电机位置指令:
1807DC01(帧ID):8E 82 64 05 00 00 00 97(数据)
1807DC01(帧ID):00 00 00 00 00 00 00 37(数据)
1807DC01(帧ID):00 00 00 00 00 00 00 17(数据)
1807DC01(帧ID):00 00 00 00 00 00 00 37(数据)
1807DC01(帧ID):00 00 00 00 00 00 00 17(数据)
1807DC01(帧ID):00 00 00 77(数据)
等级:18
帧类型:07DC(2012)
帧源ID:01
CRC校验码:8E 82
帧数据:
64 05 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00
(cmd[0]=0564,cmd[1]=0000,cmd[2]=0000......cmd[17]=0000)
帧尾:
97/37/17/37/17/77
自动动上报反馈指令:
1807DD64(帧ID):A1 04 00 CC 0C CD 0C 80(数据)
1807DD64(帧ID):45 00 00 00 2A 00 00 60(数据)
等级:18
帧类型:07DD(2013)
帧源ID:64
CRC校验码:A1 04
帧数据:
00 CC 0C CD 0C
45 00 00 00 2A 00 00
(Servo_ID:00,POS_CMD:0CCC,POS_SENSOR:0CCD,VOLTAGE:0045,CURRENT:0000,PCB_Temp:2A,MOTOR_Temp:00,StatusInfo:00)
帧尾:80/60
节点状态指令:18015564(帧ID):50 03 00 00 00 00 00 D0(数据)
等级:18
帧类型:0155(341)
帧源ID:64
帧数据:50 03 00 00 00 00 00
(uptime_sec:00000350,health:0,mode:0,sub_mode:0,vendor_specific_status_code:0)
帧尾:D0
扭矩控制指令:1803FC01 (帧ID):00 00 D6(数据)
等级:18
帧类型:03FC(1020)
帧源ID:01
帧数据:00 00 D6,电机通道(00),扭矩指令(00,00表示关闭扭矩)
帧尾:D6
读硬件版本号指令:
请求:18FAE481(帧ID):00 00 02 C0(数据)
响应:18FA0164(帧ID):00 02 4E 28 07 D1 C0(数据)
请求帧等级:18
请求帧类型:FA(250)
请求帧源ID:01
请求帧目标ID:64
请求帧数据:00 01 02 C0(参数地址:0001,参数长度:02)
请求帧尾:C0
响应帧等级:18
响应响应帧类型:FA(250)
响应帧源ID:64
响应帧目标ID:01
响应帧数据:00 02 4E 28 07 D1(读取状态:00,参数长度:02,参数数据0:4E28,参数数据1:07D1)
响应帧尾:C0
3 舵机内存表定义¶
寄存器地址使用分页结构,每页为64个寄存器,寄存器地址由页码与序号组成,如页码1,序号2的寄存器地址为1*64+2=66。可通过MODBUS-RTU与UAVCAN协议访问寄存器表中的所有寄存器
3.1 版本信息¶
存储区:SRAM,权限:只读,读写条件:无
| 页码 | 序号 | 功能 | 取值范围 | 默认值 | 取值解释 |
|---|---|---|---|---|---|
| 0 | 0 | 产品型号高位 | 20008 | ||
| 0 | 1 | 产品型号低位 | 2001 | ||
| 0 | 2 | 固件版本高位 | 2050 | ||
| 0 | 3 | 固件版本低位 | 513xx | xx=00~99 | |
| 0 | 4 | 字节顺序 | 1 | 大端格式 | |
| 0 | 5 | SN1 | 0 | ||
| 0 | 6 | SN2 | 0 | ||
| 0 | 7 | SN3 | 0 | ||
| 0 | 8 | SN4 | 0 |
3.2 控制参数¶
存储区:SRAM,权限:读写,读写条件:无
| 页码 | 序号 | 功能 | 取值范围 | 默认值 | 取值解释 |
|---|---|---|---|---|---|
| 1 | 0 | 预留地址 | 0 | ||
| 1 | 1 | 预留地址 | 0 | ||
| 1 | 2 | 目标位置高位 | 0~65535 | 0 | 1=0.02197度, -8192~8192(输出轴-180度 ~ 180度) |
| 1 | 3 | 目标位置低位 | 0~65535 | 0 | 1=0.02197度, -8192~8192(输出轴-180度 ~ 180度) |
| 1 | 4 | 运行加速度 | 0~2000 | 默认加速度 | 输出轴加速度, 1=2.1972度/秒²,0表示最大默认值 |
| 1 | 5 | 运行速度 | -600~600 | 默认运行速度 | 输出轴速度, 1=0.1831rpm, 0表示停止 |
| 1 | 6 | 运行电流 | -625~625 | 默认运行电流 | 运行电源电流, 1=6.5mA |
| 1 | 7 | 扭矩限制 | 0~4800 | 默认扭矩限制 | 默认值为4800 |
| 1 | 8 | 状态复位 | 0~65535 | 0 | 详细查阅“状态复位”相关位说明 |
| 1 | 9 | 扭矩开关 | 0~1 | 0 | 0关闭扭矩,1打开扭矩,伺服模式0下UAVCAN指令自动打开扭矩 |
| 1 | 10 | 读写锁标志 | 0~11 | 0 | EPROM参数区写入解锁标志位,解锁值为相应页码值 |
| 1 | 11 | 读写锁密码 | -32768~32767 | 0 | |
| 1 | 12 | CAN功能开关位 | 0~7 | CAN功能开关位默认 | 详细查阅“CAN功能开关位”相关位说明 |
状态复位:0无效,1复位相应故障
位数/位权重:说明
- BIT10(1024):复位圈数
- BIT15(32768):零位校准
要复位那个故障就在相对应的位置设置1,之后把它转换成数值,把这个值写到相对于的地址上,例如:要把过热过流故障恢复,对应的位置写入1,得出二进制字样“0000 0000 0000 1100”,转为16进制的值:000C,用命令把这个值写入状态复位(1-8)地址中。
CAN功能开关位:0无效,1有效
位数/位权重:说明
- BIT0:节点状态指令自动上报总开关位
- BIT1:----
- BIT2:反馈指令自动上报开关位
3.3 状态参数¶
存储区:SRAM,权限:只读,读写条件:无
| 页码 | 序号 | 功能 | 取值范围 | 默认值 | 取值解释 |
|---|---|---|---|---|---|
| 2 | 0 | 预留地址 | -- | ||
| 2 | 1 | 预留地址 | -- | ||
| 2 | 2 | 当前位置高位 | 0~65535 | -- | 单位与目标位置相同 |
| 2 | 3 | 当前位置低位 | 0~65535 | -- | 单位与目标位置相同 |
| 2 | 4 | 舵机单圈位置 | -32768~32767 | -- | 1=360/16384=0.02197° |
| 2 | 5 | 预留地址 | |||
| 2 | 6 | 当前舵机速度 | -32768~32767 | -- | 1=0.1831rpm |
| 2 | 7 | 预留地址 | 0 | ||
| 2 | 8 | 当前母线电流 | -2048~2047 | -- | 单位与运行电流相同 |
| 2 | 9 | 当前电压 | 0~400 | -- | 1=0.1V |
| 2 | 10 | 当前MOS温度 | 0~100 | -- | 1=1摄氏度 |
| 2 | 11 | 当前负载 | 0~5000 | -- | 舵机驱动PWM占空比,单位1=0.02% |
| 2 | 12 | 舵机状态 | 0~65535 | -- | 详细查阅“舵机状态”相关位说明 |
| 2 | 13 | 预留地址 | -- | ||
| 2 | 14 | 当前电机温度 | 0~100 | -- | 1=1摄氏度 |
| 2 | 15~21 | 预留地址 | -- | ||
| 2 | 22 | 输入信号脉宽us | -- | 单位微秒 | |
| 2 | 23 | 输入信号周期us | -- | 单位微秒 | |
| 2 | 24 | 编码器状态码 | -- | BIT0~1(0:正常、1磁场太强、2磁场太弱),BIT2:按钮被按压,BIT3:转速过快 | |
| 2 | 25 | 编码器出错计数 | -- | 输出轴编码器通信出错次数计数 |
舵机状态:0表示正常,1表示异常
位数/位权重:说明
- BIT0(1):过压,电压正常自动恢复
- BIT1(2):欠压,电压正常自动恢复
- BIT2(4):驱动器MOS过热,温度正常自动恢复
- BIT3(8):过流,驱动器检测输出扭矩小于安全扭矩自动恢复
- BIT5(64):磁编码出错,磁编码正常自动恢复
- BIT7(128):扭矩状态,0表示扭矩关闭,1表示扭矩打开
- BIT8(256):移动状态,0表示停止,1表示移动
- BIT9(512):目标超范围,接收正常目标位置自动恢复
- BIT12(4096):到达目标状态,0表示到达目标
- BIT13(8192):电机MOS过热,温度正常自动恢复
- BIT14(32768):阻尼状态,1表示进入阻尼状态
如果同时有多种状态的话,电机的状态值为各状态值之和。例如:扭矩打开并且过压,则状态值为128+1=129;
3.4 通信参数¶
存储区:EPROM,权限:读写,读写条件:扭矩开关=0&&读写锁标志=3
| 页码 | 序号 | 功能 | 取值范围 | 默认值 | 取值解释 |
|---|---|---|---|---|---|
| 3 | 0 | 串口主ID | 1~247 | 1 | 总线上唯一的身份识别码,同一总线不可出现重复ID,0为广播ID |
| 3 | 1 | 预留地址 | 0 | ||
| 3 | 2 | 串口波特率 | 2~10 | 4 | 2-10分别代表波特率: 256000(2),128000(3),115200(4),57600(5),38400(6),19200(7),14400(8),9600(9),4800(10) |
| 3 | 3 | 预留地址 | 0 | ||
| 3 | 4 | 预留地址 | 0 | ||
| 3 | 5 | 串口返回延时 | 0~1000 | 500 | 单位为毫秒 |
| 3 | 6 | 预留地址 | 0 | ||
| 3 | 7 | CAN通信超时 | 0~1000 | 100 | 单位为毫秒 |
| 3 | 8 | CAN波特率 | 0~9 | 8 | 0-9分别代表波特率: 10K(0),20K(1),50K(2),100K(3),125K(4),250K(5),500K(6),800K(7),1M(8),83.3K(9) |
| 3 | 9 | CAN驱动端ID | 1~125 | 100 | 用于识别舵机的唯一NODE-ID |
| 3 | 10 | CAN控制端ID | 1~125 | 1 | 控制端NODE-ID,控制器的NODE-ID需要与此寄存器值一致否则舵机无法接收控制端指令 |
| 3 | 11 | 预留地址 | 0 | 0 | |
| 3 | 12 | 主动上报频率 | 0~32767 | 100 | 单位为毫秒,反馈主动上报指令时间间隔,0表示停止上报 |
| 3 | 13~17 | 预留地址 | 0 | ||
| 3 | 18 | CAN心跳包频率 | 0~32767 | 1000 | 单位为毫秒,状态主动上报指令时间间隔,0表示停止上报 |
| 3 | 19 | 预留地址 | 0 | 0 | |
| 3 | 20 | CAN通道ID | 0~17 | 0 | UAVCAN位置指令通道ID |
3.5 配置参数¶
存储区:EPROM,权限:读写,读写条件:扭矩开关=0&&读写锁标志=4
| 页码 | 序号 | 功能 | 取值范围 | 默认值 | 取值解释 |
|---|---|---|---|---|---|
| 4 | 0 | 运行模式 | 0~5 | 0 | 0伺服模式,1恒速模式,2恒流模式,3RCPWM伺服模式(重启生效),4预留,5电机模式,6RCPWM恒速模式(重启生效) |
| 4 | 1 | 默认运行速度 | 0~32767 | -- | 单位与运行速度相同 |
| 4 | 2 | 默认运行加速度 | 0~32767 | -- | 单位与运行加速度相同,0表示加速度参数无效 |
| 4 | 3 | 默认运行最大电流 | 0~4095 | -- | 单位与运行电流相同 |
| 4 | 4 | 默认输出最大扭矩 | 0~4800 | 4800 | 单位与输出最大扭矩相同 |
| 4 | 5 | 预留地址 | 0 | ||
| 4 | 6 | 预留地址 | 0 | ||
| 4 | 7 | 正方向位置死区 | 0~128 | 2 | 单位与目标位置相同 |
| 4 | 8 | 负方向位置死区 | 0~128 | 2 | 单位与目标位置相同 |
| 4 | 9 | 最小角度限制 | -8192~0 | 0 | 单位与目标位置相同,最小角度限制=最大角度限制表示角度无限制,RCPWM模式无效 |
| 4 | 10 | 最大角度限制 | 0~8191 | 0 | 单位与目标位置相同,最小角度限制=最大角度限制表示角度无限制,RCPWM模式无效 |
| 4 | 11 | 输出轴位置偏移 | -32768~32767 | 0 | 单位与目标位置相同 |
| 4 | 12 | 预留地址 | |||
| 4 | 13 | CAN功能开关位默认 | 0~7 | 5 | 详细查阅“CAN功能开关位”相关位说明 |
| 4 | 14 | 配置相位 | 0~32768 | 0 | 预留地址 |
3.6 RCPWM参数¶
存储区:EPROM,权限:读写,读写条件:扭矩开关=0&&读写锁标志=4
| 页码 | 序号 | 功能 | 取值范围 | 默认值 | 取值解释 |
|---|---|---|---|---|---|
| 5 | 0 | 最小输入信号脉宽 | 500~2500 | 500 | 单位微秒 |
| 5 | 1 | 最大输入信号脉宽 | 500~2500 | 2500 | 单位微秒 |
| 5 | 2 | 正方向信号脉宽 | 0~1000 | 1000 | 单位微秒 |
| 5 | 3 | 负方向信号脉宽 | 0~1000 | 1000 | 单位微秒 |
| 5 | 4 | 信号最小角度 | -8192~0 | -8192 | 单位与目标位置相同,PWM信号脉宽角度映射,UAVCAN位置指令0~1000角度映射 |
| 5 | 5 | 信号最大角度 | 0~8191 | 8191 | 单位与目标位置相同,PWM信号脉宽角度映射,UAVCAN位置指令0~1000角度映射 |
| 5 | 6 | 信号分辨率 | 1~16 | 2 | 单位微秒 |
| 5 | 7 | 信号微调 | -128~128 | 0 | 单位微秒 |
| 5 | 8 | 失控保护 | 0~2 | 0 | 0丢信号无扭矩,1丢信号回失控保护位置,2丢信号保持当前位置 |
| 5 | 9 | 失控保护位置 | -32768~32767 | 0 | 单位与目标位置相同 |
| 5 | 10 | 信号死区 | 0~128 | 50 | RCPWM调速模式下的RCPWM信号死区 |
| 5 | 11 | 预留地址 | 0 | ||
| 5 | 12 | 预留地址 | 0 | ||
| 5 | 13 | 信号调制系数 | 0~512 | 15 | 信号调制功能开启,此参数生效,权重越大调节响应越快 |
| 5 | 14 | 信号相位 | 0~65535 | 0 | 详细查阅“信号相位”相关位说明 |
信号相位:0表示关,1表示开
位数/位权重:说明
- BIT0(1):----
- BIT1(2):----
- BIT2(4):RCPWM恒速模式下,信号与转向相位,0表示正方向,1表示反方向
- BIT3(8):RCPWM伺服模式下,信号与目标位置相位,0表示正方向,1表示反方向
- BIT4(16):RCPWM信号调制功能位,固件版本>=2050.51303有效;0表示关闭,1表示开启(开启后通过信号调制系数参数调节权重);对于快速响应需关闭此位
3.7 保护参数¶
存储区:EPROM,权限:读写,读写条件:扭矩开关=0&&读写锁标志=7
| 页码 | 序号 | 功能 | 取值范围 | 默认值 | 取值解释 |
|---|---|---|---|---|---|
| 7 | 0 | 扭矩关闭条件 | 0~65535 | 7 | 详细查阅“LED报警条件/扭矩关闭条件”相关位说明 |
| 7 | 1 | LED报警条件 | 0~65535 | 12295 | 详细查阅“LED报警条件/扭矩关闭条件”相关位说明 |
| 7 | 2 | MOS最高温度上限 | 0~100 | 70 | 1=1摄氏度 |
| 7 | 3 | MOS保护温度差 | 0~10 | 2 | 1=1摄氏度,过热报警恢复温度=MOS最高温度上限-MOS保护温度差 |
| 7 | 4 | MOS过热保护时间 | 0~32767 | 50 | 时间单位毫秒 |
| 7 | 5 | 最低输入电压 | 0~400 | 80 | 1=0.1V |
| 7 | 6 | 最高输入电压 | 0~400 | 280 | 1=0.1V |
| 7 | 7 | 保护电压差 | 0~20 | 5 | 欠压报警恢复电压=最低电压+保护电压差,过压报警恢复电压=最高电压-保护电压差 |
| 7 | 8 | 欠压保护时间 | 0~32767 | 100 | 时间单位毫秒 |
| 7 | 9 | 过压保护时间 | 0~32767 | 1000 | 时间单位毫秒 |
| 7 | 10~12 | 预留地址 | 0 | 0 | |
| 7 | 13 | 保护电流 | 0~4095 | 1000 | 单位同运行电流 |
| 7 | 14 | 过流保护时间 | 0~32767 | 1000 | 时间单位毫秒 |
| 7 | 15 | 安全扭矩 | 0~4095 | 0 | 进入过流保护后最大扭矩输出值,当舵机输出扭矩小于此值退出过流保护 |
| 7 | 16~18 | 预留地址 | |||
| 7 | 19 | 电机最高温度上限 | 0~100 | 0 | 1=1摄氏度,0表示关闭温度传感器输入 |
| 7 | 20 | 电机温度差 | 0~10 | 2 | 1=1摄氏度,过热报警恢复温度=电机最高温度上限-电机保护温度差 |
| 7 | 21 | 电机过热保护时间 | 0~32768 | 50 | 时间单位毫秒 |
LED报警条件/扭矩关闭条件:0表示关闭,1表示打开
位数/位权重:说明
- BIT0(1):过压报警/过压保护
- BIT1(2):欠压报警/欠压保护
- BIT2(4):MOS过热报警/MOS过热保护,电机过热报警/电机过热保护
- BIT3(8):过流报警/过流保护
- BIT6(64):末端磁编码出错报警/末端磁编码出错保护
3.8 PID参数¶
存储区:EPROM,权限:读写,读写条件:扭矩开关=0&&读写锁标志=8
| 页码 | 序号 | 功能 | 取值范围 | 默认值 | 取值解释 |
|---|---|---|---|---|---|
| 8 | 0 | 位置环P | 0~1000 | 48 | |
| 8 | 1 | 位置环D | 0~1000 | 32 | |
| 8 | 2 | 位置环I | 0~1000 | 0 | |
| 8 | 3 | 位置环 积分限制 | 0~5000 | 0 | 0表示无限制 |
| 8 | 4 | 预留地址 | 0 | ||
| 8 | 5 | 速度环P | 0~1000 | 20 | |
| 8 | 6 | 速度环I | 0~1000 | 20 | |
| 8 | 7 | 预留地址 | 0 | ||
| 8 | 8 | 电流环P | 0~1000 | 0 | 预留地址 |
| 8 | 9 | 电流环I | 0~1000 | 1 |
不要跨系列套用地址
本表采用「页码×64+序号」的分页地址结构,与 FT-SCS 系列(SMS/STS/HLS/SCSCL)的线性地址完全不同,不可跨系列套用。请返回通信协议选择正确的内存表。