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

master
lhiven 1 year ago
parent 426da01482
commit d8dd84ebe4

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

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

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