This commit is contained in:
chi
2025-06-30 13:48:19 +09:00
parent 02e71d7446
commit 00dd50192b
29 changed files with 2397 additions and 1136 deletions

View File

@@ -26,16 +26,11 @@ namespace Project
return;
}
//사용자 스텝처리가 아닌경우에만 검사
//if (Pub.flag.get(eFlag.UserStepCheck) == false)
//가동불가 조건 확인
if (CheckStopCondition() == false)
{
//가동불가 조건 확인
if (CheckStopCondition() == false)
{
PUB.sm.SetNewStep(eSMStep.PAUSE);
return;
}
PUB.sm.SetNewStep(eSMStep.PAUSE);
return;
}
//이머전시상태라면 stop 처리한다.
@@ -46,13 +41,6 @@ namespace Project
PUB.sm.SetNewStep(eSMStep.IDLE);
}
//실행스텝보정
//if (Pub.sm.runStep == eRunStep.NOTSET && Pub.sm.runStepNew == eRunStep.NOTSET)
//{
// Pub.sm.setNewRunStep(eRunStep.IDLE);
// Pub.log.Add("RUnStep Initialize");
//}
//스텝이 변경되었다면?
if (PUB.sm.RunStep != PUB.sm.RunStepNew)
{
@@ -88,7 +76,7 @@ namespace Project
//if (PUB.Result != null && PUB.sm != null)
// EEMStatus.AddEEDBSQL(PUB.sm.Step, PUB.sm.RunStep.ToString(), PUB.Result.TargetPos.ToString());
PUB.Speak(Lang.) ;
PUB.Speak(Lang.);
PUB.sm.SetNewRunStep(ERunStep.CHARGECHECK);
return;
}
@@ -143,8 +131,8 @@ namespace Project
PUB.Speak(Lang.);
//230601
// if (PUB.Result != null && PUB.sm != null)
// EEMStatus.AddEEDBSQL(PUB.sm.Step, PUB.sm.RunStep.ToString(), PUB.Result.TargetPos.ToString());
// if (PUB.Result != null && PUB.sm != null)
// EEMStatus.AddEEDBSQL(PUB.sm.Step, PUB.sm.RunStep.ToString(), PUB.Result.TargetPos.ToString());
//QA를 제외한 경우에는 기본 QC로 이동한다
if (PUB.Result.NextPos == ePosition.QA)
@@ -184,7 +172,7 @@ namespace Project
PUB.sm.ClearRunStep();
PUB.Result.TargetPos = ePosition.QC;
PUB.sm.SetNewRunStep(ERunStep.GOHOME);
PUB.Speak( Lang.);
PUB.Speak(Lang.);
}
return;
}
@@ -198,7 +186,7 @@ namespace Project
else if (_SM_RUN_GOHOME(runStepisFirst, PUB.sm.GetRunSteptime))
{
//230601
// if (PUB.Result != null && PUB.sm != null)
// if (PUB.Result != null && PUB.sm != null)
// EEMStatus.AddEEDBSQL(PUB.sm.Step, PUB.sm.RunStep.ToString(), PUB.Result.TargetPos.ToString());
PUB.Speak(Lang.);
@@ -215,7 +203,7 @@ namespace Project
return true;
}
void CheckAGVMoveTo(eGoDir dir)
{
//계속내려간다
@@ -545,7 +533,7 @@ namespace Project
return false;
}
}//cvass
}

View File

