..
This commit is contained in:
@@ -36,7 +36,7 @@ namespace Project
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//마크센서가 감지된상태여야 완전한위치로 가정한다
|
||||
if(PUB.AGV.signal1.mark_sensor == false)
|
||||
if (PUB.AGV.signal1.mark_sensor == false)
|
||||
{
|
||||
SetRunStepError(ENIGProtocol.AGVErrorCode.MARK_SENSOR_FAIL, $"[{funcname}] 마크센서가 감지되지 않습니다");
|
||||
}
|
||||
@@ -95,15 +95,54 @@ namespace Project
|
||||
var errmsg = $"[{funcname}] 리프트다운이 확인되지 않습니다";
|
||||
SetRunStepError(ENIGProtocol.AGVErrorCode.LIFT_ERROR, errmsg);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
PUB.log.Add("리프트 동작 확인 완료");
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
|
||||
VAR.I32[eVarInt32.RetryManget] = 0;
|
||||
PUB.log.Add("리프트 동작 확인 완료");
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//pick off 조건이라면. 마그넷을 on 한후에 민다.
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOffEnter)
|
||||
{
|
||||
VAR.I32[eVarInt32.RetryManget] += 1;
|
||||
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON);
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//pick off 조건이라면. 마그넷을 on 한후에 민다.
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOffEnter)
|
||||
{
|
||||
//마그넷센서가 들어오는지 5초간 확인한다.
|
||||
if (PUB.AGV.signal1.magnet_on == false)
|
||||
{
|
||||
if (seqTime.TotalSeconds > 5)
|
||||
{
|
||||
if(VAR.I32[eVarInt32.RetryManget] < 3)
|
||||
{
|
||||
PUB.sm.UpdateRunStepSeq(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
var errmsg = $"[{funcname}] 마그넷이 ON 되지 않았습니다";
|
||||
SetRunStepError(ENIGProtocol.AGVErrorCode.MAGNET_ON_ERROR, errmsg);
|
||||
VAR.I32[eVarInt32.RetryManget] = 0;
|
||||
}
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//저속이동 (후진 진입)
|
||||
@@ -114,6 +153,7 @@ namespace Project
|
||||
PBSSensor = 0,
|
||||
Speed = arDev.Narumi.eMoveSpd.Low,
|
||||
});
|
||||
|
||||
//명령이 실패되었다면 재시도를 한다
|
||||
if (ret != arDev.eNarumiCommandResult.Success)
|
||||
{
|
||||
@@ -198,10 +238,50 @@ namespace Project
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//완료되었다.
|
||||
PUB.log.Add("진입 완료");
|
||||
PUB.log.Add("진입 완료 마그넷을 off합니다");
|
||||
VAR.I32[eVarInt32.RetryManget] = 0;
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//pick off 조건이라면. 마그넷을 on 한후에 민다.
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOffEnter)
|
||||
{
|
||||
VAR.I32[eVarInt32.RetryManget] += 1;
|
||||
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF);
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//pick off 조건이라면. 마그넷을 on 한후에 민다.
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOffEnter)
|
||||
{
|
||||
//마그넷센서가 들어오는지 5초간 확인한다.
|
||||
if (PUB.AGV.signal1.magnet_on == true)
|
||||
{
|
||||
if (seqTime.TotalSeconds > 5)
|
||||
{
|
||||
if (VAR.I32[eVarInt32.RetryManget] < 3)
|
||||
{
|
||||
PUB.sm.UpdateRunStepSeq(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
VAR.I32[eVarInt32.RetryManget] = 0;
|
||||
var errmsg = $"[{funcname}] 마그넷이 OFF 되지 않았습니다";
|
||||
SetRunStepError(ENIGProtocol.AGVErrorCode.MAGNET_OF_ERROR, errmsg);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user