속도레벨을 기본 m->l 로 변경, 턴이되어있다면 오류로 처리한다.

This commit is contained in:
backuppc
2026-02-26 10:34:11 +09:00
parent e7cce4c201
commit c067a76462
4 changed files with 68 additions and 33 deletions

View File

@@ -74,7 +74,7 @@ namespace AGVNavigationCore.Models
[Category("주행 설정")] [Category("주행 설정")]
[Description("노드 통과 시 제한 속도입니다.")] [Description("노드 통과 시 제한 속도입니다.")]
public SpeedLevel SpeedLimit { get; set; } = SpeedLevel.M; public SpeedLevel SpeedLimit { get; set; } = SpeedLevel.L;
[Category("노드 설정")] [Category("노드 설정")]
[Description("장비 ID 또는 별칭입니다.")] [Description("장비 ID 또는 별칭입니다.")]

View File

@@ -178,6 +178,14 @@ namespace Project
{ {
Resultclear(); Resultclear();
PUB.log.AddI($"XBEE:충전명령수신"); PUB.log.AddI($"XBEE:충전명령수신");
// 버퍼 작업 중일 경우 충전 명령 거부
if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Charger] 버퍼 작업이 완료되지 않아 충전할 수 없습니다.");
return;
}
PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Charger; PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Charger;
PUB.sm.SetNewRunStep(ERunStep.GOCHARGE); PUB.sm.SetNewRunStep(ERunStep.GOCHARGE);
} }
@@ -226,7 +234,7 @@ namespace Project
//s/w턴이 걸려있다면 이동 불가로한다.(버퍼 작업중이다) //s/w턴이 걸려있다면 이동 불가로한다.(버퍼 작업중이다)
if (PUB._virtualAGV.Turn != AGVTurn.None) if (PUB._virtualAGV.Turn != AGVTurn.None)
{ {
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Goto] 버퍼작업이 완료되지 않았습니다"); SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Goto] 버퍼 작업이 완료되지 않았습니다({PUB._virtualAGV.Turn})");
return; return;
} }
@@ -265,25 +273,42 @@ namespace Project
break; break;
case ENIGProtocol.AGVCommandHE.LTurn180: case ENIGProtocol.AGVCommandHE.LTurn180:
PUB.log.Add($"[{logPrefix}-LTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveLeft180Turn();
break;
case ENIGProtocol.AGVCommandHE.RTurn180: case ENIGProtocol.AGVCommandHE.RTurn180:
PUB.log.Add($"[{logPrefix}-RTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveRight180Turn();
break;
case ENIGProtocol.AGVCommandHE.LTurn: 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: 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); if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-{cmd}] 버퍼 작업 중에는 턴 명령을 수행할 수 없습니다.");
return;
}
if (cmd == ENIGProtocol.AGVCommandHE.LTurn180)
{
PUB.log.Add($"[{logPrefix}-LTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveLeft180Turn();
}
else if (cmd == ENIGProtocol.AGVCommandHE.RTurn180)
{
PUB.log.Add($"[{logPrefix}-RTurn180]");
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
PUB.AGV.AGVMoveRight180Turn();
}
else if (cmd == 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);
}
else if (cmd == 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; break;
case ENIGProtocol.AGVCommandHE.Stop: //stop case ENIGProtocol.AGVCommandHE.Stop: //stop
PUB.log.Add($"[{logPrefix}-Stop]"); PUB.log.Add($"[{logPrefix}-Stop]");
@@ -296,6 +321,14 @@ namespace Project
case ENIGProtocol.AGVCommandHE.Manual: //Manual Move (Direction, speed, runtime) case ENIGProtocol.AGVCommandHE.Manual: //Manual Move (Direction, speed, runtime)
Resultclear(); Resultclear();
// 버퍼 작업 중일 경우 수동 이동 거부
if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-Manual] 버퍼 작업 중에는 수동 이동을 할 수 없습니다.");
return;
}
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL); PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
var Direction = data[1]; //0=back, 1=forward, 2=left, 3=right var Direction = data[1]; //0=back, 1=forward, 2=left, 3=right
var Speed = data[2]; //0=slow, 1=normal, 2=fast var Speed = data[2]; //0=slow, 1=normal, 2=fast
@@ -318,6 +351,14 @@ namespace Project
case ENIGProtocol.AGVCommandHE.AutoMove: case ENIGProtocol.AGVCommandHE.AutoMove:
Resultclear(); Resultclear();
// 버퍼 작업 중일 경우 자동 이동 거부
if (PUB._virtualAGV.Turn != AGVTurn.None)
{
SetRunStepError(ENIGProtocol.AGVErrorCode.BUFFER_NOT_COMPLETE, $"[{logPrefix}-AutoMove] 버퍼 작업 중에는 이동할 수 없습니다.");
return;
}
PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL); PUB.sm.SetNewRunStep(ERunStep.REMOTECONTROL);
var MotDirection = data[1]; //0=back, 1=forward var MotDirection = data[1]; //0=back, 1=forward
var MagDirection = data[2]; //0=straight, 1=left, 2=right var MagDirection = data[2]; //0=straight, 1=left, 2=right

