1、增加Input料仓取料失败自动跳过功能。

2、增加Input料盘取料完成搬运到Empty前报警检查是否有产品。
develop
lhiven 3 weeks ago
parent d22ab75ed0
commit af57b09169

@ -22,7 +22,19 @@ namespace Rs.Framework
{ {
#region newpro #region newpro
/// <summary>
/// 料仓取料失败是否跳过
/// </summary>
[ParameterInit("bool", "true", "system", "料仓取料失败是否跳过")]
public static bool BinTakeFailSkip
{
get
{
return SysConfigParam.GetValue<bool>(nameof(BinTakeFailSkip));
}
}
/// <summary> /// <summary>
/// XY到位后延时 /// XY到位后延时
/// </summary> /// </summary>

@ -244,5 +244,11 @@ namespace Rs.MotionPlat.Flow
/// 二维码长度异常报警 /// 二维码长度异常报警
/// </summary> /// </summary>
public const int = 1049; public const int = 1049;
/// <summary>
/// Input料盘开始搬运到Empty前报警
/// </summary>
public const int InputEmpty = 1050;
} }
} }

@ -352,6 +352,11 @@ namespace Rs.MotionPlat.Flow
{ {
//先把轴移动到安全位 //先把轴移动到安全位
DischargeModuleGoSafePosFlow.Instance.GoSafePostion(); DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
alarmEntity = AlarmCollection.Get(AlarmConstID.InputEmpty);
if(alarmEntity!=null)
{
Msgbox.ShowDialog(alarmEntity, EButtonType.Ok, true);
}
TakeTrayFlow.Instance.Take(ETrayType.Input, ETrayType.Empty); TakeTrayFlow.Instance.Take(ETrayType.Input, ETrayType.Empty);
//GlobalTray.InputTray.ChangeStatus(ESlotStatus.Have); //GlobalTray.InputTray.ChangeStatus(ESlotStatus.Have);
takeSlotIndex = 1; takeSlotIndex = 1;

@ -252,43 +252,56 @@ namespace Rs.MotionPlat.Flow.SubFlow
} }
else else
{ {
AlarmEntity alarmEntity = AlarmCollection.Get(AlarmConstID.).Transform($"{curNozzle.NozzleIndex}",$"{waitTakeProductSlot.Row}",$"{waitTakeProductSlot.Column}",$"{waitTakeProductSlot.Index}"); if(GlobalVar.BinTakeFailSkip && trayType== ETrayType.Input)
EButtonType btnSelect = Msgbox.ShowDialog(alarmEntity,EButtonType.EndInput | EButtonType.Retry | EButtonType.Skip | EButtonType.Recheck,true);
switch (btnSelect)
{ {
case EButtonType.EndInput: logInfo = GetClassName() + $"{trayType} bin {waitTakeProductSlot.Index} take fail auto skip";
logInfo = GetClassName() + $"选择了结束上料"; MessageQueue.Instance.Insert(logInfo);
MessageQueue.Instance.Insert(logInfo); curNozzle.VacBreak(EIoOperate.Close, GetClassName());
GlobalVar.Clear = true; curNozzle.VacSuction(EIoOperate.Close, GetClassName());
finished = true; finished = true;
flowStep = EStockTakeFlowStep.; flowStep = EStockTakeFlowStep.;
break; }
case EButtonType.Retry: else
logInfo = GetClassName() + $"选择了重试"; {
MessageQueue.Instance.Insert(logInfo); AlarmEntity alarmEntity = AlarmCollection.Get(AlarmConstID.).Transform($"{curNozzle.NozzleIndex}", $"{waitTakeProductSlot.Row}", $"{waitTakeProductSlot.Column}", $"{waitTakeProductSlot.Index}");
curNozzle.VacBreak(EIoOperate.Close, GetClassName()); EButtonType btnSelect = Msgbox.ShowDialog(alarmEntity, EButtonType.EndInput | EButtonType.Retry | EButtonType.Skip | EButtonType.Recheck, true);
curNozzle.VacSuction(EIoOperate.Close, GetClassName()); switch (btnSelect)
//先把产品放下 {
//StockPlaceFlow.Instance.Place(ETrayType.Input, waitTakeProductSlot.Index, curNozzle.NozzleIndex); case EButtonType.EndInput:
flowStep = EStockTakeFlowStep.; logInfo = GetClassName() + $"选择了结束上料";
break; MessageQueue.Instance.Insert(logInfo);
case EButtonType.Recheck: GlobalVar.Clear = true;
logInfo = GetClassName() + $"选择了重新检查真空"; finished = true;
MessageQueue.Instance.Insert(logInfo); flowStep = EStockTakeFlowStep.;
flowStep = EStockTakeFlowStep.; break;
break; case EButtonType.Retry:
case EButtonType.Skip: logInfo = GetClassName() + $"选择了重试";
logInfo = GetClassName() + $"选择了跳过"; MessageQueue.Instance.Insert(logInfo);
curNozzle.VacBreak(EIoOperate.Close, GetClassName()); curNozzle.VacBreak(EIoOperate.Close, GetClassName());
curNozzle.VacSuction(EIoOperate.Close, GetClassName()); curNozzle.VacSuction(EIoOperate.Close, GetClassName());
MessageQueue.Instance.Insert(logInfo); //先把产品放下
finished = true; //StockPlaceFlow.Instance.Place(ETrayType.Input, waitTakeProductSlot.Index, curNozzle.NozzleIndex);
flowStep = EStockTakeFlowStep.; flowStep = EStockTakeFlowStep.;
break; break;
case EButtonType.Recheck:
default: logInfo = GetClassName() + $"选择了重新检查真空";
break; MessageQueue.Instance.Insert(logInfo);
flowStep = EStockTakeFlowStep.;
break;
case EButtonType.Skip:
logInfo = GetClassName() + $"选择了跳过";
curNozzle.VacBreak(EIoOperate.Close, GetClassName());
curNozzle.VacSuction(EIoOperate.Close, GetClassName());
MessageQueue.Instance.Insert(logInfo);
finished = true;
flowStep = EStockTakeFlowStep.;
break;
default:
break;
}
} }
} }
break; break;
} }

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

Loading…
Cancel
Save