Commit 390accaf LN

流水线阻挡2优化

1 个父辈 5ad8f171
......@@ -103,9 +103,38 @@ D2(上料模块出口)
20200217
Mayleave、MayEnter是包装料仓的,开了门后发,环形线和VMI是不用的。状态不需要重复设置。
上料机构最后一盘料需要补充2mm.
Mayleave、MayEnter是包装料仓的,开了门后发,环形线和VMI是不用的。状态不需要重复设置。
上料机构最后一盘料需要补充5mm.
20200218
修改内容
1.横移顶升上升后,需要等待横移横移3托盘检测或横移1托盘检测无信号,再开始转动横移皮带线。
2.减少阻挡2下降等待时间
3.阻挡2下降时,需要判断下一个设备的阻挡1无信号,进仓移栽与出料模块增加NSC信号,当此信号=low时阻挡2才能下降。
Config_Line.csv文件增加配置:
DI,1,01NSC-进仓02阻挡1检测,NextStopCheck,8,PRO_AOI_IP_19,0,01NSC-进仓02阻挡1检测,X269,X269
DI,2,02NSC-进仓03阻挡1检测,NextStopCheck,0,PRO_AOI_IP_21,0,02NSC-进仓02阻挡1检测,X291,X291
DI,3,03NSC-进仓04阻挡1检测,NextStopCheck,8,PRO_AOI_IP_21,0,03NSC-进仓04阻挡1检测,X299,X299
DI,4,04NSC-进仓05阻挡1检测,NextStopCheck,0,PRO_AOI_IP_23,0,04NSC-进仓05阻挡1检测,X321,X321
DI,5,05NSC-进仓06阻挡1检测,NextStopCheck,8,PRO_AOI_IP_23,0,05NSC-进仓06阻挡1检测,X329,X329
DI,6,06NSC-FL1阻挡检测,NextStopCheck,9,PRO_AOI_IP_14,0,进仓06NSC-FL1阻挡检测,X170,X170
DI,102,SL2NSC-进仓07阻挡1检测,NextStopCheck,0,PRO_AOI_IP_25,0,SL2NSC-进仓07阻挡1检测,X351,X351
DI,7,07NSC-进仓08阻挡1检测,NextStopCheck,8,PRO_AOI_IP_25,0,进仓07NSC-进仓08阻挡1检测,X359,X359
DI,8,08NSC-进仓09阻挡1检测,NextStopCheck,0,PRO_AOI_IP_27,0,进仓08NSC-进仓09阻挡1检测,X381,X381
DI,9,09NSC-进仓10阻挡1检测,NextStopCheck,8,PRO_AOI_IP_27,0,进仓09NSC-进仓10阻挡1检测,X389,X389
DI,10,10NSC-环形线横移2阻挡检测,NextStopCheck,2,PRO_AOI_IP_28,0,进仓10NSC-环形线横移2阻挡检测,X403,X403
DI,201,出料1NSC-进仓11阻挡1检测,NextStopCheck,0,PRO_AOI_IP_29,0,出料1NSC-进仓11阻挡1检测,X411,X411
DI,11,11NSC-进仓12阻挡1检测,NextStopCheck,10,PRO_AOI_IP_29,0,11NSC-进仓12阻挡1检测,X421,X421
DI,12,12NSC-出料2阻挡1检测,NextStopCheck,4,PRO_AOI_IP_32,0,12NSC-出料2阻挡1检测,X475,X475
DI,202,出料2NSC-进仓13阻挡1检测,NextStopCheck,0,PRO_AOI_IP_31,0,出料2NSC-进仓13阻挡1检测,X451,X451
DI,13,13NSC-进仓14阻挡1检测,NextStopCheck,10,PRO_AOI_IP_31,0,13NSC-进仓14阻挡1检测,X461,X461
DI,14,14NSC-进仓15阻挡1检测,NextStopCheck,0,PRO_AOI_IP_33,0,14NSC-进仓15阻挡1检测,X491,X491
DI,15,15NSC-进仓16阻挡1检测,NextStopCheck,10,PRO_AOI_IP_33,0,15NSC-进仓16阻挡1检测,X501,X501
DI,16,16NSC-出料3阻挡1检测,NextStopCheck,4,PRO_AOI_IP_34,0,16NSC-出料3阻挡1检测,X515,X515
DI,203,出料3NSC-进仓17阻挡1检测,NextStopCheck,0,PRO_AOI_IP_35,0,出料3NSC-进仓17阻挡1检测,X531,X531
DI,17,17NSC-进仓18阻挡1检测,NextStopCheck,10,PRO_AOI_IP_35,0,17NSC-进仓18阻挡1检测,X541,X541
DI,18,18NSC-出料4阻挡1检测,NextStopCheck,4,PRO_AOI_IP_36,0,18NSC-出料4阻挡1检测,X555,X555
......
......@@ -104,3 +104,27 @@ DO,0,环形线横移4定位下降SOL,SW4_LocationCylinder_Down,12,PRO_AOI_IP_1,0,环形线横
,0,,,13,PRO_AOI_IP_1,0,,Y014,Y014
,0,,,14,PRO_AOI_IP_1,0,,Y015,Y015
,0,,,15,PRO_AOI_IP_1,0,,Y016,Y016
DI,1,01NSC-进仓02阻挡1检测,NextStopCheck,8,PRO_AOI_IP_19,0,01NSC-进仓02阻挡1检测,X269,X269
DI,2,02NSC-进仓03阻挡1检测,NextStopCheck,0,PRO_AOI_IP_21,0,02NSC-进仓02阻挡1检测,X291,X291
DI,3,03NSC-进仓04阻挡1检测,NextStopCheck,8,PRO_AOI_IP_21,0,03NSC-进仓04阻挡1检测,X299,X299
DI,4,04NSC-进仓05阻挡1检测,NextStopCheck,0,PRO_AOI_IP_23,0,04NSC-进仓05阻挡1检测,X321,X321
DI,5,05NSC-进仓06阻挡1检测,NextStopCheck,8,PRO_AOI_IP_23,0,05NSC-进仓06阻挡1检测,X329,X329
DI,6,06NSC-FL1阻挡检测,NextStopCheck,9,PRO_AOI_IP_14,0,进仓06NSC-FL1阻挡检测,X170,X170
DI,102,SL2NSC-进仓07阻挡1检测,NextStopCheck,0,PRO_AOI_IP_25,0,SL2NSC-进仓07阻挡1检测,X351,X351
DI,7,07NSC-进仓08阻挡1检测,NextStopCheck,8,PRO_AOI_IP_25,0,进仓07NSC-进仓08阻挡1检测,X359,X359
DI,8,08NSC-进仓09阻挡1检测,NextStopCheck,0,PRO_AOI_IP_27,0,进仓08NSC-进仓09阻挡1检测,X381,X381
DI,9,09NSC-进仓10阻挡1检测,NextStopCheck,8,PRO_AOI_IP_27,0,进仓09NSC-进仓10阻挡1检测,X389,X389
DI,10,10NSC-环形线横移2阻挡检测,NextStopCheck,2,PRO_AOI_IP_28,0,进仓10NSC-环形线横移2阻挡检测,X403,X403
DI,201,出料1NSC-进仓11阻挡1检测,NextStopCheck,0,PRO_AOI_IP_29,0,出料1NSC-进仓11阻挡1检测,X411,X411
DI,11,11NSC-进仓12阻挡1检测,NextStopCheck,10,PRO_AOI_IP_29,0,11NSC-进仓12阻挡1检测,X421,X421
DI,12,12NSC-出料2阻挡1检测,NextStopCheck,4,PRO_AOI_IP_32,0,12NSC-出料2阻挡1检测,X475,X475
DI,202,出料2NSC-进仓13阻挡1检测,NextStopCheck,0,PRO_AOI_IP_31,0,出料2NSC-进仓13阻挡1检测,X451,X451
DI,13,13NSC-进仓14阻挡1检测,NextStopCheck,10,PRO_AOI_IP_31,0,13NSC-进仓14阻挡1检测,X461,X461
DI,14,14NSC-进仓15阻挡1检测,NextStopCheck,0,PRO_AOI_IP_33,0,14NSC-进仓15阻挡1检测,X491,X491
DI,15,15NSC-进仓16阻挡1检测,NextStopCheck,10,PRO_AOI_IP_33,0,15NSC-进仓16阻挡1检测,X501,X501
DI,16,16NSC-出料3阻挡1检测,NextStopCheck,4,PRO_AOI_IP_34,0,16NSC-出料3阻挡1检测,X515,X515
DI,203,出料3NSC-进仓17阻挡1检测,NextStopCheck,0,PRO_AOI_IP_35,0,出料3NSC-进仓17阻挡1检测,X531,X531
DI,17,17NSC-进仓18阻挡1检测,NextStopCheck,10,PRO_AOI_IP_35,0,17NSC-进仓18阻挡1检测,X541,X541
DI,18,18NSC-出料4阻挡1检测,NextStopCheck,4,PRO_AOI_IP_36,0,18NSC-出料4阻挡1检测,X555,X555
......@@ -174,35 +174,45 @@ namespace OnlineStore.DeviceLibrary
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_01_FixtureCheck))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_02_WaitFixture);
CheckLog("托盘检测:" + SecondMoveInfo.SLog + "再次等待SW_TrayCheck=1并需要持续:" + TrayManager.SwTrayWaitTime);
CheckLog("托盘检测:" + SecondMoveInfo.SLog + "再次等待SW_TrayCheck=1 :" );
//CheckLog("托盘检测:" + SecondMoveInfo.SLog + "再次等待SW_TrayCheck=1并需要持续:" + TrayManager.SwTrayWaitTime);
CheckAndMove(IO_Type.SW_StopDown, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime));
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_02_WaitFixture))
{
if (IOValue(IO_Type.SW_TrayCheck).Equals(IO_VALUE.HIGH))
{
//if (IOValue(IO_Type.SW_TrayCheck).Equals(IO_VALUE.HIGH))
//{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
CheckLog("托盘检测:" + SecondMoveInfo.SLog + "阻挡气缸上升,等待SW_TrayCheck=1)");
IOMove(IO_Type.SW_StopDown, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
}
else
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_02_WaitFixture);
CheckLog("托盘检测:" + SecondMoveInfo.SLog + "再次等待SW_TrayCheck=1并需要持续:" + TrayManager.SwTrayWaitTime);
IOMove(IO_Type.SW_StopDown, IO_VALUE.LOW);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime));
}
//}
//else
//{
// SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_02_WaitFixture);
// CheckLog("托盘检测:" + SecondMoveInfo.SLog + "再次等待SW_TrayCheck=1并需要持续:" + TrayManager.SwTrayWaitTime);
// IOMove(IO_Type.SW_StopDown, IO_VALUE.LOW);
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime));
//}
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_03_Stop2Down))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
CheckLog("托盘检测:" + SecondMoveInfo.SLog + " ,等待编码信号稳定)");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
if (Config.SidesWayNum > 0)
{
CheckLog("托盘检测:" + SecondMoveInfo.SLog + " ,等待编码信号稳定 SW_TrayCheck=1");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.HIGH));
}
else
{
CheckLog("托盘检测:" + SecondMoveInfo.SLog + " ,等待编码信号稳定 FL_TrayCheck=1");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.FL_TrayCheck, IO_VALUE.HIGH));
}
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_04_Wait))
{
......@@ -232,11 +242,13 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
TrayInfo tray = TrayManager.GetTrayInfo(currTrayNum);
LogInfo(SecondMoveInfo.MoveNum + "***************上个托盘号【" + preTrayNum + "】,当前 【" + tray.ToStr() + "】没有出入料任务,放盘通过~");
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,移栽2,需要判断是否可以放盘通过,最多等待10000)");
//CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,移栽2,需要判断是否可以放盘通过,最多等待10000)");
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待 NextStopCheck=0");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.NextStopCheck, IO_VALUE.LOW));
}
else
{
CheckLog("托盘检测:不需要托盘,结束处理 )");
CheckLog("托盘检测:不需要托盘,结束处理 )");
SMoveEnd();
}
}
......@@ -308,12 +320,17 @@ namespace OnlineStore.DeviceLibrary
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_14_TopDown))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
if (Config.SidesWayNum > 0)
{
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待托盘离开");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW_TrayCheck, IO_VALUE.LOW));
}
else
{
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待 NextStopCheck=0");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.NextStopCheck, IO_VALUE.LOW));
}
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_15_WaitCanGo))
{
......
......@@ -469,8 +469,9 @@ namespace OnlineStore.DeviceLibrary
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_03_Stop2Down))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " ,等待编码信号稳定)");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " ,等待编码信号稳定StopCylinder_Check2=1");
//SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_04_Wait))
{
......@@ -513,14 +514,9 @@ namespace OnlineStore.DeviceLibrary
{
TrayManager.UpdateTrayNumError(-1, "");
}
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,移栽2,需要判断是否可以放盘通过,最多等待10000)");
//if (DeviceID.Equals(2))
//{
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitSideWay());
// SecondMoveInfo.OneWaitCanEndStep = true;
//}
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待 NextStopCheck=0");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.NextStopCheck, IO_VALUE.LOW));
}
}
catch (Exception ex)
......@@ -585,14 +581,9 @@ namespace OnlineStore.DeviceLibrary
#region 不需要出入库,直接放行
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_14_TopDown))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
CheckLog("托盘放行" + SecondMoveInfo.SLog + " ,移栽2,需要判断是否可以放盘通过,最多等待10000 ");
//if (DeviceID.Equals(2))
//{
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitSideWay());
// SecondMoveInfo.OneWaitCanEndStep = true;
//}
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待 NextStopCheck=0");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.NextStopCheck, IO_VALUE.LOW));
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_15_WaitCanGo))
......
......@@ -209,31 +209,33 @@ namespace OnlineStore.DeviceLibrary
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_01_FixtureCheck))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 等待" + TrayManager.SwTrayWaitTime + ",再次检测料盘信号");
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 再次检测料盘信号");
//CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 等待" + TrayManager.SwTrayWaitTime + ",再次检测料盘信号");
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.OneWaitCanEndStep = true;
// SecondMoveInfo.OneWaitCanEndStep = true;
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
// SecondMoveInfo.EndStepWait();
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_03_Stop2Down))
{
if (IOValue(IO_Type.StopCylinder_Check2).Equals(IO_VALUE.HIGH))
{
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " ,等待编码信号稳定)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
//SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
}
else
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 等待" + TrayManager.SwTrayWaitTime + ",再次检测料盘信号");
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
SecondMoveInfo.OneWaitCanEndStep = true;
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
}
//if (IOValue(IO_Type.StopCylinder_Check2).Equals(IO_VALUE.HIGH))
//{
CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " ,等待编码信号稳定StopCylinder_Check2=1");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_04_Wait);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(100));
//SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
//}
//else
//{
// SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_Stop2Down);
// CheckLog("托盘阻挡" + SecondMoveInfo.SLog + " 等待" + TrayManager.SwTrayWaitTime + ",再次检测料盘信号");
// IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
// SecondMoveInfo.OneWaitCanEndStep = true;
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Check2, IO_VALUE.HIGH));
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.StopDownWaitTime));
//}
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_04_Wait))
{
......@@ -246,12 +248,12 @@ namespace OnlineStore.DeviceLibrary
}
//出料中,需要拦盘
string outMsg = "";
InOutParam param = CheckIsNeedOutStore( out outMsg);
if(param != null)
{
InOutParam param = CheckIsNeedOutStore(out outMsg);
if (param != null)
{
SecondMoveInfo.MoveParam = param;
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_05_WaitTime);
LogUtil.info(Name+ "托盘 【" + currTrayNum + "】【"+outMsg+"】需要出料" + SecondMoveInfo.SLog + ":" + param.ToStr() + " 等待可以开始移栽 ");
LogUtil.info(Name + "托盘 【" + currTrayNum + "】【" + outMsg + "】需要出料" + SecondMoveInfo.SLog + ":" + param.ToStr() + " 等待可以开始移栽 ");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000));
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitProvidingEquipCanOut());//等待
......@@ -281,7 +283,7 @@ namespace OnlineStore.DeviceLibrary
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_06_TopUp);
CheckLog("托盘阻挡 " + SecondMoveInfo.SLog + " 顶升气缸上升 ");
CylinderMove(SecondMoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_UP);
CylinderMove(SecondMoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_UP);
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MIO_06_TopUp))
{
......@@ -290,9 +292,9 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.EndStepWait();
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_11_CodeRember) && MoveInfo.MoveType.Equals(LineMoveType.None))
{
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_09_WaitLetFixtureGo);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + "开始新的出料任务~" + SecondMoveInfo.MoveParam.ToStr()+",开始移栽");
CheckLog("托盘放行 " + SecondMoveInfo.SLog + "开始新的出料任务~" + SecondMoveInfo.MoveParam.ToStr() + ",开始移栽");
bool result = StartOutStoreMove(SecondMoveInfo.MoveParam);
}
#endregion
......@@ -308,21 +310,19 @@ namespace OnlineStore.DeviceLibrary
}
else
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,阻挡2下降");
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH));
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_15_WaitCanGo);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,等待 NextStopCheck=0");
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.NextStopCheck, IO_VALUE.LOW));
}
}
//else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_15_WaitCanGo))
//{
// SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down);
// CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,阻挡气缸1-2下降)");
// IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH);
// SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH));
// // SecondMoveInfo.EndStepWait();
//}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_15_WaitCanGo))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_16_Stop2Down);
CheckLog("托盘放行 " + SecondMoveInfo.SLog + " ,阻挡2下降");
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH));
}
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_16_Stop2Down))
{
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_17_Stop2Check);
......
......@@ -414,46 +414,50 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 等待到托盘信号后,需要持续一段时间
/// </summary>
SW011_WaitCheckTime = 5011,
SW02_WaitCheckTime = 5002,
/// <summary>
/// 等待到托盘信号后,需要持续一段时间
/// </summary>
SW012_WaitTime = 5012,
SW03_WaitTime = 5003,
/// <summary>
/// 等待轨道1夹具检测信号
/// </summary>
SW02_WaitCheck =5002,
SW04_WaitCheck = 5004,
/// <summary>
/// 横移轨道顶升气缸上升
/// </summary>
SW03_TopCylinderUp=5003,
SW05_TopCylinderUp= 5005,
/// <summary>
/// 等待第二个横移没有托盘
/// </summary>
SW06_WaitNoTray=5006,
/// <summary>
/// 横移轨道点击转动
/// </summary>
SW04_DriveMotorMove=5004,
SW07_DriveMotorMove=5007,
/// <summary>
/// 收到横移轨道2夹具检测信号
/// </summary>
SW05_WaitOutCheck=5005,
SW08_WaitOutCheck=5008,
/// <summary>
/// 等待出口信号持续一段时间
/// </summary>
SW06_WatOutFixture2=5006,
SW09_WatOutFixture2=5009,
/// <summary>
/// 停止横移轨道转动,横移轨道顶升气缸下降
/// </summary>
SW07_TopDown=5007,
SW10_TopDown=5010,
/// <summary>
/// 阻挡2下降,等待托盘流出
/// </summary>
SW08_StopDrive=5008,
///// <summary>
///// 阻挡2下降,等待托盘流出
///// </summary>
//SW11_StopDrive=5011,
/// <summary>
/// 等待托盘流出,上升阻挡气缸
/// </summary>
SW09_WaitTrayGo=5009,
SW12_WaitTrayGo=5012,
#endregion
......
......@@ -297,8 +297,14 @@ namespace OnlineStore.LoadCSVLibrary
{
doList = DeviceConfig.SubDOList[subType];
}
ConfigIO nsc = null;
foreach (string key in diList.Keys)
{
if (key.Equals(IO_Type.NextStopCheck))
{
nsc = diList[key];
continue;
}
DIList.Add(key, diList[key]);
if (!IOIPList.Contains(diList[key].IO_IP))
{
......@@ -314,6 +320,11 @@ namespace OnlineStore.LoadCSVLibrary
IOIPList.Add(doList[key].IO_IP);
}
}
if (nsc!=null)
{
DIList.Add(IO_Type.NextStopCheck, nsc);
}
}
public ConfigIO getWaitIO(string ioType)
{
......
......@@ -659,6 +659,9 @@ namespace OnlineStore.LoadCSVLibrary
public static string SW_StopDown = "SW_StopDown";
#endregion
public static string NextStopCheck = "NextStopCheck";
}
public enum IO_VALUE
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!