提交 e360e1d9 作者: wysheng

删除直流输出接触器反馈检测

上级 22d26c45
#include "Drv_BoardIo.h"
#include "Drv_ImdJyc.h"
#include "memory.h"
osTimerId FanDelayTimer;
osTimerId FanDelayTimer_Top;
osTimerId DCOutDelayTimer;
osTimerId DCOutDelayTimer_B;
osTimerId DCOutDelayTimer_Uni;
static EnumSwitchStatus FanStatus = eSwSta_Off;
static EnumSwitchStatus FanStatus_Top = eSwSta_Off;
static EnumSwitchStatus FanStatus_A = eSwSta_Off;
static EnumSwitchStatus FanStatus_B = eSwSta_Off;
EnumSwitchStatus ACContactorSta = eSwSta_Off;
EnumSwitchStatus EleLockSta = eSwSta_Off;
EnumSwitchStatus EleLockSta_B = eSwSta_Off;
EnumSwitchStatus DcOutPosSta = eSwSta_Off;
EnumSwitchStatus DcOutNegSta = eSwSta_Off;
EnumSwitchStatus DcOutPosSta_B = eSwSta_Off;
EnumSwitchStatus DcOutNegSta_B = eSwSta_Off;
EnumSwitchStatus DcOutPosSta_Uni = eSwSta_Off;
EnumSwitchStatus DcOutNegSta_Uni = eSwSta_Off;
void BmsPowerInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = BmsPower_Pin;
RCC_AHB1PeriphClockCmd(BmsPower_RCC, ENABLE);
GPIO_Init(BmsPower_Port, &GPIO_InitStructure);
GPIO_ResetBits(BmsPower_Port, BmsPower_Pin);
}
void BmsPowerSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
BmsPower_Port->BSRRH = BmsPower_Pin;
else
BmsPower_Port->BSRRL = BmsPower_Pin;
}
static void DCOutDelayHandle(void const *Param)
{
DcOutPos_Port->BSRRL = DcOutPos_Pin;
DcOutPosSta = eSwSta_On;
}
void DcOutInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutPos_Pin;
RCC_AHB1PeriphClockCmd(DcOutPos_RCC, ENABLE);
GPIO_Init(DcOutPos_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutPos_Port, DcOutPos_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkPos_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkPos_RCC, ENABLE);
GPIO_Init(DcOutChkPos_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkPos_Port, DcOutChkPos_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutNeg_Pin;
RCC_AHB1PeriphClockCmd(DcOutNeg_RCC, ENABLE);
GPIO_Init(DcOutNeg_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutNeg_Port, DcOutNeg_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkNeg_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkNeg_RCC, ENABLE);
GPIO_Init(DcOutChkNeg_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkNeg_Port, DcOutChkNeg_Pin);
/* Create a Timer */
osTimerDef(DCOutDelayTimer, DCOutDelayHandle);
DCOutDelayTimer = osTimerCreate(osTimer(DCOutDelayTimer), osTimerOnce, (void *)0);
}
void DcOutPosSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DcOutPos_Port->BSRRH = DcOutPos_Pin;
else
DcOutPos_Port->BSRRL = DcOutPos_Pin;
DcOutPosSta = Set;
}
void DcOutNegSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DcOutNeg_Port->BSRRH = DcOutNeg_Pin;
else
DcOutNeg_Port->BSRRL = DcOutNeg_Pin;
DcOutNegSta = Set;
}
#if 1
void DcOutSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
DcOutPosSet(Set);
DcOutNegSet(Set);
osTimerStop(DCOutDelayTimer);
}
else
{
//DcOutPosSet(Set);
DcOutNegSet(Set);
osTimerStart(DCOutDelayTimer, 200);
}
}
#else
void DcOutSet(EnumSwitchStatus Set)
{
DcOutPosSet(Set);
DcOutNegSet(Set);
}
#endif
EnumSwitchStatus DcOutPosGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkPos_Port, DcOutChkPos_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutNegGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkNeg_Port, DcOutChkNeg_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutPosGetSet(void)
{
return DcOutPosSta;
}
EnumSwitchStatus DcOutNegGetSet(void)
{
return DcOutNegSta;
}
EnumSwitchStatus DcOutGet(void)
{
if(eSwSta_On == DcOutPosGet())// && eSwSta_On == DcOutNegGet()
return eSwSta_On;
return eSwSta_Off;
}
void DrainResistInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DrainResist_Pin;
RCC_AHB1PeriphClockCmd(DrainResist_RCC, ENABLE);
GPIO_Init(DrainResist_Port, &GPIO_InitStructure);
GPIO_ResetBits(DrainResist_Port, DrainResist_Pin);
}
void DrainResistSet(EnumSwitchStatus Set)
{
//if(eSwSta_Off == Set)
// DrainResist_Port->BSRRH = DrainResist_Pin;
// else
// DrainResist_Port->BSRRL = DrainResist_Pin;
}
void ACContactorSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
ACContactor_Port->BSRRH = ACContactor_Pin;
else
ACContactor_Port->BSRRL = ACContactor_Pin;
}
void ImdWorkSet(EnumSwitchStatus Set)
{
static EnumSwitchStatus laststa = eSwSta_Off;
//if(laststa != Set)
{
if(eSwSta_On == Set) // 역폘없鍍쇱꿎
{
ImdWrite(0x0017, 0x0002);
ImdWrite(0x01FE, 0x0001);
}
else // 밑균없鍍쇱꿎
{
ImdWrite(0x0017, 0x0003);
ImdWrite(0x01FE, 0x0001);
}
laststa = Set;
}
}
void LockInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Lock_Pin;
RCC_AHB1PeriphClockCmd(Lock_RCC, ENABLE);
GPIO_Init(Lock_Port, &GPIO_InitStructure);
GPIO_ResetBits(Lock_Port, Lock_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = LockChk_Pin;
RCC_AHB1PeriphClockCmd(LockChk_RCC, ENABLE);
GPIO_Init(LockChk_Port, &GPIO_InitStructure);
GPIO_ResetBits(LockChk_Port, LockChk_Pin);
}
void LockSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
Lock_Port->BSRRH = Lock_Pin;
else
Lock_Port->BSRRL = Lock_Pin;
EleLockSta = Set;
}
EnumSwitchStatus LockGet(void)
{
if(Bit_SET == GPIO_ReadInputDataBit(LockChk_Port, LockChk_Pin))
return eSwSta_On;
return eSwSta_Off;
}
void ChgLedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = ChgLed_Pin;
RCC_AHB1PeriphClockCmd(ChgLed_RCC, ENABLE);
GPIO_Init(ChgLed_Port, &GPIO_InitStructure);
GPIO_ResetBits(ChgLed_Port, ChgLed_Pin);
}
void ChgLedSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
ChgLed_Port->BSRRH = ChgLed_Pin;
else
ChgLed_Port->BSRRL = ChgLed_Pin;
}
void FaultLedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = FaultLed_Pin;
RCC_AHB1PeriphClockCmd(FaultLed_RCC, ENABLE);
GPIO_Init(FaultLed_Port, &GPIO_InitStructure);
GPIO_ResetBits(FaultLed_Port, FaultLed_Pin);
}
void FaultLedSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
FaultLed_Port->BSRRH = FaultLed_Pin;
else
FaultLed_Port->BSRRL = FaultLed_Pin;
}
void IdleLedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = IdleLed_Pin;
RCC_AHB1PeriphClockCmd(IdleLed_RCC, ENABLE);
GPIO_Init(IdleLed_Port, &GPIO_InitStructure);
GPIO_ResetBits(IdleLed_Port, IdleLed_Pin);
}
void IdleLedSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
IdleLed_Port->BSRRH = IdleLed_Pin;
else
IdleLed_Port->BSRRL = IdleLed_Pin;
}
/*osTimerId RunLedDelayTimer;
static void RunLedDelayHandle(void const *Param)
{
RunLed_Port->BSRRH = RunLed_Pin;
}*/
void BmsPowerInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = BmsPower_B_Pin;
RCC_AHB1PeriphClockCmd(BmsPower_B_RCC, ENABLE);
GPIO_Init(BmsPower_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(BmsPower_B_Port, BmsPower_B_Pin);
}
void BmsPowerSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
BmsPower_B_Port->BSRRH = BmsPower_B_Pin;
else
BmsPower_B_Port->BSRRL = BmsPower_B_Pin;
}
void ShortCirCheck(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = ShortCirCheck_Pin;
RCC_AHB1PeriphClockCmd(ShortCirCheck_RCC, ENABLE);
GPIO_Init(ShortCirCheck_Port, &GPIO_InitStructure);
GPIO_ResetBits(ShortCirCheck_Port, ShortCirCheck_Pin);
}
void ShortCirCheckSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
ShortCirCheck_Port->BSRRH = ShortCirCheck_Pin;
else
BmsPower_B_Port->BSRRL = ShortCirCheck_Pin;
}
static void DCOutDelayHandle_B(void const *Param)
{
DcOutPos_B_Port->BSRRL = DcOutPos_B_Pin;
DcOutPosSta_B = eSwSta_On;
}
void DcOutInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutPos_B_Pin;
RCC_AHB1PeriphClockCmd(DcOutPos_B_RCC, ENABLE);
GPIO_Init(DcOutPos_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutPos_B_Port, DcOutPos_B_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkPos_B_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkPos_B_RCC, ENABLE);
GPIO_Init(DcOutChkPos_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkPos_B_Port, DcOutChkPos_B_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutNeg_B_Pin;
RCC_AHB1PeriphClockCmd(DcOutNeg_B_RCC, ENABLE);
GPIO_Init(DcOutNeg_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutNeg_B_Port, DcOutNeg_B_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkNeg_B_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkNeg_B_RCC, ENABLE);
GPIO_Init(DcOutChkNeg_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkNeg_B_Port, DcOutChkNeg_B_Pin);
/* Create a Timer */
osTimerDef(DCOutDelayTimer_B, DCOutDelayHandle_B);
DCOutDelayTimer_B = osTimerCreate(osTimer(DCOutDelayTimer_B), osTimerOnce, (void *)0);
}
void DcOutPosSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DcOutPos_B_Port->BSRRH = DcOutPos_B_Pin;
else
DcOutPos_B_Port->BSRRL = DcOutPos_B_Pin;
DcOutPosSta_B = Set;
}
void DcOutNegSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DcOutNeg_B_Port->BSRRH = DcOutNeg_B_Pin;
else
DcOutNeg_B_Port->BSRRL = DcOutNeg_B_Pin;
DcOutNegSta_B = Set;
}
#if 1
void DcOutSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
DcOutPosSet_B(Set);
DcOutNegSet_B(Set);
osTimerStop(DCOutDelayTimer_B);
}
else
{
//DcOutPosSet_B(Set);
DcOutNegSet_B(Set);
osTimerStart(DCOutDelayTimer_B, 200);
}
}
#else
void DcOutSet_B(EnumSwitchStatus Set)
{
DcOutPosSet_B(Set);
DcOutNegSet_B(Set);
}
#endif
EnumSwitchStatus ACContactorGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkNeg_B_Port, DcOutChkNeg_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutPosGet_B(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkPos_B_Port, DcOutChkPos_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutNegGet_B(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkNeg_B_Port, DcOutChkNeg_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutPosGetSet_B(void)
{
return DcOutPosSta_B;
}
EnumSwitchStatus DcOutNegGetSet_B(void)
{
return DcOutNegSta_B;
}
EnumSwitchStatus DcOutGet_B(void)
{
if(eSwSta_On == DcOutPosGet_B())// && eSwSta_On == DcOutNegGet()
return eSwSta_On;
return eSwSta_Off;
}
void DrainResistInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DrainResist_B_Pin;
RCC_AHB1PeriphClockCmd(DrainResist_B_RCC, ENABLE);
GPIO_Init(DrainResist_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DrainResist_B_Port, DrainResist_B_Pin);
}
void DrainResistSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DrainResist_B_Port->BSRRH = DrainResist_B_Pin;
else
DrainResist_B_Port->BSRRL = DrainResist_B_Pin;
}
void ImdWorkSet_B(EnumSwitchStatus Set)
{
static EnumSwitchStatus laststa = eSwSta_Off;
//if(laststa != Set)
{
if(eSwSta_On == Set) // 역폘없鍍쇱꿎
{
ImdWrite_B(0x0017, 0x0002);
ImdWrite_B(0x01FE, 0x0001);
}
else // 밑균없鍍쇱꿎
{
ImdWrite_B(0x0017, 0x0003);
ImdWrite_B(0x01FE, 0x0001);
}
laststa = Set;
}
}
void LockInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Lock_B_Pin;
RCC_AHB1PeriphClockCmd(Lock_B_RCC, ENABLE);
GPIO_Init(Lock_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(Lock_B_Port, Lock_B_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = LockChk_B_Pin;
RCC_AHB1PeriphClockCmd(LockChk_B_RCC, ENABLE);
GPIO_Init(LockChk_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(LockChk_B_Port, LockChk_B_Pin);
}
void LockSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
Lock_B_Port->BSRRH = Lock_B_Pin;
else
Lock_B_Port->BSRRL = Lock_B_Pin;
EleLockSta_B = Set;
}
EnumSwitchStatus LockGet_B(void)
{
if(Bit_SET == GPIO_ReadInputDataBit(LockChk_B_Port, LockChk_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
void ChgLedInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = ChgLed_B_Pin;
RCC_AHB1PeriphClockCmd(ChgLed_B_RCC, ENABLE);
GPIO_Init(ChgLed_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(ChgLed_B_Port, ChgLed_B_Pin);
}
void ChgLedSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
ChgLed_B_Port->BSRRH = ChgLed_B_Pin;
else
ChgLed_B_Port->BSRRL = ChgLed_B_Pin;
}
void FaultLedInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = FaultLed_B_Pin;
RCC_AHB1PeriphClockCmd(FaultLed_B_RCC, ENABLE);
GPIO_Init(FaultLed_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(FaultLed_B_Port, FaultLed_B_Pin);
}
void FaultLedSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
FaultLed_B_Port->BSRRH = FaultLed_B_Pin;
else
FaultLed_B_Port->BSRRL = FaultLed_B_Pin;
}
void IdleLedInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = IdleLed_B_Pin;
RCC_AHB1PeriphClockCmd(IdleLed_B_RCC, ENABLE);
GPIO_Init(IdleLed_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(IdleLed_B_Port, IdleLed_B_Pin);
}
void IdleLedSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
IdleLed_B_Port->BSRRH = IdleLed_B_Pin;
else
IdleLed_B_Port->BSRRL = IdleLed_B_Pin;
}
/**************************************************************/
static void DCOutDelayHandle_Uni(void const *Param)
{
DcOutPos_Uni_Port->BSRRL = DcOutPos_Uni_Pin;
DcOutPosSta_Uni = eSwSta_On;
}
void DcOutInit_Uni(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutPos_Uni_Pin;
RCC_AHB1PeriphClockCmd(DcOutPos_Uni_RCC, ENABLE);
GPIO_Init(DcOutPos_Uni_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutPos_Uni_Port, DcOutPos_Uni_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkPos_Uni_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkPos_Uni_RCC, ENABLE);
GPIO_Init(DcOutChkPos_Uni_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkPos_Uni_Port, DcOutChkPos_Uni_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutNeg_Uni_Pin;
RCC_AHB1PeriphClockCmd(DcOutNeg_Uni_RCC, ENABLE);
GPIO_Init(DcOutNeg_Uni_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutNeg_Uni_Port, DcOutNeg_Uni_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkNeg_Uni_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkNeg_Uni_RCC, ENABLE);
GPIO_Init(DcOutChkNeg_Uni_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkNeg_Uni_Port, DcOutChkNeg_Uni_Pin);
/* Create a Timer */
osTimerDef(DCOutDelayTimer_Uni, DCOutDelayHandle_Uni);
DCOutDelayTimer_Uni = osTimerCreate(osTimer(DCOutDelayTimer_Uni), osTimerOnce, (void *)0);
}
void DcOutPosSet_Uni(EnumSwitchStatus Set)
{
/*if(eSwSta_Off == Set)
DcOutPos_Uni_Port->BSRRH = DcOutPos_Uni_Pin;
else
DcOutPos_Uni_Port->BSRRL = DcOutPos_Uni_Pin;
DcOutPosSta_Uni = Set;*/
}
void DcOutNegSet_Uni(EnumSwitchStatus Set)
{
/*if(eSwSta_Off == Set)
DcOutNeg_Uni_Port->BSRRH = DcOutNeg_Uni_Pin;
else
DcOutNeg_Uni_Port->BSRRL = DcOutNeg_Uni_Pin;
DcOutNegSta_Uni = Set;*/
}
#if 1
void DcOutSet_Uni(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
//DcOutPosSet_Uni(Set);
//DcOutNegSet_Uni(Set);
//osTimerStop(DCOutDelayTimer_Uni);
}
else if(((eSwSta_Off == DcOutGet()) || (eSwSta_Off == DcOutGet_B()))
&& ((eSwSta_Off == DcOutPosGetSet()) || (eSwSta_Off == DcOutPosGetSet_B()))
)
{
//DcOutPosSet_Uni(Set);
//DcOutNegSet_Uni(Set);
//osTimerStart(DCOutDelayTimer_Uni, 200);
}
}
#else
void DcOutSet_Uni(EnumSwitchStatus Set)
{
DcOutPosSet_Uni(Set);
DcOutNegSet_Uni(Set);
}
#endif
EnumSwitchStatus DcOutPosGet_Uni(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkPos_Uni_Port, DcOutChkPos_Uni_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutNegGet_Uni(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkNeg_Uni_Port, DcOutChkNeg_Uni_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutPosGetSet_Uni(void)
{
return DcOutPosSta_Uni;
}
EnumSwitchStatus DcOutNegGetSet_Uni(void)
{
return DcOutNegSta_Uni;
}
EnumSwitchStatus DcOutGet_Uni(void)
{
if(eSwSta_On == DcOutPosGet_Uni() && eSwSta_On == DcOutNegGet_Uni())//
return eSwSta_On;
return eSwSta_Off;
}
void DehumidifierInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Dehumidifier_Pin;
RCC_AHB1PeriphClockCmd(Dehumidifier_RCC, ENABLE);
GPIO_Init(Dehumidifier_Port, &GPIO_InitStructure);
GPIO_ResetBits(Dehumidifier_Port, Dehumidifier_Pin);
}
void DehumidifierSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
Dehumidifier_Port->BSRRH = Dehumidifier_Pin;
else
Dehumidifier_Port->BSRRL = Dehumidifier_Pin;
}
void RunLedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = RunLed_Pin;
RCC_AHB1PeriphClockCmd(RunLed_RCC, ENABLE);
GPIO_Init(RunLed_Port, &GPIO_InitStructure);
GPIO_ResetBits(RunLed_Port, RunLed_Pin);
/* Create a Timer */
//osTimerDef(RunLedDelayTimer, RunLedDelayHandle);
//RunLedDelayTimer = osTimerCreate(osTimer(RunLedDelayTimer), osTimerOnce, (void *)0);
}
void RunLedSet(EnumSwitchStatus Set)
{
if(eSwSta_On == Set)
{
//osTimerStart(RunLedDelayTimer, 990);
RunLed_Port->BSRRH = RunLed_Pin;
}
else
{
//osTimerStop(RunLedDelayTimer);
RunLed_Port->BSRRL = RunLed_Pin;
}
}
void EmergenceInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Emergence_Pin;
RCC_AHB1PeriphClockCmd(Emergence_RCC, ENABLE);
GPIO_Init(Emergence_Port, &GPIO_InitStructure);
GPIO_ResetBits(Emergence_Port, Emergence_Pin);
}
EnumSwitchStatus EmergenceGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(Emergence_Port, Emergence_Pin))
return eSwSta_On;
return eSwSta_Off;
}
void DoorChkInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DoorChk_Pin;
RCC_AHB1PeriphClockCmd(DoorChk_RCC, ENABLE);
GPIO_Init(DoorChk_Port, &GPIO_InitStructure);
GPIO_ResetBits(DoorChk_Port, DoorChk_Pin);
}
EnumSwitchStatus DoorChkGet(void)
{
if(Bit_SET == GPIO_ReadInputDataBit(DoorChk_Port, DoorChk_Pin))
return eSwSta_On;
return eSwSta_Off;
}
void SPDInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = SPD_Pin;
RCC_AHB1PeriphClockCmd(SPD_RCC, ENABLE);
GPIO_Init(SPD_Port, &GPIO_InitStructure);
GPIO_ResetBits(SPD_Port, SPD_Pin);
}
EnumSwitchStatus SPDGet(void)
{
if(Bit_RESET== GPIO_ReadInputDataBit(SPD_Port, SPD_Pin))
return eSwSta_On;
return eSwSta_Off;
}
static void FanDelayHandle(void const *Param)
{
Fan_Port->BSRRH = Fan_Pin;
ACContactorSet(eSwSta_Off);
}
void FanInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Fan_Pin;
RCC_AHB1PeriphClockCmd(Fan_RCC, ENABLE);
GPIO_Init(Fan_Port, &GPIO_InitStructure);
GPIO_ResetBits(Fan_Port, Fan_Pin);
/* Create a Timer */
osTimerDef(FanDelayTimer, FanDelayHandle);
FanDelayTimer = osTimerCreate(osTimer(FanDelayTimer), osTimerOnce, (void *)0);
}
void FanSet_Side(EnumSwitchStatus Set)
{
if(FanStatus == Set)
return;
if(eSwSta_Off == Set)
osTimerStart(FanDelayTimer, 120000);
else
{
osTimerStop(FanDelayTimer);
Fan_Port->BSRRL = Fan_Pin;
ACContactorSet(eSwSta_On);
}
FanStatus = Set;
}
void FanSetExt(EnumSwitchStatus Set)
{
osTimerStop(FanDelayTimer);
if(eSwSta_Off == Set)
Fan_Port->BSRRH = Fan_Pin;
else
Fan_Port->BSRRL = Fan_Pin;
FanStatus = Set;
}
static void FanDelayHandle_Top(void const *Param)
{
Fan_Top_Port->BSRRH = Fan_Top_Pin;
}
void FanInit_Top(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Fan_Top_Pin;
RCC_AHB1PeriphClockCmd(Fan_Top_RCC, ENABLE);
GPIO_Init(Fan_Top_Port, &GPIO_InitStructure);
GPIO_ResetBits(Fan_Top_Port, Fan_Top_Pin);
/* Create a Timer */
osTimerDef(FanDelayTimer_Top, FanDelayHandle_Top);
FanDelayTimer_Top = osTimerCreate(osTimer(FanDelayTimer_Top), osTimerOnce, (void *)0);
}
void FanSet_Top(EnumSwitchStatus Set)
{
if(FanStatus_Top == Set)
return;
if(eSwSta_Off == Set)
osTimerStart(FanDelayTimer_Top, 120000);
else
{
osTimerStop(FanDelayTimer_Top);
Fan_Top_Port->BSRRL = Fan_Top_Pin;
}
FanStatus_Top = Set;
}
void FanSetExt_Top(EnumSwitchStatus Set)
{
osTimerStop(FanDelayTimer_Top);
if(eSwSta_Off == Set)
Fan_Top_Port->BSRRH = Fan_Top_Pin;
else
Fan_Top_Port->BSRRL = Fan_Top_Pin;
FanStatus_Top = Set;
}
void FanControl(EnumSwitchStatus Set)
{
FanSet_Side(Set);
if(0 != UserParam.ChgFun.Value.TopFan)
{
//FanSet_Top(eSwSta_Off);
//FanSet_Top(Set);
}
else
{
// FanSet_Top(eSwSta_Off);
}
}
void FanSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
if(eSwSta_Off == FanStatus_B)
FanControl(Set);
}
else
FanControl(Set);
FanStatus_A = Set;
}
void FanSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
if(eSwSta_Off == FanStatus_A)
FanControl(Set);
}
else
FanControl(Set);
FanStatus_B = Set;
}
void BmsPowerSet_AB(EnumSwitchStatus Set)
{
BmsPowerSet(Set);
//BmsPowerSet_B(Set);
}
void DcOutSet_AB(EnumSwitchStatus Set)
{
DcOutSet(Set);
DcOutSet_B(Set);
}
void DrainResistSet_AB(EnumSwitchStatus Set)
{
DrainResistSet(Set);
DrainResistSet_B(Set);
}
void FanSet_AB(EnumSwitchStatus Set)
{
FanSet(Set);
FanSet_B(Set);
}
void ImdWorkSet_AB(EnumSwitchStatus Set)
{
ImdWorkSet(Set);
//ImdWorkSet_B(Set);
}
void LockSet_AB(EnumSwitchStatus Set)
{
LockSet(Set);
LockSet_B(Set);
}
EnumSwitchStatus LockGet_AB(void)
{
if((eSwSta_Off == LockGet()) || (eSwSta_Off == LockGet_B()))
return eSwSta_Off;
else
return eSwSta_On;
}
/**********************************************************/
void SystemReboot(void)
{
NVIC_SystemReset();
}
void ACContactorInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = ACContactor_Pin;
RCC_AHB1PeriphClockCmd(ACContactor_RCC, ENABLE);
GPIO_Init(ACContactor_Port, &GPIO_InitStructure);
GPIO_ResetBits(ACContactor_Port, ACContactor_Pin);
}
#include "Drv_BoardIo.h"
#include "Drv_ImdJyc.h"
#include "memory.h"
osTimerId FanDelayTimer;
osTimerId FanDelayTimer_Top;
osTimerId DCOutDelayTimer;
osTimerId DCOutDelayTimer_B;
osTimerId DCOutDelayTimer_Uni;
static EnumSwitchStatus FanStatus = eSwSta_Off;
static EnumSwitchStatus FanStatus_Top = eSwSta_Off;
static EnumSwitchStatus FanStatus_A = eSwSta_Off;
static EnumSwitchStatus FanStatus_B = eSwSta_Off;
EnumSwitchStatus ACContactorSta = eSwSta_Off;
EnumSwitchStatus EleLockSta = eSwSta_Off;
EnumSwitchStatus EleLockSta_B = eSwSta_Off;
EnumSwitchStatus DcOutPosSta = eSwSta_Off;
//EnumSwitchStatus DcOutNegSta = eSwSta_Off;
EnumSwitchStatus DcOutPosSta_B = eSwSta_Off;
//EnumSwitchStatus DcOutNegSta_B = eSwSta_Off;
//EnumSwitchStatus DcOutPosSta_Uni = eSwSta_Off;
//EnumSwitchStatus DcOutNegSta_Uni = eSwSta_Off;
void BmsPowerInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = BmsPower_Pin;
RCC_AHB1PeriphClockCmd(BmsPower_RCC, ENABLE);
GPIO_Init(BmsPower_Port, &GPIO_InitStructure);
GPIO_ResetBits(BmsPower_Port, BmsPower_Pin);
}
void BmsPowerSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
BmsPower_Port->BSRRH = BmsPower_Pin;
else
BmsPower_Port->BSRRL = BmsPower_Pin;
}
static void DCOutDelayHandle(void const *Param)
{
DcOutPos_Port->BSRRL = DcOutPos_Pin;
DcOutPosSta = eSwSta_On;
}
void DcOutInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutPos_Pin;
RCC_AHB1PeriphClockCmd(DcOutPos_RCC, ENABLE);
GPIO_Init(DcOutPos_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutPos_Port, DcOutPos_Pin);
#if 0
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutNeg_Pin;
RCC_AHB1PeriphClockCmd(DcOutNeg_RCC, ENABLE);
GPIO_Init(DcOutNeg_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutNeg_Port, DcOutNeg_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkNeg_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkNeg_RCC, ENABLE);
GPIO_Init(DcOutChkNeg_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkNeg_Port, DcOutChkNeg_Pin);
#endif
/* Create a Timer */
osTimerDef(DCOutDelayTimer, DCOutDelayHandle);
DCOutDelayTimer = osTimerCreate(osTimer(DCOutDelayTimer), osTimerOnce, (void *)0);
}
void DcOutPosSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DcOutPos_Port->BSRRH = DcOutPos_Pin;
else
DcOutPos_Port->BSRRL = DcOutPos_Pin;
DcOutPosSta = Set;
}
/*
void DcOutNegSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DcOutNeg_Port->BSRRH = DcOutNeg_Pin;
else
DcOutNeg_Port->BSRRL = DcOutNeg_Pin;
DcOutNegSta = Set;
}*/
#if 1
void DcOutSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
DcOutPosSet(Set);
//DcOutNegSet(Set);
osTimerStop(DCOutDelayTimer);
}
else
{
//DcOutPosSet(Set);
//DcOutNegSet(Set);
osTimerStart(DCOutDelayTimer, 200);
}
}
#else
void DcOutSet(EnumSwitchStatus Set)
{
DcOutPosSet(Set);
DcOutNegSet(Set);
}
#endif
/*EnumSwitchStatus DcOutPosGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkPos_Port, DcOutChkPos_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutNegGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkNeg_Port, DcOutChkNeg_Pin))
return eSwSta_On;
return eSwSta_Off;
}*/
EnumSwitchStatus DcOutPosGetSet(void)
{
return DcOutPosSta;
}
/*EnumSwitchStatus DcOutNegGetSet(void)
{
return DcOutNegSta;
}
EnumSwitchStatus DcOutGet(void)
{
if(eSwSta_On == DcOutPosGet())// && eSwSta_On == DcOutNegGet()
return eSwSta_On;
return eSwSta_Off;
}*/
void DrainResistInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DrainResist_Pin;
RCC_AHB1PeriphClockCmd(DrainResist_RCC, ENABLE);
GPIO_Init(DrainResist_Port, &GPIO_InitStructure);
GPIO_ResetBits(DrainResist_Port, DrainResist_Pin);
}
void DrainResistSet(EnumSwitchStatus Set)
{
//if(eSwSta_Off == Set)
// DrainResist_Port->BSRRH = DrainResist_Pin;
// else
// DrainResist_Port->BSRRL = DrainResist_Pin;
}
void ACContactorSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
ACContactor_Port->BSRRH = ACContactor_Pin;
else
ACContactor_Port->BSRRL = ACContactor_Pin;
}
void ImdWorkSet(EnumSwitchStatus Set)
{
static EnumSwitchStatus laststa = eSwSta_Off;
//if(laststa != Set)
{
if(eSwSta_On == Set) // Ե
{
ImdWrite(0x0017, 0x0002);
ImdWrite(0x01FE, 0x0001);
}
else // رվԵ
{
ImdWrite(0x0017, 0x0003);
ImdWrite(0x01FE, 0x0001);
}
laststa = Set;
}
}
void LockInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Lock_Pin;
RCC_AHB1PeriphClockCmd(Lock_RCC, ENABLE);
GPIO_Init(Lock_Port, &GPIO_InitStructure);
GPIO_ResetBits(Lock_Port, Lock_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = LockChk_Pin;
RCC_AHB1PeriphClockCmd(LockChk_RCC, ENABLE);
GPIO_Init(LockChk_Port, &GPIO_InitStructure);
GPIO_ResetBits(LockChk_Port, LockChk_Pin);
}
void LockSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
Lock_Port->BSRRH = Lock_Pin;
else
Lock_Port->BSRRL = Lock_Pin;
EleLockSta = Set;
}
EnumSwitchStatus LockGet(void)
{
if(Bit_SET == GPIO_ReadInputDataBit(LockChk_Port, LockChk_Pin))
return eSwSta_On;
return eSwSta_Off;
}
void ChgLedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = ChgLed_Pin;
RCC_AHB1PeriphClockCmd(ChgLed_RCC, ENABLE);
GPIO_Init(ChgLed_Port, &GPIO_InitStructure);
GPIO_ResetBits(ChgLed_Port, ChgLed_Pin);
}
void ChgLedSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
ChgLed_Port->BSRRH = ChgLed_Pin;
else
ChgLed_Port->BSRRL = ChgLed_Pin;
}
void FaultLedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = FaultLed_Pin;
RCC_AHB1PeriphClockCmd(FaultLed_RCC, ENABLE);
GPIO_Init(FaultLed_Port, &GPIO_InitStructure);
GPIO_ResetBits(FaultLed_Port, FaultLed_Pin);
}
void FaultLedSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
FaultLed_Port->BSRRH = FaultLed_Pin;
else
FaultLed_Port->BSRRL = FaultLed_Pin;
}
void IdleLedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = IdleLed_Pin;
RCC_AHB1PeriphClockCmd(IdleLed_RCC, ENABLE);
GPIO_Init(IdleLed_Port, &GPIO_InitStructure);
GPIO_ResetBits(IdleLed_Port, IdleLed_Pin);
}
void IdleLedSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
IdleLed_Port->BSRRH = IdleLed_Pin;
else
IdleLed_Port->BSRRL = IdleLed_Pin;
}
/*osTimerId RunLedDelayTimer;
static void RunLedDelayHandle(void const *Param)
{
RunLed_Port->BSRRH = RunLed_Pin;
}*/
void BmsPowerInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = BmsPower_B_Pin;
RCC_AHB1PeriphClockCmd(BmsPower_B_RCC, ENABLE);
GPIO_Init(BmsPower_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(BmsPower_B_Port, BmsPower_B_Pin);
}
void BmsPowerSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
BmsPower_B_Port->BSRRH = BmsPower_B_Pin;
else
BmsPower_B_Port->BSRRL = BmsPower_B_Pin;
}
void ShortCirCheck(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = ShortCirCheck_Pin;
RCC_AHB1PeriphClockCmd(ShortCirCheck_RCC, ENABLE);
GPIO_Init(ShortCirCheck_Port, &GPIO_InitStructure);
GPIO_ResetBits(ShortCirCheck_Port, ShortCirCheck_Pin);
}
void ShortCirCheckSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
ShortCirCheck_Port->BSRRH = ShortCirCheck_Pin;
else
BmsPower_B_Port->BSRRL = ShortCirCheck_Pin;
}
static void DCOutDelayHandle_B(void const *Param)
{
DcOutPos_B_Port->BSRRL = DcOutPos_B_Pin;
DcOutPosSta_B = eSwSta_On;
}
void DcOutInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutPos_B_Pin;
RCC_AHB1PeriphClockCmd(DcOutPos_B_RCC, ENABLE);
GPIO_Init(DcOutPos_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutPos_B_Port, DcOutPos_B_Pin);
/*GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutNeg_B_Pin;
RCC_AHB1PeriphClockCmd(DcOutNeg_B_RCC, ENABLE);
GPIO_Init(DcOutNeg_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutNeg_B_Port, DcOutNeg_B_Pin);*/
/* Create a Timer */
osTimerDef(DCOutDelayTimer_B, DCOutDelayHandle_B);
DCOutDelayTimer_B = osTimerCreate(osTimer(DCOutDelayTimer_B), osTimerOnce, (void *)0);
}
void DcOutPosSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DcOutPos_B_Port->BSRRH = DcOutPos_B_Pin;
else
DcOutPos_B_Port->BSRRL = DcOutPos_B_Pin;
DcOutPosSta_B = Set;
}
/*void DcOutNegSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DcOutNeg_B_Port->BSRRH = DcOutNeg_B_Pin;
else
DcOutNeg_B_Port->BSRRL = DcOutNeg_B_Pin;
DcOutNegSta_B = Set;
}
*/
#if 1
void DcOutSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
DcOutPosSet_B(Set);
//DcOutNegSet_B(Set);
osTimerStop(DCOutDelayTimer_B);
}
else
{
//DcOutPosSet_B(Set);
// DcOutNegSet_B(Set);
osTimerStart(DCOutDelayTimer_B, 200);
}
}
#else
void DcOutSet_B(EnumSwitchStatus Set)
{
DcOutPosSet_B(Set);
DcOutNegSet_B(Set);
}
#endif
#if 0
EnumSwitchStatus DcOutPosGet_B(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkPos_B_Port, DcOutChkPos_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutNegGet_B(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkNeg_B_Port, DcOutChkNeg_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
#endif
EnumSwitchStatus DcOutPosGetSet_B(void)
{
return DcOutPosSta_B;
}
/*EnumSwitchStatus DcOutNegGetSet_B(void)
{
return DcOutNegSta_B;
}
EnumSwitchStatus DcOutGet_B(void)
{
if(eSwSta_On == DcOutPosGet_B())// && eSwSta_On == DcOutNegGet()
return eSwSta_On;
return eSwSta_Off;
}
*/
void DrainResistInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DrainResist_B_Pin;
RCC_AHB1PeriphClockCmd(DrainResist_B_RCC, ENABLE);
GPIO_Init(DrainResist_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DrainResist_B_Port, DrainResist_B_Pin);
}
void DrainResistSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
DrainResist_B_Port->BSRRH = DrainResist_B_Pin;
else
DrainResist_B_Port->BSRRL = DrainResist_B_Pin;
}
void ImdWorkSet_B(EnumSwitchStatus Set)
{
static EnumSwitchStatus laststa = eSwSta_Off;
//if(laststa != Set)
{
if(eSwSta_On == Set) // Ե
{
ImdWrite_B(0x0017, 0x0002);
ImdWrite_B(0x01FE, 0x0001);
}
else // رվԵ
{
ImdWrite_B(0x0017, 0x0003);
ImdWrite_B(0x01FE, 0x0001);
}
laststa = Set;
}
}
void LockInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Lock_B_Pin;
RCC_AHB1PeriphClockCmd(Lock_B_RCC, ENABLE);
GPIO_Init(Lock_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(Lock_B_Port, Lock_B_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = LockChk_B_Pin;
RCC_AHB1PeriphClockCmd(LockChk_B_RCC, ENABLE);
GPIO_Init(LockChk_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(LockChk_B_Port, LockChk_B_Pin);
}
void LockSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
Lock_B_Port->BSRRH = Lock_B_Pin;
else
Lock_B_Port->BSRRL = Lock_B_Pin;
EleLockSta_B = Set;
}
EnumSwitchStatus LockGet_B(void)
{
if(Bit_SET == GPIO_ReadInputDataBit(LockChk_B_Port, LockChk_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
void ChgLedInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = ChgLed_B_Pin;
RCC_AHB1PeriphClockCmd(ChgLed_B_RCC, ENABLE);
GPIO_Init(ChgLed_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(ChgLed_B_Port, ChgLed_B_Pin);
}
void ChgLedSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
ChgLed_B_Port->BSRRH = ChgLed_B_Pin;
else
ChgLed_B_Port->BSRRL = ChgLed_B_Pin;
}
void FaultLedInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = FaultLed_B_Pin;
RCC_AHB1PeriphClockCmd(FaultLed_B_RCC, ENABLE);
GPIO_Init(FaultLed_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(FaultLed_B_Port, FaultLed_B_Pin);
}
void FaultLedSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
FaultLed_B_Port->BSRRH = FaultLed_B_Pin;
else
FaultLed_B_Port->BSRRL = FaultLed_B_Pin;
}
void IdleLedInit_B(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = IdleLed_B_Pin;
RCC_AHB1PeriphClockCmd(IdleLed_B_RCC, ENABLE);
GPIO_Init(IdleLed_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(IdleLed_B_Port, IdleLed_B_Pin);
}
void IdleLedSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
IdleLed_B_Port->BSRRH = IdleLed_B_Pin;
else
IdleLed_B_Port->BSRRL = IdleLed_B_Pin;
}
/**************************************************************/
#if 0
static void DCOutDelayHandle_Uni(void const *Param)
{
DcOutPos_Uni_Port->BSRRL = DcOutPos_Uni_Pin;
DcOutPosSta_Uni = eSwSta_On;
}
void DcOutInit_Uni(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutPos_Uni_Pin;
RCC_AHB1PeriphClockCmd(DcOutPos_Uni_RCC, ENABLE);
GPIO_Init(DcOutPos_Uni_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutPos_Uni_Port, DcOutPos_Uni_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkPos_Uni_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkPos_Uni_RCC, ENABLE);
GPIO_Init(DcOutChkPos_Uni_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkPos_Uni_Port, DcOutChkPos_Uni_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DcOutNeg_Uni_Pin;
RCC_AHB1PeriphClockCmd(DcOutNeg_Uni_RCC, ENABLE);
GPIO_Init(DcOutNeg_Uni_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutNeg_Uni_Port, DcOutNeg_Uni_Pin);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkNeg_Uni_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkNeg_Uni_RCC, ENABLE);
GPIO_Init(DcOutChkNeg_Uni_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkNeg_Uni_Port, DcOutChkNeg_Uni_Pin);
/* Create a Timer */
osTimerDef(DCOutDelayTimer_Uni, DCOutDelayHandle_Uni);
DCOutDelayTimer_Uni = osTimerCreate(osTimer(DCOutDelayTimer_Uni), osTimerOnce, (void *)0);
}
void DcOutPosSet_Uni(EnumSwitchStatus Set)
{
/*if(eSwSta_Off == Set)
DcOutPos_Uni_Port->BSRRH = DcOutPos_Uni_Pin;
else
DcOutPos_Uni_Port->BSRRL = DcOutPos_Uni_Pin;
DcOutPosSta_Uni = Set;*/
}
void DcOutNegSet_Uni(EnumSwitchStatus Set)
{
/*if(eSwSta_Off == Set)
DcOutNeg_Uni_Port->BSRRH = DcOutNeg_Uni_Pin;
else
DcOutNeg_Uni_Port->BSRRL = DcOutNeg_Uni_Pin;
DcOutNegSta_Uni = Set;*/
}
#if 1
void DcOutSet_Uni(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
//DcOutPosSet_Uni(Set);
//DcOutNegSet_Uni(Set);
//osTimerStop(DCOutDelayTimer_Uni);
}
else if(((eSwSta_Off == DcOutGet()) || (eSwSta_Off == DcOutGet_B()))
&& ((eSwSta_Off == DcOutPosGetSet()) || (eSwSta_Off == DcOutPosGetSet_B()))
)
{
//DcOutPosSet_Uni(Set);
//DcOutNegSet_Uni(Set);
//osTimerStart(DCOutDelayTimer_Uni, 200);
}
}
#else
void DcOutSet_Uni(EnumSwitchStatus Set)
{
DcOutPosSet_Uni(Set);
DcOutNegSet_Uni(Set);
}
#endif
EnumSwitchStatus DcOutPosGet_Uni(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkPos_Uni_Port, DcOutChkPos_Uni_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutNegGet_Uni(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkNeg_Uni_Port, DcOutChkNeg_Uni_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus DcOutPosGetSet_Uni(void)
{
return DcOutPosSta_Uni;
}
EnumSwitchStatus DcOutNegGetSet_Uni(void)
{
return DcOutNegSta_Uni;
}
EnumSwitchStatus DcOutGet_Uni(void)
{
if(eSwSta_On == DcOutPosGet_Uni() && eSwSta_On == DcOutNegGet_Uni())//
return eSwSta_On;
return eSwSta_Off;
}
#endif
void DehumidifierInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Dehumidifier_Pin;
RCC_AHB1PeriphClockCmd(Dehumidifier_RCC, ENABLE);
GPIO_Init(Dehumidifier_Port, &GPIO_InitStructure);
GPIO_ResetBits(Dehumidifier_Port, Dehumidifier_Pin);
}
void DehumidifierSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
Dehumidifier_Port->BSRRH = Dehumidifier_Pin;
else
Dehumidifier_Port->BSRRL = Dehumidifier_Pin;
}
void RunLedInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = RunLed_Pin;
RCC_AHB1PeriphClockCmd(RunLed_RCC, ENABLE);
GPIO_Init(RunLed_Port, &GPIO_InitStructure);
GPIO_ResetBits(RunLed_Port, RunLed_Pin);
/* Create a Timer */
//osTimerDef(RunLedDelayTimer, RunLedDelayHandle);
//RunLedDelayTimer = osTimerCreate(osTimer(RunLedDelayTimer), osTimerOnce, (void *)0);
}
void RunLedSet(EnumSwitchStatus Set)
{
if(eSwSta_On == Set)
{
//osTimerStart(RunLedDelayTimer, 990);
RunLed_Port->BSRRH = RunLed_Pin;
}
else
{
//osTimerStop(RunLedDelayTimer);
RunLed_Port->BSRRL = RunLed_Pin;
}
}
void EmergenceInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Emergence_Pin;
RCC_AHB1PeriphClockCmd(Emergence_RCC, ENABLE);
GPIO_Init(Emergence_Port, &GPIO_InitStructure);
GPIO_ResetBits(Emergence_Port, Emergence_Pin);
}
EnumSwitchStatus EmergenceGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(Emergence_Port, Emergence_Pin))
return eSwSta_On;
return eSwSta_Off;
}
void DoorChkInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = DoorChk_Pin;
RCC_AHB1PeriphClockCmd(DoorChk_RCC, ENABLE);
GPIO_Init(DoorChk_Port, &GPIO_InitStructure);
GPIO_ResetBits(DoorChk_Port, DoorChk_Pin);
}
EnumSwitchStatus DoorChkGet(void)
{
if(Bit_SET == GPIO_ReadInputDataBit(DoorChk_Port, DoorChk_Pin))
return eSwSta_On;
return eSwSta_Off;
}
void SPDInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = SPD_Pin;
RCC_AHB1PeriphClockCmd(SPD_RCC, ENABLE);
GPIO_Init(SPD_Port, &GPIO_InitStructure);
GPIO_ResetBits(SPD_Port, SPD_Pin);
}
EnumSwitchStatus SPDGet(void)
{
if(Bit_RESET== GPIO_ReadInputDataBit(SPD_Port, SPD_Pin))
return eSwSta_On;
return eSwSta_Off;
}
static void FanDelayHandle(void const *Param)
{
Fan_Port->BSRRH = Fan_Pin;
ACContactorSet(eSwSta_Off);
}
void FanInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Fan_Pin;
RCC_AHB1PeriphClockCmd(Fan_RCC, ENABLE);
GPIO_Init(Fan_Port, &GPIO_InitStructure);
GPIO_ResetBits(Fan_Port, Fan_Pin);
/* Create a Timer */
osTimerDef(FanDelayTimer, FanDelayHandle);
FanDelayTimer = osTimerCreate(osTimer(FanDelayTimer), osTimerOnce, (void *)0);
}
void FanSet_Side(EnumSwitchStatus Set)
{
if(FanStatus == Set)
return;
if(eSwSta_Off == Set)
osTimerStart(FanDelayTimer, 120000);
else
{
osTimerStop(FanDelayTimer);
Fan_Port->BSRRL = Fan_Pin;
ACContactorSet(eSwSta_On);
}
FanStatus = Set;
}
void FanSetExt(EnumSwitchStatus Set)
{
osTimerStop(FanDelayTimer);
if(eSwSta_Off == Set)
Fan_Port->BSRRH = Fan_Pin;
else
Fan_Port->BSRRL = Fan_Pin;
FanStatus = Set;
}
static void FanDelayHandle_Top(void const *Param)
{
Fan_Top_Port->BSRRH = Fan_Top_Pin;
}
void FanInit_Top(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = Fan_Top_Pin;
RCC_AHB1PeriphClockCmd(Fan_Top_RCC, ENABLE);
GPIO_Init(Fan_Top_Port, &GPIO_InitStructure);
GPIO_ResetBits(Fan_Top_Port, Fan_Top_Pin);
/* Create a Timer */
osTimerDef(FanDelayTimer_Top, FanDelayHandle_Top);
FanDelayTimer_Top = osTimerCreate(osTimer(FanDelayTimer_Top), osTimerOnce, (void *)0);
}
void FanSet_Top(EnumSwitchStatus Set)
{
if(FanStatus_Top == Set)
return;
if(eSwSta_Off == Set)
osTimerStart(FanDelayTimer_Top, 120000);
else
{
osTimerStop(FanDelayTimer_Top);
Fan_Top_Port->BSRRL = Fan_Top_Pin;
}
FanStatus_Top = Set;
}
void FanSetExt_Top(EnumSwitchStatus Set)
{
osTimerStop(FanDelayTimer_Top);
if(eSwSta_Off == Set)
Fan_Top_Port->BSRRH = Fan_Top_Pin;
else
Fan_Top_Port->BSRRL = Fan_Top_Pin;
FanStatus_Top = Set;
}
void FanControl(EnumSwitchStatus Set)
{
FanSet_Side(Set);
if(0 != UserParam.ChgFun.Value.TopFan)
{
//FanSet_Top(eSwSta_Off);
//FanSet_Top(Set);
}
else
{
// FanSet_Top(eSwSta_Off);
}
}
void FanSet(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
if(eSwSta_Off == FanStatus_B)
FanControl(Set);
}
else
FanControl(Set);
FanStatus_A = Set;
}
void FanSet_B(EnumSwitchStatus Set)
{
if(eSwSta_Off == Set)
{
if(eSwSta_Off == FanStatus_A)
FanControl(Set);
}
else
FanControl(Set);
FanStatus_B = Set;
}
void BmsPowerSet_AB(EnumSwitchStatus Set)
{
BmsPowerSet(Set);
//BmsPowerSet_B(Set);
}
void DcOutSet_AB(EnumSwitchStatus Set)
{
DcOutSet(Set);
DcOutSet_B(Set);
}
void DrainResistSet_AB(EnumSwitchStatus Set)
{
DrainResistSet(Set);
DrainResistSet_B(Set);
}
void FanSet_AB(EnumSwitchStatus Set)
{
FanSet(Set);
FanSet_B(Set);
}
void ImdWorkSet_AB(EnumSwitchStatus Set)
{
ImdWorkSet(Set);
//ImdWorkSet_B(Set);
}
void LockSet_AB(EnumSwitchStatus Set)
{
LockSet(Set);
LockSet_B(Set);
}
EnumSwitchStatus LockGet_AB(void)
{
if((eSwSta_Off == LockGet()) || (eSwSta_Off == LockGet_B()))
return eSwSta_Off;
else
return eSwSta_On;
}
/**********************************************************/
void SystemReboot(void)
{
NVIC_SystemReset();
}
//交流接触器
void ACContactorInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//控制脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = ACContactor_Pin;
RCC_AHB1PeriphClockCmd(ACContactor_RCC, ENABLE);
GPIO_Init(ACContactor_Port, &GPIO_InitStructure);
GPIO_ResetBits(ACContactor_Port, ACContactor_Pin);
//反馈脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkNeg_B_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkNeg_B_RCC, ENABLE);
GPIO_Init(DcOutChkNeg_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkNeg_B_Port, DcOutChkNeg_B_Pin);
}
EnumSwitchStatus ACContactorGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkNeg_B_Port, DcOutChkNeg_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
//枪归位检测
void GunStatusChkInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//A
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkPos_B_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkPos_B_RCC, ENABLE);
GPIO_Init(DcOutChkPos_B_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkPos_B_Port, DcOutChkPos_B_Pin);
//B
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = DcOutChkPos_Pin;
RCC_AHB1PeriphClockCmd(DcOutChkPos_RCC, ENABLE);
GPIO_Init(DcOutChkPos_Port, &GPIO_InitStructure);
GPIO_ResetBits(DcOutChkPos_Port, DcOutChkPos_Pin);
}
EnumSwitchStatus GunStatusGet(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkPos_B_Port, DcOutChkPos_B_Pin))
return eSwSta_On;
return eSwSta_Off;
}
EnumSwitchStatus GunStatusGet_B(void)
{
if(Bit_RESET == GPIO_ReadInputDataBit(DcOutChkPos_Port, DcOutChkPos_Pin))
return eSwSta_On;
return eSwSta_Off;
}
......@@ -222,24 +222,24 @@ extern EnumSwitchStatus EleLockSta;
extern EnumSwitchStatus EleLockSta_B;
extern EnumSwitchStatus DcOutPosSta;
extern EnumSwitchStatus DcOutNegSta;
//extern EnumSwitchStatus DcOutNegSta;
extern EnumSwitchStatus DcOutPosSta_B;
extern EnumSwitchStatus DcOutNegSta_B;
extern EnumSwitchStatus DcOutPosSta_Uni;
extern EnumSwitchStatus DcOutNegSta_Uni;
//extern EnumSwitchStatus DcOutNegSta_B;
//extern EnumSwitchStatus DcOutPosSta_Uni;
//extern EnumSwitchStatus DcOutNegSta_Uni;
extern void BmsPowerInit(void);
extern void BmsPowerSet(EnumSwitchStatus Set);
extern void DcOutInit(void);
extern void DcOutPosSet(EnumSwitchStatus Set);
extern void DcOutNegSet(EnumSwitchStatus Set);
//extern void DcOutNegSet(EnumSwitchStatus Set);
extern void DcOutSet(EnumSwitchStatus Set);
extern EnumSwitchStatus DcOutNegGet(void);
extern EnumSwitchStatus DcOutPosGet(void);
extern EnumSwitchStatus DcOutNegGetSet(void);
//extern EnumSwitchStatus DcOutNegGet(void);
//extern EnumSwitchStatus DcOutPosGet(void);
//extern EnumSwitchStatus DcOutNegGetSet(void);
extern EnumSwitchStatus DcOutPosGetSet(void);
extern EnumSwitchStatus DcOutGet(void);
//extern EnumSwitchStatus DcOutGet(void);
extern void DrainResistInit(void);
extern void DrainResistSet(EnumSwitchStatus Set);
......@@ -265,13 +265,13 @@ extern void BmsPowerSet_B(EnumSwitchStatus Set);
extern void DcOutInit_B(void);
extern void DcOutPosSet_B(EnumSwitchStatus Set);
extern void DcOutNegSet_B(EnumSwitchStatus Set);
//extern void DcOutNegSet_B(EnumSwitchStatus Set);
extern void DcOutSet_B(EnumSwitchStatus Set);
extern EnumSwitchStatus DcOutNegGet_B(void);
extern EnumSwitchStatus DcOutPosGet_B(void);
extern EnumSwitchStatus DcOutNegGetSet_B(void);
//extern EnumSwitchStatus DcOutNegGet_B(void);
//extern EnumSwitchStatus DcOutPosGet_B(void);
//extern EnumSwitchStatus DcOutNegGetSet_B(void);
extern EnumSwitchStatus DcOutPosGetSet_B(void);
extern EnumSwitchStatus DcOutGet_B(void);
//extern EnumSwitchStatus DcOutGet_B(void);
extern void DrainResistInit_B(void);
extern void DrainResistSet_B(EnumSwitchStatus Set);
......@@ -299,15 +299,15 @@ extern void FanSetExt(EnumSwitchStatus Set);
extern void FanSetExt_Top(EnumSwitchStatus Set);
extern void DcOutInit_Uni(void);
extern void DcOutPosSet_Uni(EnumSwitchStatus Set);
extern void DcOutNegSet_Uni(EnumSwitchStatus Set);
extern void DcOutSet_Uni(EnumSwitchStatus Set);
extern EnumSwitchStatus DcOutNegGet_Uni(void);
extern EnumSwitchStatus DcOutPosGet_Uni(void);
extern EnumSwitchStatus DcOutNegGetSet_Uni(void);
extern EnumSwitchStatus DcOutPosGetSet_Uni(void);
extern EnumSwitchStatus DcOutGet_Uni(void);
//extern void DcOutInit_Uni(void);
//extern void DcOutPosSet_Uni(EnumSwitchStatus Set);
//extern void DcOutNegSet_Uni(EnumSwitchStatus Set);
//extern void DcOutSet_Uni(EnumSwitchStatus Set);
//extern EnumSwitchStatus DcOutNegGet_Uni(void);
//extern EnumSwitchStatus DcOutPosGet_Uni(void);
//extern EnumSwitchStatus DcOutNegGetSet_Uni(void);
//extern EnumSwitchStatus DcOutPosGetSet_Uni(void);
//extern EnumSwitchStatus DcOutGet_Uni(void);
extern void DehumidifierInit(void);
extern void DehumidifierSet(EnumSwitchStatus Set);
......
......@@ -2280,7 +2280,7 @@ void InformationReporting_22_A(void)
InformainReport_A.InfRe.DCModFan = 0;
InformainReport_A.InfRe.CCConnect = !CcStatusRead();
InformainReport_A.InfRe.InsertGunSta = InsertGunStatu_A();
InformainReport_A.InfRe.DcOutContSta = DcOutPosGet();
InformainReport_A.InfRe.DcOutContSta = DcOutPosGetSet();
InformainReport_A.InfRe.ElectLock = LockGet();
if (((InformainReport_A.data[0] &0xf0) != 0) || ((InformainReport_A.data[1] &0xff) != 0) ||
......@@ -2408,7 +2408,7 @@ void InformationReporting_22_B(void)
InformainReport_B.InfRe.DCModFan = 0;
InformainReport_B.InfRe.CCConnect = !CcStatusRead_B();
InformainReport_B.InfRe.InsertGunSta = InsertGunStatu_B();
InformainReport_B.InfRe.DcOutContSta = DcOutPosGet_B();
InformainReport_B.InfRe.DcOutContSta = DcOutPosGetSet_B();
InformainReport_B.InfRe.ElectLock = LockGet_B();
if (((InformainReport_B.data[0] &0xf0) != 0) || ((InformainReport_B.data[1] &0xff) != 0) ||
......
......@@ -108,29 +108,46 @@ typedef struct
}StructTCUCControl;
/*
其它类型故障
*/
typedef union
{
u8 data[5];
struct
{
u8 workStau : 2;
u8 sumFalt : 1;
u8 sumWarm : 1;
u8 Emergency: 1;
u8 smoke : 1;
u8 AccContac: 1;
u8 DCOutConOff: 1;//母线接触器据动/误动故障
u8 DCFuse : 1;//熔断器
u8 EleLock : 1;
u8 Fan : 1;
u8 SPD : 1;
u8 ImdDev : 1;
u8 BattPola : 1;
u8 ContGuid : 1;
u8 tempOver : 1;
u8 workStau : 2;//工作状态
u8 sumFalt : 1;//总故障
u8 sumWarm : 1;//总告警
u8 Emergency: 1;//急停按钮动作 故障
u8 smoke : 1;//烟感故障
u8 AccContac: 1;//交流输入断路器故障
u8 DCOutConOff: 1;//直流母线输出接触器拒动/误动故障
u8 DCFuse : 1;//熔断器故障
u8 EleLock : 1;//充电接口电子锁故障
u8 Fan : 1;//充电桩风扇故障
u8 SPD : 1;//避雷器故障
u8 ImdDev : 1;//绝缘监测故障
u8 BattPola : 1;//电池极性反接故障
u8 ContGuid : 1;//充电中控制导引故障
u8 tempOver : 1;//充电桩过温故障
/*
充电接口过温故障
充电枪未归位告警
BMS 通信故障
交流输入电压过压故障
交流输入电压欠压故障
直流母线输出 过压故障
直流母线输出 欠压故障
直流母线输出过流故障
*/
u8 ConnTemp : 1;
u8 PutBack : 1;
u8 BMSComm : 1;
......@@ -139,7 +156,17 @@ typedef union
u8 DcVolHi : 1;
u8 DcVolLo : 1;
u8 DCCurrHi : 1;
/*
充电模块故障
充电模块交流输入故障
充电模块交流输入过压故障
充电模块交流输入欠压故障
充电模块交流输入缺相故障
充电模块直流输出短路故障
充电模块直流输出过流故障
充电模块直流输出过压故障
*/
u8 DcModErr : 1;
u8 DCModIn : 1;
u8 DCModInHi: 1;
......@@ -148,15 +175,25 @@ typedef union
u8 DcOutShor: 1;
u8 DCModOutCuHi: 1;
u8 DCModOutVoHi: 1;
/*
充电模块直流输出欠压故障
充电模块过温故障
充电模块通信故障
充电模块风扇故障
车辆连接状态
充电桩充电枪座状态
充电接口电子锁状态
直流输出接触器状态
*/
u8 DCModOutVoLo: 1;
u8 DCModTempHi : 1;
u8 DCModComm : 1;
u8 DCModFan : 1;
u8 CCConnect : 1;
u8 InsertGunSta: 1;
u8 ElectLock : 1;
u8 DcOutContSta: 1;
u8 ElectLock : 1;
}InfRe;
}UnionInformainReport1;
......@@ -165,18 +202,60 @@ typedef union
u16 data;
struct
{
u16 Door : 1;//熔断器
/*
充电桩门禁故障
直流输出接触器粘连故障
绝缘监测告警
泄放回路故障
充电桩过温告警
充电枪过温告警
交流输入接触器拒动/误动故障
交流输入接触器粘连故障
*/
u16 Door : 1;//
u16 DCOutConOn : 1;//母线接触器粘连故障
u16 ImdWarm : 1;
u16 DrainResist : 1;
u16 tempOver : 1;
u16 gunTemp : 1;
u16 AccContacON : 1;//交流数日接触器据动/误动故障
u16 AccContacOff: 1;//粘连故障
/*
辅助电源故障
并联接触器拒动/误动故障
并联接触器粘连故障
并联接触器状态
模块紧急停机状态
充电桩水浸故障
充电机柜门禁故障
充电机柜水浸故障
*/
u16 Power : 1;//辅助电源
u16 UniContactorOff : 1;//母线接触器据动/误动故障
u16 UniContactorOn : 1;//母线接触器据动/误动故障
u16 UniContactorOn : 1;//并联接触器粘连故障
/*
充电机柜烟感故障
功率控制模块通信故障
功率控制模块通信告警
功率控制模块故障
功率控制模块告警
开关模块通信故障
开关模块通信告警
开关模块故障
*/
/*
开关模块告警
直流充电主控模块判断BMS故障
BMS发送故障信息
充电模块泄放故障
绝缘监测仪通信故障
环境监控板通信故障
灯板通信故障
电能表通信故障
*/
}InfRe;
}UnionInformainReport2;
......
......@@ -122,7 +122,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
&& (NeedCurrt > (u16)((u32)GetDcModuleCurrt()*11/10))
&& (eChgPro_B_ChgIdle == ChargeCtrl_B.CurProcess)//B枪空闲
&& (eSwSta_Off == DcOutPosGetSet_B()) //B枪继电器闭合
&& (eSwSta_Off == DcOutGet_B()) //B枪继电器没闭合
//&& (eSwSta_Off == DcOutGet_B()) //B枪继电器没闭合
&& (0 == (PillarError_B.Mult&~0x20200)) //B无错误
)
{
......@@ -244,7 +244,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
ChargeError.Value.VoltOutError = 1;
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
DcOutSet(eSwSta_Off);
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
ChargeStopType = eChgStop_Run_VoltOutHighErr;
pChargeCtrl->CurProcess = eChgPro_ChgStop;
//pChargeCtrl->CurProcess = eChgPro_ChgBreak;
......@@ -277,7 +277,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
ChargeError.Value.CurrtOutError = 1;
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
DcOutSet(eSwSta_Off);
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
ChargeStopType = eChgStop_Run_CurrtOutHighErr;
pChargeCtrl->CurProcess = eChgPro_ChgStop;
pChargeCtrl->Param = 0;
......@@ -305,7 +305,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
if((0 == UserParam.ChgFun.Value.SigUniChg)
|| (eChgPro_B_ChgIdle != ChargeCtrl_B.CurProcess)//非空闲
|| (eSwSta_Off != DcOutPosGetSet_B()) //B枪继电器闭合
|| (eSwSta_Off != DcOutGet_B()) //B枪继电器闭合
//|| (eSwSta_Off != DcOutGet_B()) //B枪继电器闭合
|| (0 != PillarError_B.Mult) //有错误
)
{/*立即断开*/
......@@ -313,7 +313,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
UniChgTick = 0;
CcsChgEnable = 0;
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
ChargeTimerSet(eSwSta_Off);
}
else if(NeedCurrt < (u16)((u32)DcModuleAbility.MaxCurrt*DcModuleManage.ValidNum))//小于单桩能力
......@@ -326,7 +326,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
UniChgTick = 0;
CcsChgEnable = 0;
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
ChargeTimerSet(eSwSta_Off);
}
else if((GetSystemTick() - UniChgTick) > (25 * 1000))//近半分钟后关闭模块输出 进入挂起模式
......@@ -344,13 +344,13 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
{
VoltReadyTick = 0;
DcOutSet(eSwSta_On);
DcOutSet_Uni(eSwSta_On);
//DcOutSet_Uni(eSwSta_On);
}
else if(abs(GetDcModuleVolt_AB()- GetBatVoltWaitPillarReady()) <= 100)
{
VoltReadyTick = 0;
DcOutSet(eSwSta_On);
DcOutSet_Uni(eSwSta_On);
//DcOutSet_Uni(eSwSta_On);
}
else
{
......@@ -389,13 +389,13 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
{
VoltReadyTick = 0;
DcOutSet(eSwSta_On);
DcOutSet_Uni(eSwSta_On);
//DcOutSet_Uni(eSwSta_On);
}
else if(abs(GetDcModuleVolt_AB()- GetBatVoltWaitPillarReady()) <= 100)
{
VoltReadyTick = 0;
DcOutSet(eSwSta_On);
DcOutSet_Uni(eSwSta_On);
//DcOutSet_Uni(eSwSta_On);
}
else
{
......@@ -439,7 +439,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
ChargeError.Value.VoltOutError = 1;
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet(eSwSta_Off);
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_VoltOutHighErr;
pChargeCtrl->CurProcess = eChgPro_ChgStop;
......@@ -473,7 +473,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
ChargeError.Value.CurrtOutError = 1;
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet(eSwSta_Off);
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_CurrtOutHighErr;
pChargeCtrl->CurProcess = eChgPro_ChgStop;
......@@ -493,7 +493,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_SinglBatVolt;
......@@ -509,7 +509,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_SocOver;
......@@ -525,7 +525,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_CurrtOver;
......@@ -541,7 +541,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_BatTempOver;
......@@ -557,7 +557,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_BatIsolate;
......@@ -573,7 +573,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_Cc2Error;
......@@ -586,7 +586,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
if(0 == BmsPauseTick)
......@@ -600,7 +600,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_BmsPause;
......@@ -619,7 +619,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
pChargeCtrl->CurProcess = eChgPro_CommBreak;
......@@ -635,7 +635,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
pChargeCtrl->CurProcess = eChgPro_CommBreak;
......@@ -650,7 +650,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
pChargeCtrl->CurProcess = eChgPro_CommBreak;
......@@ -664,7 +664,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_BmsStop;
......@@ -680,7 +680,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_UserCancel;
......@@ -703,7 +703,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_Soc98;
......@@ -720,7 +720,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet(eSwSta_Off);
ChargeStopType = eChgStop_Run_SinglBatVoltOverPermitMax;
......@@ -745,7 +745,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
DcOutSet(eSwSta_Off);
UniChgEnable = FALSE;
CcStatusChkTick = 0;
......@@ -762,7 +762,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
DcOutSet(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_EmerClose;
......@@ -778,7 +778,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
DcOutSet(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_DoorOpen;
......@@ -794,7 +794,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
DcOutSet(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_Contactor;
......@@ -810,7 +810,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
DcOutSet(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_Contactor;
......@@ -826,7 +826,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
DcOutSet(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_InVolt;
......@@ -842,7 +842,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
DcOutSet(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_NoDcmod;
......@@ -858,7 +858,7 @@ void ChgProWaitVoltChgRun(StructChargeCtrl *pChargeCtrl)
DcModuleSet(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
DcOutSet(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType = eChgStop_Run_Meter;
......
......@@ -121,7 +121,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
&& (NeedCurrt > (u16)((u32)GetDcModuleCurrt_B()*11/10))
&& (eChgPro_ChgIdle == ChargeCtrl.CurProcess)//A枪空闲
&& (eSwSta_Off == DcOutPosGetSet()) //a枪继电器闭合
&& (eSwSta_Off == DcOutGet()) //a枪继电器没闭合
//&& (eSwSta_Off == DcOutGet()) //a枪继电器没闭合
&& (0 == (PillarError.Mult&~0x20200)) //a无错误
)
{
......@@ -243,7 +243,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
ChargeError_B.Value.VoltOutError = 1;
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
DcOutSet_B(eSwSta_Off);
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_VoltOutHighErr;
pChargeCtrl->CurProcess = eChgPro_B_ChgStop;
//pChargeCtrl->CurProcess = eChgPro_B_ChgBreak;
......@@ -276,7 +276,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
ChargeError_B.Value.CurrtOutError = 1;
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
DcOutSet_B(eSwSta_Off);
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_CurrtOutHighErr;
pChargeCtrl->CurProcess = eChgPro_B_ChgStop;
pChargeCtrl->Param = 0;
......@@ -304,7 +304,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
if((0 == UserParam.ChgFun.Value.SigUniChg)
|| (eChgPro_ChgIdle != ChargeCtrl.CurProcess)//非空闲
|| (eSwSta_Off != DcOutPosGetSet()) //B枪继电器闭合
|| (eSwSta_Off != DcOutGet()) //B枪继电器闭合
//|| (eSwSta_Off != DcOutGet()) //B枪继电器闭合
|| (0 != PillarError.Mult) //有错误
)
{/*立即断开*/
......@@ -312,7 +312,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
UniChgTick = 0;
CcsChgEnable = 0;
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
ChargeTimerSet_B(eSwSta_Off);
}
else if(NeedCurrt < (u16)((u32)DcModuleAbility.MaxCurrt*DcModuleManage_B.ValidNum))//小于单桩能力
......@@ -325,7 +325,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
UniChgTick = 0;
CcsChgEnable = 0;
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
ChargeTimerSet_B(eSwSta_Off);
}
else if((GetSystemTick() - UniChgTick) > (25 * 1000))//近半分钟后关闭模块输出 进入挂起模式
......@@ -343,13 +343,13 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
{
VoltReadyTick = 0;
DcOutSet_B(eSwSta_On);
DcOutSet_Uni(eSwSta_On);
//DcOutSet_Uni(eSwSta_On);
}
else if(abs(GetDcModuleVolt_AB()- GetBatVoltWaitPillarReady_B()) <= 100)
{
VoltReadyTick = 0;
DcOutSet_B(eSwSta_On);
DcOutSet_Uni(eSwSta_On);
//DcOutSet_Uni(eSwSta_On);
}
else
{
......@@ -389,13 +389,13 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
{
VoltReadyTick = 0;
DcOutSet_B(eSwSta_On);
DcOutSet_Uni(eSwSta_On);
//DcOutSet_Uni(eSwSta_On);
}
else if(abs(GetDcModuleVolt_AB()- GetBatVoltWaitPillarReady_B()) <= 100)
{
VoltReadyTick = 0;
DcOutSet_B(eSwSta_On);
DcOutSet_Uni(eSwSta_On);
//DcOutSet_Uni(eSwSta_On);
}
else
{
......@@ -439,7 +439,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
ChargeError_B.Value.VoltOutError = 1;
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_B(eSwSta_Off);
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType_B = eChgStop_Run_VoltOutHighErr;
pChargeCtrl->CurProcess = eChgPro_B_ChgStop;
......@@ -473,7 +473,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
ChargeError_B.Value.CurrtOutError = 1;
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_B(eSwSta_Off);
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeStopType_B = eChgStop_Run_CurrtOutHighErr;
pChargeCtrl->CurProcess = eChgPro_B_ChgStop;
......@@ -493,7 +493,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_SinglBatVolt;
......@@ -509,7 +509,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_SocOver;
......@@ -525,7 +525,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_CurrtOver;
......@@ -541,7 +541,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_BatTempOver;
......@@ -557,7 +557,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_BatIsolate;
......@@ -573,7 +573,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_Cc2Error;
......@@ -586,7 +586,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
if(0 == BmsPauseTick)
......@@ -600,7 +600,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_BmsPause;
......@@ -619,7 +619,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
pChargeCtrl->CurProcess = eChgPro_B_CommBreak;
......@@ -635,7 +635,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
pChargeCtrl->CurProcess = eChgPro_B_CommBreak;
......@@ -650,7 +650,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
pChargeCtrl->CurProcess = eChgPro_B_CommBreak;
......@@ -664,7 +664,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_BmsStop;
......@@ -680,7 +680,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_UserCancel;
......@@ -703,7 +703,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_Soc98;
......@@ -720,7 +720,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
ChargeTimerSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_SinglBatVoltOverPermitMax;
......@@ -745,7 +745,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
DcOutSet_B(eSwSta_Off);
CcStatusChkTick = 0;
......@@ -762,7 +762,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
DcOutSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_EmerClose;
......@@ -778,7 +778,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
DcOutSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_DoorOpen;
......@@ -794,7 +794,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
DcOutSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_Contactor;
......@@ -810,7 +810,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
DcOutSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_Contactor;
......@@ -826,7 +826,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
DcOutSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_InVolt;
......@@ -842,7 +842,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
DcOutSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_NoDcmod;
......@@ -858,7 +858,7 @@ void ChgProWaitVoltChgRun_B(StructChargeCtrl_B *pChargeCtrl)
DcModuleSet_B(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*DcModuleManage_B.ValidNum);
else
DcModuleSet_AB(eSwSta_Off, DcModuleAbility.MinVolt, DcModuleAbility.MinCurrt*(DcModuleManage.ValidNum + DcModuleManage_B.ValidNum));
DcOutSet_Uni(eSwSta_Off);
//DcOutSet_Uni(eSwSta_Off);
UniChgEnable = FALSE;
DcOutSet_B(eSwSta_Off);
ChargeStopType_B = eChgStop_Run_Meter;
......
......@@ -77,9 +77,9 @@ void FactoryTestPaint_B(void)
TempU16 = 0;
LcdShowData16(IconFactoryTestAddr_B_Emergency, TempU16);
if(eSwSta_On == DcOutPosGet_B())
TempU16 = 1;
else
//if(eSwSta_On == DcOutPosGet_B())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestAddr_B_DcOutSta, TempU16);
......@@ -118,9 +118,9 @@ void FactoryTestUpdate_B(StructFactoryTestUpdate *pUpdate)
TempU16 = 0;
LcdShowData16(IconFactoryTestAddr_B_Emergency, TempU16);
if(eSwSta_On == DcOutPosGet_B())
TempU16 = 1;
else
//if(eSwSta_On == DcOutPosGet_B())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestAddr_B_DcOutSta, TempU16);
......
......@@ -67,9 +67,9 @@ void FactoryTestTwoPaint_B(void)
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_B_DoorSta, TempU16);
if(eSwSta_On == DcOutNegGet_B())
TempU16 = 1;
else
//if(eSwSta_On == DcOutPosGetSet_B())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_B_DcOutNegSta, TempU16);
......@@ -79,15 +79,15 @@ void FactoryTestTwoPaint_B(void)
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_B_eLockSta, TempU16);
if(eSwSta_On == DcOutPosGet_Uni())
TempU16 = 1;
else
//if(eSwSta_On == DcOutPosGet_Uni())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_Uni_DcOutPosSta, TempU16);
if(eSwSta_On == DcOutNegGet_Uni())
TempU16 = 1;
else
//if(eSwSta_On == DcOutNegGet_Uni())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_Uni_DcOutNegSta, TempU16);
......@@ -121,9 +121,9 @@ void FactoryTestTwoUpdate_B(StructFactoryTestTwoUpdate *pUpdate)
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_B_DoorSta, TempU16);
if(eSwSta_On == DcOutNegGet_B())
TempU16 = 1;
else
//if(eSwSta_On == DcOutNegGet_B())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_B_DcOutNegSta, TempU16);
......@@ -133,15 +133,15 @@ void FactoryTestTwoUpdate_B(StructFactoryTestTwoUpdate *pUpdate)
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_B_eLockSta, TempU16);
if(eSwSta_On == DcOutPosGet_Uni())
TempU16 = 1;
else
//if(eSwSta_On == DcOutPosGet_Uni())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_Uni_DcOutPosSta, TempU16);
if(eSwSta_On == DcOutNegGet_Uni())
TempU16 = 1;
else
//if(eSwSta_On == DcOutNegGet_Uni())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_Uni_DcOutNegSta, TempU16);
......@@ -164,7 +164,7 @@ void LcdProFactoryTestTwo_B(StructLcdCtrl *pLcdCtrl)
StructFactoryTestTwoUpdate Update;
IdleLedSet_B(eSwSta_Off);
DcOutNegSet_B(eSwSta_Off);
//DcOutNegSet_B(eSwSta_Off);
DrainResistSet_B(eSwSta_Off);
LockSet_B(eSwSta_Off);
......@@ -214,10 +214,10 @@ void LcdProFactoryTestTwo_B(StructLcdCtrl *pLcdCtrl)
IdleLedSet_B(eSwSta_On);
break;
case BtnFactoryTestTwo_B_DcOutNegOff:
DcOutNegSet_B(eSwSta_Off);
//DcOutNegSet_B(eSwSta_Off);
break;
case BtnFactoryTestTwo_B_DcOutNegOn:
DcOutNegSet_B(eSwSta_On);
//DcOutNegSet_B(eSwSta_On);
break;
case BtnFactoryTestTwo_B_eLockOff:
LockSet_B(eSwSta_Off);
......@@ -227,17 +227,17 @@ void LcdProFactoryTestTwo_B(StructLcdCtrl *pLcdCtrl)
break;
case BtnFactoryTestTwo_Uni_DcOutPosOff:
DcOutPosSet_Uni(eSwSta_Off);
//DcOutPosSet_Uni(eSwSta_Off);
break;
case BtnFactoryTestTwo_Uni_DcOutPosOn:
DcOutPosSet_Uni(eSwSta_On);
//DcOutPosSet_Uni(eSwSta_On);
break;
case BtnFactoryTestTwo_Uni_DcOutNegOff:
DcOutNegSet_Uni(eSwSta_Off);
//DcOutNegSet_Uni(eSwSta_Off);
break;
case BtnFactoryTestTwo_Uni_DcOutNegOn:
DcOutNegSet_Uni(eSwSta_On);
//DcOutNegSet_Uni(eSwSta_On);
break;
default:
......@@ -259,7 +259,7 @@ void LcdProFactoryTestTwo_B(StructLcdCtrl *pLcdCtrl)
if(eLcdPro_B_FactoryTestTwo != pLcdCtrl->CurScreen)
{
IdleLedSet_B(eSwSta_Off);
DcOutNegSet_B(eSwSta_Off);
//DcOutNegSet_B(eSwSta_Off);
DrainResistSet_B(eSwSta_Off);
LockSet_B(eSwSta_Off);
return;
......
......@@ -77,9 +77,9 @@ void FactoryTestPaint(void)
TempU16 = 0;
LcdShowData16(IconFactoryTestAddr_Emergency, TempU16);
if(eSwSta_On == DcOutPosGet())
TempU16 = 1;
else
//if(eSwSta_On == DcOutPosGet())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestAddr_DcOutSta, TempU16);
......@@ -118,9 +118,9 @@ void FactoryTestUpdate(StructFactoryTestUpdate *pUpdate)
TempU16 = 0;
LcdShowData16(IconFactoryTestAddr_Emergency, TempU16);
if(eSwSta_On == DcOutPosGet())
TempU16 = 1;
else
//if(eSwSta_On == DcOutPosGet())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestAddr_DcOutSta, TempU16);
......
......@@ -63,9 +63,9 @@ void FactoryTestTwoPaint(void)
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_DoorSta, TempU16);
if(eSwSta_On == DcOutNegGet())
TempU16 = 1;
else
//if(eSwSta_On == DcOutNegGet())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_DcOutNegSta, TempU16);
......@@ -130,9 +130,9 @@ void FactoryTestTwoUpdate(StructFactoryTestTwoUpdate *pUpdate)
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_DoorSta, TempU16);
if(eSwSta_On == DcOutNegGet())
TempU16 = 1;
else
//if(eSwSta_On == DcOutNegGet())
// TempU16 = 1;
//else
TempU16 = 0;
LcdShowData16(IconFactoryTestTwoAddr_DcOutNegSta, TempU16);
......@@ -182,7 +182,7 @@ void LcdProFactoryTestTwo(StructLcdCtrl *pLcdCtrl)
StructFactoryTestTwoUpdate Update;
IdleLedSet(eSwSta_Off);
DcOutNegSet(eSwSta_Off);
//DcOutNegSet(eSwSta_Off);
DehumidifierSet(eSwSta_Off);
DrainResistSet(eSwSta_Off);
LockSet(eSwSta_Off);
......@@ -233,10 +233,10 @@ void LcdProFactoryTestTwo(StructLcdCtrl *pLcdCtrl)
IdleLedSet(eSwSta_On);
break;
case BtnFactoryTestTwo_DcOutNegOff:
DcOutNegSet(eSwSta_Off);
//DcOutNegSet(eSwSta_Off);
break;
case BtnFactoryTestTwo_DcOutNegOn:
DcOutNegSet(eSwSta_On);
//DcOutNegSet(eSwSta_On);
break;
case BtnFactoryTestTwo_DehOff:
DehumidifierSet(eSwSta_Off);
......@@ -270,7 +270,7 @@ void LcdProFactoryTestTwo(StructLcdCtrl *pLcdCtrl)
if(eLcdPro_FactoryTestTwo != pLcdCtrl->CurScreen)
{
IdleLedSet(eSwSta_Off);
DcOutNegSet(eSwSta_Off);
//DcOutNegSet(eSwSta_Off);
DehumidifierSet(eSwSta_Off);
LockSet(eSwSta_Off);
return;
......
......@@ -673,8 +673,8 @@ void Thd_Mult(void const *parameter)
}
else if((3 == DoorChkCnt) && (0 != UserParam.ChgFun.Value.Door))
{
//PillarError_B.Value.Door = 1; //0504 test
//PillarError.Value.Door = 1;
PillarError_B.Value.Door = 1; //0504 test
PillarError.Value.Door = 1;
}
/*防雷器故障检测*/
if(eSwSta_Off == SPDGet())
......@@ -761,11 +761,13 @@ void Thd_Mult(void const *parameter)
;// PillarError_B.Value.NoDcmod = 1;
else
PillarError_B.Value.NoDcmod = 0;
#if 0
/*B枪位电能表通讯故障判断*/
if(eMeterSta_Unavail == MeterComm.Status_B)
;//PillarError_B.Value.Meter = 1; //0505 屏蔽B枪电表错误
PillarError_B.Value.Meter = 1; //0505 屏蔽B枪电表错误
else
PillarError_B.Value.Meter = 0;
#endif
/*B枪位绝缘错误判断*/
if(0 != ChargeError_B.Value.IsolateError)
PillarError_B.Value.Insulation = 1;
......@@ -807,7 +809,7 @@ void Thd_Mult(void const *parameter)
{
PillarError_B.Value.EleLock = 1;
}
/*B枪位接触器故障判断*/
#if 0 /*B枪位接触器故障判断*/
if(((0 == UserParam.ChgFun.Value.NegContactor) && (DcOutPosSta_B == DcOutPosGet_B()))\
||((0 != UserParam.ChgFun.Value.NegContactor) && (DcOutPosSta_B == DcOutPosGet_B()) && (DcOutNegSta_B == DcOutNegGet_B())))
{
......@@ -839,6 +841,8 @@ void Thd_Mult(void const *parameter)
{
//PillarError_B.Value.Contactor = 1;
}
#endif
//交流接触器
if((PillarError.Value.Emergency == 0) && (ACContactorSta != ACContactorGet()))
{
if(ACContactorChkCnt < 20)
......@@ -879,11 +883,13 @@ void Thd_Mult(void const *parameter)
;// PillarError.Value.NoDcmod = 1;
else
PillarError.Value.NoDcmod = 0;
#if 0 //屏蔽电能表错误
/*电能表通讯故障判断*/
if(eMeterSta_Unavail == MeterComm.Status)
PillarError.Value.Meter = 0;//1; 0504 屏蔽电表错误
PillarError.Value.Meter = 1;
else
PillarError.Value.Meter = 0;
#endif
/*绝缘错误判断*/
if(0 != ChargeError.Value.IsolateError)
PillarError.Value.Insulation = 1;
......@@ -925,6 +931,7 @@ void Thd_Mult(void const *parameter)
{
PillarError.Value.EleLock = 1;
}
#if 0 ////不再检测直流接触器
/*接触器故障判断*/
if(((0 == UserParam.ChgFun.Value.NegContactor) && (DcOutPosSta == DcOutPosGet()))\
||((0 != UserParam.ChgFun.Value.NegContactor) && (DcOutPosSta == DcOutPosGet()) && (DcOutNegSta == DcOutNegGet())))//两个接触器
......@@ -955,9 +962,10 @@ void Thd_Mult(void const *parameter)
}
else if(20 == ContactorChkCnt)
{
PillarError.Value.Contactor = 0;//1; 0504 test
PillarError.Value.Contactor = 0;//1; 0504 test
}
#endif
#if 0 //不再检测联级接触器
/*联级接触器故障判断*/
if(((0 == UserParam.ChgFun.Value.SigUniChg))\
||((DcOutPosSta_Uni == DcOutPosGet_Uni()) && (DcOutNegSta_Uni == DcOutNegGet_Uni())))//两个接触器
......@@ -992,7 +1000,7 @@ void Thd_Mult(void const *parameter)
// PillarError.Value.UniContactor = 1;
// PillarError_B.Value.UniContactor = 1;
}
#endif
/*绝缘检测通讯故障判断*/
if((GetSystemTick() - ImdCheckTcik) >= 600)
{
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论