跳转至

SHC舵机-内存表解析

1 舵机通信协议

舵机使用CANopen通信协议,舵机默认CAN波特率为125k,波特率可配置范围20k~1Mbps,默认通信地址(节点)为1。

使用SDO指令可访问舵机所有字典对象实现舵机参数修改

使用PDO指令可快速控制舵机实现伺服功能

使用SYNC指令可快速同步反馈总线上所有舵机的实时状态

RPDO1默认映射控制字与舵机模式对象用于舵机扭矩开关与模式配置

RPDO2默认映射目标位置对象用于舵机伺服位置控制

RPDO3默认映射目标速度对象用于舵机伺服速度控制

RPDO4默认映射额定电流对象用于舵机伺服额定电流控制

TPDO2默认映射实时位置对象使用SYNC指令可实时反馈总线上所有舵机实时位置

TPDO1、TPDO3与TPDO4默认映射关闭

2 对象字典OD

CANopen对象字典(OD: Object Dictionary)是CANopen协议最为核心的概念。所谓的对象字典就是一个有序的对象组,描述了对应CANopen节点的所有参数,包括通讯数据的存放位置也列入其索引,对象字典通过索引与子索引进行寻址。

3.1 通信对象子协议区

索引 子索引 对象 权限 类型 单位 默认值 映射PDO 说明
1000h 00h 设备类型 只读 U32 – 00020192h – CIA402设备的标准值
1001h 00h 错误寄存器 只读 U8 – 0 TPDO 详见特殊字节位解析
1002h 00h 舵机状态 只读 U32 – 0 TPDO 舵机自定义状态,详见特殊字节位解析
1003h 00h 预定义错误域 读写 U8 – 0 – 发生错误的次数,写入00h则清除错误历史记录,写入非0值会返回 SDO abort 0x06090030,详见特殊字节位解析
1003h 01h 预定义错误域-1 只读 U32 – 0 – 无错误,读取会返回 SDO abort 0x08000024
1003h 02h 预定义错误域-2 只读 U32 – 0 – 无错误,读取会返回 SDO abort 0x08000024
1003h 03h 预定义错误域-3 只读 U32 – 0 – 无错误,读取会返回 SDO abort 0x08000024
1003h 04h 预定义错误域-4 只读 U32 – 0 – 无错误,读取会返回 SDO abort 0x08000024
1003h 05h 预定义错误域-5 只读 U32 – 0 – 无错误,读取会返回 SDO abort 0x08000024
1005h 00h SYNC报文 COB-ID 只读 U32 – 00000080h – 不支持修改SYNC的COB-ID
1008h 00h 设备生厂商名 只读 str – – 15字节字符串
1009h 00h 设备硬件型号 只读 str – – 15字节字符串
1010h 00h 保存参数 只读 U8 – 1 –
1010h 01h 保存所有参数 读写 U32 – – – "save"保存所有参数至EPROM
1011h 00h 恢复参数 只读 U8 – 1 –
1011h 01h 恢复所有参数 读写 U32 – – – "load"恢复所有参数至出默认值
1014h 00h EMCY报文 COB-ID 只读 U32 – 80h+NodeID –
1017h 00h 生产者心跳时间 读写 U16 100ms 0 – 0表示停止心跳功能
1018h 00h 标识对象 只读 U8 – 4 –
1018h 01h 舵机厂商ID 只读 U32 – –
1018h 02h 舵机型号 只读 U32 – –
1018h 03h 舵机固件 只读 U32 – –
1018h 04h 舵机序列SN 只读 U32 – –
1200h 00h SDO服务参数 只读 U8 – 2 –
1200h 01h TSDO对象 只读 U32 – NodeID+600h –
1200h 02h RSDO对象 只读 U32 – NodeID+580h –
1400h 00h RPDO1通信参数 只读 U8 – 2 –
1400h 01h RPDO1对象 只读 U32 – NodeID+200h –
1400h 02h 传输类型 只读 U8 – FF – 舵机接收RPDO后立即更新数据
1401h 00h RPDO2通信参数 只读 U8 – 2 –
1401h 01h RPDO2对象 只读 U32 – NodeID+300h –
1401h 02h 传输类型 只读 U8 – FF – 舵机接收RPDO后立即更新数据
1402h 00h RPDO3通信参数 只读 U8 – 2 –
1402h 01h RPDO3对象 只读 U32 – NodeID+400h –
1402h 02h 传输类型 只读 U8 – FF – 舵机接收RPDO后立即更新数据
1403h 00h RPDO4通信参数 只读 U8 – 2 –
1403h 01h RPDO4对象 只读 U32 – NodeID+500h –
1403h 02h 传输类型 只读 U8 – FF – 舵机接收RPDO后立即更新数据
1600h 00h RPDO1映射参数 读写 U8 – 2 – 映射对象地址数量,0表示映射禁用,限值0~4
1600h 01h 映射对象地址1 读写 U32 – 0x60400010 – 映射对象地址
1600h 02h 映射对象地址2 读写 U32 – 0x60600008 – 映射对象地址
1600h 03h 映射对象地址3 读写 U32 – – 映射对象地址
1600h 04h 映射对象地址4 读写 U32 – – 映射对象地址
1601h 00h RPDO2映射参数 读写 U8 – 1 – 映射对象地址数量,0表示映射禁用,限值0~4
1601h 01h 映射对象地址1 读写 U32 – 0x607a0020 – 映射对象地址
1601h 02h 映射对象地址2 读写 U32 – – 映射对象地址
1601h 03h 映射对象地址3 读写 U32 – – 映射对象地址
1601h 04h 映射对象地址4 读写 U32 – – 映射对象地址
1602h 00h RPDO3映射参数 读写 U8 – 1 – 映射对象地址数量,0表示映射禁用,限值0~4
1602h 01h 映射对象地址1 读写 U32 – 0x60ff0020 – 映射对象地址
1602h 02h 映射对象地址2 读写 U32 – – 映射对象地址
1602h 03h 映射对象地址3 读写 U32 – – 映射对象地址
1602h 04h 映射对象地址4 读写 U32 – – 映射对象地址
1603h 00h RPDO4映射参数 读写 U8 – 1 – 映射对象地址数量,0表示映射禁用,限值0~4
1603h 01h 映射对象地址1 读写 U32 – 0x60750020 – 映射对象地址
1603h 02h 映射对象地址2 读写 U32 – – 映射对象地址
1603h 03h 映射对象地址3 读写 U32 – – 映射对象地址
1603h 04h 映射对象地址4 读写 U32 – – 映射对象地址
1800h 00h TPDO1通信参数 只读 U8 – 2 –
1800h 01h TPDO1对象 只读 U32 – NodeID+180h –
1800h 02h 传输类型 只读 U8 – 1 – 舵机接收SYNC后立即反馈TPDO
1801h 00h TPDO2通信参数 只读 U8 – 2 –
1801h 01h TPDO2对象 只读 U32 – NodeID+280h –
1801h 02h 传输类型 只读 U8 – 1 – 舵机接收SYNC后立即反馈TPDO
1802h 00h TPDO3通信参数 只读 U8 – 2 –
1802h 01h TPDO3对象 只读 U32 – NodeID+380h –
1802h 02h 传输类型 只读 U8 – 1 – 舵机接收SYNC后立即反馈TPDO
1803h 00h TPDO4通信参数 只读 U8 – 2 –
1803h 01h TPDO4对象 只读 U32 – NodeID+480h –
1803h 02h 传输类型 只读 U8 – 1 – 舵机接收SYNC后立即反馈TPDO
1A00h 00h TPDO1映射参数 读写 U8 – 0 – 映射对象地址数量,0表示映射禁用,限值0~4
1A00h 01h 映射对象地址1 读写 U32 – 0x60410010 – 映射对象地址
1A00h 02h 映射对象地址2 读写 U32 – 0x60610008 – 映射对象地址
1A00h 03h 映射对象地址3 读写 U32 – 0x603f0010 – 映射对象地址
1A00h 04h 映射对象地址4 读写 U32 – – 映射对象地址
1A01h 00h TPDO2映射参数 读写 U8 – 1 – 映射对象地址数量,0表示映射禁用,限值0~4
1A01h 01h 映射对象地址1 读写 U32 – 0x60630020 – 映射对象地址
1A01h 02h 映射对象地址2 读写 U32 – 0x606c0020 – 映射对象地址
1A01h 03h 映射对象地址3 读写 U32 – – 映射对象地址
1A01h 04h 映射对象地址4 读写 U32 – – 映射对象地址
1A02h 00h TPDO3映射参数 读写 U8 – 0 – 映射对象地址数量,0表示映射禁用,限值0~4
1A02h 01h 映射对象地址1 读写 U32 – 0x60780010 – 映射对象地址
1A02h 02h 映射对象地址2 读写 U32 – – 映射对象地址
1A02h 03h 映射对象地址3 读写 U32 – – 映射对象地址
1A02h 04h 映射对象地址4 读写 U32 – – 映射对象地址
1A03h 00h TPDO4映射参数 读写 U8 – 0 – 映射对象地址数量,0表示映射禁用,限值0~4
1A03h 01h 映射对象地址1 读写 U32 – – 映射对象地址
1A03h 02h 映射对象地址2 读写 U32 – – 映射对象地址
1A03h 03h 映射对象地址3 读写 U32 – – 映射对象地址
1A03h 04h 映射对象地址4 读写 U32 – – 映射对象地址

