优化重排取料失败时,点击弹框按钮没有动作

master
lhiven 1 year ago
parent 426da01482
commit d8dd84ebe4

@ -243,7 +243,6 @@ namespace Rs.MotionPlat.Flow
{
logInfo = $"检测到还有条任务未执行,继续执行";
MessageQueue.Instance.Insert(logInfo);
LogHelper.Debug(logInfo);
flowStep = ERearrangeFlowStep.;
}
else
@ -262,7 +261,7 @@ namespace Rs.MotionPlat.Flow
if (FetchNum >= GlobalVar.DischargeRetakeNum)
{
DischargeDumpFlow.Instance.Start(curTask.FromType, curNozzle.NozzleIndex, curNozzle.FromIndex);
alarmInfo = string.Format(AlarmCollection.GetAlarm(AlarmConstID.tray), curNozzle.NozzleIndex, curNozzle.FromIndex + 1);
alarmInfo = string.Format(AlarmCollection.GetAlarm(AlarmConstID.tray), curNozzle.NozzleIndex, curTask.FromIndex + 1);
flowStep = ERearrangeFlowStep.;
}
else
@ -285,14 +284,14 @@ namespace Rs.MotionPlat.Flow
case ETipButton.Retry:
logInfo = GetClassName() + $"选择了重试,继续取料";
MessageQueue.Instance.Insert(logInfo);
if (curTask.FromType == TurnoverType.ToBeTested)
//if (curTask.FromType == TurnoverType.ToBeTested)
{
//检测料盘是否在上料位,在上料位则继续取料,不在上料位,则通知料仓把料盘送到上料位
if (!StockManager.Instance.GetStock(ETrayType.Input).HasTray())
if (!StockManager.Instance.GetStock(traytype).HasTray())
{
logInfo = GetClassName() + $"检测到料盘不在就绪状态,上料盘";
MessageQueue.Instance.Insert(logInfo);
StockManager.Instance.GetStock(ETrayType.Input).Load(EStockTrayLoadMode.AfterBacked, null);//.Load(EStockType.Input, EStockTrayLoadMode.AfterBacked);
StockManager.Instance.GetStock(traytype).Load(EStockTrayLoadMode.AfterBacked, null);//.Load(EStockType.Input, EStockTrayLoadMode.AfterBacked);
}
}
FetchNum = 0;
@ -310,50 +309,48 @@ namespace Rs.MotionPlat.Flow
logInfo = GetClassName() + $"上料完成,通知相机拍照,检测产品是否已拿走";
MessageQueue.Instance.Insert(logInfo);
}
haveProduct = UpCameraCheckFlow.Instance.CheckStockTrayHasProduct(traytype, curNozzle.FromIndex + 1, true);
haveProduct = UpCameraCheckFlow.Instance.CheckStockTrayHasProduct(traytype, curTask.FromIndex + 1, true);
if (!haveProduct.HasProduct)
{
logInfo = GetClassName() + "检测到产品已拿走,流程继续";
MessageQueue.Instance.Insert(logInfo);
FetchNum = 0;
curTask.Dealed= true;
//执行料仓Tray取料NG时的处理流程流程处理结束后流程继续
GlobalTray.GetTray(traytype).ChangeStatus(curNozzle.FromIndex + 1, ESlotStatus.NotHave);
GlobalTray.GetTray(traytype).ChangeStatus(curTask.FromIndex + 1, ESlotStatus.NotHave);
if (RearrangeTask.HasTask() && NozzleManager.GetNozzlesByStatus(ENozzleStatus.IDLE).Count > 0)
{
flowStep = ERearrangeFlowStep.;
}
else
{
if(NozzleManager.GetToUnloadNozzle()!=null)
{
flowStep = ERearrangeFlowStep.;
}
else
{
flowStep = ERearrangeFlowStep.;
}
}
}
else
{
alarmInfo = $"检测到{curNozzle.FromIndex + 1}号穴位产品未取出,请处理";
alarmInfo = $"检测到{curTask.FromIndex + 1}号穴位产品未取出,请处理";
flowStep = ERearrangeFlowStep.;
}
break;
case ETipButton.Yes://移动到安全位
//通知料仓把料盘退回到安全位
if (curTask.FromType == TurnoverType.ToBeTested)
{
logInfo = GetClassName() + "选择了移动到安全位";
MessageQueue.Instance.Insert(logInfo);
logInfo = GetClassName() + $"通知料仓把料盘退回到安全位";
MessageQueue.Instance.Insert(logInfo);
StockManager.Instance.GetStock(ETrayType.Input).Unload(EStockTrayUnLoadMode.Back, null);//.UnLoad(EStockType.Input, EStockTrayUnLoadMode.Back);
//StockManager.Instance.Wait(EStockType.Input);
StockManager.Instance.GetStock(traytype).Unload(EStockTrayUnLoadMode.Back, null);//.UnLoad(EStockType.Input, EStockTrayUnLoadMode.Back);
logInfo = GetClassName() + $"料仓已退回到安全位";
MessageQueue.Instance.Insert(logInfo);
}
else if (curTask.FromType == TurnoverType.Turnover)
{
logInfo = GetClassName() + $"通知排料头回安全位";
MessageQueue.Instance.Insert(logInfo);
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
logInfo = GetClassName() + $"排料头已回到安全位";
MessageQueue.Instance.Insert(logInfo);
}
alarmInfo = $"已运动到安全位,{curNozzle.NozzleIndex}号排料吸嘴取{curNozzle.FromIndex}号穴位产品次失败,请处理";
alarmInfo = $"已运动到安全位,{curNozzle.NozzleIndex}号排料吸嘴取{curTask.FromIndex+1}号穴位产品次失败,请处理";
flowStep = ERearrangeFlowStep.;
break;
default:

