电机故障日志结构定义

1.目的

2.方法

3.通信协议

CAN ID 帧模式 命令字 数据段
0x751 0x11 0x2D08 读取存储器指定地址数据:起始地址:4bytes,结束地址:4bytes,读取数据大小≤128Bytes
CAN ID 帧模式 命令字 数据段
0x715 0x0C 0xAB88 返回存储器指定起始和结束地址的数据:起始地址4bytes,结束地址:4bytes,数据:128bytes 结束地址-起始地址<128时,填充0xFF

示例如下:

case 0x2D08://读取Flash存储器指定地址数据 { do { uint32_t DataLength; DataLength = (uint32_t)((Data[4] << 24) + (Data[5] << 16) + (Data[6] << 8) + (Data[7])) - (uint32_t)((Data[0] << 24) + (Data[1] << 16) + (Data[2] << 8) + (Data[3])) + 1; memcpy((uint8_t*)(Data + 8), (uint8_t*)((Data[0] << 24) + (Data[1] << 16) + (Data[2] << 8) + (Data[3])), DataLength); SendData(ID_MC_TO_CDL, MODE_REPORT, (0xAB08 + DataLength), (uint8_t*)Data); }while(0); break; }

4.数据结构

4.1 小牙盘中置电机故障日志结构体定义

//故障日志记录信息 64 bytes,1K空间可以保存最近16条故障记录 typedef struct { uint16_t Error_Index; //故障列表索引 2 bytes, 地址偏移 0 uint16_t NotesInfo1; //备注信息1,地址偏移 2 uint16_t NotesInfo2; //备注信息2,地址偏移 4 uint16_t NotesInfo3; //备注信息3,地址偏移 6 uint32_t ErrorCode; //故障码 4 bytes, 地址偏移 8 uint32_t RunTime; //运行时间 4bytes, 地址偏移 12 MC_RunInfo_Struct_t RunInfo; //运行信息 32bytes, 地址偏移 16 MC_AttitudeAngle_Struct_t AttitudeAngle; //车辆姿态角度 8bytes, 地址偏移 48 MC_CalParam_Struct_t MC_CalParam; //马达控制参数 8bytes , 地址偏移 56 }MC_ErrorLogSaveInfo_Struct_t; //电机运行信息,占用空间32bytes typedef struct { uint16_t BikeSpeed; //车速 0.1km/h,地址偏移0 int16_t MotorSpeed; //输出转速 1rpm,地址偏移2 uint16_t Power; //电功率 1W,地址偏移4 uint16_t BusVoltage; //母线电压 1mV,地址偏移6 uint16_t BusCurrent; //母线电流 1mA,地址偏移8 uint8_t Cadence; //踏频 1rpm,地址偏移10 uint8_t Torque; //踩踏力矩 1Nm,地址偏移11 MC_CadenceDir_Struct_t CadenceDir; //踩踏方向 0-正,1-反,2-停止,地址偏移12 uint8_t GearSt; //助力档位,地址偏移13 MC_LightSwitch_Struct_t LightSwitch; //灯开关 0xF0-关,0xF1-开,地址偏移14 uint8_t SOC; //剩余电量 1%,地址偏移15 uint16_t RemainDistance; //续航里程 1km,地址偏移16 uint16_t ODO_Km; //总里程 1km,地址偏移18 uint8_t PowerPerKm; //平均功耗 0.01Ah/km ,地址偏移20 uint8_t T_PCB; //PCB温度 +40℃,地址偏移21 uint8_t T_Coil; //绕组温度 +40℃,地址偏移22 uint8_t T_MCU; //MCU温度 +40℃,地址偏移23 uint16_t Ride_Km; //开机后骑行里程 0.1km, 地址偏移24 uint16_t Ride_Time; //开机后骑行时间 1s,地址偏移26 uint8_t TorqueSensorData1; //力矩传感器1原始值 uint8_t TorqueSensorData2; //力矩传感器2原始值 uint8_t TorqueSensorData3; //力矩传感器3原始值 uint8_t RS ; //预留 1byte }MC_RunInfo_Struct_t; //姿态传感器数值 typedef struct { int16_t Angle_Pitch_Absolute; //俯仰角绝对角度 int16_t Angle_Roll_Absolute; //横滚角绝对角度 int16_t Angle_Pitch_Relative; //俯仰角相对角度 int16_t Angle_Roll_Relative; //横滚角相对角度 }MC_AttitudeAngle_Struct_t; //电机控制参数 typedef struct { MC_AssistRunMode_Struct_t AssistRunMode; //助力模式 int16_t Ref_Torque; //力矩模式输入FOC值 int16_t Ref_Speed; //速度模式输入FOC值 FlagStatus Foc_Flag; //FCO运算标志 }MC_CalParam_Struct_t;

4.2 大牙盘中置电机故障日志结构体定义

