[release] 发布8DOF串联足中期检查版本
This commit is contained in:
@@ -0,0 +1,880 @@
|
||||
# 灵足时代电机通信协议汇总
|
||||
|
||||
本文档汇总了灵足时代(Robstride)各型号电机的通信协议信息。
|
||||
|
||||
## 支持的电机型号
|
||||
|
||||
- **EL05**: 准直驱6N.M一体化电机模组
|
||||
- **RS00**: 准直驱14N.M一体化电机模组
|
||||
- **RS01**: 准直驱一体化电机模组
|
||||
- **RS02**: 准直驱一体化电机模组
|
||||
- **RS03**: 准直驱一体化电机模组
|
||||
- **RS04**: 准直驱一体化电机模组
|
||||
- **EL05**: 准直驱一体化电机模组
|
||||
- **RS06**: 准直驱一体化电机模组
|
||||
|
||||
## 通信接口规范
|
||||
|
||||
### 基本参数
|
||||
- **通信方式**: CAN 2.0
|
||||
- **波特率**: 1Mbps(默认,可通过协议修改)
|
||||
- **帧格式**:
|
||||
- 私有协议:扩展帧(29位ID)
|
||||
- CANopen协议:扩展帧(29位ID)
|
||||
- MIT协议:标准帧(11位ID)
|
||||
|
||||
### CAN ID结构(私有协议扩展帧)
|
||||
|
||||
```
|
||||
29位ID结构:
|
||||
Bit28~bit24: 通信类型
|
||||
bit23~8: 数据区2(主机CAN_ID等)
|
||||
bit7~0: 目标地址(电机CAN_ID)
|
||||
```
|
||||
|
||||
## 一、私有协议(默认协议)
|
||||
|
||||
所有电机型号均支持私有协议,这是默认的通信协议。
|
||||
|
||||
### 1.1 通信类型列表
|
||||
|
||||
#### 通信类型0:获取设备ID
|
||||
- **功能**: 获取设备的ID和64位MCU唯一标识符
|
||||
- **发送帧**:
|
||||
- ID: `0x0` (Bit28~24=0)
|
||||
- 数据: `00 FD 7F 00 00 00 00 00 00 00`
|
||||
- 说明: bit15~8为主机CAN_ID,bit7~0为目标电机CAN_ID
|
||||
- **应答帧**:
|
||||
- ID: `0x0`
|
||||
- 数据: `00 7F FE [64位MCU唯一标识符]`
|
||||
- 说明: 返回64位MCU唯一标识符
|
||||
|
||||
#### 通信类型1:运控模式电机控制指令
|
||||
- **功能**: 运控模式下的电机控制
|
||||
- **发送帧**:
|
||||
- ID: `0x1` (Bit28~24=1)
|
||||
- 数据: `[Byte0~1: 目标角度] [Byte2~3: 目标角速度] [Byte4~5: Kp] [Byte6~7: Kd]`
|
||||
- 数据范围:
|
||||
- 角度: 0~65535 对应 (-12.57f~12.57f) rad
|
||||
- 角速度: 0~65535 对应 (-50rad/s~50rad/s)
|
||||
- Kp: 0~65535 对应 (0.0~500.0)
|
||||
- Kd: 0~65535 对应 (0.0~5.0)
|
||||
- 注意: 数据高字节在前,低字节在后
|
||||
- **应答帧**: 通信类型2(电机反馈数据)
|
||||
|
||||
#### 通信类型2:电机反馈数据
|
||||
- **功能**: 电机状态反馈
|
||||
- **发送帧**: 电机主动发送
|
||||
- **数据格式**:
|
||||
- Byte0~1: 当前角度 [0~65535] 对应 (-12.57f~12.57f) rad
|
||||
- Byte2~3: 当前角速度 [0~65535] 对应 (-50rad/s~50rad/s)
|
||||
- Byte4~5: 当前力矩 [0~65535] 对应 (-6Nm~6Nm)
|
||||
- Byte6~7: 当前温度 Temp(摄氏度)*10
|
||||
- Bit8~Bit15: 当前电机CAN ID
|
||||
- Bit16~21: 故障信息(0无 1有)
|
||||
- bit21: 未标定
|
||||
- bit20: 堵转过载故障
|
||||
- bit19: 磁编码故障
|
||||
- bit18: 过温
|
||||
- bit17: 三相电流故障
|
||||
- bit16: 欠压故障
|
||||
- Bit22~23: 模式状态
|
||||
- 0: Reset模式[复位]
|
||||
- 1: Cali模式[标定]
|
||||
- 2: Motor模式[运行]
|
||||
- **注意**: 数据高字节在前,低字节在后
|
||||
|
||||
#### 通信类型3:电机使能运行
|
||||
- **功能**: 使能电机运行
|
||||
- **发送帧**:
|
||||
- ID: `0x3` (Bit28~24=3)
|
||||
- 数据: `00 FD 7F 00 00 00 00 00 00 00`
|
||||
- 说明: bit15~8为主机CAN_ID,bit7~0为目标电机CAN_ID
|
||||
- **应答帧**: 通信类型2(电机反馈数据)
|
||||
|
||||
#### 通信类型4:电机停止运行
|
||||
- **功能**: 停止电机运行
|
||||
- **发送帧**:
|
||||
- ID: `0x4` (Bit28~24=4)
|
||||
- 数据: `00 FD 7F 00 00 00 00 00 00 00`
|
||||
- 说明: 正常运行时data区需清0;Byte[0]=1时:清故障
|
||||
- **应答帧**: 通信类型2(电机反馈数据)
|
||||
|
||||
#### 通信类型6:设置电机机械零位
|
||||
- **功能**: 设置当前位置为零位
|
||||
- **发送帧**:
|
||||
- ID: `0x6` (Bit28~24=6)
|
||||
- 数据: `00 FD 7F 01 00 00 00 00 00 00`
|
||||
- 说明: Byte[0]=1
|
||||
- **应答帧**: 通信类型2(电机反馈数据)
|
||||
- **注意**: CSP和运控模式下可以标零,PP模式标零会屏蔽掉
|
||||
|
||||
#### 通信类型7:设置电机CAN_ID
|
||||
- **功能**: 更改当前电机CAN_ID,立即生效
|
||||
- **发送帧**:
|
||||
- ID: `0x7` (Bit28~24=7)
|
||||
- 数据: `01 FD 7F [新CAN_ID] 00 00 00 00 00`
|
||||
- 说明: Bit16~23为预设置CAN_ID
|
||||
- **应答帧**: 通信类型0(获取设备ID)
|
||||
|
||||
#### 通信类型17:单个参数读取
|
||||
- **功能**: 读取电机单个参数
|
||||
- **发送帧**:
|
||||
- ID: `0x11` (Bit28~24=17)
|
||||
- 数据: `00 FD 7F [Byte0~1: index] 00 00 00 00 00`
|
||||
- 说明: index为参数索引,详见可读写参数表,数据低字节在前,高字节在后
|
||||
- **应答帧**:
|
||||
- ID: `0x11`
|
||||
- 数据: `00 7F FD [Byte0~1: index] 00 [Byte4~7: 参数数据]`
|
||||
- 说明: Bit23~16: 00为读取成功,01为读取失败
|
||||
|
||||
#### 通信类型18:单个参数写入(掉电丢失)
|
||||
- **功能**: 写入电机单个参数(需配合类型22保存)
|
||||
- **发送帧**:
|
||||
- ID: `0x12` (Bit28~24=18)
|
||||
- 数据: `00 FD 7F [Byte0~1: index] 00 [Byte4~7: 参数数据]`
|
||||
- 说明: 数据低字节在前,高字节在后
|
||||
- **应答帧**: 通信类型2(电机反馈数据)
|
||||
|
||||
#### 通信类型21:故障反馈帧
|
||||
- **功能**: 故障信息反馈
|
||||
- **发送帧**: 电机主动发送
|
||||
- **数据格式**:
|
||||
- Byte0~3: fault值(非0:有故障,0:正常)
|
||||
- Bit16: A相电流采样过流
|
||||
- Bit14: 堵转过载算法保护
|
||||
- Bit9: 位置初始化故障
|
||||
- Bit8: 硬件识别故障
|
||||
- Bit7: 编码器未标定
|
||||
- Bit5: C相电流采样过流
|
||||
- Bit4: B相电流采样过流
|
||||
- Bit3: 过压故障(超过60V)
|
||||
- Bit2: 欠压故障(低于12V)
|
||||
- Bit1: 驱动芯片故障
|
||||
- Bit0: 电机过温故障(超过145度)
|
||||
- Byte4~7: warning值
|
||||
- Bit0: 电机过温预警
|
||||
|
||||
#### 通信类型22:电机数据保存帧
|
||||
- **功能**: 保存当前所有可存储变量
|
||||
- **发送帧**:
|
||||
- ID: `0x16` (Bit28~24=22)
|
||||
- 数据: `00 FD 7F 01 02 03 04 05 06 07 08`
|
||||
- 说明: 保存通过类型18写入的参数
|
||||
- **应答帧**: 通信类型2(电机反馈数据)
|
||||
|
||||
#### 通信类型23:电机波特率修改帧
|
||||
- **功能**: 修改CAN总线波特率(重新上电生效)
|
||||
- **发送帧**:
|
||||
- ID: `0x17` (Bit28~24=23)
|
||||
- 数据: `00 FD 7F 01 02 03 04 05 06 [F_CMD] 00`
|
||||
- F_CMD说明:
|
||||
- 01: 1Mbps
|
||||
- 02: 500Kbps
|
||||
- 03: 250Kbps
|
||||
- 04: 125Kbps
|
||||
- **应答帧**: 通信类型0(获取设备ID)
|
||||
|
||||
#### 通信类型24:电机主动上报帧
|
||||
- **功能**: 开启/关闭电机主动上报(部分型号支持)
|
||||
- **发送帧**:
|
||||
- ID: `0x18` (Bit28~24=24)
|
||||
- 数据: `00 FD 7F 01 02 03 04 05 06 [F_CMD] 00`
|
||||
- F_CMD说明:
|
||||
- 00: 关闭主动上报(默认)
|
||||
- 01: 开启主动上报(默认上报间隔10ms)
|
||||
- **应答帧**: 通信类型2(电机反馈数据)
|
||||
- **注意**: 上报间隔可通过类型18修改EPScan_time参数来更改
|
||||
|
||||
#### 通信类型25:电机协议修改帧
|
||||
- **功能**: 切换电机通信协议(重新上电生效)
|
||||
- **发送帧**:
|
||||
- ID: `0x19` (Bit28~24=25)
|
||||
- 数据: `00 FD 7F 01 02 03 04 05 06 [F_CMD] 00`
|
||||
- F_CMD说明:
|
||||
- 0: 私有协议(默认)
|
||||
- 1: CANopen协议
|
||||
- 2: MIT协议
|
||||
- **应答帧**: 通信类型0(获取设备ID)
|
||||
|
||||
#### 通信类型26:版本号读取帧
|
||||
- **功能**: 读取电机版本号
|
||||
- **发送帧**:
|
||||
- ID: `0x1A` (Bit28~24=26)
|
||||
- 数据: `00 FD 7F 00 C4 00 00 00 00 00`
|
||||
- 说明: Byte[0]=0x00, Byte[1]=0xC4
|
||||
- **应答帧**:
|
||||
- ID: `0x2`
|
||||
- 数据: `00 7F FD 00 C4 [Byte2~6: 电机版本号]`
|
||||
- 说明: 版本号顺序由高到低
|
||||
|
||||
### 1.2 可读写参数列表
|
||||
|
||||
| 参数index | 参数名称 | 描述 | 类型 | 字节数 | 单位/说明 | R/W |
|
||||
|-----------|----------|------|------|--------|----------|-----|
|
||||
| 0X7005 | run_mode | 运行模式 | uint8 | 1 | 0:运控 1:PP 2:速度 3:电流 5:CSP | W/R |
|
||||
| 0X7006 | iq_ref | 电流模式Iq指令 | float | 4 | 见下表(各型号不同) | W/R |
|
||||
| 0X700A | spd_ref | 转速模式转速指令 | float | 4 | 见下表(各型号不同) | W/R |
|
||||
| 0X700B | limit_torque | 转矩限制 | float | 4 | 见下表(各型号不同) | W/R |
|
||||
| 0X7010 | cur_kp | 电流的Kp | float | 4 | 默认值0.17 | W/R |
|
||||
| 0X7011 | cur_ki | 电流的Ki | float | 4 | 默认值0.012 | W/R |
|
||||
| 0X7014 | cur_filt_gain | 电流滤波系数 | float | 4 | 0~1.0,默认值0.1 | W/R |
|
||||
| 0X7016 | loc_ref | 位置模式角度指令 | float | 4 | rad | W/R |
|
||||
| 0X7017 | limit_spd | 位置模式(CSP)速度限制 | float | 4 | 见下表(各型号不同) | W/R |
|
||||
| 0X7018 | limit_cur | 速度位置模式电流限制 | float | 4 | 见下表(各型号不同) | W/R |
|
||||
| 0x7019 | mechPos | 负载端计圈机械角度 | float | 4 | rad | R |
|
||||
| 0x701A | iqf | iq滤波值 | float | 4 | 见下表(各型号不同) | R |
|
||||
| 0x701B | mechVel | 负载端转速 | float | 4 | 见下表(各型号不同) | R |
|
||||
| 0x701C | VBUS | 母线电压 | float | 4 | V | R |
|
||||
| 0x701E | loc_kp | 位置的kp | float | 4 | 默认值40 | W/R |
|
||||
| 0x701F | spd_kp | 速度的kp | float | 4 | 默认值6 | W/R |
|
||||
| 0x7020 | spd_ki | 速度的ki | float | 4 | 默认值0.02 | W/R |
|
||||
| 0x7021 | spd_filt_gain | 速度滤波值 | float | 4 | 默认值0.1 | W/R |
|
||||
| 0x7022 | acc_rad | 速度模式加速度 | float | 4 | 默认值20rad/s^2 | W/R |
|
||||
| 0x7024 | vel_max | 位置模式(PP)速度 | float | 4 | 默认值10rad/s | W/R |
|
||||
| 0x7025 | acc_set | 位置模式(PP)加速度 | float | 4 | 默认值10rad/s^2 | W/R |
|
||||
| 0x7026 | EPScan_time | 上报时间设置 | uint16 | 2 | 1代表10ms,加1递增5ms | W/R |
|
||||
| 0x7028 | canTimeout | can超时阀值 | uint32 | 4 | 20000代表1s,默认0 | W/R |
|
||||
| 0x7029 | zero_sta | 零点标志位 | uint8 | 1 | 0代表0-2π,1代表-π-π | W/R |
|
||||
| 0x702B | add_offset | 零位偏置 | float | 4 | 默认0 | W/R |
|
||||
|
||||
#### 各型号参数范围差异表
|
||||
|
||||
**⚠️ 重要提示**: 不同型号电机的参数范围存在显著差异,使用时务必参考对应型号的参数范围!
|
||||
|
||||
##### 电机规格参数对照表
|
||||
|
||||
| 电机型号 | 额定负载 | 峰值负载 | 减速比 | 额定相电流 | 最大相电流 |
|
||||
|----------|----------|----------|--------|------------|------------|
|
||||
| EL05 | 1.8 N.m | 6 N.m | 9:1 | 2.6Apk | 11Apk |
|
||||
| RS00 | 5 N.m | 14 N.m | 10:1 | 4.7Apk | 15.5Apk |
|
||||
| RS01 | 6 N.m | 17 N.m | 7.75:1 | 7Apk | 23Apk |
|
||||
| RS02 | 6 N.m | 17 N.m | 7.75:1 | 7Apk | 23Apk |
|
||||
| RS03 | 20 N.m | 60 N.m | 9:1 | 13Apk | 27Apk |
|
||||
| RS04 | 40 N.m | 120 N.m | 9:1 | 27Apk | 45Apk |
|
||||
| EL05 | 1.6 N.m | 6 N.m | 7.75:1 | 2.4Apk | 10Apk |
|
||||
| RS06 | 11 N.m | 36 N.m | 9:1 | 14.3Apk | 27Apk |
|
||||
|
||||
##### 通信数据映射范围对照表(私有协议)
|
||||
|
||||
| 电机型号 | 力矩范围 (T_MIN~T_MAX) | 速度范围 (V_MIN~V_MAX) | 角度范围 (P_MIN~P_MAX) |
|
||||
|----------|------------------------|------------------------|------------------------|
|
||||
| EL05 | -6Nm ~ 6Nm | -50rad/s ~ 50rad/s | -12.57rad ~ 12.57rad |
|
||||
| RS00 | -14Nm ~ 14Nm | -33rad/s ~ 33rad/s | -12.57rad ~ 12.57rad |
|
||||
| RS01 | -17Nm ~ 17Nm | -44rad/s ~ 44rad/s | -12.57rad ~ 12.57rad |
|
||||
| RS02 | -17Nm ~ 17Nm | -44rad/s ~ 44rad/s | -12.57rad ~ 12.57rad |
|
||||
| RS03 | -60Nm ~ 60Nm | -20rad/s ~ 20rad/s | -12.57rad ~ 12.57rad |
|
||||
| RS04 | -120Nm ~ 120Nm | -15rad/s ~ 15rad/s | -12.57rad ~ 12.57rad |
|
||||
| EL05 | -6Nm ~ 6Nm | -50rad/s ~ 50rad/s | -12.57rad ~ 12.57rad |
|
||||
| RS06 | -36Nm ~ 36Nm | -50rad/s ~ 50rad/s | -12.57rad ~ 12.57rad |
|
||||
|
||||
##### 运控模式Kp/Kd范围对照表
|
||||
|
||||
| 电机型号 | Kp范围 (KP_MIN~KP_MAX) | Kd范围 (KD_MIN~KD_MAX) |
|
||||
|----------|------------------------|------------------------|
|
||||
| EL05 | 0 ~ 500 | 0 ~ 5 |
|
||||
| RS00 | 0 ~ 500 | 0 ~ 5 |
|
||||
| RS01 | 0 ~ 500 | 0 ~ 5 |
|
||||
| RS02 | 0 ~ 500 | 0 ~ 5 |
|
||||
| RS03 | 0 ~ 5000 | 0 ~ 100 |
|
||||
| RS04 | 0 ~ 5000 | 0 ~ 100 |
|
||||
| EL05 | 0 ~ 500 | 0 ~ 5 |
|
||||
| RS06 | 0 ~ 5000 | 0 ~ 100 |
|
||||
|
||||
##### 参数limit_torque范围对照表
|
||||
|
||||
| 电机型号 | limit_torque 范围 |
|
||||
|----------|-------------------|
|
||||
| EL05 | 0 ~ 6 Nm |
|
||||
| RS00 | 0 ~ 14 Nm |
|
||||
| RS01 | 0 ~ 17 Nm |
|
||||
| RS02 | 0 ~ 17 Nm |
|
||||
| RS03 | 0 ~ 60 Nm |
|
||||
| RS04 | 0 ~ 120 Nm |
|
||||
| EL05 | 0 ~ 6 Nm |
|
||||
| RS06 | 0 ~ 36 Nm |
|
||||
|
||||
##### 参数limit_spd/spd_ref范围对照表
|
||||
|
||||
| 电机型号 | limit_spd / spd_ref 范围 |
|
||||
|----------|--------------------------|
|
||||
| EL05 | 0 ~ 50 rad/s |
|
||||
| RS00 | 0 ~ 33 rad/s |
|
||||
| RS01 | 0 ~ 44 rad/s |
|
||||
| RS02 | 0 ~ 44 rad/s |
|
||||
| RS03 | 0 ~ 20 rad/s |
|
||||
| RS04 | 0 ~ 15 rad/s |
|
||||
| EL05 | 0 ~ 50 rad/s |
|
||||
| RS06 | 0 ~ 50 rad/s |
|
||||
|
||||
##### 参数limit_cur/iq_ref/iqf范围对照表
|
||||
|
||||
| 电机型号 | limit_cur / iq_ref / iqf 范围 |
|
||||
|----------|-------------------------------|
|
||||
| EL05 | 0 ~ 11 A |
|
||||
| RS00 | 0 ~ 15.5 A |
|
||||
| RS01 | 0 ~ 23 A |
|
||||
| RS02 | 0 ~ 23 A |
|
||||
| RS03 | 0 ~ 27 A |
|
||||
| RS04 | 0 ~ 45 A |
|
||||
| EL05 | 0 ~ 10 A |
|
||||
| RS06 | 0 ~ 27 A |
|
||||
|
||||
##### 数据映射转换宏定义示例(C语言)
|
||||
|
||||
```c
|
||||
// EL05 / EL05
|
||||
#define P_MIN -12.57f
|
||||
#define P_MAX 12.57f
|
||||
#define V_MIN -50.0f
|
||||
#define V_MAX 50.0f
|
||||
#define KP_MIN 0.0f
|
||||
#define KP_MAX 500.0f
|
||||
#define KD_MIN 0.0f
|
||||
#define KD_MAX 5.0f
|
||||
#define T_MIN -6.0f // EL05: -6
|
||||
#define T_MAX 6.0f // EL05: 6
|
||||
|
||||
// RS00
|
||||
#define V_MIN -33.0f
|
||||
#define V_MAX 33.0f
|
||||
#define T_MIN -14.0f
|
||||
#define T_MAX 14.0f
|
||||
|
||||
// RS01 / RS02
|
||||
#define V_MIN -44.0f
|
||||
#define V_MAX 44.0f
|
||||
#define T_MIN -17.0f
|
||||
#define T_MAX 17.0f
|
||||
|
||||
// RS03
|
||||
#define V_MIN -20.0f
|
||||
#define V_MAX 20.0f
|
||||
#define KP_MAX 5000.0f
|
||||
#define KD_MAX 100.0f
|
||||
#define T_MIN -60.0f
|
||||
#define T_MAX 60.0f
|
||||
|
||||
// RS04
|
||||
#define V_MIN -15.0f
|
||||
#define V_MAX 15.0f
|
||||
#define KP_MAX 5000.0f
|
||||
#define KD_MAX 100.0f
|
||||
#define T_MIN -120.0f
|
||||
#define T_MAX 120.0f
|
||||
|
||||
// RS06
|
||||
#define V_MIN -50.0f
|
||||
#define V_MAX 50.0f
|
||||
#define KP_MAX 5000.0f
|
||||
#define KD_MAX 100.0f
|
||||
#define T_MIN -36.0f
|
||||
#define T_MAX 36.0f
|
||||
```
|
||||
|
||||
**版本兼容性说明**:
|
||||
- RS00: 固件版本0.0.2.6及之前P_MIN/P_MAX为±12.5,之后为±12.57
|
||||
- RS01: 固件版本0.1.2.1及之前P_MIN/P_MAX为±12.5,之后为±12.57
|
||||
- RS02: 固件版本0.2.2.11及之前P_MIN/P_MAX为±12.5,之后为±12.57
|
||||
- RS03: 固件版本0.3.0.5及之前P_MIN/P_MAX为±12.5,之后为±12.57
|
||||
- RS04: 固件版本0.4.0.5及之前P_MIN/P_MAX为±12.5,之后为±12.57
|
||||
|
||||
### 1.3 控制模式使用说明
|
||||
|
||||
#### 运控模式
|
||||
1. 电机上电后默认处于运控模式
|
||||
2. 发送电机使能运行帧(通信类型3)
|
||||
3. 发送运控模式电机控制指令(通信类型1)
|
||||
4. 收到电机反馈帧(通信类型2)
|
||||
|
||||
#### 电流模式
|
||||
1. 发送电机模式参数写入命令(通信类型18)设置runmode参数为3
|
||||
2. 发送电机使能运行帧(通信类型3)
|
||||
3. 发送电机模式参数写入命令(通信类型18)设置iq_ref参数为预设电流指令
|
||||
|
||||
#### 速度模式
|
||||
1. 发送电机模式参数写入命令(通信类型18)设置runmode参数为2
|
||||
2. 发送电机使能运行帧(通信类型3)
|
||||
3. 发送电机模式参数写入命令(通信类型18)设置limit_cur参数为预设最大电流指令
|
||||
4. 发送电机模式参数写入命令(通信类型18)设置acc_rad参数为预设加速度指令
|
||||
5. 发送电机模式参数写入命令(通信类型18)设置spd_ref参数为预设速度指令
|
||||
|
||||
#### 位置模式(CSP)
|
||||
1. 发送电机模式参数写入命令(通信类型18)设置runmode参数为5
|
||||
2. 发送电机使能运行帧(通信类型3)
|
||||
3. 发送电机模式参数写入命令(通信类型18)设置limit_spd参数为预设最大速度指令
|
||||
4. 发送电机模式参数写入命令(通信类型18)设置loc_ref参数为预设位置指令
|
||||
|
||||
#### 位置模式(PP)
|
||||
1. 发送电机模式参数写入命令(通信类型18)设置runmode参数为1
|
||||
2. 发送电机使能运行帧(通信类型3)
|
||||
3. 发送电机模式参数写入命令(通信类型18)设置vel_max参数为预设最大速度指令
|
||||
4. 发送电机模式参数写入命令(通信类型18)设置acc_set参数为预设加速度指令
|
||||
5. 发送电机模式参数写入命令(通信类型18)设置loc_ref参数为预设位置指令
|
||||
6. **注意**: 该模式不支持运行过程中改速度和加速度,如想急停可以在过程中将vel_max修改为0
|
||||
|
||||
#### 停止运行
|
||||
发送电机停止运行帧(通信类型4)
|
||||
|
||||
## 二、CANopen通信协议
|
||||
|
||||
CANopen是一个基于CAN总线的"高层协议",实现了OSI模型的第七层。
|
||||
|
||||
### 2.1 CANOpen协议报文分类
|
||||
|
||||
| 分类 | 作用 |
|
||||
|------|------|
|
||||
| NMT 网络管理报文 | 管理网络,切换节点的状态 |
|
||||
| SDO 服务数据对象报文 | 设置设备参数,关键数据传输 |
|
||||
| PDO 过程数据对象报文 | 传输设备的过程数据(温度、速度等) |
|
||||
| EMCY 紧急报文 | 传输设备的故障信息 |
|
||||
| SYNC 同步报文 | 同步数据,同步从站的TPDO数据 |
|
||||
| NODE GUARDING 节点保护报文 | 主站请求从站的状态 |
|
||||
| HeartBeat 心跳报文 | 设备主动发送心跳,表示在线 |
|
||||
|
||||
### 2.2 状态机说明
|
||||
|
||||
- **SWITCH_ON_DISABLED**: 电机初始上电状态
|
||||
- **OPERATION_ENABLE**: 运行状态
|
||||
- 通过修改controlword(6040)为6、7、15过渡到OPERATION_ENABLE状态
|
||||
- 也可直接修改为15进入OPERATION_ENABLE状态
|
||||
- **停止电机**: 修改controlword(6040)为1,进入SWITCH_ON_DISABLED状态
|
||||
- **急停**: 修改controlword(6040)为11(慎用,易造成浪涌电压)
|
||||
- **清除错误**: 修改controlword(6040)可以清除常规错误
|
||||
|
||||
**注意**: 切换模式需要在失能状态下,请在进入OPERATION_ENABLE之前设置相应模式
|
||||
|
||||
### 2.3 状态反馈参数
|
||||
|
||||
| 索引 | 名称 | 属性 | 类型 | 单位 |
|
||||
|------|------|------|------|------|
|
||||
| 603F | Error_code | 可读 | UINTEGER16 | / |
|
||||
| 6041 | Statusword | 可读 | UINTEGER16 | / |
|
||||
| 6061 | Modes_of_operation_display | 可读 | INTEGER8 | / |
|
||||
| 6062 | Position_demannd_value | 可读 | INTEGER32 | 脉冲,一圈对应16384脉冲 |
|
||||
| 6064 | Position_actual_value | 可读 | INTEGER32 | 脉冲,一圈对应16384脉冲 |
|
||||
| 606B | Velocity_demand_value | 可读 | INTEGER32 | 0.1rpm |
|
||||
| 606C | Velocity_actual_value | 可读 | INTEGER32 | 0.1rpm |
|
||||
| 6077 | Torque_actual_value | 可读 | INTEGER16 | 0.1%负载率,1000代表2N.m |
|
||||
| 6078 | Current_actual_value | 可读 | INTEGER16 | mA |
|
||||
| 6079 | DC_link_circuit_voltage | 可读 | INTEGER32 | mV |
|
||||
|
||||
### 2.4 归零模式(设置零位)
|
||||
|
||||
| 索引 | 名称 | 属性 | 类型 | 单位 |
|
||||
|------|------|------|------|------|
|
||||
| 6040 | controlword | 可读写 | UINTEGER16 | / |
|
||||
| 6060 | Modes of operation | 可读写 | INTEGER8 | / |
|
||||
|
||||
**标零方式**: 电机在失能状态下设置Modes of operation为6,电机即会设置当前位置为零位
|
||||
**零点保持**: 修改controlword为15,电机会在零位位置保持
|
||||
|
||||
### 2.5 位置模式(PP)
|
||||
|
||||
| 索引 | 名称 | 属性 | 类型 | 单位 |
|
||||
|------|------|------|------|------|
|
||||
| 6040 | controlword | 可读写 | UINTEGER16 | / |
|
||||
| 6060 | Modes of operation | 可读写 | INTEGER8 | / |
|
||||
| 6067 | Position_window | 可读写 | UINTEGER32 | 脉冲,一圈对应16384脉冲 |
|
||||
| 6068 | Position_window_time | 可读写 | UINTEGER16 | ms |
|
||||
| 6071 | Target_torque | 可读写 | INTEGER16 | 0.1%负载率,1000代表2N.m |
|
||||
| 607A | Target_position | 可读写 | INTEGER32 | 脉冲,一圈对应16384脉冲 |
|
||||
| 6081 | Profile_velocity | 可读写 | UINTEGER32 | 0.1rpm |
|
||||
| 6083 | Profile_acceleration | 可读写 | UINTEGER32 | 0.1rpm/s |
|
||||
|
||||
**步骤**:
|
||||
1. 电机在失能状态下设置Modes of operation为1
|
||||
2. 设置Target_torque(位置模式下最大力矩绝对值,必设)
|
||||
3. 设置Profile_velocity(位置模式速度绝对值,必设)
|
||||
4. 设置Profile_acceleration(位置模式加速度绝对值,必设)
|
||||
5. 设置Position_window和Position_window_time(可选)
|
||||
6. 设置controlword为15
|
||||
7. 设置Target_position(绝对位置)即可到达指定位置
|
||||
|
||||
### 2.6 位置模式(CSP)
|
||||
|
||||
| 索引 | 名称 | 属性 | 类型 | 单位 |
|
||||
|------|------|------|------|------|
|
||||
| 6040 | controlword | 可读写 | UINTEGER16 | / |
|
||||
| 6060 | Modes of operation | 可读写 | INTEGER8 | / |
|
||||
| 6067 | Position_window | 可读写 | UINTEGER32 | 脉冲,一圈对应16384脉冲 |
|
||||
| 6068 | Position_window_time | 可读写 | UINTEGER16 | ms |
|
||||
| 6071 | Target_torque | 可读写 | INTEGER16 | 0.1%负载率,1000代表2N.m |
|
||||
| 607A | Target_position | 可读写 | INTEGER32 | 脉冲,一圈对应16384脉冲 |
|
||||
| 6081 | Profile_velocity | 可读写 | UINTEGER32 | 0.1rpm |
|
||||
|
||||
**步骤**:
|
||||
1. 电机在失能状态下设置Modes of operation为5
|
||||
2. 设置Target_torque(位置模式下最大力矩绝对值,必设)
|
||||
3. 设置Profile_velocity(位置模式速度绝对值,必设)
|
||||
4. 设置Position_window和Position_window_time(可选,0即不启用)
|
||||
5. 设置controlword为15
|
||||
6. 设置Target_position(绝对位置)即可到达指定位置
|
||||
|
||||
### 2.7 速度模式
|
||||
|
||||
| 索引 | 名称 | 属性 | 类型 | 单位 |
|
||||
|------|------|------|------|------|
|
||||
| 6040 | controlword | 可读写 | UINTEGER16 | / |
|
||||
| 6060 | Modes of operation | 可读写 | INTEGER8 | / |
|
||||
| 6071 | Target_torque | 可读写 | INTEGER16 | 0.1%负载率,1000代表2N.m |
|
||||
| 60FF | Target_velocity | 可读写 | INTEGER32 | 0.1rpm |
|
||||
|
||||
**步骤**:
|
||||
1. 电机在失能状态下设置Modes of operation为3
|
||||
2. 设置Target_torque(位置模式下最大力矩绝对值,必设)
|
||||
3. 设置controlword为15
|
||||
4. 设置Target_velocity即可到达指定速度
|
||||
|
||||
### 2.8 力矩模式
|
||||
|
||||
| 索引 | 名称 | 属性 | 类型 | 单位 |
|
||||
|------|------|------|------|------|
|
||||
| 6040 | controlword | 可读写 | UINTEGER16 | / |
|
||||
| 6060 | Modes of operation | 可读写 | INTEGER8 | / |
|
||||
| 6071 | Target_torque | 可读写 | INTEGER16 | 0.1%负载率,1000代表2N.m |
|
||||
|
||||
**步骤**:
|
||||
1. 电机在失能状态下设置Modes of operation为4
|
||||
2. 设置controlword为15
|
||||
3. 设置Target_torque即可输出指定力矩
|
||||
|
||||
### 2.9 协议切换帧(扩展帧)
|
||||
|
||||
切换电机协议,重新上电生效
|
||||
|
||||
- **ID**: `0xFFF`
|
||||
- **数据**: `01 02 03 04 05 06 [F_CMD]`
|
||||
- **F_CMD说明**:
|
||||
- 0: 私有协议(默认)
|
||||
- 1: CANopen协议
|
||||
- 2: MIT协议
|
||||
|
||||
**应答帧**:
|
||||
- **ID**: 电机id(11位标准帧)
|
||||
- **数据**: 64位MCU唯一标识符
|
||||
|
||||
## 三、MIT通信协议
|
||||
|
||||
MIT协议采用标准帧格式(11位ID),波特率默认1Mbps。
|
||||
|
||||
### 3.1 CAN ID结构(MIT协议标准帧)
|
||||
|
||||
```
|
||||
11位ID结构:
|
||||
Bit10~bit8: 模式类型
|
||||
bit7~0: id(电机CAN_ID或主机CAN_ID)
|
||||
```
|
||||
|
||||
### 3.2 支持的控制模式
|
||||
|
||||
- **MIT模式**: 给定电机运控5个参数
|
||||
- **速度模式**: 给定电机指定的运行速度
|
||||
- **位置模式**: 给定电机指定的位置和速度,电机将以过程速度运行到该指定的位置
|
||||
|
||||
### 3.3 指令列表
|
||||
|
||||
#### 应答指令1
|
||||
- **ID**: `0xFD`(主机id)
|
||||
- **数据格式**:
|
||||
- Byte0: 电机canid
|
||||
- Byte1~2: 当前角度 [0~65535] 对应 (-12.57rad~12.57rad)
|
||||
- Byte3为高8位,Byte4[7-4](高4位)为低4位: 当前速度 [0~4096] 对应 (-50rad/s~50rad/s)
|
||||
- Byte4[3-0](低4位)为高4位,Byte5为低8位: 当前力矩 [0~4096] 对应 (-6N.m~6N.m)
|
||||
- Byte6~7: 绕组温度 Temp(摄氏度)*10,单位度
|
||||
|
||||
#### 应答指令2
|
||||
- **ID**: 电机id
|
||||
- **数据**: 64位MCU唯一标识符
|
||||
|
||||
#### 指令1:电机使能运行
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据**: `FF FF FF FF FF FF FF FC`
|
||||
- **应答帧**: 应答指令1
|
||||
|
||||
#### 指令2:电机停止运行
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据**: `FF FF FF FF FF FF FF FD`
|
||||
- **应答帧**: 应答指令1
|
||||
|
||||
#### 指令3:电机MIT动态参数
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据格式**:
|
||||
- Byte0~1: 目标角度 [0~65535] 对应 (-12.57rad~12.57rad)
|
||||
- Byte2为高8位,Byte3[7-4](高4位)为低4位: 目标速度 [0~4096] 对应 (-50rad/s~50rad/s)
|
||||
- Byte3[3-0](低4位)为高4位,Byte4为低8位: kp [0~4096] 对应 (0-500)
|
||||
- Byte5为其高8位,Byte6[7-4](高4位)为其低4位: kd [0~4096] 对应 (0-5)
|
||||
- Byte6[3-0](低4位)为高4位,Byte7为低8位: 目标力矩 [0~4096] 对应 (-6N.m~6N.m)
|
||||
- **应答帧**: 应答指令1
|
||||
|
||||
#### 指令4:设置零点(非位置模式)
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据**: `FF FF FF FF FF FF FF FE`
|
||||
- **应答帧**: 应答指令1
|
||||
|
||||
#### 指令5:清除错误及读取异常状态
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据**: `FF FF FF FF FF FF [F_CMD] FB`
|
||||
- F_CMD = 0xFF: 消除当前的异常
|
||||
- F_CMD = 其他值: 在回复中的BYTE1中回传错误值
|
||||
- **清错应答帧**: 应答指令1
|
||||
- **异常状态应答帧**:
|
||||
- ID: `0xFD`(主机id)
|
||||
- Byte0: 电机canid
|
||||
- Byte1~4: fault值(非0:有故障,0:正常)
|
||||
- Bit16: A相电流采样过流
|
||||
- Bit14: 堵转过载算法保护
|
||||
- Bit9: 位置初始化故障
|
||||
- Bit8: 硬件识别故障
|
||||
- Bit7: 编码器未标定
|
||||
- Bit5: C相电流采样过流
|
||||
- Bit4: B相电流采样过流
|
||||
- Bit3: 过压故障(超过60V)
|
||||
- Bit2: 欠压故障(低于12V)
|
||||
- Bit1: 驱动芯片故障
|
||||
- Bit0: 电机过温故障(超过145度)
|
||||
|
||||
#### 指令6:设置运行模式
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据**: `FF FF FF FF FF FF [F_CMD] FC`
|
||||
- F_CMD说明:
|
||||
- 0: MIT模式(默认)
|
||||
- 1: 位置模式
|
||||
- 2: 速度模式
|
||||
- **应答帧**: 应答指令1
|
||||
|
||||
#### 指令7:修改电机CANID
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据**: `FF FF FF FF FF FF [F_CMD] FA`
|
||||
- F_CMD: 目标修改的电机id
|
||||
- **应答帧**: 应答指令2
|
||||
|
||||
#### 指令8:修改电机协议
|
||||
切换电机协议,重新上电生效
|
||||
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据**: `FF FF FF FF FF FF [F_CMD] FD`
|
||||
- F_CMD说明:
|
||||
- 0: 私有协议(默认)
|
||||
- 1: CANopen协议
|
||||
- 2: MIT协议
|
||||
- **应答帧**: 应答指令2
|
||||
|
||||
#### 指令9:修改主机canid
|
||||
- **ID**: `0x7F`(目标电机canid)
|
||||
- **数据**: `FF FF FF FF FF FF [F_CMD] 01`
|
||||
- F_CMD: 为主机canid
|
||||
- **应答帧**: 应答指令2
|
||||
|
||||
#### 指令10:位置模式控制指令
|
||||
- **ID**: `0x17F`(Bit10~8=1,bit7~0=目标电机canid)
|
||||
- **数据格式**:
|
||||
- Byte0~3: 目标位置,单位rad,32位单精度float
|
||||
- Byte4~7: 目标速度,单位rad/s,32位单精度float
|
||||
- **应答帧**: 应答指令1
|
||||
|
||||
#### 指令11:速度模式控制指令
|
||||
- **ID**: `0x27F`(Bit10~8=2,bit7~0=目标电机canid)
|
||||
- **数据格式**:
|
||||
- Byte0~3: 目标速度,单位rad/s,32位单精度float
|
||||
- Byte4~7: 速度位置模式电流限制,单位A,32位单精度float
|
||||
- **应答帧**: 应答指令1
|
||||
|
||||
### 3.4 控制模式使用说明
|
||||
|
||||
#### 运控模式
|
||||
1. 电机上电后默认处于运控模式
|
||||
2. 发送电机使能运行帧(指令1)
|
||||
3. 发送运控模式电机控制指令(指令3)
|
||||
4. 发送电机停止帧(指令2)
|
||||
|
||||
#### 速度模式
|
||||
1. 发送电机模式参数写入命令(指令6)设置模式为2
|
||||
2. 发送电机使能运行帧(指令1)
|
||||
3. 发送电机模式参数写入命令(指令11)设置最大电流(绝对值)和预设速度
|
||||
4. 发送电机停止帧(指令2)
|
||||
|
||||
#### 位置模式(CSP)
|
||||
1. 发送电机模式参数写入命令(指令6)设置模式为1
|
||||
2. 发送电机使能运行帧(指令1)
|
||||
3. 发送电机模式参数写入命令(指令10)设置最大速度(绝对值)和预设位置
|
||||
4. 发送电机停止帧(指令2)
|
||||
|
||||
## 四、协议切换说明
|
||||
|
||||
### 4.1 切换方法
|
||||
|
||||
1. **通过上位机修改**: 修改protocol_1标志位或发送通信类型25(私有协议)即可切换协议
|
||||
2. **通过CAN盒操作**: 切换协议后,需要通过can盒发送相应通信协议的切换协议指令进行切换
|
||||
- CANopen协议: 发送扩展帧的协议切换帧
|
||||
- MIT协议: 发送标准帧的指令8
|
||||
|
||||
### 4.2 生效方式
|
||||
|
||||
**重新上电生效**: 协议切换后需要重新上电才能生效
|
||||
|
||||
### 4.3 CAN ID一致性
|
||||
|
||||
- **CANopen协议**: canopen的id与私有协议下的canid保持一致
|
||||
- **MIT协议**: 使用标准帧,id为电机CAN_ID
|
||||
|
||||
## 五、故障说明
|
||||
|
||||
### 5.1 故障位定义
|
||||
|
||||
故障信息通过通信类型2的Bit16~21或通信类型21的Byte0~3反馈:
|
||||
|
||||
| 位 | 故障名称 | 说明 |
|
||||
|----|----------|------|
|
||||
| Bit0 | 电机过温故障 | 电机热敏电阻温度超过145度 |
|
||||
| Bit1 | 驱动芯片故障 | 电机驱动芯片报故障 |
|
||||
| Bit2 | 欠压故障 | 电机电压低于保护电压12V |
|
||||
| Bit3 | 过压故障 | 电机电压超过保护电压60V |
|
||||
| Bit4 | B相电流故障 | B相电流采样过流 |
|
||||
| Bit5 | C相电流故障 | C相电流采样过流 |
|
||||
| Bit7 | 编码器未标定 | 电机未标定编码器 |
|
||||
| Bit8 | 硬件识别故障 | 硬件识别故障 |
|
||||
| Bit9 | 位置初始化故障 | 位置初始化故障 |
|
||||
| Bit14 | 堵转过载算法保护 | 电机堵转过载算法保护 |
|
||||
| Bit16 | A相电流故障 | A相电流采样过流 |
|
||||
|
||||
### 5.2 警告位定义
|
||||
|
||||
| 位 | 警告名称 | 说明 |
|
||||
|----|----------|------|
|
||||
| Bit0 | 电机过温预警 | 默认145度 |
|
||||
|
||||
## 六、特殊功能说明
|
||||
|
||||
### 6.1 主动上报
|
||||
|
||||
- **默认状态**: 关闭
|
||||
- **开启方式**: 通过通信类型24开启上报
|
||||
- **上报类型**: 通信类型2(电机反馈数据)
|
||||
- **上报间隔**: 默认10ms,可通过通信类型18修改EPScan_time参数来更改
|
||||
- **最小间隔**: 10ms
|
||||
|
||||
### 6.2 零点标志位
|
||||
|
||||
- **参数**: zero_sta(0x7029)
|
||||
- **说明**:
|
||||
- 0: 上电后默认位置为0-2π(默认)
|
||||
- 1: 上电后默认位置为-π-π
|
||||
- **修改方式**: 通过上位机或通信类型18修改,通过通信类型18修改需要用通信类型22保存
|
||||
|
||||
### 6.3 类型2变更说明
|
||||
|
||||
类型2变更为周期性循环-4π-4π,可通过该方式记圈数。
|
||||
|
||||
**位置接口变更**:
|
||||
- P_MIN: -12.57f
|
||||
- P_MAX: 12.57f
|
||||
|
||||
### 6.4 CAN超时保护
|
||||
|
||||
- **参数**: CAN_TIMEOUT(canTimeout,0x7028)
|
||||
- **说明**:
|
||||
- 值为0时: 该功能不启用
|
||||
- 值为非0时: 当电机在一定时间段内没收到can指令时,电机进入reset模式
|
||||
- 20000代表1s
|
||||
|
||||
### 6.5 标零功能
|
||||
|
||||
- **支持模式**: CSP和运控模式下可以标零
|
||||
- **限制**: PP模式标零会屏蔽掉
|
||||
- **说明**: 新版本电机在CSP和运控模式下标零,电机期望会马上更新为0,这样电机不会运动
|
||||
|
||||
## 七、数据转换说明
|
||||
|
||||
### 7.1 数据字节序
|
||||
|
||||
- **私有协议**: 大部分数据高字节在前,低字节在后
|
||||
- **参数读写**: 数据低字节在前,高字节在后
|
||||
- **MIT协议**: 按指令说明
|
||||
|
||||
### 7.2 数据范围映射
|
||||
|
||||
**⚠️ 重要**: 各型号电机的数据映射范围不同,详见 [1.2 可读写参数列表](#12-可读写参数列表) 中的各型号参数范围差异表。
|
||||
|
||||
#### 通用映射规则
|
||||
|
||||
| 数据类型 | 原始值范围 | 映射方式 | 备注 |
|
||||
|----------|------------|----------|------|
|
||||
| 角度(私有协议16位) | 0~65535 | 线性映射到 P_MIN~P_MAX | 各型号统一为 ±12.57rad |
|
||||
| 角速度(私有协议16位) | 0~65535 | 线性映射到 V_MIN~V_MAX | 各型号不同,见差异表 |
|
||||
| 力矩(私有协议16位) | 0~65535 | 线性映射到 T_MIN~T_MAX | 各型号不同,见差异表 |
|
||||
| Kp(私有协议16位) | 0~65535 | 线性映射到 KP_MIN~KP_MAX | 小型号0~500,大型号0~5000 |
|
||||
| Kd(私有协议16位) | 0~65535 | 线性映射到 KD_MIN~KD_MAX | 小型号0~5,大型号0~100 |
|
||||
| 角度(MIT协议12位) | 0~65535 | 线性映射到 P_MIN~P_MAX | ±12.57rad |
|
||||
| 角速度(MIT协议12位) | 0~4096 | 线性映射到 V_MIN~V_MAX | 各型号不同 |
|
||||
| 力矩(MIT协议12位) | 0~4096 | 线性映射到 T_MIN~T_MAX | 各型号不同 |
|
||||
| Kp(MIT协议12位) | 0~4096 | 线性映射到 KP_MIN~KP_MAX | 各型号不同 |
|
||||
| Kd(MIT协议12位) | 0~4096 | 线性映射到 KD_MIN~KD_MAX | 各型号不同 |
|
||||
|
||||
#### 各型号数据映射快速参考
|
||||
|
||||
| 电机型号 | 力矩范围 | 速度范围 | Kp范围 | Kd范围 |
|
||||
|----------|----------|----------|--------|--------|
|
||||
| EL05 | ±6Nm | ±50rad/s | 0~500 | 0~5 |
|
||||
| RS00 | ±14Nm | ±33rad/s | 0~500 | 0~5 |
|
||||
| RS01 | ±17Nm | ±44rad/s | 0~500 | 0~5 |
|
||||
| RS02 | ±17Nm | ±44rad/s | 0~500 | 0~5 |
|
||||
| RS03 | ±60Nm | ±20rad/s | 0~5000 | 0~100 |
|
||||
| RS04 | ±120Nm | ±15rad/s | 0~5000 | 0~100 |
|
||||
| EL05 | ±6Nm | ±50rad/s | 0~500 | 0~5 |
|
||||
| RS06 | ±36Nm | ±50rad/s | 0~5000 | 0~100 |
|
||||
|
||||
#### 温度映射
|
||||
- 格式: Temp(摄氏度)*10
|
||||
- 示例: 温度25.5度 = 255
|
||||
|
||||
#### 数据转换函数
|
||||
|
||||
```c
|
||||
// 浮点数转无符号整数(用于发送)
|
||||
int float_to_uint(float x, float x_min, float x_max, int bits) {
|
||||
float span = x_max - x_min;
|
||||
float offset = x_min;
|
||||
if (x > x_max) x = x_max;
|
||||
else if (x < x_min) x = x_min;
|
||||
return (int)((x - offset) * ((float)((1 << bits) - 1)) / span);
|
||||
}
|
||||
|
||||
// 无符号整数转浮点数(用于接收)
|
||||
float uint_to_float(int x_int, float x_min, float x_max, int bits) {
|
||||
float span = x_max - x_min;
|
||||
float offset = x_min;
|
||||
return ((float)x_int) * span / ((float)((1 << bits) - 1)) + offset;
|
||||
}
|
||||
```
|
||||
|
||||
### 7.3 浮点数格式
|
||||
|
||||
- **IEEE-754标准**: 32位单精度浮点数
|
||||
- **字节序**: 按协议要求(低字节在前或高字节在前)
|
||||
|
||||
## 八、版本说明
|
||||
|
||||
本文档基于以下版本说明书整理:
|
||||
- EL05使用说明书251210
|
||||
- RS00使用说明书251210
|
||||
- RS01使用说明书251210
|
||||
- RS02使用说明书251210
|
||||
- RS03使用说明书251210
|
||||
- RS04使用说明书251210
|
||||
- EL05使用说明书251210
|
||||
- RS06使用说明书251210
|
||||
|
||||
**注意**: 不同型号的电机在某些细节上可能有差异,具体请参考对应型号的详细说明书。如无某些功能,请访问官网git升级最新版本。
|
||||
|
||||
## 九、参考资料
|
||||
|
||||
- 官方网站: https://www.robstride.com/
|
||||
- 下载中心: www.robstride.com(可下载EDS文件等)
|
||||
- 技术支持: 请通过官方网站联系技术支持
|
||||
|
||||
---
|
||||
|
||||
**文档生成日期**: 2025年12月29日
|
||||
**文档版本**: 1.0
|
||||
|
||||
Reference in New Issue
Block a user