优化排料放周转盘先检测真空,如果真空有效则不再检测粘料

master
lhiven 1 year ago
parent 8adb42119f
commit 46252f3642

@ -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)}放料完成已起位"; logInfo = GetClassName()+$"排料吸嘴{curNozzle.NozzleIndex}号{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}放料完成已起位";
MessageQueue.Instance.Insert(logInfo); MessageQueue.Instance.Insert(logInfo);
if(curNozzle.ToType== TurnoverType.Turnover)
{
flowStep = EDischargeFlowStep.;
}
else
{
flowStep = EDischargeFlowStep.; flowStep = EDischargeFlowStep.;
} }
}
break; 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); curNozzle.VacSuction(EIoOperate.Open);
//如果粘料
if (curNozzle.HasProduct()) if (curNozzle.HasProduct())
{ {
bool skip = false; bool skip = false;
@ -1412,27 +1431,14 @@ namespace Rs.MotionPlat.Flow
} }
else 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); UpCameraScanBarCodeFlow.Instance.ScanSingle(curNozzle.ToIndex + 1, true);
VisionResult vr = UpCameraScanBarCodeFlow.Instance.WaitSingle(); VisionResult vr = UpCameraScanBarCodeFlow.Instance.WaitSingle();
if (UpCameraScanBarCodeFlow.Instance.CheckResult(vr)) 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.; flowStep = EDischargeFlowStep.;
} }
else else
@ -1463,6 +1469,9 @@ namespace Rs.MotionPlat.Flow
vr = UpCameraScanBarCodeFlow.Instance.WaitSingle(); vr = UpCameraScanBarCodeFlow.Instance.WaitSingle();
if (UpCameraScanBarCodeFlow.Instance.CheckResult(vr)) 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; exit = true;
flowStep = EDischargeFlowStep.; 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 else
{ {
logInfo = GetClassName() + $"排料吸嘴{curNozzle.NozzleIndex}号SN={curNozzle.SN}放{WitchTrayWitchSlot(curNozzle.ToType, curNozzle.ToIndex)}";
MessageQueue.Instance.Insert(logInfo);
curNozzle.VacSuction(EIoOperate.Close);
flowStep = EDischargeFlowStep.; flowStep = EDischargeFlowStep.;
} }
break; break;
case EDischargeFlowStep.: case EDischargeFlowStep.:
//AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").Home(); //AxisControl.GetAxis($"NozzleZ{curNozzle.NozzleIndex}").Home();

@ -79,6 +79,8 @@ namespace Rs.MotionPlat.Flow
, ,
, ,
, ,
, ,
, ,
, ,

Loading…
Cancel
Save