//故障日志记录信息 64 bytes,1K空间可以保存最近16条故障记录 typedef struct { UWORD ErrorIndex; // 故障序列号,2bytes,地址偏移 0 UWORD NotesInfo1; // 备注信息1,2bytes,地址偏移 2 UWORD NotesInfo2; // 备注信息2,2bytes,地址偏移 4 UWORD NotesInfo3; // 备注信息3,2bytes,地址偏移 6 ULONG ErrorCode; // 故障码,4 bytes, 地址偏移 8 ULONG RunTime; // 运行时间,4bytes, 地址偏移 12 MC_RunInfo_Struct_t RunInfo; // 运行信息 32bytes, 地址偏移 16 SWORD IqCurrentPu; // Iq电流,2bytes,地址偏移 48 SWORD IqVoltagePu; // Iq电压,2bytes,地址偏移 50 SWORD IdCurrentPu; // Id电流,2bytes,地址偏移 52 SWORD IdVoltagePu; // Id电压,2bytes,地址偏移 54 UWORD RS1; // 预留信息1,2bytes,地址偏移 56 UWORD RS2; // 预留信息1,2bytes,地址偏移 58 UWORD RS3; // 预留信息1,2bytes,地址偏移 60 UWORD RS4; // 预留信息1,2bytes,地址偏移 62 } ERROR_LOG; //共64字节 //电机运行信息,占用空间32bytes typedef struct { uint16_t BikeSpeed; //车速 0.1km/h,地址偏移0 int16_t MotorSpeed; //输出转速 1rpm,地址偏移2 uint16_t Power; //电功率 1W,地址偏移4 uint16_t BusVoltage; //母线电压 1mV,地址偏移6 uint16_t BusCurrent; //母线电流 1mA,地址偏移8 uint8_t Cadence; //踏频 1rpm,地址偏移10 uint8_t Torque; //踩踏力矩 1Nm,地址偏移11 MC_CadenceDir_Struct_t CadenceDir; //踩踏方向 0-正,1-反,2-停止,地址偏移12 uint8_t GearSt; //助力档位,地址偏移13 MC_LightSwitch_Struct_t LightSwitch; //灯开关 0xF0-关,0xF1-开,地址偏移14 uint8_t SOC; //剩余电量 1%,地址偏移15 uint16_t RemainDistance; //续航里程 1km,地址偏移16 uint16_t ODO_Km; //总里程 1km,地址偏移18 uint8_t PowerPerKm; //平均功耗 0.01Ah/km ,地址偏移20 uint8_t T_PCB; //PCB温度 +40℃,地址偏移21 uint8_t T_Coil; //绕组温度 +40℃,地址偏移22 uint8_t T_MCU; //MCU温度 +40℃,地址偏移23 uint16_t Ride_Km; //开机后骑行里程 0.1km, 地址偏移24 uint16_t Ride_Time; //开机后骑行时间 1s,地址偏移26 uint8_t TorqueSensorData1; //力矩传感器1原始值 uint8_t TorqueSensorData2; //力矩传感器2原始值 uint8_t TorqueSensorData3; //力矩传感器3原始值 uint8_t RS ; //预留 1byte }MC_RunInfo_Struct_t;

5. 效果

售后软件从小牙盘电机导出的故障日志示例如下:

电机错误信息:

1, 备注1:0, 备注2:0, 备注3:0, 历史信息代码:10 , 原始故障码:0x00000001, 故障详情:过流保护 , 运行时间:10089min, 车速:12.4km/h, 电机转速:1297rpm, 功率:40w, 电压:38614mV, 电流:6130mA, 踏频:34rpm, 力矩:87N.m, 方向:0, 档位:0x02, 灯开关:0xF0, 电量:62%, 续航:---km, 总里程:2339km, 功耗:160mAh/km, PCB温度:22DegreeC, 绕组温度:19DegreeC, MCU温度:18DegreeC, 单次里程:2.1km, 单次时间:353s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:624, 速度环给定:0, FOC_Flag:1,

2, 备注1:0, 备注2:0, 备注3:0, 历史信息代码:10 , 原始故障码:0x00000001, 故障详情:过流保护 , 运行时间:10091min, 车速:9.4km/h, 电机转速:1162rpm, 功率:0w, 电压:39146mV, 电流:13159mA, 踏频:46rpm, 力矩:53N.m, 方向:0, 档位:0x02, 灯开关:0xF0, 电量:61%, 续航:---km, 总里程:2339km, 功耗:160mAh/km, PCB温度:23DegreeC, 绕组温度:23DegreeC, MCU温度:19DegreeC, 单次里程:2.8km, 单次时间:470s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:378, 速度环给定:0, FOC_Flag:1,

3, 备注1:1, 备注2:1331, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:11041min, 车速:16.3km/h, 电机转速:1800rpm, 功率:0w, 电压:39905mV, 电流:1155mA, 踏频:73rpm, 力矩:16N.m, 方向:0, 档位:0x01, 灯开关:0xF0, 电量:79%, 续航:---km, 总里程:2521km, 功耗:110mAh/km, PCB温度:41DegreeC, 绕组温度:50DegreeC, MCU温度:43DegreeC, 单次里程:7.6km, 单次时间:1644s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:298, 速度环给定:0, FOC_Flag:1,

