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

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,7 +116,8 @@ 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);
@ -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,9 +322,12 @@ namespace Rs.MotionPlat.Flow
} }
else else
{ {
Task.Run(() => {
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Multifunction, TurnoverType.Multifunction, GlobalTray.MultiTray, ts, 1); 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)
@ -328,9 +343,13 @@ namespace Rs.MotionPlat.Flow
} }
else else
{ {
Task.Run(() => {
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Passed, TurnoverType.Passed, GlobalTray.OkTary, ts, 1); 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
{ {
Task.Run(() => {
List<TurnoverInfo> rearrangeList = RearrangeManager.GeneralRearrangeTask(TurnoverType.Failed, TurnoverType.Failed, GlobalTray.NgTray, ts, 1); 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