@@ -13,12 +13,12 @@ namespace Project
{
public Boolean _SM_RUN_READY(bool isFirst, TimeSpan stepTime)
{
//이동 불가 조건이 걸려있다면 충전을 하지 못하게 한다.
Boolean bAutoChageOn = true;
if (PUB.AGV.system1.stop_by_front_detect) bAutoChageOn = false;
else if (PUB.AGV.error.Emergency) bAutoChageOn = false;
else if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) bAutoChageOn = false;
else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) bAutoChageOn = false;
////이동 불가 조건이 걸려있다면 충전을 하지 못하게 한다.
//Boolean bAutoChageOn = true;
//if (PUB.AGV.system1.stop_by_front_detect) bAutoChageOn = false;
//else if (PUB.AGV.error.Emergency) bAutoChageOn = false;
//else if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) bAutoChageOn = false;
//else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) bAutoChageOn = false;
//자동 충전 중이라면 최대 충전시간과 레벨을 체크한다
@@ -73,58 +73,58 @@ namespace Project
}
VAR.STR[eVarString.ChargeCheckMsg] = "현재 위치 모름";
}
else if (PUB.setting.Enable_AutoCharge == true )
{
if(bAutoChageOn)
{
VAR.BOOL[eVarBool.CHARGE_READY] = true;
if (PUB.BMS.Current_Level < PUB.setting.ChargeStartLevel)
{
//레벨에 의한 자동 충전간격은
var ts = VAR.TIME.RUN(eVarTime.ChargeTry);
if (ts.TotalSeconds >= PUB.setting.ChargeRetryTerm)
{
VAR.I32[eVarInt32.ChargeWaitSec] = 0;
VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
PUB.log.Add($"자동충전레벨시작 {PUB.BMS.Current_Level}/{PUB.setting.ChargeStartLevel}");
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.GOCHARGE);
PUB.sm.SetNewStep(eSMStep.RUN);
PUB.AddEEDB($"자동충전레벨시작 {PUB.BMS.Current_Level}/{PUB.setting.ChargeStartLevel}");
}
else
{
VAR.I32[eVarInt32.ChargeWaitSec] = (int)(PUB.setting.ChargeRetryTerm - ts.TotalSeconds);
VAR.BOOL[eVarBool.CHARGE_WAIT] = true;
}
VAR.STR[eVarString.ChargeCheckMsg] = "배터리 충전 레벨 필요";
}
else
{
//아직 레벨이 높다
VAR.BOOL[eVarBool.CHARGE_READY] = false;
VAR.I32[eVarInt32.ChargeWaitSec] = 0;
VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
VAR.STR[eVarString.ChargeCheckMsg] = "배터리 레벨상 충전 불필요";
}
}
else
{
VAR.BOOL[eVarBool.CHARGE_READY] = false;
VAR.I32[eVarInt32.ChargeWaitSec] = 0;
VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
VAR.STR[eVarString.ChargeCheckMsg] = "충전 불가 조건";
//충전조건이 맞지 않는다
}
}
else
{
VAR.BOOL[eVarBool.CHARGE_READY] = false;
VAR.I32[eVarInt32.ChargeWaitSec] = 0;
VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
//자동충전이 해제된 상태이므로 처리하지 않는다
VAR.STR[eVarString.ChargeCheckMsg] = "자동 충전 해제 됨";
}
//else if (PUB.setting.Enable_AutoCharge == true )
//{
// if(bAutoChageOn)
// {
// VAR.BOOL[eVarBool.CHARGE_READY] = true;
// if (PUB.BMS.Current_Level < PUB.setting.ChargeStartLevel)
// {
// //레벨에 의한 자동 충전간격은
// var ts = VAR.TIME.RUN(eVarTime.ChargeTry);
// if (ts.TotalSeconds >= PUB.setting.ChargeRetryTerm)
// {
// VAR.I32[eVarInt32.ChargeWaitSec] = 0;
// VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
// PUB.log.Add($"자동충전레벨시작 {PUB.BMS.Current_Level}/{PUB.setting.ChargeStartLevel}");
// PUB.sm.ClearRunStep();
// PUB.sm.SetNewRunStep(ERunStep.GOCHARGE);
// PUB.sm.SetNewStep(eSMStep.RUN);
// PUB.AddEEDB($"자동충전레벨시작 {PUB.BMS.Current_Level}/{PUB.setting.ChargeStartLevel}");
// }
// else
// {
// VAR.I32[eVarInt32.ChargeWaitSec] = (int)(PUB.setting.ChargeRetryTerm - ts.TotalSeconds);
// VAR.BOOL[eVarBool.CHARGE_WAIT] = true;
// }
// VAR.STR[eVarString.ChargeCheckMsg] = "배터리 충전 레벨 필요";
// }
// else
// {
// //아직 레벨이 높다
// VAR.BOOL[eVarBool.CHARGE_READY] = false;
// VAR.I32[eVarInt32.ChargeWaitSec] = 0;
// VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
// VAR.STR[eVarString.ChargeCheckMsg] = "배터리 레벨상 충전 불필요";
// }
// }
// else
// {
// VAR.BOOL[eVarBool.CHARGE_READY] = false;
// VAR.I32[eVarInt32.ChargeWaitSec] = 0;
// VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
// VAR.STR[eVarString.ChargeCheckMsg] = "충전 불가 조건";
// //충전조건이 맞지 않는다
// }
//}
//else
//{
// VAR.BOOL[eVarBool.CHARGE_READY] = false;
// VAR.I32[eVarInt32.ChargeWaitSec] = 0;
// VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
// //자동충전이 해제된 상태이므로 처리하지 않는다
// VAR.STR[eVarString.ChargeCheckMsg] = "자동 충전 해제 됨";
//}
//대기모드에서는 움직이지 않게 한다
if(PUB.AGV.system1.agv_run)