From f5f08de0b94f5a5a2f25bd1532fce504ff9e769c Mon Sep 17 00:00:00 2001 From: ChiKyun Kim Date: Mon, 9 Feb 2026 08:37:39 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8C=80=EA=B8=B0=EC=83=81=ED=83=9C=EC=9D=BC?= =?UTF-8?q?=EB=95=8C=20=EC=9E=90=EB=8F=99=EB=A9=88=EC=B6=A4=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EB=8B=A4=EC=8B=9C=20=ED=99=9C=EC=84=B1=ED=99=94=20?= =?UTF-8?q?remotecontrol=20=EB=AA=A8=EB=93=9C=20=EC=B6=94=EA=B0=80,=20?= =?UTF-8?q?=EC=9B=90=EA=B2=A9=EC=9C=BC=EB=A1=9C=20turn,=20manual,=20auto?= =?UTF-8?q?=20=EC=9D=B4=EB=8F=99=EC=8B=9C=20=ED=99=9C=EC=84=B1=ED=99=94?= =?UTF-8?q?=EB=90=9C=EB=8B=A4..=20=EB=82=B4=EB=B6=80=EC=BD=94=EB=93=9C?= =?UTF-8?q?=EB=8A=94=20=EC=97=86=EC=9D=8C.=20=EC=83=81=ED=83=9C=EB=A7=8C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=ED=95=A8,=20idle=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=9D=BC=EB=95=8C=20=EC=9E=90=EB=8F=99=20=EB=A9=88=EC=B6=A4?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EA=B0=80=20=EB=8F=99=EC=9E=91=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EA=B2=8C=20=ED=95=98=EA=B8=B0=20=EC=9C=84?= =?UTF-8?q?=ED=95=A8=EC=9D=B4=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HMI/Project/StateMachine/Step/_SM_RUN.cs | 6 ++++++ .../StateMachine/Step/_SM_RUN_READY.cs | 20 +++++++++---------- HMI/Project/StateMachine/_Xbee.cs | 6 ++++++ HMI/StateMachine/EnumStruct.cs | 5 +++++ 4 files changed, 27 insertions(+), 10 deletions(-) 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, /// /// 충전을 해제 함