View File

@@ -323,11 +323,6 @@ namespace arDev
#endregion #endregion
#region [] TAG() #region [] TAG()
System.Text.Encoding encoding = System.Text.Encoding.Default; System.Text.Encoding encoding = System.Text.Encoding.Default;
@@ -357,7 +352,6 @@ namespace arDev
old_TagString = tagnostr; old_TagString = tagnostr;
DataReceive?.Invoke(this, new DataEventArgs(DataType.TAG)); DataReceive?.Invoke(this, new DataEventArgs(DataType.TAG));
} }
} }
WriteData(MakeCheckSum("ACKTAG")); WriteData(MakeCheckSum("ACKTAG"));

View File

@@ -156,7 +156,7 @@
"CanTurnLeft": false, "CanTurnLeft": false,
"CanTurnRight": false, "CanTurnRight": false,
"DisableCross": false, "DisableCross": false,
"SpeedLimit": 0, "SpeedLimit": 1,
"AliasName": "", "AliasName": "",
"IsActive": true, "IsActive": true,
"RfidId": 9, "RfidId": 9,
@@ -180,7 +180,7 @@
"CanTurnLeft": false, "CanTurnLeft": false,
"CanTurnRight": false, "CanTurnRight": false,
"DisableCross": false, "DisableCross": false,
"SpeedLimit": 0, "SpeedLimit": 1,
"AliasName": "", "AliasName": "",
"IsActive": true, "IsActive": true,
"RfidId": 8, "RfidId": 8,
@@ -208,7 +208,7 @@
"CanTurnLeft": false, "CanTurnLeft": false,
"CanTurnRight": false, "CanTurnRight": false,
"DisableCross": false, "DisableCross": false,
"SpeedLimit": 0, "SpeedLimit": 1,
"AliasName": "", "AliasName": "",
"IsActive": true, "IsActive": true,
"RfidId": 7, "RfidId": 7,
@@ -279,7 +279,7 @@
"CanTurnLeft": true, "CanTurnLeft": true,
"CanTurnRight": true, "CanTurnRight": true,
"DisableCross": false, "DisableCross": false,
"SpeedLimit": 1, "SpeedLimit": 0,
"AliasName": "", "AliasName": "",
"IsActive": true, "IsActive": true,
"RfidId": 91, "RfidId": 91,
@@ -303,7 +303,7 @@
"CanTurnLeft": false, "CanTurnLeft": false,
"CanTurnRight": false, "CanTurnRight": false,
"DisableCross": false, "DisableCross": false,
"SpeedLimit": 1, "SpeedLimit": 0,
"AliasName": "BUFFER5", "AliasName": "BUFFER5",
"IsActive": true, "IsActive": true,
"RfidId": 35, "RfidId": 35,
@@ -327,7 +327,7 @@
"CanTurnLeft": false, "CanTurnLeft": false,
"CanTurnRight": false, "CanTurnRight": false,
"DisableCross": false, "DisableCross": false,
"SpeedLimit": 1, "SpeedLimit": 0,
"AliasName": "BUFFER6", "AliasName": "BUFFER6",
"IsActive": true, "IsActive": true,
"RfidId": 36, "RfidId": 36,
@@ -355,7 +355,7 @@
"CanTurnLeft": true, "CanTurnLeft": true,
"CanTurnRight": true, "CanTurnRight": true,
"DisableCross": false, "DisableCross": false,
"SpeedLimit": 1, "SpeedLimit": 0,
"AliasName": "TURN", "AliasName": "TURN",
"IsActive": true, "IsActive": true,
"RfidId": 3, "RfidId": 3,
@@ -461,7 +461,7 @@
"CanTurnLeft": false, "CanTurnLeft": false,
"CanTurnRight": false, "CanTurnRight": false,
"DisableCross": true, "DisableCross": true,
"SpeedLimit": 1, "SpeedLimit": 0,
"AliasName": "", "AliasName": "",
"IsActive": true, "IsActive": true,
"RfidId": 20, "RfidId": 20,
@@ -790,6 +790,6 @@
"BackgroundColorArgb": -14671840, "BackgroundColorArgb": -14671840,
"ShowGrid": false "ShowGrid": false
}, },
"CreatedDate": "2026-02-25T11:11:11.6577105+09:00", "CreatedDate": "2026-02-26T09:50:44.0545961+09:00",
"Version": "1.3" "Version": "1.3"
} }