提交 be32b969 作者: wysheng

梳理TCU通讯协议,修改部分错误

上级 a044ceb9
......@@ -1328,130 +1328,97 @@ void StopMegAck_B(void)
}
/*
01H:计费控制单元正常停止
02H:计费控制单元自身故障终止
03H:计费控制单元判断充电控制器故障停止
04H:启动完成状态帧确认超时故障终止
05H:充电中控制导引故障
06H:充电控制器与计费控制单元通讯超时
07H:充电桩充电中暂停超时
08H:急停按钮动作故障
09H:门禁故障(充电桩)
0AH:避雷器故障
0BH:烟感故障
0CH:交流输入断路器故障
0DH:交流输入接触器拒动/误动故障
0EH:交流输入接触器粘连故障
0FH:交流输入故障(过压,欠压,缺相,过流)
10H:充电桩过温故障
11H:充电接口过温故障
12H:充电接口电子锁故障
13H:直流输出接触器拒动/误动故障
14H:直流输出接触器粘连故障
15H:直流输出熔断器故障
16H:并联接触器拒动/误动故障
17H:并联接触器粘连故障
18H:泄放回路故障
19H:辅助电源故障
1AH:充电机模块故障
1BH:直流母线输出电压过压故障
1CH:直流母线输出电压欠压故障
1DH:直流母线输出电流过流故障
1EH:直流母线输出短路故障
1FH:电池充电需求报文(BCL)超时
20H:电池充电总状态报文(BCS)超时
21H:动力蓄电池状态信息(BSM)超时
22H:BSM 报文中单体动力蓄电池电压过压
23H:BSM 报文中单体动力蓄电池电压过低
24H:BSM 报文中SOC 过高
25H:BSM 报文中SOC 过低
26H:BSM 报文中充电过电流
27H:BSM 报文中动力蓄电池温度过高
28H:BSM 报文中动力蓄电池绝缘状态异常
29H:BSM 报文中连接器连接状态异常
2AH:BMS 正常终止充电
2BH:BMS 异常终止充电
2CH:充电桩判断BMS 其他异常终止
2DH:预留
2EH:无有效电流停止
2FH:环境监控板通信故障
30H:灯板通信故障
31H: 电能表通信故障
FFH:充电桩其他故障
*/
void GetStopReason_A(u8 * stopReason)
{
if (TCUCurChgRecd.TCUChgStopType == 1)
*stopReason = 01;
*stopReason = 01;//01H:计费控制单元正常停止
else if (TCUCurChgRecd.TCUChgStopType == 2)
*stopReason = 02;
*stopReason = 02;//02H:计费控制单元自身故障终止
else if (TCUCurChgRecd.TCUChgStopType == 3)
*stopReason = 03;
*stopReason = 03;//03H:计费控制单元判断充电控制器故障停止
else if (TCUCommuStatus.ErrData.Value.startCompAck == 1)
*stopReason = 0x04;
*stopReason = 0x04;//04H:启动完成状态帧确认超时故障终止
else if (ChargeStopType == eChgStop_Run_CcOpen)
*stopReason = 0x05; //控制导引超时//充电过程中充电导引枪连接
*stopReason = 0x05; //05H:充电中控制导引故障//充电过程中充电导引枪连接
else if (TCUCommuStatus.ConnectFlag == CONNECT_TIMEOUT)
*stopReason = 0x06; //充电控制器与计费单元通讯超时停止
*stopReason = 0x06; //06H:充电控制器与计费控制单元通讯超时
else if (PillarError.Value.Emergency)
*stopReason = 0x08; //急停按钮动作故障
*stopReason = 0x08; //08H:急停按钮动作故障
else if (PillarError.Value.Door)
*stopReason = 0x09; //门禁故障
*stopReason = 0x09; //09H:门禁故障(充电桩)
else if (PillarError.Value.SPD)
*stopReason = 0x0A; //雷器故障
*stopReason = 0x0A; //0AH:避雷器故障
else if (PillarError.Value.ACContactor)
*stopReason = 0x0E; //交流接触器粘连故障
*stopReason = 0x0E; //0EH:交流输入接触器粘连故障
else if (PillarError.Value.InVolt)
*stopReason = 0x0F; //交流输入故障//过欠压缺相
*stopReason = 0x0F; //0FH:交流输入故障(过压,欠压,缺相,过流)
else if (PillarError.Value.EleLock)
*stopReason = 0x0F; //交流输入故障//过欠压缺相
*stopReason = 0x12; //12H:充电接口电子锁故障
else if (PillarError.Value.Contactor)
*stopReason = 0x14; //直流输出继电器粘连故障
*stopReason = 0x14; //14H:直流输出接触器粘连故障
else if (PillarError.Value.UniContactor)
*stopReason = 0x16; //并联接触器粘连故障
*stopReason = 0x16; //16H:并联接触器拒动/误动故障
else if (PillarError.Value.DCmodError)
*stopReason = 0x1A; //充电模块故障
*stopReason = 0x1A; //1AH:充电机模块故障
else if (ChargeStopType == eChgStop_Run_VoltOutHighErr)
*stopReason = 0x1B; //直流输出电压故障
*stopReason = 0x1B; //1BH:直流母线输出电压过压故障
else if (ChargeStopType == eChgStop_Run_CurrtOutHighErr)
*stopReason = 0x1D; //直流输出过流故障
*stopReason = 0x1D; //1DH:直流母线输出电流过流故障
else if (PillarError.Value.OutShort)
*stopReason = 0x1E; //直流输出短路故障
*stopReason = 0x1E; //1EH:直流母线输出短路故障
else if (CemMsg.Cem.Value.Bcl == 1)
*stopReason = 0x1F;
*stopReason = 0x1F;//1FH:电池充电需求报文(BCL)超时
else if (CemMsg.Cem.Value.Bcs == 1)
*stopReason = 0x20;
*stopReason = 0x20;//20H:电池充电总状态报文(BCS)超时
//else if(CemMsg.Cem.Value.Bsm==1)
// *stopReason = 0x21;
else if (BsmMsg.BatSta.Value.Volt == 0x01)
*stopReason = 0x22;
*stopReason = 0x22;//22H:BSM 报文中单体动力蓄电池电压过压
else if (BsmMsg.BatSta.Value.Volt == 0x02)
*stopReason = 0x23;
*stopReason = 0x23;//23H:BSM 报文中单体动力蓄电池电压过低
else if (BsmMsg.BatSta.Value.Soc == 0x01)
*stopReason = 0x24;
*stopReason = 0x24;//24H:BSM 报文中SOC 过高
else if (BsmMsg.BatSta.Value.Soc == 0x02)
*stopReason = 0x25;
*stopReason = 0x25;//25H:BSM 报文中SOC 过低
else if (BsmMsg.BatSta.Value.Currt == 0x01)
*stopReason = 0x26;
*stopReason = 0x26;//26H:BSM 报文中充电过电流
else if (BsmMsg.BatSta.Value.Temp == 0x01)
*stopReason = 0x27;
*stopReason = 0x27;//27H:BSM 报文中动力蓄电池温度过高
else if (BsmMsg.ChgSta.Value.Imd == 0x01)
*stopReason = 0x28;
*stopReason = 0x28;//28H:BSM 报文中动力蓄电池绝缘状态异常
else if (BsmMsg.ChgSta.Value.Connect == 0x01)
*stopReason = 0x29;
*stopReason = 0x29;//29H:BSM 报文中连接器连接状态异常
else if ((BstMsg.StopReason.Value.NeedSoc == 0x01) || (BstMsg.StopReason.Value.SetVolt == 0x01) ||
(BstMsg.StopReason.Value.PerSetVolt == 0x01))
*stopReason = 0x2A;
*stopReason = 0x2A;//2AH:BMS 正常终止充电
else if ((BstMsg.StopTruble.Mult != 0) || ((BstMsg.StopFault.Mult & 0x0F) != 0))
*stopReason = 0x2B;
*stopReason = 0x2B;//2BH:BMS 异常终止充电
else if (ChargeCtrl.CurProcess == eChgPro_ChgBreak)
*stopReason = 0x2D;
*stopReason = 0x2C;//2CH:充电桩判断BMS 其他异常终止
else
* stopReason = 0x2c;
* stopReason = 0xff;//FFH:充电桩其他故障
return;
......@@ -1470,7 +1437,7 @@ void GetStopReason_B(u8 * stopReason)
*stopReason = 0x04;
else if (ChargeStopType_B == eChgStop_Run_CcOpen)
*stopReason = 0x05; //控制导引超时//充电过程中充电导引枪连接
else if (TCUCommuStatus.ConnectFlag == CONNECT_TIMEOUT)
else if (TCUCommuStatus_B.ConnectFlag == CONNECT_TIMEOUT)
*stopReason = 0x06; //充电控制器与计费单元通讯超时停止
else if (PillarError_B.Value.Emergency)
*stopReason = 0x08; //急停按钮动作故障
......@@ -1483,7 +1450,7 @@ void GetStopReason_B(u8 * stopReason)
else if (PillarError_B.Value.InVolt)
*stopReason = 0x0F; //交流输入故障//过欠压缺相
else if (PillarError_B.Value.EleLock)
*stopReason = 0x0F; //交流输入故障//过欠压缺相
*stopReason = 0x12; //
else if (PillarError_B.Value.Contactor)
*stopReason = 0x14; //直流输出继电器粘连故障
else if (PillarError_B.Value.UniContactor)
......@@ -1525,13 +1492,11 @@ void GetStopReason_B(u8 * stopReason)
else if ((BstMsg_B.StopTruble.Mult != 0) || ((BstMsg_B.StopFault.Mult & 0x0F) != 0))
*stopReason = 0x2B;
else if (ChargeCtrl_B.CurProcess == eChgPro_B_ChgBreak)
*stopReason = 0x2D;
*stopReason = 0x2C;
else
* stopReason = 0x2c;
* stopReason = 0xFF;
return;
}
......@@ -1672,7 +1637,7 @@ void stopCompSend_B(void)
Data[len++] = 0x00;
GetStopReason_B(&reason);
Data[len++] = reason;
Data[len++] = 00; //成功标识
Data[len++] = 00; //成功标识
Data[len++] = BstMsg_B.StopReason.Mult;
Data[len++] = BstMsg_B.StopTruble.Mult;
Data[len++] = BstMsg_B.StopTruble.Mult >> 8;
......@@ -1740,7 +1705,7 @@ void TCUHeartBeat_A(void)
{
0
};
static u8 CountNum; //最大255
static u8 CountNum = 0; //最大255
Data[0] = 0x00;
Data[1] = CountNum++;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论