Commit 28ae4782 张东亮

添加校准库位缓存,以在复位时处理校准库位的料。出入库状态在料串动作时就开始变化

1 个父辈 52856290
...@@ -459,16 +459,15 @@ namespace DeviceLibrary ...@@ -459,16 +459,15 @@ namespace DeviceLibrary
boxTransport.Reset(); boxTransport.Reset();
ResetMoveInfo.log("回原完成"); ResetMoveInfo.log("回原完成");
ResetMoveInfo.EndMove(); ResetMoveInfo.EndMove();
if ((RobotManage.HasReelInFixPos(out ReelParam reelParam)) && boxTransport.IsComplateOrFree && ClampMoveInfo.MoveStep == MoveStep.Wait && ConfigHelper.Config.Get("Device_Use_Fixpos", false)) if ((RobotManage.HasReelInFixPos(out ReelParam reelParam))
&& boxTransport.IsComplateOrFree &&
ClampMoveInfo.MoveStep == MoveStep.Wait && ConfigHelper.Config.Get("Device_Use_Fixpos", false)
&& IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
{ {
StoreMoveInfo.NewMove(MoveStep.StoreOut_NGPre); var pos = BoxStorePosition.GetFixPos(Config, reelParam);
StoreMoveInfo.MoveParam = reelParam.clone(); LogUtil.info($"复位完成,校准库位出库:{pos.posid}");
StoreMoveInfo.MoveParam.PosID = "NG"; RobotManage.mainMachine.AddSingleStoreTask("", pos.posid, reelParam.PlateW, reelParam.PlateH);
StoreMoveInfo.MoveParam.IsNg = true; RobotManage.ClearReelInFixPos();
StoreMoveInfo.MoveParam.NgMsg = "检测到校准库位有料盘信息,请人工确认";
StoreMoveInfo.log($"开始校准库位料盘出库");
ServerCM.storeStatus = StoreStatus.OutStoreExecute;
//CloseFlipDoor(StoreMoveInfo);
} }
runStatus = RunStatus.Running; runStatus = RunStatus.Running;
ServerCM.storeStatus = StoreStatus.StoreOnline; ServerCM.storeStatus = StoreStatus.StoreOnline;
......
...@@ -15,13 +15,14 @@ namespace DeviceLibrary ...@@ -15,13 +15,14 @@ namespace DeviceLibrary
{ {
StoreJobList OutStoreJobList = new StoreJobList("批量"); StoreJobList OutStoreJobList = new StoreJobList("批量");
StoreJobList OutSingleJobList = new StoreJobList("单盘"); StoreJobList OutSingleJobList = new StoreJobList("单盘");
public bool HasJob { get => OutStoreJobList.Count > 0 || OutSingleJobList.Count>0; } public bool HasJob { get => OutStoreJobList.Count > 0 || OutSingleJobList.Count > 0; }
public void AddOutStoreTask(string warecode, string posId,int plateW,int plateH) { public void AddOutStoreTask(string warecode, string posId, int plateW, int plateH)
JobInfo jobInfo = new JobInfo(warecode, posId,plateW,plateH); {
JobInfo jobInfo = new JobInfo(warecode, posId, plateW, plateH);
OutStoreJobList.Enqueue(jobInfo); OutStoreJobList.Enqueue(jobInfo);
LogUtil.info($"添加出库任务队列: {posId},当前任务数量: {OutStoreJobList.Count}"); LogUtil.info($"添加出库任务队列: {posId},当前任务数量: {OutStoreJobList.Count}");
} }
public void AddSingleStoreTask(string warecode,string posId, int plateW, int plateH) public void AddSingleStoreTask(string warecode, string posId, int plateW, int plateH)
{ {
JobInfo jobInfo = new JobInfo(warecode, posId, plateW, plateH); JobInfo jobInfo = new JobInfo(warecode, posId, plateW, plateH);
OutSingleJobList.Enqueue(jobInfo); OutSingleJobList.Enqueue(jobInfo);
...@@ -85,7 +86,8 @@ namespace DeviceLibrary ...@@ -85,7 +86,8 @@ namespace DeviceLibrary
ServerCM.storeStatus = StoreStatus.OutStoreExecute; ServerCM.storeStatus = StoreStatus.OutStoreExecute;
} }
} }
else if (OutStoreJobList.Count > 0 && !IsBatchDoorClosed) { else if (OutStoreJobList.Count > 0 && !IsBatchDoorClosed)
{
Msg.add("出库任务等待关闭批量舱门", MsgLevel.warning); Msg.add("出库任务等待关闭批量舱门", MsgLevel.warning);
} }
//判断有没有出库任务, 需要入库空闲, 出口空闲 //判断有没有出库任务, 需要入库空闲, 出口空闲
...@@ -96,7 +98,7 @@ namespace DeviceLibrary ...@@ -96,7 +98,7 @@ namespace DeviceLibrary
if (!boxTransport.IgnoreX09 && IOMonitor.IODebound(IO_Type.TrayCheck_Fixture, Config, IO_VALUE.HIGH, 5000)) if (!boxTransport.IgnoreX09 && IOMonitor.IODebound(IO_Type.TrayCheck_Fixture, Config, IO_VALUE.HIGH, 5000))
{ {
Msg.add("收到出库任务,但料叉上有料,无法启动,请检查", MsgLevel.alarm, ErrInfo.X09_BoxNotDetect); Msg.add("收到出库任务,但料叉上有料,无法启动,请检查", MsgLevel.alarm, ErrInfo.X09_BoxNotDetect);
} }
else else
Msg.add("收到出库任务,但料叉上有料,无法启动,请检查", MsgLevel.warning); Msg.add("收到出库任务,但料叉上有料,无法启动,请检查", MsgLevel.warning);
...@@ -120,9 +122,10 @@ namespace DeviceLibrary ...@@ -120,9 +122,10 @@ namespace DeviceLibrary
case MoveStep.StoreIn01: case MoveStep.StoreIn01:
if (!StoreMoveInfo.MoveParam.IsNg && !ServerCM.SendStoreState(StoreMoveInfo.MoveParam.PosID, StoreStatus.InStoreExecute)) if (!StoreMoveInfo.MoveParam.IsNg && !ServerCM.SendStoreState(StoreMoveInfo.MoveParam.PosID, StoreStatus.InStoreExecute))
{ {
Msg.add("服务器连接异常",MsgLevel.warning); Msg.add("服务器连接异常", MsgLevel.warning);
return; return;
} }
ServerCM.storeStatus = StoreStatus.InStoreExecute;
StoreMoveInfo.NextMoveStep(MoveStep.StoreIn03); StoreMoveInfo.NextMoveStep(MoveStep.StoreIn03);
if (StoreMoveInfo.MoveParam.IsNg) if (StoreMoveInfo.MoveParam.IsNg)
...@@ -131,9 +134,9 @@ namespace DeviceLibrary ...@@ -131,9 +134,9 @@ namespace DeviceLibrary
{ {
var ac = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID); var ac = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID);
boxTransport.Start(new BoxStorePosition(Config, StoreMoveInfo.MoveParam.ReelOnFixture? StoreSide.NGDoor:StoreSide.Clamp, StoreMoveInfo.MoveParam), new BoxStorePosition(Config, ac, StoreMoveInfo.MoveParam), StoreMoveType.InStore, true); boxTransport.Start(new BoxStorePosition(Config, StoreMoveInfo.MoveParam.ReelOnFixture ? StoreSide.NGDoor : StoreSide.Clamp, StoreMoveInfo.MoveParam), new BoxStorePosition(Config, ac, StoreMoveInfo.MoveParam), StoreMoveType.InStore, true);
} }
StoreMoveInfo.log($"开始转运料盘"); StoreMoveInfo.log($"开始转运料盘");
break; break;
case MoveStep.StoreIn02: case MoveStep.StoreIn02:
break; break;
...@@ -160,7 +163,7 @@ namespace DeviceLibrary ...@@ -160,7 +163,7 @@ namespace DeviceLibrary
StoreMoveInfo.log($"料盘已到达目的地"); StoreMoveInfo.log($"料盘已到达目的地");
if (StoreMoveInfo.MoveParam.IsNg) if (StoreMoveInfo.MoveParam.IsNg)
{ {
NGPuted(StoreMoveInfo.MoveParam.NgMsg); NGPuted(StoreMoveInfo.MoveParam.NgMsg);
} }
StoreMoveInfo.NextMoveStep(MoveStep.StoreIn05); StoreMoveInfo.NextMoveStep(MoveStep.StoreIn05);
} }
...@@ -185,15 +188,16 @@ namespace DeviceLibrary ...@@ -185,15 +188,16 @@ namespace DeviceLibrary
Msg.add("服务器连接异常", MsgLevel.warning); Msg.add("服务器连接异常", MsgLevel.warning);
return; return;
} }
ServerCM.storeStatus = StoreStatus.OutStoreExecute;
StoreMoveInfo.NextMoveStep(MoveStep.StoreOut11); StoreMoveInfo.NextMoveStep(MoveStep.StoreOut11);
var outFrom = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID); var outFrom = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID);
BoxStorePosition outTo; BoxStorePosition outTo;
if (StoreMoveInfo.MoveParam.IsNg) if (StoreMoveInfo.MoveParam.IsNg)
outTo = new BoxStorePosition(Config, StoreSide.NGDoor, StoreMoveInfo.MoveParam); outTo = new BoxStorePosition(Config, StoreSide.NGDoor, StoreMoveInfo.MoveParam);
else else
outTo = new BoxStorePosition(Config, StoreSide.String, StoreMoveInfo.MoveParam); outTo = new BoxStorePosition(Config, StoreSide.String, StoreMoveInfo.MoveParam);
boxTransport.Start(outFrom == null ? null : new BoxStorePosition(Config, outFrom, StoreMoveInfo.MoveParam), outTo, StoreMoveType.OutStore); boxTransport.Start(outFrom == null ? null : new BoxStorePosition(Config, outFrom, StoreMoveInfo.MoveParam), outTo, StoreMoveType.OutStore);
StoreMoveInfo.log($"开始转运料盘{(StoreMoveInfo.MoveParam.IsNg ? "单料口" : "料串")}"); StoreMoveInfo.log($"开始转运料盘{(StoreMoveInfo.MoveParam.IsNg ? "单料口" : "料串")}");
break; break;
case MoveStep.StoreOut11: case MoveStep.StoreOut11:
...@@ -220,10 +224,10 @@ namespace DeviceLibrary ...@@ -220,10 +224,10 @@ namespace DeviceLibrary
Msg.add("服务器连接异常", MsgLevel.warning); Msg.add("服务器连接异常", MsgLevel.warning);
return; return;
} }
StoreMoveInfo.log($"料盘已到达目的地"); StoreMoveInfo.log($"料盘已到达目的地");
if (StoreMoveInfo.MoveParam.IsNg) if (StoreMoveInfo.MoveParam.IsNg)
{ {
NGPuted(StoreMoveInfo.MoveParam.NgMsg); NGPuted(StoreMoveInfo.MoveParam.NgMsg);
OutSingleJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID); OutSingleJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID);
} }
...@@ -232,7 +236,7 @@ namespace DeviceLibrary ...@@ -232,7 +236,7 @@ namespace DeviceLibrary
ReelPutted(StoreMoveInfo.MoveParam.PlateH); ReelPutted(StoreMoveInfo.MoveParam.PlateH);
OutStoreJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID); OutStoreJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID);
} }
StoreMoveInfo.EndMove(); StoreMoveInfo.EndMove();
} }
break; break;
...@@ -241,8 +245,9 @@ namespace DeviceLibrary ...@@ -241,8 +245,9 @@ namespace DeviceLibrary
break; break;
} }
} }
string StoreState() { string StoreState()
string state = crc.GetString(L.free,"空闲中"); {
string state = crc.GetString(L.free, "空闲中");
if (StoreMoveInfo.MoveStep >= MoveStep.StoreOut10) if (StoreMoveInfo.MoveStep >= MoveStep.StoreOut10)
{ {
state = $"{crc.GetString(L.reel_outting, "出库中")},{crc.GetString(L.posnum, "出库中")}:{StoreMoveInfo.MoveParam.PosID}"; state = $"{crc.GetString(L.reel_outting, "出库中")},{crc.GetString(L.posnum, "出库中")}:{StoreMoveInfo.MoveParam.PosID}";
......
...@@ -141,6 +141,14 @@ namespace DeviceLibrary ...@@ -141,6 +141,14 @@ namespace DeviceLibrary
Batch_Axis.AbsMove(StringMoveInfo, Config.Batch_P1, Config.Batch_P1_speed); Batch_Axis.AbsMove(StringMoveInfo, Config.Batch_P1, Config.Batch_P1_speed);
break; break;
case MoveStep.StringLoad_01: case MoveStep.StringLoad_01:
if(StringState== StringStateE.OutStore)
{
ServerCM.storeStatus = StoreStatus.OutStoreExecute;
}
else if(StringState== StringStateE.InStore)
{
ServerCM.storeStatus = StoreStatus.InStoreExecute;
}
StringMoveInfo.NextMoveStep(MoveStep.StringLoad_01a); StringMoveInfo.NextMoveStep(MoveStep.StringLoad_01a);
StringMoveInfo.log($"批量轴到待机点"); StringMoveInfo.log($"批量轴到待机点");
Batch_Axis.AbsMove(StringMoveInfo, Config.Batch_P1, Config.Batch_P1_speed); Batch_Axis.AbsMove(StringMoveInfo, Config.Batch_P1, Config.Batch_P1_speed);
...@@ -408,6 +416,7 @@ namespace DeviceLibrary ...@@ -408,6 +416,7 @@ namespace DeviceLibrary
case MoveStep.StringOut_Released: case MoveStep.StringOut_Released:
StringMoveInfo.log($"料串已回到待机点"); StringMoveInfo.log($"料串已回到待机点");
ServerCM.storeStatus = StoreStatus.StoreOnline;
StringMoveInfo.NewMove(MoveStep.Wait); StringMoveInfo.NewMove(MoveStep.Wait);
break; break;
case MoveStep.StringOut_07: case MoveStep.StringOut_07:
......
...@@ -186,7 +186,7 @@ namespace DeviceLibrary ...@@ -186,7 +186,7 @@ namespace DeviceLibrary
reelParam = null; reelParam = null;
try try
{ {
string fix = ConfigHelper.Config.Get(Setting_Init.FixBuffInfo, ""); string fix = Setting_Init.FixBuffInfo;
if (!string.IsNullOrEmpty(fix)) if (!string.IsNullOrEmpty(fix))
{ {
reelParam = JsonHelper.DeserializeJsonToObject<ReelParam>(fix); reelParam = JsonHelper.DeserializeJsonToObject<ReelParam>(fix);
...@@ -201,11 +201,13 @@ namespace DeviceLibrary ...@@ -201,11 +201,13 @@ namespace DeviceLibrary
} }
public static void PutReelInFixPos(ReelParam reelParam) public static void PutReelInFixPos(ReelParam reelParam)
{ {
ConfigHelper.Config.Set(Setting_Init.FixBuffInfo, JsonHelper.SerializeObject(reelParam)); string buff= JsonHelper.SerializeObject(reelParam);
Setting_Init.FixBuffInfo=buff;
LogUtil.info(buff);
} }
public static void ClearReelInFixPos() public static void ClearReelInFixPos()
{ {
ConfigHelper.Config.Set(Setting_Init.FixBuffInfo, ""); Setting_Init.FixBuffInfo = "";
} }
#endregion #endregion
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!