4, 备注1:1, 备注2:399, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:12181min, 车速:23.1km/h, 电机转速:1687rpm, 功率:0w, 电压:38780mV, 电流:1130mA, 踏频:53rpm, 力矩:20N.m, 方向:0, 档位:0x03, 灯开关:0xF0, 电量:68%, 续航:---km, 总里程:2753km, 功耗:190mAh/km, PCB温度:40DegreeC, 绕组温度:46DegreeC, MCU温度:42DegreeC, 单次里程:1km, 单次时间:168s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:457, 速度环给定:0, FOC_Flag:1,

5, 备注1:1, 备注2:489, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:12222min, 车速:12.1km/h, 电机转速:1650rpm, 功率:0w, 电压:38080mV, 电流:1127mA, 踏频:32rpm, 力矩:10N.m, 方向:0, 档位:0x02, 灯开关:0xF0, 电量:62%, 续航:---km, 总里程:2761km, 功耗:150mAh/km, PCB温度:43DegreeC, 绕组温度:47DegreeC, MCU温度:46DegreeC, 单次里程:2.9km, 单次时间:767s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:460, 速度环给定:0, FOC_Flag:1,

6, 备注1:1, 备注2:622, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:12279min, 车速:16.4km/h, 电机转速:1755rpm, 功率:0w, 电压:40803mV, 电流:1256mA, 踏频:52rpm, 力矩:39N.m, 方向:0, 档位:0x01, 灯开关:0xF0, 电量:95%, 续航:---km, 总里程:2769km, 功耗:90mAh/km, PCB温度:34DegreeC, 绕组温度:39DegreeC, MCU温度:36DegreeC, 单次里程:1.3km, 单次时间:225s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:239, 速度环给定:0, FOC_Flag:1,

7, 备注1:1, 备注2:975, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:13600min, 车速:12.9km/h, 电机转速:1777rpm, 功率:0w, 电压:40928mV, 电流:1228mA, 踏频:40rpm, 力矩:29N.m, 方向:0, 档位:0x01, 灯开关:0xF0, 电量:98%, 续航:---km, 总里程:3062km, 功耗:100mAh/km, PCB温度:31DegreeC, 绕组温度:37DegreeC, MCU温度:33DegreeC, 单次里程:0km, 单次时间:10s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:224, 速度环给定:0, FOC_Flag:1,

8, 备注1:1, 备注2:727, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:13600min, 车速:15.2km/h, 电机转速:1762rpm, 功率:0w, 电压:40893mV, 电流:1166mA, 踏频:48rpm, 力矩:27N.m, 方向:0, 档位:0x33, 灯开关:0xF0, 电量:97%, 续航:---km, 总里程:3062km, 功耗:180mAh/km, PCB温度:32DegreeC, 绕组温度:38DegreeC, MCU温度:34DegreeC, 单次里程:0km, 单次时间:9s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:409, 速度环给定:0, FOC_Flag:1,

9, 备注1:1, 备注2:1257, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:13861min, 车速:24km/h, 电机转速:1740rpm, 功率:0w, 电压:40163mV, 电流:1105mA, 踏频:76rpm, 力矩:44N.m, 方向:0, 档位:0x01, 灯开关:0xF0, 电量:83%, 续航:---km, 总里程:3126km, 功耗:100mAh/km, PCB温度:41DegreeC, 绕组温度:50DegreeC, MCU温度:41DegreeC, 单次里程:11.4km, 单次时间:1692s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:212, 速度环给定:0, FOC_Flag:1,

10, 备注1:1, 备注2:797, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:13861min, 车速:27.7km/h, 电机转速:1785rpm, 功率:0w, 电压:40234mV, 电流:1150mA, 踏频:76rpm, 力矩:18N.m, 方向:0, 档位:0x02, 灯开关:0xF0, 电量:85%, 续航:---km, 总里程:3126km, 功耗:160mAh/km, PCB温度:41DegreeC, 绕组温度:48DegreeC, MCU温度:43DegreeC, 单次里程:0.1km, 单次时间:27s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:448, 速度环给定:0, FOC_Flag:1,

11, 备注1:1, 备注2:458, 备注3:0, 历史信息代码: , 原始故障码:0x00400000, 故障详情: , 运行时间:14082min, 车速:20.5km/h, 电机转速:1612rpm, 功率:0w, 电压:35824mV, 电流:1006mA, 踏频:64rpm, 力矩:41N.m, 方向:0, 档位:0x01, 灯开关:0xF0, 电量:34%, 续航:---km, 总里程:3177km, 功耗:90mAh/km, PCB温度:43DegreeC, 绕组温度:48DegreeC, MCU温度:46DegreeC, 单次里程:4km, 单次时间:600s, 俯仰绝对角度:0Degree, 横滚绝对角度:0Degree, 俯仰相对角度:0Degree, 横滚相对角度:0Degree, 运行模式:2, 力矩环给定:226, 速度环给定:0, FOC_Flag:1,