|
@@ -668,6 +668,7 @@ void MC_Fault_TE_Process(MC_TE_SensorStatus_Struct_t* p_MC_TE_SensorStatus, True
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+//电路故障
|
|
|
void MC_Fault_Circuit_Process(MC_ErrorCode_Struct_t* p_MC_ErrorCode)
|
|
|
{
|
|
|
static uint32_t PeriodTimeCnt = 0;
|
|
@@ -908,56 +909,30 @@ void MC_Fault_Hardware_Identify(TrueOrFalse_Flag_Struct_t TEComOKFlag, uint16_t
|
|
|
{
|
|
|
static uint32_t TimeCount_HardwareFault=0;
|
|
|
static uint8_t HardwareFaultCount=0, HardwareFaultCount2=0;
|
|
|
-
|
|
|
- if( HAL_GetTick() < 5000) return;
|
|
|
-
|
|
|
- if( p_MC_ErrorCode->ERROR_Bit.Fault_Circuit == 0) //没有故障时开始检测,有故障后故障一直存在,故障检测不再执行
|
|
|
+
|
|
|
+ if( HAL_GetTick() < 4000) return; //开机4s后开始检测
|
|
|
+ else if( HAL_GetTick() < 10000) //开机4s到10s时间内检测
|
|
|
{
|
|
|
- if( (HAL_GetTick()-TimeCount_HardwareFault)>=20 ) //20ms执行一次故障判断
|
|
|
+ if( p_MC_ErrorCode->ERROR_Bit.Fault_Circuit == 0) //没有故障时开始检测,有故障后故障一直存在,故障检测不再执行
|
|
|
{
|
|
|
- TimeCount_HardwareFault = HAL_GetTick();
|
|
|
- if(*inverterExistFlag == TRUE) //电路板有反相器和TE
|
|
|
+ if( (HAL_GetTick()-TimeCount_HardwareFault)>=20 ) //20ms执行一次故障判断
|
|
|
{
|
|
|
- if( ((TEComOKFlag == TRUE)||(SyncClockFreqScan>200))&&((Hardware_AD>1986)&&(Hardware_AD<2110)) )
|
|
|
- {
|
|
|
- HardwareFaultCount=0;
|
|
|
- }
|
|
|
- else
|
|
|
+ TimeCount_HardwareFault = HAL_GetTick();
|
|
|
+ if(*inverterExistFlag == TRUE) //电路板有反相器和TE,认为是旧电路板
|
|
|
{
|
|
|
- HardwareFaultCount++;
|
|
|
- if( HardwareFaultCount>= 250)
|
|
|
+ if( ((TEComOKFlag == TRUE)||(SyncClockFreqScan>200))&&((Hardware_AD>1986)&&(Hardware_AD<2110)) )
|
|
|
{
|
|
|
- HardwareFaultCount = 0;
|
|
|
- p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 1;
|
|
|
- //记录故障日志
|
|
|
- MC_ErrorLogSaveInfo.NotesInfo1 = 6;
|
|
|
- MC_ErrorLogSaveInfo.NotesInfo2 = (SyncClockFreqScan<<2)+TEComOKFlag;
|
|
|
- MC_ErrorLogSaveInfo.NotesInfo3 = Hardware_AD;
|
|
|
- ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
|
|
|
- IsErrorLogSaveInfoUpdateFlag = TRUE;
|
|
|
- //存储故障次数
|
|
|
- MC_RunLog2.Circuit_FaultCnt++;
|
|
|
- RunLogSaveIndex = 2;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if( (TEComOKFlag == TRUE)||(SyncClockFreqScan>200) )
|
|
|
- {
|
|
|
- *inverterExistFlag = TRUE;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if( (Hardware_AD>3723)||(Hardware_AD<372) )
|
|
|
+ HardwareFaultCount=0;
|
|
|
+ }
|
|
|
+ else //旧电路板电阻焊错导致电压不在1.65V左右,或者新电路板电阻焊错导致电压在1.65V左右
|
|
|
{
|
|
|
- HardwareFaultCount2++;
|
|
|
- if( HardwareFaultCount2>= 250)
|
|
|
+ HardwareFaultCount++;
|
|
|
+ if( HardwareFaultCount>= 250)
|
|
|
{
|
|
|
- HardwareFaultCount2 = 0;
|
|
|
+ HardwareFaultCount = 0;
|
|
|
p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 1;
|
|
|
//记录故障日志
|
|
|
- MC_ErrorLogSaveInfo.NotesInfo1 = 7;
|
|
|
+ MC_ErrorLogSaveInfo.NotesInfo1 = 8;
|
|
|
MC_ErrorLogSaveInfo.NotesInfo2 = (SyncClockFreqScan<<2)+TEComOKFlag;
|
|
|
MC_ErrorLogSaveInfo.NotesInfo3 = Hardware_AD;
|
|
|
ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
|
|
@@ -966,15 +941,47 @@ void MC_Fault_Hardware_Identify(TrueOrFalse_Flag_Struct_t TEComOKFlag, uint16_t
|
|
|
MC_RunLog2.Circuit_FaultCnt++;
|
|
|
RunLogSaveIndex = 2;
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if( (TEComOKFlag == TRUE)||(SyncClockFreqScan>200) )
|
|
|
+ {
|
|
|
+ *inverterExistFlag = TRUE;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- HardwareFaultCount2 = 0;
|
|
|
+ if( (Hardware_AD>3723)||(Hardware_AD<372) ) //新电路板电阻短路或断路
|
|
|
+ {
|
|
|
+ HardwareFaultCount2++;
|
|
|
+ if( HardwareFaultCount2>= 250)
|
|
|
+ {
|
|
|
+ HardwareFaultCount2 = 0;
|
|
|
+ p_MC_ErrorCode->ERROR_Bit.Fault_Circuit = 1;
|
|
|
+ //记录故障日志
|
|
|
+ MC_ErrorLogSaveInfo.NotesInfo1 = 9;
|
|
|
+ MC_ErrorLogSaveInfo.NotesInfo2 = (SyncClockFreqScan<<2)+TEComOKFlag;
|
|
|
+ MC_ErrorLogSaveInfo.NotesInfo3 = Hardware_AD;
|
|
|
+ ErrorLogSave_Update(&MC_ErrorLogSaveInfo);
|
|
|
+ IsErrorLogSaveInfoUpdateFlag = TRUE;
|
|
|
+ //存储故障次数
|
|
|
+ MC_RunLog2.Circuit_FaultCnt++;
|
|
|
+ RunLogSaveIndex = 2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ HardwareFaultCount2 = 0;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/***********************全局函数定义***********************/
|