nextstop 시그널을 bool변수에서 agv 으 ㅣspeed = 'L' 조건으로 변경
This commit is contained in:
@@ -6,6 +6,8 @@ using System.Text;
|
||||
using Project.StateMachine;
|
||||
using COMM;
|
||||
using AR;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Net.Security;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
@@ -63,9 +65,9 @@ namespace Project
|
||||
PUB.AGV.AGVMoveLeft180Turn();
|
||||
PUB.log.Add("AGV Left Turn");
|
||||
VAR.TIME.Update(eVarTime.LastTurnCommandTime);
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
}
|
||||
else PUB.sm.UpdateRunStepSeq(); //이미완료된상태이므로 다음으로 진행한다.
|
||||
PUB._mapCanvas.SetAlertMessage($"턴 진행 중");
|
||||
PUB.sm.UpdateRunStepSeq(); //이미완료된상태이므로 다음으로 진행한다.
|
||||
return false;
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
@@ -77,16 +79,17 @@ namespace Project
|
||||
if (PUB.AGV.TurnInformation.Runtime.TotalSeconds < 3) return false;
|
||||
|
||||
//턴 이동 상태가 확인되어야 한다.
|
||||
var overtime = 10;
|
||||
var overtime = 30;
|
||||
if (PUB.AGV.TurnInformation.Runtime.TotalSeconds > overtime)
|
||||
{
|
||||
//5초동안 AGV까 움직이지 않았다면 오류 처리한다.
|
||||
PUB.AGV.AGVMoveStop($"[bufferin] {overtime}초이내 턴 감지 안됨");
|
||||
PUB.log.AddE($"[{funcname}] {overtime}초이내 턴 감지 안됨");
|
||||
PUB._mapCanvas.SetAlertMessage("턴 완료 확인 불가");
|
||||
PUB._mapCanvas.SetAlertMessage($"턴 완료 확인 불가(최대:{overtime}초)");
|
||||
PUB.sm.SetNewRunStep(ERunStep.ERROR);
|
||||
return false;
|
||||
}
|
||||
else PUB._mapCanvas.SetAlertMessage($"턴 진행 중({PUB.AGV.TurnInformation.Runtime.TotalSeconds:N0}/{overtime})");
|
||||
return false;
|
||||
}
|
||||
PUB._virtualAGV.Turn = AGVNavigationCore.Models.AGVTurn.L90; //턴완료
|
||||
@@ -115,7 +118,11 @@ namespace Project
|
||||
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.DN);
|
||||
//재시도를 했으니 다음으로 진행하게한다
|
||||
}
|
||||
else return false;
|
||||
else
|
||||
{
|
||||
PUB._mapCanvas.SetAlertMessage($"리프트 하강 확인 중({seqtime.TotalSeconds:N0}/20)");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
@@ -132,6 +139,7 @@ namespace Project
|
||||
PUB._mapCanvas.SetAlertMessage("리프트가 내려가지 않음");
|
||||
PUB.sm.SetNewRunStep(ERunStep.ERROR);
|
||||
}
|
||||
else PUB._mapCanvas.SetAlertMessage($"리프트 하강 확인 중({seqtime.TotalSeconds:N0}/20)");
|
||||
return false;
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
@@ -160,23 +168,42 @@ namespace Project
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//후진이동을한다
|
||||
PUB._mapCanvas.SetAlertMessage($"도킹을 위해 후진 이동 시작");
|
||||
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//이동확인을 한다.
|
||||
if(PUB.AGV.system1.agv_run == false)
|
||||
{
|
||||
if(seqtime.TotalSeconds > 3)
|
||||
{
|
||||
PUB.AGV.AGVMoveStop(funcname);
|
||||
PUB.log.AddE($"[{funcname}] AGV이동이 확인되지 않습니다");
|
||||
PUB._mapCanvas.SetAlertMessage($"[{funcname}] AGV이동이 확인되지 않습니다");
|
||||
PUB.sm.SetNewRunStep(ERunStep.ERROR);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//마크스탑으로 이동
|
||||
PUB.AGV.AGVMoveStop(funcname, arDev.Narumi.eStopOpt.MarkStop);
|
||||
PUB._mapCanvas.SetAlertMessage($"도킹을 위해 후진 이동 시작");
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//마크스탑신호가 3초이내로 들어와야 한다
|
||||
if (VAR.BOOL[eVarBool.NEXTSTOP_MARK] == false)
|
||||
if (PUB.AGV.data.Speed != 'S')
|
||||
{
|
||||
if (seqtime.TotalSeconds > 3)
|
||||
{
|
||||
|
||||
@@ -174,7 +174,7 @@ namespace Project
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//마크스탑신호가 3초이내로 들어와야 한다
|
||||
if (VAR.BOOL[eVarBool.NEXTSTOP_MARK] == false)
|
||||
if (PUB.AGV.data.Speed != 'S')
|
||||
{
|
||||
if (seqTime.TotalMilliseconds > 3000)
|
||||
{
|
||||
|
||||
@@ -134,7 +134,7 @@ namespace Project
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//마크스탑신호가 3초이내로 들어와야 한다
|
||||
if (VAR.BOOL[eVarBool.NEXTSTOP_MARK] == false)
|
||||
if (PUB.AGV.data.Speed != 'S')
|
||||
{
|
||||
if (seqTime.TotalMilliseconds > 3000)
|
||||
{
|
||||
|
||||
@@ -160,7 +160,7 @@ namespace Project
|
||||
PUB._virtualAGV.SetPath(null);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,7 +191,7 @@ namespace Project
|
||||
}
|
||||
else
|
||||
{
|
||||
PUB.log.Add("다음행동예측에서 장비 멈춤이 확인되었습니다");
|
||||
PUB.log.Add($"다음행동예측에서 장비 멈춤이 확인되었습니다({nextAction.Reason})");
|
||||
PUB.AGV.AGVMoveStop(nextAction.Message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,15 +117,15 @@ namespace Project
|
||||
VAR.BOOL[eVarBool.CHG_POSERR] = PUB.AGV.error.Charger_pos_error;
|
||||
}
|
||||
|
||||
//나르미가 멈췄다면 다음 마크 이동 기능이 OFF 된다
|
||||
if (agv_stp)
|
||||
{
|
||||
if (VAR.BOOL[eVarBool.NEXTSTOP_MARK])
|
||||
{
|
||||
VAR.BOOL[eVarBool.NEXTSTOP_MARK] = false;
|
||||
PUB.logagv.Add($"NEXTSTOP_MARK 변경({VAR.BOOL[eVarBool.NEXTSTOP_MARK]})");
|
||||
}
|
||||
}
|
||||
////나르미가 멈췄다면 다음 마크 이동 기능이 OFF 된다
|
||||
//if (agv_stp)
|
||||
//{
|
||||
// if (VAR.BOOL[eVarBool.NEXTSTOP_MARK])
|
||||
// {
|
||||
// VAR.BOOL[eVarBool.NEXTSTOP_MARK] = false;
|
||||
// PUB.logagv.Add($"NEXTSTOP_MARK 변경({VAR.BOOL[eVarBool.NEXTSTOP_MARK]})");
|
||||
// }
|
||||
//}
|
||||
|
||||
//마크센서 상태가 변경이 되었다면
|
||||
if (VAR.BOOL[eVarBool.MARK_SENSOR] != PUB.AGV.signal1.mark_sensor)
|
||||
@@ -145,7 +145,7 @@ namespace Project
|
||||
else PUB.log.AddAT($"마크스탑이 확인되었으나 현재 노드가없어 PASS를 설정하지 못함");
|
||||
}
|
||||
}
|
||||
if (VAR.BOOL[eVarBool.MARK_SENSOROFF] != VAR.BOOL[eVarBool.MARK_SENSOR])
|
||||
if (VAR.BOOL[eVarBool.MARK_SENSOROFF] == VAR.BOOL[eVarBool.MARK_SENSOR])
|
||||
{
|
||||
VAR.BOOL[eVarBool.MARK_SENSOROFF] = !VAR.BOOL[eVarBool.MARK_SENSOR];
|
||||
VAR.TIME[eVarTime.MarkSensorOff] = DateTime.Now;
|
||||
|
||||
@@ -87,14 +87,14 @@ namespace Project
|
||||
PUB.Speak(Lang.수동충전을해제합니다);
|
||||
}
|
||||
}
|
||||
else if (flag == COMM.eVarBool.NEXTSTOP_MARK)
|
||||
{
|
||||
if (NewValue)
|
||||
{
|
||||
//PUB.Speak("다음 위치에서 멈춥니다");
|
||||
PUB.log.Add($"마크인식시 멈춤 신호 변경 : {NewValue}");
|
||||
}
|
||||
}
|
||||
//else if (flag == COMM.eVarBool.NEXTSTOP_MARK)
|
||||
//{
|
||||
// if (NewValue)
|
||||
// {
|
||||
// //PUB.Speak("다음 위치에서 멈춥니다");
|
||||
// PUB.log.Add($"마크인식시 멈춤 신호 변경 : {NewValue}");
|
||||
// }
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -370,7 +370,7 @@ namespace Project
|
||||
}
|
||||
|
||||
IOState.setTitle(inputrow, inputcol, "RUN"); IOState.setValue(inputrow, inputcol++, (PUB.AGV.system1.agv_run ? 1 : 0));
|
||||
IOState.setTitle(inputrow, inputcol, "MARK"); IOState.setValue(inputrow, inputcol++, (VAR.BOOL[eVarBool.MARK_SENSOR] ? 1 : (VAR.BOOL[eVarBool.NEXTSTOP_MARK] ? 2 : 0)));
|
||||
IOState.setTitle(inputrow, inputcol, "MARK"); IOState.setValue(inputrow, inputcol++, (VAR.BOOL[eVarBool.MARK_SENSOR] ? 1 : 0));
|
||||
IOState.setTitle(inputrow, inputcol, "CHG"); IOState.setValue(inputrow, inputcol++, (PUB.AGV.system1.Battery_charging ? 1 : 0));
|
||||
IOState.setTitle(inputrow, inputcol, "ITM"); IOState.setValue(inputrow, inputcol++, (VAR.BOOL[eVarBool.ITEMON] ? 1 : 0));
|
||||
IOState.Invalidate();
|
||||
|
||||
Reference in New Issue
Block a user