test_acs 프로젝트 변경
This commit is contained in:
@@ -186,7 +186,7 @@ namespace Project
|
||||
PUB.sm.ResetRunStepSeq();
|
||||
PUB.log.Add("충전 명령 시작");
|
||||
}
|
||||
else if (_SM_RUN_CHARGE_GO(runStepisFirst, PUB.sm.GetRunSteptime))
|
||||
else if (_SM_RUN_CHARGE_ON(runStepisFirst, PUB.sm.GetRunSteptime))
|
||||
{
|
||||
PUB.XBE.SendActionComplete(PUB.sm.RunStep);
|
||||
PUB.Speak(Lang.충전을시작합니다);
|
||||
@@ -219,7 +219,7 @@ namespace Project
|
||||
else
|
||||
{
|
||||
//충전 상태가 OFF되어야 동작하게한다
|
||||
if (_SM_RUN_CHARGE_GOFF(isFirst, stepTime) == true)
|
||||
if (_SM_RUN_CHARGE_OFF(isFirst, stepTime) == true)
|
||||
{
|
||||
PUB.XBE.SendActionComplete(PUB.sm.RunStep);
|
||||
//충전상태가 활성화되었으므로 대기상태로 전환한다
|
||||
|
||||
@@ -8,6 +8,7 @@ using COMM;
|
||||
using AR;
|
||||
using System.Windows.Media.Animation;
|
||||
using System.Net.Security;
|
||||
using AGVNavigationCore.Models;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
@@ -19,7 +20,7 @@ namespace Project
|
||||
var idx = 1;
|
||||
|
||||
//충전 상태가 OFF되어야 동작하게한다
|
||||
if (_SM_RUN_CHARGE_GOFF(isFirst, seqtime) == false) return false;
|
||||
if (_SM_RUN_CHARGE_OFF(isFirst, seqtime) == false) return false;
|
||||
|
||||
//라이더멈춤이 설정되어있다면 음성으로 알려준다
|
||||
if (CheckLiderStop() == false) return false;
|
||||
@@ -137,7 +138,7 @@ namespace Project
|
||||
if (PUB.AGV.signal1.lift_down == false)
|
||||
{
|
||||
VAR.I32[eVarInt32.RetryLift] += 1;
|
||||
var rlt = PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.DN);
|
||||
var rlt = PUB.AGV.LiftControl(LiftCommand.DN);
|
||||
PUB.log.Add($"[{funcname}-{PUB.sm.RunStepSeq}] 리프트 하강 실행:{rlt}");
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
@@ -175,7 +176,7 @@ namespace Project
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOffEnter)
|
||||
{
|
||||
VAR.I32[eVarInt32.RetryManget] += 1;
|
||||
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON);
|
||||
PUB.AGV.LiftControl(LiftCommand.ON);
|
||||
PUB.log.Add($"[{funcname}-{PUB.sm.RunStepSeq}] 마그넷ON");
|
||||
}
|
||||
|
||||
@@ -351,7 +352,7 @@ namespace Project
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOffEnter)
|
||||
{
|
||||
VAR.I32[eVarInt32.RetryManget] += 1;
|
||||
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF);
|
||||
PUB.AGV.LiftControl(LiftCommand.OFF);
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
|
||||
@@ -6,6 +6,7 @@ using System.Text;
|
||||
using Project.StateMachine;
|
||||
using COMM;
|
||||
using AR;
|
||||
using AGVNavigationCore.Models;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
@@ -18,7 +19,7 @@ namespace Project
|
||||
var idx = 1;
|
||||
|
||||
//충전 상태가 OFF되어야 동작하게한다
|
||||
if (_SM_RUN_CHARGE_GOFF(isFirst, seqtime) == false) return false;
|
||||
if (_SM_RUN_CHARGE_OFF(isFirst, seqtime) == false) return false;
|
||||
|
||||
//라이더멈춤이 설정되어있다면 음성으로 알려준다
|
||||
if (CheckLiderStop() == false) return false;
|
||||
@@ -53,7 +54,7 @@ namespace Project
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
arDev.Narumi.LiftCommand lift = PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOnExit ? arDev.Narumi.LiftCommand.UP : arDev.Narumi.LiftCommand.DN;
|
||||
LiftCommand lift = PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOnExit ? LiftCommand.UP : LiftCommand.DN;
|
||||
PUB.log.Add($"[{funcname}-{PUB.sm.RunStepSeq}] 리프트제어 {lift}");
|
||||
VAR.I32[eVarInt32.RetryLift] += 1;
|
||||
PUB.AGV.LiftControl(lift);
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Project
|
||||
/// <param name="isFirst"></param>
|
||||
/// <param name="stepTime"></param>
|
||||
/// <returns></returns>
|
||||
public Boolean _SM_RUN_CHARGE_GOFF(bool isFirst, TimeSpan stepTime)
|
||||
public Boolean _SM_RUN_CHARGE_OFF(bool isFirst, TimeSpan stepTime)
|
||||
{
|
||||
|
||||
//충전중인지 확인한다.
|
||||
@@ -12,7 +12,7 @@ namespace Project
|
||||
public partial class fMain
|
||||
{
|
||||
DateTime tm_gocharge_command = DateTime.Now;
|
||||
public Boolean _SM_RUN_CHARGE_GO(bool isFirst, TimeSpan stepTime)
|
||||
public Boolean _SM_RUN_CHARGE_ON(bool isFirst, TimeSpan stepTime)
|
||||
{
|
||||
var funcname = "GOCHARGE";
|
||||
if (runStepisFirst)
|
||||
@@ -29,7 +29,8 @@ namespace Project
|
||||
}
|
||||
|
||||
//이미 충전중이라면 바로 완료 처리한다 (사용자 요청)
|
||||
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true || PUB.AGV.system1.Battery_charging == true ||
|
||||
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true ||
|
||||
PUB.AGV.system1.Battery_charging == true ||
|
||||
VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true)
|
||||
{
|
||||
SetRunStepError(ENIGProtocol.AGVErrorCode.ALREADY_CHARGE);
|
||||
@@ -37,7 +38,7 @@ namespace Project
|
||||
}
|
||||
|
||||
//충전 상태가 OFF되어야 동작하게한다
|
||||
if (_SM_RUN_CHARGE_GOFF(isFirst, stepTime) == false)
|
||||
if (_SM_RUN_CHARGE_OFF(isFirst, stepTime) == false)
|
||||
return false;
|
||||
|
||||
|
||||
@@ -67,12 +68,19 @@ namespace Project
|
||||
//현재위치가 충전기위치이고 마크센서가 감지되었다면 충전기위치로 인지하고
|
||||
//그렇지 못하면 충전위치가 아니라는 오류를 발생한다
|
||||
var curnode = PUB._virtualAGV.CurrentNode;
|
||||
if (PUB.AGV.signal1.mark_sensor == false || curnode.Id != targetnode.Id)
|
||||
if (curnode.Id != targetnode.Id)
|
||||
{
|
||||
SetRunStepError(ENIGProtocol.AGVErrorCode.NO_CHARGEPOINT, $"충전기위치가 아니므로 충전을 시작할 수 없습니다(현재위치:{curnode.RfidId})");
|
||||
return false;
|
||||
}
|
||||
|
||||
//마크센서가 들어와있어야한다
|
||||
if (PUB.AGV.signal1.mark_sensor == false)
|
||||
{
|
||||
SetRunStepError(ENIGProtocol.AGVErrorCode.MARK_SENSOR_FAIL, $"충전기위치에서 마크센서가 확인되지 않습니다");
|
||||
return false;
|
||||
}
|
||||
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
}
|
||||
@@ -6,6 +6,7 @@ using System.Text;
|
||||
using Project.StateMachine;
|
||||
using COMM;
|
||||
using AR;
|
||||
using AGVNavigationCore.Models;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
@@ -20,7 +21,7 @@ namespace Project
|
||||
var funcname = PUB.sm.RunStep.ToString();
|
||||
|
||||
//충전 상태가 OFF되어야 동작하게한다
|
||||
if (_SM_RUN_CHARGE_GOFF(isFirst, seqTime) == false) return false;
|
||||
if (_SM_RUN_CHARGE_OFF(isFirst, seqTime) == false) return false;
|
||||
|
||||
//라이더멈춤이 설정되어있다면 음성으로 알려준다
|
||||
if (CheckLiderStop() == false) return false;
|
||||
@@ -78,7 +79,7 @@ namespace Project
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//pick off/on 상관없이 리프트는 내려서 이동한다
|
||||
var liftCmd = arDev.Narumi.LiftCommand.DN;
|
||||
var liftCmd = LiftCommand.DN;
|
||||
PUB.AGV.LiftControl(liftCmd);
|
||||
VAR.TIME.Update(eVarTime.LastTurnCommandTime);
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
@@ -109,7 +110,7 @@ namespace Project
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOffEnter)
|
||||
{
|
||||
VAR.I32[eVarInt32.RetryManget] += 1;
|
||||
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON);
|
||||
PUB.AGV.LiftControl(LiftCommand.ON);
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
@@ -249,7 +250,7 @@ namespace Project
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOffEnter)
|
||||
{
|
||||
VAR.I32[eVarInt32.RetryManget] += 1;
|
||||
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF);
|
||||
PUB.AGV.LiftControl(LiftCommand.OFF);
|
||||
}
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
return false;
|
||||
|
||||
@@ -6,6 +6,7 @@ using System.Text;
|
||||
using Project.StateMachine;
|
||||
using COMM;
|
||||
using AR;
|
||||
using AGVNavigationCore.Models;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
@@ -20,7 +21,7 @@ namespace Project
|
||||
var funcname = $"[EXIT-{PUB.sm.RunStep}]";
|
||||
|
||||
//충전 상태가 OFF되어야 동작하게한다
|
||||
if (_SM_RUN_CHARGE_GOFF(isFirst, seqtime) == false) return false;
|
||||
if (_SM_RUN_CHARGE_OFF(isFirst, seqtime) == false) return false;
|
||||
|
||||
//라이더멈춤이 설정되어있다면 음성으로 알려준다
|
||||
if (CheckLiderStop() == false) return false;
|
||||
@@ -37,8 +38,8 @@ namespace Project
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
//작업형태에 따라서. 리프트를 제어한다.
|
||||
var liftCmd = arDev.Narumi.LiftCommand.DN;
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOnExit) liftCmd = arDev.Narumi.LiftCommand.UP;
|
||||
var liftCmd = LiftCommand.DN;
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOnExit) liftCmd = LiftCommand.UP;
|
||||
VAR.I32[eVarInt32.RetryLift] += 1;
|
||||
PUB.AGV.LiftControl(liftCmd);
|
||||
PUB.sm.UpdateRunStepSeq();
|
||||
@@ -46,18 +47,18 @@ namespace Project
|
||||
}
|
||||
else if (PUB.sm.RunStepSeq == idx++)
|
||||
{
|
||||
var liftCmd = arDev.Narumi.LiftCommand.DN;
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOnExit) liftCmd = arDev.Narumi.LiftCommand.UP;
|
||||
var liftCmd = LiftCommand.DN;
|
||||
if (PUB.NextWorkCmd == ENIGProtocol.AGVCommandHE.PickOnExit) liftCmd = LiftCommand.UP;
|
||||
|
||||
//리프트 센서 확인
|
||||
var liftdnok = (PUB.AGV.signal1.lift_down == true && PUB.AGV.signal1.lift_up == false);
|
||||
var liiftupok = (PUB.AGV.signal1.lift_up == true && PUB.AGV.signal1.lift_down == false);
|
||||
|
||||
if (liftCmd == arDev.Narumi.LiftCommand.DN && liftdnok)
|
||||
if (liftCmd == LiftCommand.DN && liftdnok)
|
||||
{
|
||||
//정상조건
|
||||
}
|
||||
else if (liftCmd == arDev.Narumi.LiftCommand.UP && liftdnok)
|
||||
else if (liftCmd == LiftCommand.UP && liftdnok)
|
||||
{
|
||||
//정상조건
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Project
|
||||
var funcname = "_SM_RUN_GOTO";
|
||||
|
||||
//충전 상태가 OFF되어야 동작하게한다
|
||||
if (_SM_RUN_CHARGE_GOFF(isFirst, seqtime) == false)
|
||||
if (_SM_RUN_CHARGE_OFF(isFirst, seqtime) == false)
|
||||
return false;
|
||||
|
||||
//최초시작이라면 시간변수 초기화
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace Project
|
||||
}
|
||||
|
||||
//충전 상태가 OFF되어야 동작하게한다
|
||||
if (_SM_RUN_CHARGE_GOFF(isFirst, stepTime) == false)
|
||||
if (_SM_RUN_CHARGE_OFF(isFirst, stepTime) == false)
|
||||
return false;
|
||||
|
||||
//라이더멈춤이 설정되어있다면 음성으로 알려준다 200409
|
||||
|
||||
Reference in New Issue
Block a user