完善了部分逻辑,优化网页
This commit is contained in:
@@ -584,6 +584,19 @@ bool PowerManger::writeDataToDB()
|
||||
|
||||
}
|
||||
|
||||
int PowerManger::checkError()
|
||||
{
|
||||
//1.检查复合管控器状态
|
||||
if(m_pmCurrentState.ccustate.fcuGZ_1H != 0 ||
|
||||
m_pmCurrentState.ccustate.fcuGZ_1L != 0 ||
|
||||
m_pmCurrentState.ccustate.fcuGZ_2H != 0 ||
|
||||
m_pmCurrentState.ccustate.fcuGZ_2L != 0 ||
|
||||
m_pmCurrentState.ccustate.fcuGZ_3H != 0 ||
|
||||
m_pmCurrentState.ccustate.fcuGZ_3L != 0 ||
|
||||
m_pmCurrentState.ccustate.insEmergencyStatusWord != 0)
|
||||
return 0;
|
||||
//2.检查断路器状态
|
||||
}
|
||||
|
||||
|
||||
void PowerManger::printState(FSM_State st, string desp){
|
||||
@@ -619,13 +632,7 @@ int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
|
||||
pm->printState(fsm,desp);
|
||||
}
|
||||
//2. 检查复合管控器是否上报故障 如果故障则进入故障状态
|
||||
if(pm->m_pmCurrentState.ccustate.fcuGZ_1H != 0 ||
|
||||
pm->m_pmCurrentState.ccustate.fcuGZ_1L != 0 ||
|
||||
pm->m_pmCurrentState.ccustate.fcuGZ_2H != 0 ||
|
||||
pm->m_pmCurrentState.ccustate.fcuGZ_2L != 0 ||
|
||||
pm->m_pmCurrentState.ccustate.fcuGZ_3H != 0 ||
|
||||
pm->m_pmCurrentState.ccustate.fcuGZ_3L != 0 ||
|
||||
pm->m_pmCurrentState.ccustate.insEmergencyStatusWord != 0)
|
||||
if(pm->checkError() < 0)
|
||||
{
|
||||
ok = false;
|
||||
pm->m_faultNum = 2; //能源故障
|
||||
@@ -633,11 +640,30 @@ int PowerManger::handleInite_s1(FSM_State &fsm, void* pData)
|
||||
//3. 初始化系统为待机状态
|
||||
pm->initControlCmd();
|
||||
//4.判断关键断路器是否闭合
|
||||
ok = false;
|
||||
while (!ok)
|
||||
{
|
||||
if(pm->m_currentDisBreakerState.bus3Breaker.unit4InstrumentDC48VCircuitBreaker == 1 ||
|
||||
pm->m_currentDisBreakerState.bus4Breaker.unit5CircuitBreaker == 1 ||
|
||||
pm->m_currentDisBreakerState.bus4Breaker.unit2CircuitBreaker == 1 ||
|
||||
pm->m_currentDisBreakerState.bus4Breaker.unit3CircuitBreaker == 1 ||
|
||||
pm->m_currentDisBreakerState.bus4Breaker.unit1CircuitBreaker == 1)
|
||||
{
|
||||
ok = true;
|
||||
}
|
||||
pm->m_pmEvent = "等待关键断路器闭合";
|
||||
MOOSPause(1000);
|
||||
pm->printState(fsm,pm->m_pmEvent);
|
||||
}
|
||||
//5. 进入下一状态
|
||||
if(ok)
|
||||
{
|
||||
pm->m_pmState = pm->m_Standby_s2;
|
||||
}
|
||||
if(!ok)
|
||||
{
|
||||
pm->m_pmState = pm->m_Fault_s99;
|
||||
}
|
||||
pm->m_pmState = pm->m_Standby_s2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -649,6 +675,109 @@ int PowerManger::handleStandby_s2(FSM_State &fsm, void* pData)
|
||||
{
|
||||
string desp = "待机状态";
|
||||
pm->printState(fsm,desp);
|
||||
//1. 检查当前是否存在故障
|
||||
if(pm->checkError() < 0)
|
||||
{
|
||||
pm->m_pmState = pm->m_Fault_s99;
|
||||
break;
|
||||
}
|
||||
//2. 检查上位机上电控制指令
|
||||
switch (pm->m_msCmd.powerCMD)
|
||||
{
|
||||
case 0:
|
||||
pm->m_pmEvent = "收到上位机控制指令:关机";
|
||||
pm->shutdown();
|
||||
break;
|
||||
case 1:
|
||||
pm->m_pmEvent = "动力电上电";
|
||||
break;
|
||||
case 2:
|
||||
pm->m_pmEvent = "锂动力电启动";
|
||||
break;
|
||||
case 3:
|
||||
pm->m_pmEvent = "燃料电池启动";
|
||||
break;
|
||||
case 4:
|
||||
pm->m_pmEvent = "锂动力电关闭";
|
||||
case 5:
|
||||
pm->m_pmEvent = "燃料电池停机";
|
||||
break;
|
||||
case 6:
|
||||
pm->m_pmEvent = "燃料电池预热指令";
|
||||
break;
|
||||
case 7:
|
||||
pm->m_pmEvent = "燃料电池自检指令";
|
||||
break;
|
||||
case 8:
|
||||
pm->m_pmEvent = "燃料电池紧急停机";
|
||||
break;
|
||||
case 9:
|
||||
pm->m_pmEvent = "燃料电池复位指令";
|
||||
break;
|
||||
case 10:
|
||||
pm->m_pmEvent = "燃料电池补给指令";
|
||||
break;
|
||||
case 11:
|
||||
pm->m_pmEvent = "燃料电池停机维护";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//2. 检查上位机模式切换指令
|
||||
switch (pm->m_msCmd.modCMD)
|
||||
{
|
||||
case 0:
|
||||
//无效
|
||||
break;
|
||||
case 1:
|
||||
pm->m_pmEvent = "待机工况";
|
||||
break;
|
||||
case 2:
|
||||
pm->m_pmEvent = "岸基备航";
|
||||
break;
|
||||
case 3:
|
||||
pm->m_pmEvent = "水中备航";
|
||||
break;
|
||||
case 4:
|
||||
pm->m_pmEvent = "遥控工况";
|
||||
break;
|
||||
case 5:
|
||||
pm->m_pmEvent = "巡航模式";
|
||||
break;
|
||||
case 6:
|
||||
pm->m_pmEvent = "高速模式";
|
||||
break;
|
||||
case 7:
|
||||
pm->m_pmEvent = "上浮下潜";
|
||||
break;
|
||||
case 8:
|
||||
pm->m_pmEvent = "浮调模式";
|
||||
break;
|
||||
case 9:
|
||||
pm->m_pmEvent = "水下侦查";
|
||||
break;
|
||||
case 10:
|
||||
pm->m_pmEvent = "水面侦查";
|
||||
break;
|
||||
case 11:
|
||||
pm->m_pmEvent = "DJ模式";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//3. 检查上位机工作模式切换控制指令
|
||||
switch (pm->m_msCmd.workCMD)
|
||||
{
|
||||
case 0:
|
||||
pm->m_pmEvent = "正常模式(默认)";
|
||||
break;
|
||||
case 1:
|
||||
pm->m_pmEvent = "试验模式";
|
||||
break;
|
||||
case 2:
|
||||
pm->m_pmEvent = "调试模式";
|
||||
break;
|
||||
}
|
||||
MOOSPause(1000);
|
||||
}
|
||||
|
||||
@@ -673,6 +802,14 @@ int PowerManger::handleFault_s99(FSM_State &fsm, void* pData)
|
||||
}
|
||||
|
||||
|
||||
//==============================系统操作函数====================
|
||||
bool PowerManger::shutdown()
|
||||
{
|
||||
m_CcuColCmd.masterState = 0xFF; //关机
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void PowerManger::initControlCmd()
|
||||
{
|
||||
//================初始化配电指令=============================
|
||||
@@ -724,9 +861,9 @@ void PowerManger::initControlCmd()
|
||||
m_CcuColCmd.masterState = 0xAA;//主站状态,运行中
|
||||
|
||||
//================初始化上位机指令=========================
|
||||
m_msCmd.modCMD = 0;
|
||||
m_msCmd.powerCMD = 0;
|
||||
m_msCmd.workCMD = 0;
|
||||
m_msCmd.modCMD = 99;
|
||||
m_msCmd.powerCMD = 99;
|
||||
m_msCmd.workCMD = 99;
|
||||
|
||||
//================初始化设备驱动指令========================
|
||||
|
||||
|
||||
@@ -129,7 +129,6 @@ class PowerManger : public AppCastingMOOSApp
|
||||
msg_disLowBusFbMsg m_disLowBusState;
|
||||
|
||||
//下位机操作函数
|
||||
//断路器状态
|
||||
ccuColCmd m_CcuColCmd;
|
||||
void disSysOption();
|
||||
void ccuOption();
|
||||
@@ -172,10 +171,22 @@ class PowerManger : public AppCastingMOOSApp
|
||||
FSM_State m_Standby_s2;
|
||||
static int handleStandby_s2(FSM_State &fsm, void* pData);
|
||||
|
||||
//岸基备航
|
||||
// FSM_State m_ShoreReady_s3;
|
||||
|
||||
//水中备航
|
||||
|
||||
//自动工况
|
||||
|
||||
//故障处理
|
||||
FSM_State m_Fault_s99;
|
||||
static int handleFault_s99(FSM_State &fsm, void* pData);
|
||||
//======================================================================================
|
||||
int checkError();
|
||||
bool shutdown();
|
||||
bool powerOn();
|
||||
bool powerOff();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user