@ -116,14 +116,15 @@ namespace Rs.MotionPlat.Flow
private void Client_DataRecived(System.Net.Sockets.Socket socket, byte[] data)
{
string msg = Encoding.UTF8.GetString(data);
try
{
foreach (string json in Scheduling.GetJsons(msg))
{
Scheduling schedule = JsonConvert.DeserializeObject<Scheduling>(json);
EInstruction eInstructioneInstruction = schedule.Instruction;
if(eInstructioneInstruction!= EInstruction.InquireStatus)
if (eInstructioneInstruction != EInstruction.InquireStatus)
{
LogHelper.Debug(" >>> " +json);
LogHelper.Debug(" >>> " + json);
}
switch (eInstructioneInstruction)
{
@ -135,7 +136,7 @@ namespace Rs.MotionPlat.Flow
Ops.Stop();
break;
case EInstruction.TestFinished:
MessageQueue.Instance.Insert("测试完成:"+JsonConvert.SerializeObject(schedule, new StringEnumConverter()));
MessageQueue.Instance.Insert("测试完成:" + JsonConvert.SerializeObject(schedule, new StringEnumConverter()));
ReportToTestCenter(schedule);
MachineManage.Instance.TestStatus = ETestStatus.Finished;
break;
@ -246,12 +247,12 @@ namespace Rs.MotionPlat.Flow
case EInstruction.SetAlarms:
break;
case EInstruction.CancelAlarms:
SchedulingAlarms alarms= JsonConvert.DeserializeObject<SchedulingAlarms>(msg);
if(alarms!=null&&alarms.Alarms!=null&&alarms.Alarms.Count>0)
SchedulingAlarms alarms = JsonConvert.DeserializeObject<SchedulingAlarms>(msg);
if (alarms != null && alarms.Alarms != null && alarms.Alarms.Count > 0)
{
foreach (AlarmItem alarm in alarms.Alarms)
{
if(!alarmInfos.ContainsKey(alarm.NO))
if (!alarmInfos.ContainsKey(alarm.NO))
{
alarmInfos.Add(alarm.NO, alarm);
}
@ -267,8 +268,12 @@ namespace Rs.MotionPlat.Flow
}
}
}
catch (Exception ex)
{
LogHelper.Debug("receivedata:" + msg);
LogHelper.Debug("接收数据异常:"+ex.Message);
}
//string msg=Encoding.UTF8.GetString(data);
//LogHelper.TestCenterLog("接收:"+msg);
//ReciveTaskEvent?.Invoke(msg);
@ -297,6 +302,13 @@ namespace Rs.MotionPlat.Flow
SiloRearrange info = JsonConvert.DeserializeObject<SiloRearrange>(json);
ReportToTestCenter(info);
Thread.Sleep(200);
//TurnoverInfos tis = new TurnoverInfos();
//tis.GroupID = 0;
//tis.Instruction = EInstruction.RearrangeResult;
//ReportToTestCenter(tis);
//MachineManage.Instance.SetLoadUnloadStatus(ERunState.Waiting);
//return;
if (info.SiloType == SchedulingSiloBase.ESiloType.Multifunction)
{
TraySlot ts = GlobalTray.MultiTray.GetSlot(Controls.ESlotStatus.NotHave);
@ -310,15 +322,18 @@ namespace Rs.MotionPlat.Flow
}
else
{
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Multifunction,TurnoverType.Multifunction, GlobalTray.MultiTray, ts, 1);
Task.Run(() => {
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Multifunction, TurnoverType.Multifunction, GlobalTray.MultiTray, ts, 1);
RearrangeTask.AddRanage(rearrangeList);
RearrangeFlow.Instance.Rearrange();
});
}
}
else if (info.SiloType == SchedulingSiloBase.ESiloType.Passed)
{
TraySlot ts = GlobalTray.OkTary.GetSlot(Controls.ESlotStatus.NotHave);
if (ts==null || ts.Column==0)//无需重排
if (ts == null || ts.Column == 0)//无需重排
{
TurnoverInfos tis = new TurnoverInfos();
tis.GroupID = 0;
@ -328,9 +343,13 @@ namespace Rs.MotionPlat.Flow
}
else
{
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Passed,TurnoverType.Passed, GlobalTray.OkTary, ts, 1);
Task.Run(() => {
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Passed, TurnoverType.Passed, GlobalTray.OkTary, ts, 1);
RearrangeTask.AddRanage(rearrangeList);
RearrangeFlow.Instance.Rearrange();
});
}
}
else if (info.SiloType == SchedulingSiloBase.ESiloType.Failed)
@ -346,9 +365,12 @@ namespace Rs.MotionPlat.Flow
}
else
{
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Failed,TurnoverType.Failed, GlobalTray.NgTray,ts, 1);
Task.Run(() => {
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Failed, TurnoverType.Failed, GlobalTray.NgTray, ts, 1);
RearrangeTask.AddRanage(rearrangeList);
RearrangeFlow.Instance.Rearrange();
});
}
}
}

@ -31,6 +31,6 @@ using System.Runtime.InteropServices;
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
[assembly: AssemblyVersion("2.20.24.5")]
[assembly: AssemblyVersion("2.20.24.8")]
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]

@ -86,7 +86,7 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>bin\Debug\Rs.DataAccess.dll</HintPath>
</Reference>
<Reference Include="Rs.Framework, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="Rs.Framework, Version=1.0.8797.30368, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>bin\Debug\Rs.Framework.dll</HintPath>
</Reference>
@ -715,6 +715,5 @@
<ItemGroup>
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Loading…
Cancel
Save