3.2 制造商特定子协议区

索引 子索引 对象 权限 类型 单位 默认值 映射PDO 说明
2000h 00h 舵机NodeId 读写 S8 – 1 – 修改立即生效
2001h 00h 舵机波特率 读写 U8 – 4 – 0-7分别代表波特率:1M(0),800k(1),500k(2),250k(3),125k(4),100k(5),(50k)6,20k(7),重启生效
2002h 00h 通信超时 读写 U8 ms 50 –
2003h 00h 默认模式 读写 S8 – 1 – 详见特殊字节位解析
2004h 00h 扭矩限制 读写 S16 0.02% 4800 –
2005h 00h 启动扭矩 读写 S16 0.02% 0 – 范围:0~255
2006h 00h 位置死区 读写 u8 0.022度 2 – 最小单位为一个最小分辨角度
2007h 00h 最小角度限制 读写 S16 0.022度 0 – 多圈绝对位置控制时此值为0
2008h 00h 最大角度限制 读写 S16 0.022度 0 – 多圈绝对位置控制时此值为0
2009h 00h 位置偏移 读写 S16 0.022度 0 – 最小单位为一个最小分辨角度
200Ah 00h 舵机相位 读写 U16 – – – 无特别需求不可修改,详见特殊字节位解析
200Bh 00h 保护开关 读写 U16 – 7 – 对应位设置1为开启相应保护,对应位设置0为关闭相应保护,详见特殊字节位解析
200Ch 00h LED报警条件 读写 U16 – 15 – 对应位设置1为开启闪灯报警,对应位设置0为关闭闪灯报警,详见特殊字节位解析
200Dh 00h 最高温度上限 读写 U16 ℃ 70 – 最高工作温度限制,如设置为70 则最高温度为70摄氏度,设置精度为1摄氏度
200Eh 00h 最低输入电压 读写 U16 0.1V – – 最低输入电压如设置为40,则最低工作电压限制为4.0V,设置精度为0.1V
200Fh 00h 最高输入电压 读写 U16 0.1V – – 最高输入电压如设置为260,则最高工作电压限制为26.0V,设置精度为0.1V
2010h 00h 过载电流 读写 U16 6.5mA – – 舵机工作过载保护电流
2011h 00h 过流保护时间 读写 U16 1ms 3000 – 工作电流超出过载电流的最长工作时间
2012h 00h 保护扭矩 读写 U16 – 0 – 预留地址
2013h 00h 过载扭矩 读写 U16 – 0 – 预留地址
2014h 00h 过载保护时间 读写 U16 – 0 – 预留地址
2015h 00h 位置环P 比例系数 读写 U16 – 48 – 标准位置模式(模式1),位置闭环比例系数
2016h 00h 位置环D 微分系数 读写 U16 – 32 – 标准位置模式(模式1),位置闭环微分系数
2017h 00h 位置环I 积分系数 读写 U16 – 0 – 标准位置模式(模式1),位置闭环积分系数
2018h 00h 位置环 积分限制 读写 U16 – 0 – 标准位置模式(模式1),位置闭环积分限制最大值,0表示无限制
2019h 00h 速度环P 比例系数 读写 U16 – 100 – 标准速度模式(模式3),速度环比例系数
201Ah 00h 速度环I 积分系数 读写 U16 – 100 – 标准速度模式(模式3),速度环积分系数
201Bh 00h 电流环P 比例系数 读写 U16 – – – 舵机出厂默认参数
201Ch 00h 电流环I 积分系数 读写 U16 – – – 舵机出厂默认参数
201Dh 00h 最大速度限制 读写 U16 – 0.183rpm – 舵机出厂默认参数
201Eh 00h 最大加速度限制 读写 U16 0.366rpm/s – – 舵机出厂默认参数
201Fh 00h 额定电流限制 读写 U16 6.5mA – – 舵机出厂默认参数
2020h 00h 最大扭矩限制 读写 S16 – 5000 – 无特别需求不可修改
2021h 00h H桥死区时间 读写 U16 – – – 舵机出厂默认参数
2022h 00h 微分控制时间 读写 U16 ms – – 舵机出厂默认参数
2023h 00h 电流采样窗口时间 读写 U16 – – – 舵机出厂默认参数
2024h 00h 移动检测阈值 读写 U16 – – – 舵机出厂默认参数
2025h 00h 六步换相阀值 读写 U16 – – – 舵机出厂默认参数
2026h 00h 速度微分时间 读写 U16 ms 20 – 舵机出厂默认参数
2027h 00h 位置滤波系数 读写 U16 – – – 舵机出厂默认参数
2028h 00h 速度滤波系数 读写 U16 – – – 舵机出厂默认参数
2029h 00h 母线电流滤波系数 读写 U16 – – – 舵机出厂默认参数
202Ah 00h 位置环微分滤波系数 读写 U16 – – – 舵机出厂默认参数
202Bh 00h 当前电压 只读 S16 0.1V ? TPDO 当前舵机工作电压
202Ch 00h 当前温度 只读 S16 ℃ ? TPDO 当前舵机内部工作温度
202Eh 00h 磁编码状态码 只读 U16 – ? – 磁编码自身状态码
202Fh 00h 编码器出错计数 只读 U16 – ? – 磁编码通信出错计数
2031h 00h 母线电流偏移 只读 U16 6.5mA ? – 上电自动检测
2032h 00h 舵机状态复位 读写 U16 0 0 RPDO 对应位被置1复位相应故障,复位成功相应位被置0,详见特殊字节位解析
2033h 00h 舵机厂商 默认 U32 – – – 舵机出厂默认参数
2034h 00h 舵机型号 默认 U32 – – – 舵机出厂默认参数

