diff --git a/HMI/Project/StateMachine/Step/_SM_RUN.cs b/HMI/Project/StateMachine/Step/_SM_RUN.cs index bbe0eb9..3741a0d 100644 --- a/HMI/Project/StateMachine/Step/_SM_RUN.cs +++ b/HMI/Project/StateMachine/Step/_SM_RUN.cs @@ -296,6 +296,12 @@ namespace Project } else PUB.XBE.StepMC = Device.eDocStep.EnterIng; break; + case ERunStep.REMOTECONTROL: + if(isFirst) + { + PUB.log.AddE("Remote Control mode"); + } + break; } } diff --git a/HMI/Project/StateMachine/Step/_SM_RUN_READY.cs b/HMI/Project/StateMachine/Step/_SM_RUN_READY.cs index 7d64044..2b1b86d 100644 --- a/HMI/Project/StateMachine/Step/_SM_RUN_READY.cs +++ b/HMI/Project/StateMachine/Step/_SM_RUN_READY.cs @@ -59,16 +59,16 @@ namespace Project } //대기모드에서는 움직이지 않게 한다 - //if(PUB.AGV.system1.agv_run) - //{ - // var ts = VAR.TIME.RUN(eVarTime.IdleStopTime); - // if(ts.TotalSeconds > 1) - // { - // PUB.log.Add($"대기상태에서는 정차"); - // PUB.AGV.AGVMoveStop("대기상태에서는 정차"); - // VAR.TIME.Update(eVarTime.IdleStopTime); - // } - //} + if (PUB.AGV.system1.agv_run) + { + var ts = VAR.TIME.RUN(eVarTime.IdleStopTime); + if (ts.TotalSeconds > 1) + { + PUB.log.Add($"대기상태에서는 정차"); + PUB.AGV.AGVMoveStop("대기상태에서는 정차"); + VAR.TIME.Update(eVarTime.IdleStopTime); + } + } return false; diff --git a/HMI/Project/StateMachine/_Xbee.cs b/HMI/Project/StateMachine/_Xbee.cs index 6f8618d..2e5b050 100644 --- a/HMI/Project/StateMachine/_Xbee.cs +++ b/HMI/Project/StateMachine/_Xbee.cs @@ -266,19 +266,23 @@ namespace Project case ENIGProtocol.AGVCommandHE.LTurn180: PUB.log.Add($"[{logPrefix}-LTurn180]"); + PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL); PUB.AGV.AGVMoveLeft180Turn(); break; case ENIGProtocol.AGVCommandHE.RTurn180: PUB.log.Add($"[{logPrefix}-RTurn180]"); + PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL); PUB.AGV.AGVMoveRight180Turn(); break; case ENIGProtocol.AGVCommandHE.LTurn: PUB.log.Add($"[{logPrefix}-LTurn]"); + PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL); PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); break; case ENIGProtocol.AGVCommandHE.RTurn: PUB.log.Add($"[{logPrefix}-RTurn]"); + PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL); PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); break; case ENIGProtocol.AGVCommandHE.Stop: //stop @@ -292,6 +296,7 @@ namespace Project case ENIGProtocol.AGVCommandHE.Manual: //Manual Move (Direction, speed, runtime) Resultclear(); + PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL); var Direction = data[1]; //0=back, 1=forward, 2=left, 3=right var Speed = data[2]; //0=slow, 1=normal, 2=fast @@ -313,6 +318,7 @@ namespace Project case ENIGProtocol.AGVCommandHE.AutoMove: Resultclear(); + PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL); var MotDirection = data[1]; //0=back, 1=forward var MagDirection = data[2]; //0=straight, 1=left, 2=right var AutSpeed = data[3]; //0=slow, 1=normal, 2=fast diff --git a/HMI/StateMachine/EnumStruct.cs b/HMI/StateMachine/EnumStruct.cs index c1d1668..403f597 100644 --- a/HMI/StateMachine/EnumStruct.cs +++ b/HMI/StateMachine/EnumStruct.cs @@ -51,6 +51,11 @@ namespace Project.StateMachine READY = 0, GOHOME, + + /// + /// XBEE에서 원격으로 명령을 내리면 이 상태로 임시 전환된다. 260209 + /// + REMOTECONTROL, /// /// 충전을 해제 함