@ -39,7 +39,7 @@ namespace Rs.MotionPlat.Flow
到 治 具 取 料 等 待 位 ,
等 待 到 治 具 取 料 等 待 位 ,
等 待 治 具 测 试 完 成 换 料 ,
治 具 取 放 料,
治 具 取 料,
治 具 放 料 ,
//料仓放料
判 断 是 否 需 要 放 料 到 料 仓 ,
@ -132,7 +132,7 @@ namespace Rs.MotionPlat.Flow
{
while ( run )
{
if ( stop | | ! GlobalVar . DeviceIsAuto )
if ( stop )
{
Thread . Sleep ( 10 ) ;
continue ;
@ -508,7 +508,7 @@ namespace Rs.MotionPlat.Flow
needPlaceNozzle = GetPlaceNozzle ( curFixture ) ;
if ( needPlaceNozzle ! = null )
{
flowStep = EDischargeFlowStep . 治 具 取 放 料;
flowStep = EDischargeFlowStep . 治 具 取 料;
break ;
}
else
@ -516,7 +516,7 @@ namespace Rs.MotionPlat.Flow
//治具里面有产品但是吸嘴已经没有可以产品可以交换
if ( GlobalVar . Clear & & NozzleManager . GetIdelNozzle ( ) ! = null )
{
flowStep = EDischargeFlowStep . 治 具 取 放 料;
flowStep = EDischargeFlowStep . 治 具 取 料;
break ;
//在这里先去把要放的产品给放下去,再回来取
}
@ -537,25 +537,37 @@ namespace Rs.MotionPlat.Flow
}
break ;
case EDischargeFlowStep . 治 具 取 放 料:
case EDischargeFlowStep . 治 具 取 料:
FixtureTakeFlow . Instance . Take ( curFixture . Index ) ;
if ( needPlaceNozzle ! = null )
if ( needPlaceNozzle ! = null & & needPlaceNozzle . Status = = ENozzleStatus . ToTest )
{
flowStep = EDischargeFlowStep . 治 具 放 料 ;
}
else
{
int num = TestFixtureManager . Instance . GetHaveProductFixtureList ( ) . Count ( ) ;
if ( GlobalVar . Clear & & NozzleManager . GetToTestNozzle ( ) = = null & & ( ( num = = 0 ) | | ( NozzleManager . GetIdelNozzle ( ) = = null ) ) )
int tounloadNum = NozzleManager . GetNozzlesByStatus ( ENozzleStatus . ToUnload ) . Count ( ) ;
//if(GlobalVar.Clear && (
// (tounloadNum==3)
// || (num==0)
// ||(NozzleManager.GetToTestNozzle() == null)))
if ( tounloadNum = = 3
| | num = = 0
//|| NozzleManager.GetToTestNozzle() == null
)
{
logInfo = GetClassName ( ) + $"clear:{GlobalVar.Clear},tounloadnum:{tounloadNum},num:{num}" ;
MessageQueue . Instance . Insert ( logInfo ) ;
//if(curFixture.Index==6)
//{
// DischargeModuleGoSafePosFlow.Instance.GoSafePostion(ESafePosSide.PlaceToStock);
//}
CreateCheckFixtureQueue ( curFixture . Index ) ;
flowStep = EDischargeFlowStep . 判 断 是 否 需 要 放 料 到 料 仓 ;
}
else
{
CreateCheckFixtureQueue ( curFixture . Index ) ;
flowStep = EDischargeFlowStep . 到 治 具 取 料 等 待 位 ;
}
}
@ -569,18 +581,41 @@ namespace Rs.MotionPlat.Flow
//lastFixtureIndex = checkFixtureList[0] - 1;
//lastFixtureIndex = curFixture.Index == checkFixtureList.Max() ? checkFixtureList.Min()-1 : curFixture.Index;
//lastFixtureIndex = curFixture.Index == 6 ? 0 : curFixture.Index;
if ( NozzleManager . GetToTestNozzle ( ) ! = null | | ( GlobalVar . Clear & & TestFixtureManager . Instance . GetHasProuctFixtureCount ( ) > 0 ) )
int num = TestFixtureManager . Instance . GetHaveProductFixtureList ( ) . Count ( ) ;
int tounloadNum = NozzleManager . GetNozzlesByStatus ( ENozzleStatus . ToUnload ) . Count ( ) ;
if (
tounloadNum = = 3
| | num = = 0
| | NozzleManager . GetToTestNozzle ( ) = = null
)
//GlobalVar.Clear && (
//NozzleManager.GetToTestNozzle() == null
//|| (tounloadNum == 3)
//|| (num == 0)
//|| (NozzleManager.GetIdelNozzle() == null)))
{
flowStep = EDischargeFlowStep . 到 治 具 取 料 等 待 位 ;
flowStep = EDischargeFlowStep . 判断 是 否 需 要 放 料 到 料 仓 ;
}
else
{
//if (curFixture.Index == 6)
//{
// DischargeModuleGoSafePosFlow.Instance.GoSafePostion(ESafePosSide.PlaceToStock);
//}
flowStep = EDischargeFlowStep . 判 断 是 否 需 要 放 料 到 料 仓 ;
flowStep = EDischargeFlowStep . 到 治 具 取 料 等 待 位 ;
}
// if (NozzleManager.GetToTestNozzle() != null
// ||(GlobalVar.Clear && TestFixtureManager.Instance.GetHasProuctFixtureCount()>0 && NozzleManager.GetNozzlesByStatus(ENozzleStatus.ToUnload).Count<3))
//{
// flowStep = EDischargeFlowStep.到治具取料等待位;
//}
//else
//{
// //if (curFixture.Index == 6)
// //{
// // DischargeModuleGoSafePosFlow.Instance.GoSafePostion(ESafePosSide.PlaceToStock);
// //}
// flowStep = EDischargeFlowStep.判断是否需要放料到料仓;
//}
}
break ;