3.3 标准化设备子协议区

索引 子索引 对象 权限 类型 单位 默认值 映射PDO 说明
603Fh 00h 错误码 只读 U16 – 0 TPDO 定义参阅1003h(预定义错误域),可通过6040h重置为0
6040h 00h 控制字 读写 U16 – 0 RPDO 0:关闭舵机扭矩,15:开启舵机扭矩,11:快速故障停机
6041h 00h 状态字 只读 U16 – 0 TPDO 详见CANopen通信协议
6060h 00h 操作模式 读写 S8 – 默认模式(2003) RPDO 详见特殊字节位解析
6061h 00h 当前操作模式 只读 S8 – 默认模式(2003) TPDO 详见特殊字节位解析
6062h 00h 当前目标位置 只读 S32 0.022度 ? TPDO
6063h 00h 实时位置 只读 S32 0.022度 ? TPDO
606Ch 00h 实时速度 只读 S32 – ? TPDO
6072h 00h 扭矩限制 读写 U16 0.02% 扭矩限制(2004) RPDO
6074h 00h 当前扭矩 读写 S16 0.02% ? TPDO
6075h 00h 额定电流 读写 U32 6.5mA 额定电流限制(201F) RPDO
6078h 00h 电流反馈 只读 S16 6.5mA ? TPDO
607Ah 00h 目标位置 读写 S32 0.022度 – RPDO 舵机伺服目标位置
6083h 00h 轨迹加速度 读写 U32 0.366rpm/s 最大加速度限制(201E) RPDO 加速度与减速共用此参数
6084h 00h 轨迹减速度 读写 U32 0.366rpm/s – RPDO 无效
6085h 00h 快速停机减速度 读写 U32 0.366rpm/s – RPDO 控制字写入11时快速停机减速度
60FFh 00h 目标速度 读写 S32 0.183rpm 最大速度限制(201D) RPDO

