优化排料Z轴回原逻辑

master
lhiven 2 years ago
parent 3c83d01715
commit 09824bf014

@ -138,10 +138,10 @@ namespace Rs.MotionPlat.Flow
public bool IsReady()
{
return ((Input.Status == ETrayStatus.Loaded)
&& (Ok.Status == ETrayStatus.Loaded)
&& (Ng.Status == ETrayStatus.Loaded)
&& (Multi.Status == ETrayStatus.Loaded));
return (((Input.Status == ETrayStatus.Loaded || StockManager.instance.HasTray(EStockType.Input)))
&& (Ok.Status == ETrayStatus.Loaded || StockManager.instance.HasTray(EStockType.Ok))
&& (Ng.Status == ETrayStatus.Loaded || StockManager.instance.HasTray(EStockType.Ng))
&& (Multi.Status == ETrayStatus.Loaded || StockManager.instance.HasTray(EStockType.Multi)));
}
public void Stop()

@ -238,7 +238,8 @@ namespace Rs.MotionPlat.Flow
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Busying);
SiloRearrange info = JsonConvert.DeserializeObject<SiloRearrange>(json);
Send(info);
if(info.SiloType== SchedulingSiloBase.ESiloType.Multifunction)
Thread.Sleep(1000);
//if(info.SiloType== SchedulingSiloBase.ESiloType.Multifunction)
{
TurnoverInfos tis = new TurnoverInfos();
tis.GroupID = 0;
@ -246,42 +247,42 @@ namespace Rs.MotionPlat.Flow
Send(tis);
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
}
else if(info.SiloType== SchedulingSiloBase.ESiloType.Passed)
{
TraySlot ts = GlobalTray.OkTary.GetSlot(Controls.ESlotStatus.NotHave);
if((ts.Index-1)%10==0)
{
TurnoverInfos tis = new TurnoverInfos();
tis.GroupID = 0;
tis.Instruction = EInstruction.RearrangeResult;
Send(tis);
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
}
else
{
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Passed, ts.Index-1, StockManager.Instance.GetTray(EStockType.Ok).GetFloor());
RearrangeTask.AddRanage(rearrangeList);
RearrangeFlow.Instance.Start();
}
}
else if (info.SiloType == SchedulingSiloBase.ESiloType.Failed)
{
TraySlot ts = GlobalTray.NgTray.GetSlot(ESlotStatus.NotHave);
if ((ts.Index-1) % 10 == 0)
{
TurnoverInfos tis = new TurnoverInfos();
tis.GroupID = 0;
tis.Instruction = EInstruction.RearrangeResult;
Send(tis);
MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
}
else
{
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Failed, ts.Index-1, StockManager.Instance.GetTray(EStockType.Ng).GetFloor());
RearrangeTask.AddRanage(rearrangeList);
RearrangeFlow.Instance.Start();
}
}
//else if(info.SiloType== SchedulingSiloBase.ESiloType.Passed)
//{
// TraySlot ts = GlobalTray.OkTary.GetSlot(Controls.ESlotStatus.NotHave);
// if((ts.Index-1)%10==0)
// {
// TurnoverInfos tis = new TurnoverInfos();
// tis.GroupID = 0;
// tis.Instruction = EInstruction.RearrangeResult;
// Send(tis);
// MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
// }
// else
// {
// List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Passed, ts.Index-1, StockManager.Instance.GetTray(EStockType.Ok).GetFloor());
// RearrangeTask.AddRanage(rearrangeList);
// RearrangeFlow.Instance.Start();
// }
//}
//else if (info.SiloType == SchedulingSiloBase.ESiloType.Failed)
//{
// TraySlot ts = GlobalTray.NgTray.GetSlot(ESlotStatus.NotHave);
// if ((ts.Index-1) % 10 == 0)
// {
// TurnoverInfos tis = new TurnoverInfos();
// tis.GroupID = 0;
// tis.Instruction = EInstruction.RearrangeResult;
// Send(tis);
// MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
// }
// else
// {
// List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Failed, ts.Index-1, StockManager.Instance.GetTray(EStockType.Ng).GetFloor());
// RearrangeTask.AddRanage(rearrangeList);
// RearrangeFlow.Instance.Start();
// }
//}
}
private void LoadAndUnload(string json)

@ -836,7 +836,7 @@ namespace Rs.MotionPlat.Flow
MessageQueue.Instance.Insert($"打开{curNozzle.NozzleIndex}号排料吸嘴真空破");
Ops.On($"{curNozzle.NozzleIndex}号吸嘴真空破电磁阀");
Thread.Sleep(GlobalVar.LoadNozzleOpenVacBreakDelaytime);
flowStep = EWorkFlowStep.;
}
else
{
@ -935,8 +935,8 @@ namespace Rs.MotionPlat.Flow
case EWorkFlowStep.:
logInfo = "放料任务完成";
MessageQueue.Instance.Insert(logInfo);
AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").Home();
MessageQueue.Instance.Insert($"{curNozzle.NozzleIndex}号排料吸嘴回原");
//AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").Home();
//MessageQueue.Instance.Insert($"{curNozzle.NozzleIndex}号排料吸嘴回原");
//Ops.HomeAndGoStartPos($"NozzleR{NozzleIndex}");
if (curNozzle.ToType == TurnoverType.Turnover)
{
@ -986,11 +986,19 @@ namespace Rs.MotionPlat.Flow
break;
case EWorkFlowStep.:
logInfo = "排料任务结束到安全位";
MessageQueue.Instance.Insert(logInfo);
errCode = AxisControl.LoadX.MovePos(SysConfigParam.GetValue<double>("LoadXStartPos"), GlobalVar.WholeSpeed);
if(errCode== ErrorCode.Ok || GlobalVar.VirtualAxis)
{
AxisControl.GetAxis($"NozzleZ1").Home();
AxisControl.GetAxis($"NozzleZ2").Home();
AxisControl.GetAxis($"NozzleZ3").Home();
AxisControl.GetAxis($"NozzleZ4").Home();
AxisControl.GetAxis($"NozzleZ5").Home();
AxisControl.GetAxis($"NozzleZ6").Home();
AxisControl.GetAxis($"NozzleZ7").Home();
AxisControl.GetAxis($"NozzleZ8").Home();
AxisControl.GetAxis($"NozzleZ9").Home();
errCode = AxisControl.LoadY.MovePos(SysConfigParam.GetValue<double>("LoadYStartPos"), GlobalVar.WholeSpeed);
if(errCode== ErrorCode.Ok || GlobalVar.VirtualAxis)
{
@ -998,6 +1006,8 @@ namespace Rs.MotionPlat.Flow
{
Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
}
logInfo = "排料任务结束到安全位";
MessageQueue.Instance.Insert(logInfo);
flowStep = EWorkFlowStep.;
}
else
@ -1264,9 +1274,9 @@ namespace Rs.MotionPlat.Flow
private void MoveFailAlarm(string axisname,ErrorCode _errCode)
{
string alarmStr = $"轴{axisname}运动异常,ret={_errCode}";
TestCenterMessageBox.Show(AlarmConstID.MoveFailAlarm, alarmInfo, ETipButton.Ok);
SchedulingMessageBox box = TestCenterMessageBox.WaitResult(AlarmConstID.MoveFailAlarm);
//string alarmStr = $"轴{axisname}运动异常,ret={_errCode}";
//TestCenterMessageBox.Show(AlarmConstID.MoveFailAlarm, alarmStr, ETipButton.Ok);
//SchedulingMessageBox box = TestCenterMessageBox.WaitResult(AlarmConstID.MoveFailAlarm);
}
/// <summary>

Loading…
Cancel
Save