CANFD:
内存控制表 1. 控制表详细说明
模块本身的信息和控制参数形成了一张一维控制表,在控制芯片的RAM和Flash中各保存一份。
在系统上电时,控制芯片从Flash读取控制表到RAM中,在模块运行过程中用户对RAM中的控制表进行读写操作,获取模块状态或对模块进行控制。
若用户对表中的“保存数据到Flash标志”写1,则控制芯片将当前RAM表的内容复制到Flash中,实现断电保存。 控制表内容如下:
地址 | 名称 | 命令项 | 权限 | 初始值 |
---|---|---|---|---|
0x00 | 保留 | 保留 | -- | 0x1314 |
0x01 | SYS_ID | 驱动器ID | -- | 1 |
0x02 | SYS_MODEL_TYPE | 驱动器型号,具体请参考驱动器型号定义 | R | -- |
0x03 | SYS_FW_VERSION | 固件版本,如0x0102表示版本号1.2 | R | -- |
0x04 | SYS_ERROR | 错误代码 | R | -- |
0x05 | SYS_VOLTAGE | 系统电压(0.01V) | R | -- |
0x06 | SYS_TEMP | 系统温度(0.1℃) | R | -- |
0x07 | SYS_REDU_RATIO | 模块减速比 | R | 与程序编译一致80/100 |
0x08~0x09 | 保留 | 保留 | -- | -- |
0x0A | SYS_ENABLE_DRIVER | 驱动器使能标志,1:使能,0:未使能。(禁使能后需要等待5ms再下发指令) | R/W | 0 |
0x0B | SYS_ENABLE_ON_POWER | 上电使能驱动器标志,1:使能,0:不使能。 | R/W | 1 |
0x0C | SYS_SAVE_TO_FLASH | 保存数据到Flash标志,1:保存,0:不保存。在掉使能的状态下保存。(发送保存Flash后需要等待50ms再下发指令) | R/W | 0 |
0x0D | 保留 | 保留 | -- | -- |
0x0E | SYS_SET_ZERO_POS | 将当前位置设置为零点标志,1:设置,0:不设置。 | R/W | 0 |
0x0F | SYS_CLEAR_ERROR | 清除错误标志,1:清除,0:不清除。 | R/W | 0 |
0x10 | CUR_CURRENT_L | 当前电流低16位(mA) | R | 0 |
0x11 | CUR_CURRENT_H | 当前电流高16位(mA) | R | -- |
0x12 | CUR_SPEED_L | 关节当前速度低16位 (RPM,分辨率0.02RPM) | R | -- |
0x13 | CUR_SPEED_H | 关节当前速度高16位 (RPM,分辨率0.02RPM) | R | -- |
0x14 | CUR_POSITION_L | 当前位置低16位(units),精度0.0001° | R | -- |
0x15 | CUR_POSITION_H | 当前位置高16位(units),精度0.0001° | R | -- |
0x16~ 0x1E | 保留 | 保留 | -- | -- |
0x1F | ON_DELAY | 0使能关节上电延迟,1关节上电无延迟 | R/W | 0 |
0x20~0X29 | 保留 | 保留 | -- | -- |
0X2A | MOT_MODEL_ID0 | 模块全球唯一ID:15:0 | R | -- |
0X2B | MOT_MODEL_ID1 | 模块全球唯一ID:31:16 | R | -- |
0X2C | MOT_MODEL_ID2 | 模块全球唯一ID:47:32 | R | -- |
0X2D | MOT_MODEL_ID3 | 模块全球唯一ID:63:48 | R | -- |
0X2E | MOT_MODEL_ID4 | 模块全球唯一ID:79:64 | R | -- |
0X2F | MOT_MODEL_ID5 | 模块全球唯一ID:95:80 | R | -- |
0x30 | TAG_WORK_MODE | 工作模式:0-开环,1-电流模式,2-速度模式,3-位置模式 | R/W | 3 |
0x31 | TAG_OPEN_PWM | 开环模式下占空比(0~100) | R/W | 0 |
0x32 | TAG_CURRENT_L | 目标电流低16位(mA) | R/W | 0 |
0x33 | TAG_CURRENT_H | 目标电流高16位(mA) | R/W | 0 |
0x34 | TAG_SPEED_L | 关节目标速度低16位 (RPM,分辨率0.002RPM) | R/W | 0 |
0x35 | TAG_SPEED_H | 关节目标速度高16位 (RPM,分辨率0.002RPM) | R/W | 0 |
0x36 | TAG_POSITION_L | 目标位置低16位(units),精度0.0001° | R/W | 0 |
0x37 | TAG_POSITION_H | 目标位置高16位(units),精度0.0001° | R/W | 0 |
0X38 | 保留 | 保留 | -- | -- |
0X39 | Speed feed forward switch | 存储的数值是位置环跟随系数,有效值0到100,默认值0 | R/W | 0 |
0x3A~ 0x3F | 保留 | 保留 | -- | -- |
0x40 | LIT_MAX_CURRENT | 最大电流(mA)(预留) | R/W | -- |
0x41 | LIT_MAX_SPEED | 关节最大速度(RPM,分辨率1/减速比RPM) | R/W | 3000 |
0x42 | LIT_MAX_ACC | 关节最大加速度(0.1rpm/s) | R/W | 5000 |
0x43 | LIT_MAX_DEC | 关节最大减速度(0.1rpm/s)(预留) | R/W | -- |
0x44 | LIT_MIN_POSITION_L | 最小位置低16位(units),精度0.0001° | R/W | -- |
0x45 | LIT_MIN_POSITION_H | 最小位置高16位(units),精度0.0001° | R/W | -- |
0x46 | LIT_MAX_POSITION_L | 最大位置低16位(units),精度0.0001° | R/W | -- |
0x47 | LIT_MAX_POSITION_H | 最大位置高16位(units),精度0.0001° | R/W | -- |
0X48 | 保留 | 保留 | -- | -- |
0X49 | IAP_FLAG | IAP在线更新标志位:0-不更新,1-更新 | R/W | 0 |
0x4A~0x50 | 保留 | 保留 | -- | -- |
0x51 | SEV_CURRENT_P | 电流环P参数 | R/W | -- |
0x52 | SEV_CURRENT_I | 电流环I参数 | R/W | -- |
0x53 | SEV_CURRENT_D | 电流环D参数 | R/W | -- |
0x54 | SEV_SPEED_P | 速度环P参数 | R/W | -- |
0x55 | SEV_SPEED_I | 速度环I参数 | R/W | -- |
0x56 | SEV_SPEED_D | 速度环D参数 | R/W | -- |
0x57 | SEV_SPEED_DS | 速度P死区 | R/W | -- |
0x58 | SEV_POSITION_P | 位置环P参数 | R/W | -- |
0x59 | SEV_POSITION_I | 位置环I参数 | R/W | -- |
0x5A | SEV_POSITION_D | 位置环D参数 | R/W | -- |
0x5B | SEV_POSITION_DS | 位置P死区 | R/W | -- |
0x5C | SEV_POS_SMOOTH | 位置环平滑系数 | R/W | 系数越大跟随效果越好 |
0x5D | SEV_SPD_FF | 速度前馈系数 | R/W | 系数越大跟随效果越好 |
0x5E~0X68 | 保留 | 保留 | -- | -- |
0x69 | LOW_POWER_MODE | 低功耗模式 | R/W | -- |
0X6A~0X77 | 保留 | 保留 | -- | -- |
0x78 | ERROR | 错误代码 | R | 0 |
0x79 | END_BOARD_MODE | 末端板模式 | R/W | 0 |
0x7A~0x91 | 保留 | 保留 | -- | -- |
注意
- ID设置成功后需要给关节断电重启,模块将以新ID进行通讯。
- 三闭环参数出厂时已经按照最优状态调整好,如非必要无需再调整。
2. 控制表补充说明
2.1 标志说明
共有6个标志类变量,其值只能为1或者0,其他值无效。
具体说明如下表:
地址 | 定义 | 说明 |
---|---|---|
0x0a | 驱动器使能标志 | 写1使能驱动器,写0禁能驱动器并打开锁相继电器。 |
0x0b | 上电使能驱动器标志 | 1代表上电即使能驱动器并工作在指定模式,0代表上电不使能。 |
0x0c | 保存数据到Flash标志 | 写入1后芯片将当前RAM中的控制表写入Flash中,系统自动清零。 |
0x0d | 自动标定绝对位置标志 | 写入1后驱动器将根据编码器的值标定绝对位置传感器(数字电位器),并将标定后的数据保存到Flash中,必须确保模块当前不带任何负载,并且能够稳定工作在位置伺服模式并且出于使能状态,否则将带来不可预测的后果。系统自动清零。 |
0x0e | 将当前位置设置为零点标志 | 写1后将当前的位置保存为零点位置,并立即起作用,数据保存到Flash中后下次上电后将使用保存的位置作为零点位置。系统自动清零。 |
0x0f | 清除错误标志 | 写1尝试清除当前错误。自动清零。 |
2.2 相关单位说明
10关节与30关节,目标电流和反馈的实际电流,单位为1mA;
60关节,目标电流和反馈的实际电流,单位为2mA;
所有关节的电流前馈,单位为2mA;
目标速度,对象是关节输出端,单位为0.002RPM;
实际速度,对象是关节输出端,单位为0.02RPM;
前馈速度,对象是关节输出端,单位为0.002RPM;
目标位置和反馈的实际位置,对象是关节输出端,单位为0.0001度;
电压单位0.01V;
系统温度单位0.1℃。
2.3 工作模式说明
模块共有四种工作模式:开环模式、电流模式、速度模式和位置模式。 四种模式的切换通过改变控制表中的TAG_WORK_MODE字段(0x30)实现切换。
- 开环模式直接控制驱动器输出到电机的占空比,容易发生危险,不建议使用。
- 电流模式控制电机输出的目标电流(力矩)。
- 速度模式控制电机输出转速,除非模块能够实现整周转动,否则不建议使用。
- 位置模块控制电机伺服位置。
0x3*字段中的目标占空比、电流、速度和位置只有在模块处于相应工作模式下才起作用。 0x40~0x46字段中的最大电流、最大速度和最大加/减速度对电流、速度和位置模式均有效,最小和最大位置只有工作在位置伺服模式有效,其指定了位置伺服的目标值不能够设定在该范围以外。
若设定的目标位置小于最小值或大于最大值,则模块将只运动到最小值或最大值处。若驱动器使能时模块已经处于范围之外,则将自动运动到最小/最大值处。
2.4 驱动器型号定义
驱动器型号的内存控制表地址0x02对应的关节型号说明如下:
关节类型 | 字符定义 | 内存向量表定义 |
---|---|---|
关节10 | J14 | 0x02 |
关节30 | J17 | 0x03 |
关节60 | J20 | 0x04 |
关节120 | J25 | 0x05 |
夹爪 | GRIPPER | 0x06 |
关节03 | J3 | 0x07 |
3. 错误代码
错误代码16位数据每一位代表一种错误,当相应错误产生时,相应位将置1,出现不可恢复的错误后,模块将自动进入驱动禁能状态,用户需要往“清除错误标志”字段(0x0f)写1来清除错误。
错误位代表的含义如下:
错误位 | 定义 | 说明 |
---|---|---|
0x0001 | FOC频率过高 | FOC频率过高 |
0x0002 | 过压 | 输入电压超过关节的耐压范围 |
0x0004 | 欠压 | 输入电压低于关节的耐压范围 |
0x0008 | 过温 | 关节温度达到报警温度 |
0x0010 | 启动过程失败 | 关节启动FOC 出错 |
0x0020 | 编码器错误 | 关节自检失败或无法识别到当前角度 |
0x0040 | 过流 | 电机电流过大 |
0x0080 | 软件错误 | 硬件和软件不对应,电流检测错误 |
0x0100 | 温度传感器出错 | 温度传感器未能正常获取关节温度 |
0x0200 | 位置超限错误 | 当前/目标位置超过限位 |
0x0400 | 关节ID非法 | 关节ID不正确 |
0x0800 | 位置跟踪误差超限 | 目标位置与当前位置差值超过阈值;位置误差跟踪超限保护 |
0x1000 | 电流检测错误 | 上电时电流传感器检测错误 |
0x2000 | 抱闸失败 | 打开抱闸失败;内部霍尔信号不正确 |
0x4000 | 位置指令阶跃 | 当前位置和目标位置误差大于10 度 |
0x8000 | 多圈丢数 | 多圈丢数 |