3 特殊字节解释

3.1 模式定义

值 模式 说明
1 标准位置模式 目标位置、速度、额定电流控制、加/减速度控制
3 标准速度模式 速度、额定电流控制、加/减速度控制
12 电机模式 额定电流控制(0.02%)、用于测试舵机

3.2 错误寄存器定义

位数/位权重:0表示正常,1表示异常

  • BIT0(1):----
  • BIT1(2):舵机过流
  • BIT2(4):舵机过压/欠压
  • BIT3(8):舵机过热
  • BIT4(16):----
  • BIT5(32):----
  • BIT6(64):----
  • BIT7(128):舵机位置传感器通信出错

3.3 预定义错误域定义

附加信息 错误代码
bit31 ~ bit16 bit15 ~ bit0
错误代码 报警内容
0000h 错误复位或没有错误
2300h 电机过流
2311h 电机过载
3210h 电源过电压
3220h 电源欠电压
4210h 温度过高报警
7306h 编码器故障

3.4 舵机相位

位数/位权重:说明

  • BIT0(1):驱动方向相位;(0)正向,(1)反向
  • BIT1(2):位置反馈方向相位,(0)正向,(1)反向
  • BIT2(4):无刷/有刷,(0)无刷,(1)有刷,重启生效

3.5 舵机状态

