Commit b42d2d18 LN

托盘逻辑修改

1 个父辈 261a5797
...@@ -413,50 +413,50 @@ namespace OnlineStore.DeviceLibrary ...@@ -413,50 +413,50 @@ namespace OnlineStore.DeviceLibrary
if (!wait.IsEnd) if (!wait.IsEnd)
{ {
if (wait.IoType.Equals(IO_Type.ClampCylinder_Slack) && wait.IoValue.Equals(IO_VALUE.HIGH) && span.TotalMilliseconds > 6000) //if (wait.IoType.Equals(IO_Type.ClampCylinder_Slack) && wait.IoValue.Equals(IO_VALUE.HIGH) && span.TotalMilliseconds > 6000)
//{
// LogInfo("未检测到:ClampCylinder_Slack=HIGH,超过6秒钟,默认下一步骤");
// wait.IsEnd = true;
//}
//else if (wait.IoType.Equals(IO_Type.SL_MoveCylinder_Tighten) && wait.IoValue.Equals(IO_VALUE.HIGH) && span.TotalMilliseconds > 6000)
//{
// LogInfo("未检测到:SL_MoveCylinder_Tighten=HIGH,超过6秒钟,默认下一步骤");
// wait.IsEnd = true;
//}
//else
//{
TimeSpan rwSpan = DateTime.Now - preRWTime;
//一分钟还未检测到
if (span.TotalSeconds > LineManager.Config.IOSingle_TimerOut && NoAlarm())
{ {
LogInfo("未检测到:ClampCylinder_Slack=HIGH,超过6秒钟,默认下一步骤"); ConfigIO io = baseConfig.getWaitIO(wait.IoType);
wait.IsEnd = true; WarnMsg = Name + "等待" + NotOkMsg + " 超时";
Alarm(LineAlarmType.IoSingleTimeOut);
LogUtil.error(MoveInfo.Name + WarnMsg, DeviceID + 13);
} }
else if (wait.IoType.Equals(IO_Type.SL_MoveCylinder_Tighten) && wait.IoValue.Equals(IO_VALUE.HIGH) && span.TotalMilliseconds > 6000) else if (rwSpan.TotalSeconds > 5 && span.TotalSeconds > 6 && span.TotalSeconds < LineManager.Config.IOSingle_TimerOut * 2)
{ {
LogInfo("未检测到:SL_MoveCylinder_Tighten=HIGH,超过6秒钟,默认下一步骤"); preRWTime = DateTime.Now;
wait.IsEnd = true; string msg = moveInfo.Name + " " + NotOkMsg + "已等待 " + Math.Abs(span.TotalSeconds) + "秒,重写DO:";
} bool isLog = false;
else foreach (WaitResultInfo ww in list)
{
TimeSpan rwSpan = DateTime.Now - preRWTime;
//一分钟还未检测到
if (span.TotalSeconds > LineManager.Config.IOSingle_TimerOut && NoAlarm())
{ {
ConfigIO io = baseConfig.getWaitIO(wait.IoType); if (ww != null && ww.WaitType.Equals(2) && baseConfig.DOList.ContainsKey(ww.IoType))
WarnMsg = Name + "等待" + NotOkMsg + " 超时";
Alarm(LineAlarmType.IoSingleTimeOut);
LogUtil.error(MoveInfo.Name + WarnMsg, DeviceID + 13);
}
else if (rwSpan.TotalSeconds > 5 && span.TotalSeconds > 6 && span.TotalSeconds < LineManager.Config.IOSingle_TimerOut * 2)
{
preRWTime = DateTime.Now;
string msg = moveInfo.Name + " " + NotOkMsg + "已等待 " + Math.Abs(span.TotalSeconds) + "秒,重写DO:";
bool isLog = false;
foreach (WaitResultInfo ww in list)
{ {
if (ww != null && ww.WaitType.Equals(2) && baseConfig.DOList.ContainsKey(ww.IoType)) isLog = true;
{ IOMove(ww.IoType, ww.IoValue);
isLog = true; msg += ww.ToStr() + ",";
IOMove(ww.IoType, ww.IoValue);
msg += ww.ToStr() + ",";
}
}
if (isLog)
{
LogUtil.error(msg);
} }
} }
isOk = false; if (isLog)
break; {
LogUtil.error(msg);
}
} }
isOk = false;
break;
} }
// }
} }
else if (wait.WaitType.Equals(WaitEnum.W003_Time)) else if (wait.WaitType.Equals(WaitEnum.W003_Time))
{ {
......
...@@ -50,7 +50,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -50,7 +50,7 @@ namespace OnlineStore.DeviceLibrary
private InOutParam CheckParam = new InOutParam(); private InOutParam CheckParam = new InOutParam();
private DateTime lastStopDown = DateTime.Now; internal DateTime lastStopDown = DateTime.Now;
private Stopwatch swWaitWatch = new Stopwatch(); private Stopwatch swWaitWatch = new Stopwatch();
private void StartCheckFixture() private void StartCheckFixture()
...@@ -84,7 +84,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -84,7 +84,7 @@ namespace OnlineStore.DeviceLibrary
} }
} }
else if (Config.SidesWayNum.Equals(2) && IOValue(IO_Type.SW_StopCheck).Equals(IO_VALUE.HIGH) && canProcess else if (Config.SidesWayNum.Equals(2) && IOValue(IO_Type.SW_StopCheck).Equals(IO_VALUE.HIGH) && canProcess
&& (DateTime.Now - lastStopDown).TotalSeconds > 4) && (DateTime.Now - lastStopDown).TotalSeconds > 2.5)
{ {
if (TrayManager.checkWatch(swWaitWatch, TrayManager.SwTrayWaitTime, true)) if (TrayManager.checkWatch(swWaitWatch, TrayManager.SwTrayWaitTime, true))
{ {
......
...@@ -244,10 +244,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -244,10 +244,11 @@ namespace OnlineStore.DeviceLibrary
SW23_MoveInfo.NewMove(LineMoveType.InStore); SW23_MoveInfo.NewMove(LineMoveType.InStore);
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW03_WaitTime); SW23_MoveInfo.NextMoveStep(LineMoveStep.SW03_WaitTime);
SW23WaitTrayNum = -1; SW23WaitTrayNum = -1;
SWLog("横移轨道23:检测到SW2_TrayCheck,再次检测, 托盘号 [" + Sw23TrayNum + "] ,清空 SW23WaitTrayNum=" + SW23WaitTrayNum); SWLog("横移轨道23:检测到SW2_TrayCheck,等待SW3_TrayCheck=0, 托盘号 [" + Sw23TrayNum + "] ,清空 SW23WaitTrayNum=" + SW23WaitTrayNum);
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW2_TrayCheck, IO_VALUE.HIGH)); SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW2_TrayCheck, IO_VALUE.HIGH));
// CylinderMove(SW23_MoveInfo, IO_Type.SW2_LocationCylinder_Up, IO_Type.SW2_LocationCylinder_Down); SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW3_TrayCheck, IO_VALUE.LOW));
// CylinderMove(SW23_MoveInfo, IO_Type.SW3_LocationCylinder_Up, IO_Type.SW3_LocationCylinder_Down); // CylinderMove(SW23_MoveInfo, IO_Type.SW2_LocationCylinder_Up, IO_Type.SW2_LocationCylinder_Down);
// CylinderMove(SW23_MoveInfo, IO_Type.SW3_LocationCylinder_Up, IO_Type.SW3_LocationCylinder_Down);
} }
else else
{ {
...@@ -263,10 +264,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -263,10 +264,11 @@ namespace OnlineStore.DeviceLibrary
SW41_MoveInfo.NewMove(LineMoveType.InStore); SW41_MoveInfo.NewMove(LineMoveType.InStore);
SW41_MoveInfo.NextMoveStep(LineMoveStep.SW03_WaitTime); SW41_MoveInfo.NextMoveStep(LineMoveStep.SW03_WaitTime);
SW41WaitTrayNum = -1; SW41WaitTrayNum = -1;
SWLog("横移轨道41:检测到SW4_TrayCheck,再次检测,托盘号 [" + Sw41TrayNum + "] ,清空 SW41WaitTrayNum=" + SW41WaitTrayNum); SWLog("横移轨道41:检测到SW4_TrayCheck,等待SW1_TrayCheck=0,托盘号 [" + Sw41TrayNum + "] ,清空 SW41WaitTrayNum=" + SW41WaitTrayNum);
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW4_TrayCheck, IO_VALUE.HIGH)); SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW4_TrayCheck, IO_VALUE.HIGH));
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW1_TrayCheck, IO_VALUE.LOW));
//CylinderMove(SW41_MoveInfo, IO_Type.SW4_LocationCylinder_Up, IO_Type.SW4_LocationCylinder_Down); //CylinderMove(SW41_MoveInfo, IO_Type.SW4_LocationCylinder_Up, IO_Type.SW4_LocationCylinder_Down);
// CylinderMove(SW41_MoveInfo, IO_Type.SW1_LocationCylinder_Up, IO_Type.SW1_LocationCylinder_Down); // CylinderMove(SW41_MoveInfo, IO_Type.SW1_LocationCylinder_Up, IO_Type.SW1_LocationCylinder_Down);
} }
else else
{ {
...@@ -290,7 +292,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -290,7 +292,7 @@ namespace OnlineStore.DeviceLibrary
//20200228修改,横移机构可以同时存在两个托盘 //20200228修改,横移机构可以同时存在两个托盘
try try
{ {
if (LineManager.Line.runStatus <= LineRunStatus.Wait || sidesWayNum <= 0) if (runStatus <= LineRunStatus.Wait || sidesWayNum <= 0)
{ {
return true; return true;
} }
...@@ -320,10 +322,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -320,10 +322,8 @@ namespace OnlineStore.DeviceLibrary
else if (sidesWayNum.Equals(3) && SW23WaitTrayNum < 0 && runStatus <= LineRunStatus.Wait) else if (sidesWayNum.Equals(3) && SW23WaitTrayNum < 0 && runStatus <= LineRunStatus.Wait)
{ {
return true; return true;
} }
else if (sidesWayNum.Equals(4) && SW41WaitTrayNum < 0)
if (sidesWayNum.Equals(4) && SW41WaitTrayNum < 0)
{ {
// LineMoveInfo moveInfo = FeedingEquipMap[101].SecondMoveInfo; // LineMoveInfo moveInfo = FeedingEquipMap[101].SecondMoveInfo;
if (SW41_MoveInfo.MoveType.Equals(LineMoveType.None)) if (SW41_MoveInfo.MoveType.Equals(LineMoveType.None))
...@@ -346,7 +346,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -346,7 +346,7 @@ namespace OnlineStore.DeviceLibrary
return true; return true;
} }
} }
else if (sidesWayNum.Equals(3) && SW41WaitTrayNum < 0 && runStatus <= LineRunStatus.Wait) else if (sidesWayNum.Equals(1) && SW41WaitTrayNum < 0 && runStatus <= LineRunStatus.Wait)
{ {
return true; return true;
} }
...@@ -372,8 +372,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -372,8 +372,9 @@ namespace OnlineStore.DeviceLibrary
} }
if (sidesWayNum.Equals(3)) if (sidesWayNum.Equals(3))
{ {
TimeSpan span = DateTime.Now - FeedingEquipMap[104].lastStopDown;
LineMoveInfo moveInfo = FeedingEquipMap[104].SecondMoveInfo; LineMoveInfo moveInfo = FeedingEquipMap[104].SecondMoveInfo;
if (moveInfo.MoveType.Equals(LineMoveType.None)) if (moveInfo.MoveType.Equals(LineMoveType.None) && span.TotalSeconds > 3)
{ {
return true; return true;
} }
...@@ -382,7 +383,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -382,7 +383,8 @@ namespace OnlineStore.DeviceLibrary
{ {
LineMoveInfo moveInfo = FeedingEquipMap[101].SecondMoveInfo; LineMoveInfo moveInfo = FeedingEquipMap[101].SecondMoveInfo;
if (moveInfo.MoveType.Equals(LineMoveType.None)) TimeSpan span = DateTime.Now - FeedingEquipMap[101].lastStopDown;
if (moveInfo.MoveType.Equals(LineMoveType.None) && span.TotalSeconds > 3)
{ {
return true; return true;
} }
...@@ -448,7 +450,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -448,7 +450,8 @@ namespace OnlineStore.DeviceLibrary
{ {
if (IOValue(IO_Type.SW4_TrayCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.SW1_TrayCheck).Equals(IO_VALUE.LOW) && if (IOValue(IO_Type.SW4_TrayCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.SW1_TrayCheck).Equals(IO_VALUE.LOW) &&
TrayManager.LineCanMoveSW(4) && TrayManager.LineCanMoveSW(1)) TrayManager.LineCanMoveSW(4) )
//TrayManager.LineCanMoveSW(4) && TrayManager.LineCanMoveSW(1))
{ {
if (TrayManager.checkWatch(sw41WaitWatch, TrayManager.SwTrayWaitTime, true)) if (TrayManager.checkWatch(sw41WaitWatch, TrayManager.SwTrayWaitTime, true))
{ {
...@@ -466,7 +469,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -466,7 +469,8 @@ namespace OnlineStore.DeviceLibrary
IOValue(IO_Type.SW4_TrayCheck).Equals(IO_VALUE.LOW) && IOValue(IO_Type.SW4_TrayCheck).Equals(IO_VALUE.LOW) &&
IOValue(IO_Type.SW1_TrayCheck).Equals(IO_VALUE.LOW) && IOValue(IO_Type.SW1_TrayCheck).Equals(IO_VALUE.LOW) &&
(DateTime.Now - lastSw4StopDownTime).TotalSeconds > 2 && (DateTime.Now - lastSw4StopDownTime).TotalSeconds > 2 &&
TrayManager.LineCanMoveSW(4) && TrayManager.LineCanMoveSW(1)) TrayManager.LineCanMoveSW(4))
//TrayManager.LineCanMoveSW(4) && TrayManager.LineCanMoveSW(1))
{ {
if (TrayManager.checkWatch(sw41WaitWatch, TrayManager.SwTrayWaitTime, true)) if (TrayManager.checkWatch(sw41WaitWatch, TrayManager.SwTrayWaitTime, true))
{ {
...@@ -496,7 +500,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -496,7 +500,8 @@ namespace OnlineStore.DeviceLibrary
//检测到阻挡夹具信号后,阻挡气缸下降,等待有夹具信号,阻挡气缸上升, //检测到阻挡夹具信号后,阻挡气缸下降,等待有夹具信号,阻挡气缸上升,
//顶升气缸上升到位,开始流水线转动,检测到出口信号后,停止转动,顶升气缸下降,阻挡4下降,盘通过 //顶升气缸上升到位,开始流水线转动,检测到出口信号后,停止转动,顶升气缸下降,阻挡4下降,盘通过
if (IOValue(IO_Type.SW2_TrayCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.SW3_TrayCheck).Equals(IO_VALUE.LOW) && if (IOValue(IO_Type.SW2_TrayCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.SW3_TrayCheck).Equals(IO_VALUE.LOW) &&
TrayManager.LineCanMoveSW(2) && TrayManager.LineCanMoveSW(3)) TrayManager.LineCanMoveSW(2) )
//TrayManager.LineCanMoveSW(2) && TrayManager.LineCanMoveSW(3))
{ {
if (TrayManager.checkWatch(sw23WaitWatch, TrayManager.SwTrayWaitTime, true)) if (TrayManager.checkWatch(sw23WaitWatch, TrayManager.SwTrayWaitTime, true))
{ {
...@@ -514,7 +519,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -514,7 +519,8 @@ namespace OnlineStore.DeviceLibrary
IOValue(IO_Type.SW2_TrayCheck).Equals(IO_VALUE.LOW) && IOValue(IO_Type.SW2_TrayCheck).Equals(IO_VALUE.LOW) &&
IOValue(IO_Type.SW3_TrayCheck).Equals(IO_VALUE.LOW) && IOValue(IO_Type.SW3_TrayCheck).Equals(IO_VALUE.LOW) &&
(DateTime.Now - lastSw2StopDownTime).TotalSeconds > 2 && (DateTime.Now - lastSw2StopDownTime).TotalSeconds > 2 &&
TrayManager.LineCanMoveSW(2) && TrayManager.LineCanMoveSW(3)) TrayManager.LineCanMoveSW(2) )
//TrayManager.LineCanMoveSW(2) && TrayManager.LineCanMoveSW(3))
{ {
if (TrayManager.checkWatch(sw23WaitWatch, TrayManager.SwTrayWaitTime, true)) if (TrayManager.checkWatch(sw23WaitWatch, TrayManager.SwTrayWaitTime, true))
{ {
...@@ -622,6 +628,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -622,6 +628,7 @@ namespace OnlineStore.DeviceLibrary
SWLog("横移轨道41: 等待横移4托盘检测信号 ,SW4_StopDown上升 ,等待横移1(上料1)无托盘处理 "); SWLog("横移轨道41: 等待横移4托盘检测信号 ,SW4_StopDown上升 ,等待横移1(上料1)无托盘处理 ");
CheckAndMove(IO_Type.SW4_StopDown, IO_VALUE.LOW); CheckAndMove(IO_Type.SW4_StopDown, IO_VALUE.LOW);
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW4_TrayCheck, IO_VALUE.HIGH)); SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW4_TrayCheck, IO_VALUE.HIGH));
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW1_TrayCheck, IO_VALUE.LOW));
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitSWCanTopUp(1)); SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitSWCanTopUp(1));
// SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime)); // SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime));
} }
...@@ -698,8 +705,15 @@ namespace OnlineStore.DeviceLibrary ...@@ -698,8 +705,15 @@ namespace OnlineStore.DeviceLibrary
} }
else if (SW41_MoveInfo.MoveStep.Equals(LineMoveStep.SW11_TopDown)) else if (SW41_MoveInfo.MoveStep.Equals(LineMoveStep.SW11_TopDown))
{ {
//开始入库 bool result = false;
bool result = FeedingEquipMap[101].CanStartCheckOut(Sw41TrayNum); bool topCylinderDown = true;
//如果顶升1没有下降,才判断是否需要入库
if (IOValue(IO_Type.SW1_TopCylinder_Down).Equals(IO_VALUE.LOW) && IOValue(IO_Type.SW1_TopCylinder_Up).Equals(IO_VALUE.HIGH))
{
topCylinderDown = false;
result = FeedingEquipMap[101].CanStartCheckOut(Sw41TrayNum);
}
if (result) if (result)
{ {
...@@ -712,13 +726,24 @@ namespace OnlineStore.DeviceLibrary ...@@ -712,13 +726,24 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
SW41_MoveInfo.NextMoveStep(LineMoveStep.SW12_WaitTrayGo); //启动入库失败,需要下降顶升气缸
SWLog("横移轨道41:关闭皮带电机,等待SW1_TrayCheck=0,最多等待5秒,关闭横移电机 ");
IOMove(IO_Type.SW4_MotorRun, IO_VALUE.LOW); if (topCylinderDown)
IOMove(IO_Type.SW1_MotorRun, IO_VALUE.LOW); {
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW1_TrayCheck, IO_VALUE.LOW)); SW41_MoveInfo.NextMoveStep(LineMoveStep.SW12_WaitTrayGo);
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000)); SWLog("横移轨道41:关闭皮带电机,等待SW1_TrayCheck=0,最多等待5秒,关闭横移电机 ");
SW41_MoveInfo.OneWaitCanEndStep = true; IOMove(IO_Type.SW4_MotorRun, IO_VALUE.LOW);
IOMove(IO_Type.SW1_MotorRun, IO_VALUE.LOW);
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW1_TrayCheck, IO_VALUE.LOW));
SW41_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000));
SW41_MoveInfo.OneWaitCanEndStep = true;
}
else
{
SW41_MoveInfo.NextMoveStep(LineMoveStep.SW11_TopDown);
SWLog("横移轨道41:托盘已到达出口,重新顶升气缸下降 ");
CylinderMove(SW41_MoveInfo, IO_Type.SW1_TopCylinder_Up, IO_Type.SW1_TopCylinder_Down);
}
} }
} }
//else if (SW41_MoveInfo.MoveStep.Equals(LineMoveStep.SW11_StopDrive)) //else if (SW41_MoveInfo.MoveStep.Equals(LineMoveStep.SW11_StopDrive))
...@@ -790,6 +815,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -790,6 +815,8 @@ namespace OnlineStore.DeviceLibrary
SWLog("横移轨道23: 等待横移4托盘检测信号 ,SW2_StopDown上升 ,等待横移3(上料4)处无托盘 "); SWLog("横移轨道23: 等待横移4托盘检测信号 ,SW2_StopDown上升 ,等待横移3(上料4)处无托盘 ");
CheckAndMove(IO_Type.SW2_StopDown, IO_VALUE.LOW); CheckAndMove(IO_Type.SW2_StopDown, IO_VALUE.LOW);
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW2_TrayCheck, IO_VALUE.HIGH)); SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW2_TrayCheck, IO_VALUE.HIGH));
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW3_TrayCheck, IO_VALUE.LOW));
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitSWCanTopUp(3)); SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitSWCanTopUp(3));
// SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime)); // SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(TrayManager.SwTrayWaitTime));
} }
...@@ -809,7 +836,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -809,7 +836,8 @@ namespace OnlineStore.DeviceLibrary
CylinderMove(SW23_MoveInfo, IO_Type.SW2_LocationCylinder_Up, IO_Type.SW2_LocationCylinder_Down); CylinderMove(SW23_MoveInfo, IO_Type.SW2_LocationCylinder_Up, IO_Type.SW2_LocationCylinder_Down);
CylinderMove(SW23_MoveInfo, IO_Type.SW3_LocationCylinder_Up, IO_Type.SW3_LocationCylinder_Down); CylinderMove(SW23_MoveInfo, IO_Type.SW3_LocationCylinder_Up, IO_Type.SW3_LocationCylinder_Down);
} }
else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW05_LocationDown)) { else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW05_LocationDown))
{
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW06_TopCylinderUp); SW23_MoveInfo.NextMoveStep(LineMoveStep.SW06_TopCylinderUp);
SWLog("横移轨道23:顶升气缸上升 ,至少等待1000 "); SWLog("横移轨道23:顶升气缸上升 ,至少等待1000 ");
IOMove(IO_Type.SW2_StopDown, IO_VALUE.LOW); IOMove(IO_Type.SW2_StopDown, IO_VALUE.LOW);
...@@ -848,14 +876,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -848,14 +876,14 @@ namespace OnlineStore.DeviceLibrary
SWLog("横移轨道23:再次验证托盘是否在出口处 ,停止横移2的皮带线 "); SWLog("横移轨道23:再次验证托盘是否在出口处 ,停止横移2的皮带线 ");
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300)); SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW3_TrayCheck, IO_VALUE.HIGH)); SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW3_TrayCheck, IO_VALUE.HIGH));
IOMove(IO_Type.SW2_MotorRun, IO_VALUE.LOW); IOMove(IO_Type.SW2_MotorRun, IO_VALUE.LOW);
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW2_MotorRun, IO_VALUE.LOW)); SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW2_MotorRun, IO_VALUE.LOW));
} }
else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW10_WatOutFixture2)) else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW10_WatOutFixture2))
{ {
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW11_TopDown); SW23_MoveInfo.NextMoveStep(LineMoveStep.SW11_TopDown);
SWLog("横移轨道23:托盘已到达出口,顶升气缸下降 "); SWLog("横移轨道23:托盘已到达出口,顶升气缸下降 ");
// CylinderMove(SW23_MoveInfo, IO_Type.SW2_TopCylinder_Up, IO_Type.SW2_TopCylinder_Down); // CylinderMove(SW23_MoveInfo, IO_Type.SW2_TopCylinder_Up, IO_Type.SW2_TopCylinder_Down);
//Thread.Sleep(50); //Thread.Sleep(50);
if (!CheckTrayIsNeed(104, Sw23TrayNum)) if (!CheckTrayIsNeed(104, Sw23TrayNum))
{ {
...@@ -864,8 +892,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -864,8 +892,14 @@ namespace OnlineStore.DeviceLibrary
} }
else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW11_TopDown)) else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW11_TopDown))
{ {
//开始入库 bool result = false;
bool result = FeedingEquipMap[104].CanStartCheckOut(Sw23TrayNum); bool topCylinderDown = true;
//如果顶升1没有下降,才判断是否需要入库
if (IOValue(IO_Type.SW3_TopCylinder_Down).Equals(IO_VALUE.LOW) && IOValue(IO_Type.SW3_TopCylinder_Up).Equals(IO_VALUE.HIGH))
{
topCylinderDown = false;
result = FeedingEquipMap[104].CanStartCheckOut(Sw23TrayNum);
}
if (result) if (result)
{ {
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW12_WaitTrayGo); SW23_MoveInfo.NextMoveStep(LineMoveStep.SW12_WaitTrayGo);
...@@ -877,13 +911,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -877,13 +911,22 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW12_WaitTrayGo); if (topCylinderDown)
SWLog("横移轨道23:关闭皮带电机,等待SW3_TrayCheck=0,最多等待5秒,关闭横移电机 "); {
IOMove(IO_Type.SW2_MotorRun, IO_VALUE.LOW); SW23_MoveInfo.NextMoveStep(LineMoveStep.SW12_WaitTrayGo);
IOMove(IO_Type.SW3_MotorRun, IO_VALUE.LOW); SWLog("横移轨道23:关闭皮带电机,等待SW3_TrayCheck=0,最多等待5秒,关闭横移电机 ");
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW3_TrayCheck, IO_VALUE.LOW)); IOMove(IO_Type.SW2_MotorRun, IO_VALUE.LOW);
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000)); IOMove(IO_Type.SW3_MotorRun, IO_VALUE.LOW);
SW23_MoveInfo.OneWaitCanEndStep = true; SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.SW3_TrayCheck, IO_VALUE.LOW));
SW23_MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(5000));
SW23_MoveInfo.OneWaitCanEndStep = true;
}
else
{
SW23_MoveInfo.NextMoveStep(LineMoveStep.SW11_TopDown);
SWLog("横移轨道23:托盘已到达出口,重新顶升气缸下降 ");
CylinderMove(SW23_MoveInfo, IO_Type.SW3_TopCylinder_Up, IO_Type.SW3_TopCylinder_Down);
}
} }
} }
//else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW11_StopDrive)) //else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW11_StopDrive))
...@@ -891,7 +934,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -891,7 +934,7 @@ namespace OnlineStore.DeviceLibrary
//} //}
else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW12_WaitTrayGo)) else if (SW23_MoveInfo.MoveStep.Equals(LineMoveStep.SW12_WaitTrayGo))
{ {
lastSw2StopDownTime = DateTime.Now.AddSeconds(-2); lastSw2StopDownTime = DateTime.Now.AddSeconds(-2);
SW23_MoveInfo.EndMove(); SW23_MoveInfo.EndMove();
SWLog("横移轨道23:横移结束 "); SWLog("横移轨道23:横移结束 ");
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!