|
|
|
@ -58,8 +58,8 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
周转盘放料位真空检测,
|
|
|
|
|
放料完成抬起,
|
|
|
|
|
等待放料完成抬起,
|
|
|
|
|
粘料检测,
|
|
|
|
|
放料真空检测,
|
|
|
|
|
粘料检测,
|
|
|
|
|
周转盘放料真空报警,
|
|
|
|
|
放料任务完成,
|
|
|
|
|
任务结束到安全位,
|
|
|
|
@ -1371,12 +1371,31 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName()+$"排料吸嘴{curNozzle.NozzleIndex}号{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}放料完成已起位";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
if(curNozzle.ToType== TurnoverType.Turnover)
|
|
|
|
|
{
|
|
|
|
|
flowStep = EDischargeFlowStep.放料真空检测;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
flowStep = EDischargeFlowStep.粘料检测;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EDischargeFlowStep.粘料检测:
|
|
|
|
|
case EDischargeFlowStep.放料真空检测:
|
|
|
|
|
if (curNozzle.ToType == TurnoverType.Turnover)
|
|
|
|
|
{
|
|
|
|
|
if (Ops.IsOn($"周转盘{curNozzle.ToIndex + 1}号穴位真空吸检测") || GlobalVar.RunSpace)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"周转盘{curNozzle.ToIndex + 1}号穴位真空吸检测OK";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//打开真空吸
|
|
|
|
|
curNozzle.VacSuction(EIoOperate.Open);
|
|
|
|
|
//如果粘料
|
|
|
|
|
if (curNozzle.HasProduct())
|
|
|
|
|
{
|
|
|
|
|
bool skip = false;
|
|
|
|
@ -1412,27 +1431,14 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号SN={curNozzle.SN}放{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
curNozzle.VacSuction(EIoOperate.Close);
|
|
|
|
|
flowStep = EDischargeFlowStep.放料真空检测;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EDischargeFlowStep.放料真空检测:
|
|
|
|
|
if (curNozzle.ToType == TurnoverType.Turnover)
|
|
|
|
|
{
|
|
|
|
|
if (Ops.IsOn($"周转盘{curNozzle.ToIndex + 1}号穴位真空吸检测") || GlobalVar.RunSpace)
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName()+$"周转盘{curNozzle.ToIndex + 1}号穴位真空吸检测OK";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//如果没有粘料,说明产品放下去了,这个时候用相机检测产品是否在穴位种
|
|
|
|
|
UpCameraScanBarCodeFlow.Instance.ScanSingle(curNozzle.ToIndex + 1, true);
|
|
|
|
|
VisionResult vr = UpCameraScanBarCodeFlow.Instance.WaitSingle();
|
|
|
|
|
if (UpCameraScanBarCodeFlow.Instance.CheckResult(vr))
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号SN={curNozzle.SN}放{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
curNozzle.VacSuction(EIoOperate.Close);
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -1463,6 +1469,9 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
vr = UpCameraScanBarCodeFlow.Instance.WaitSingle();
|
|
|
|
|
if (UpCameraScanBarCodeFlow.Instance.CheckResult(vr))
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号SN={curNozzle.SN}放{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
curNozzle.VacSuction(EIoOperate.Close);
|
|
|
|
|
exit = true;
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
@ -1505,11 +1514,52 @@ namespace Rs.MotionPlat.Flow
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case EDischargeFlowStep.粘料检测:
|
|
|
|
|
//打开真空吸
|
|
|
|
|
curNozzle.VacSuction(EIoOperate.Open);
|
|
|
|
|
if(curNozzle.HasProduct())
|
|
|
|
|
{
|
|
|
|
|
bool skip = false;
|
|
|
|
|
while(!skip)
|
|
|
|
|
{
|
|
|
|
|
//粘料报警,提示用户粘料,移动到安全位,或者点击跳过
|
|
|
|
|
//alarmInfo = $"排料{curNozzle.NozzleIndex}号吸嘴可能粘料,请查看吸嘴状态后处理";
|
|
|
|
|
alarmInfo = string.Format(AlarmCollection.GetAlarm(AlarmConstID.排料头粘料报警), curNozzle.NozzleIndex);
|
|
|
|
|
MessageQueue.Instance.Warn(GetClassName()+ alarmInfo);
|
|
|
|
|
//TestCenterMessageBox.Show(AlarmConstID.NozzleTackinessAlarm, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());
|
|
|
|
|
msgBox = MsgBox.ShowDialog(AlarmConstID.排料头粘料报警, alarmInfo, MessageButtonManager.GetSkip_MoveToSafe_Button(), MessageButtonManager.GetSkip_MoveToSafe_ButtonText());// TestCenterMessageBox.WaitResult(AlarmConstID.NozzleTackinessAlarm);
|
|
|
|
|
switch (msgBox.Button)
|
|
|
|
|
{
|
|
|
|
|
case ETipButton.Skip:
|
|
|
|
|
logInfo = GetClassName() + "选择了跳过按钮";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
if (!curNozzle.HasProduct())
|
|
|
|
|
{
|
|
|
|
|
curNozzle.VacSuction(EIoOperate.Close);
|
|
|
|
|
curNozzle.Reset();
|
|
|
|
|
skip = true;
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case ETipButton.Yes:
|
|
|
|
|
logInfo = GetClassName() + "选择了移动到安全位按钮";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
DischargeModuleGoSafePosFlow.Instance.GoSafePostion();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号SN={curNozzle.SN}放{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}";
|
|
|
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
|
|
|
curNozzle.VacSuction(EIoOperate.Close);
|
|
|
|
|
flowStep = EDischargeFlowStep.放料任务完成;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case EDischargeFlowStep.放料任务完成:
|
|
|
|
|
|
|
|
|
|
//AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").Home();
|
|
|
|
|