*舵机状态:0表示正常,1表示异常

位数/位权重:说明

  • BIT0(1):扭矩状态:0表示扭矩关闭,1表示扭矩打开
  • BIT1(2):移动状态:0舵机正在移动,1舵机停止移动
  • BIT2(4):目标状态:0舵机到达设定目标位置,1舵机没有到达设定目标位置

3.6 LED报警条件

LED报警条件:0表示关闭,1表示开启

位数/位权重:说明

  • BIT0(1):----
  • BIT1(2):过流报警
  • BIT2(4):电压报警
  • BIT3(8):过热报警
  • BIT4(16):----
  • BIT5(32):----
  • BIT6(64):----
  • BIT7(128):编码器报警

3.7 保护开关

卸载条件:0表示关闭,1表示开启

位数/位权重:说明

  • BIT0(1):----
  • BIT1(2):过流报警
  • BIT2(4):电压报警
  • BIT3(8):过热报警
  • BIT4(16):----
  • BIT5(32):----
  • BIT6(64):----
  • BIT7(128):编码器报警

3.8 状态复位

故障复位:0无效,1表示复位

位数/位权重:说明

  • BIT0(1):----
  • BIT1(2):复位过流故障
  • BIT2(4):复位过压/欠压,电压恢复正常,状态复位写32复位过压/欠压状态
  • BIT3(8):复位过热状态,温度恢复正常,状态复位写64复位过热状态
  • BIT4(16):----
  • BIT5(32):----
  • BIT6(64):----
  • BIT7(128):复位磁编码状态,磁编码连接正常,状态复位写128复位磁编码状态
  • BIT14(16384):圈数复位,状态复位写16384,舵机当前位置恢复至单圈位置
  • BIT15(32768):中位设置;状态复位写32768,当前位置设置为8192中位