Commit cd529fd3 张东亮

右下无架子,链条一直转

1 个父辈 e39fce26
......@@ -20,9 +20,11 @@ namespace OnlineStore.DeviceLibrary
private Stopwatch lhighWatch = new Stopwatch();
private Stopwatch rhighWatch = new Stopwatch();
private Stopwatch inLineWatch = new Stopwatch();
private Stopwatch outLineWatch = new Stopwatch();
private bool LowProcess = false;
private bool LHighProcess = false;
private bool RHighProcess = false;
private bool ROutProcess = false;
private void ShelfCheckPro()
{
//左侧轨道
......@@ -174,6 +176,33 @@ namespace OnlineStore.DeviceLibrary
{
inLineWatch.Stop();
}
//右侧出口
if (IOValue(IO_Type.R_StopCheck1).Equals(IO_VALUE.HIGH)&& ROutProcess.Equals(false))
{
if (IOValue(IO_Type.R_StopCheck2).Equals(IO_VALUE.LOW) && LineManager.checkWatch(outLineWatch, 5000, true))
{
outLineWatch.Stop();
Task.Factory.StartNew(delegate
{
ROutProcess = true;
LogUtil.info("右侧双层线_" + "出口无料架,放一个料架");
IOMove(IO_Type.R_StopCylinder2, IO_VALUE.LOW);
IOMove(IO_Type.R_StopCylinder1, IO_VALUE.HIGH, 1500);
IOMove(IO_Type.R_LineRun, IO_VALUE.HIGH, 20000);
if (WaitIo(IO_Type.R_StopCheck2, IO_VALUE.HIGH, 20000, "料架到达出口"))
{
IOMove(IO_Type.R_LineRun, IO_VALUE.LOW);
IOMove(IO_Type.R_StopCylinder1, IO_VALUE.LOW);
}
ROutProcess = false;
});
}
}
else
{
outLineWatch.Stop();
}
}
internal void ShelfMoveProcess()
......
......@@ -224,7 +224,7 @@ namespace OnlineStore.DeviceLibrary
}
if (benQInStepRight.IsFinished())
{
benQInStepRight.Msg = "BenQ AGV 料架进入完成";
benQInStepRight.Msg = "AGV 料架进入完成";
IOMove(IO_Type.R_OutLineBackRun, IO_VALUE.LOW);
agvClient_Dbline.FinishEnter("A6");
benQInStepRight.ToNextStep(BenQ_IN_STEP.NONE);
......@@ -262,7 +262,7 @@ namespace OnlineStore.DeviceLibrary
bool hasShelfToLeave = IOValue(IO_Type.R_StopCheck2).Equals(IO_VALUE.HIGH);
if (hasShelfToLeave)
{
benQOutStep.Msg = "检测到有料架送往BenQ AGV, 准备读取RFID";
benQOutStep.Msg = "检测到有料架送往 AGV, 准备读取RFID";
benQOutStep.ToNextStep(BenQ_OUT_STEP.READ_RFID);
}
}
......
......@@ -121,7 +121,7 @@ namespace OnlineStore.DeviceLibrary
//ProcessPkgStation();
//ProcessS2Station();
S1_R_CanMoveProcess();
ProcessShelfOutS2();
ProcessShelfOutS1();
ProcessBenQLeftEnter();
ProcessBenQRightEnter();
ProcessBenQLeave();
......
......@@ -80,8 +80,8 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove(IO_Type.R_LeftStopCylinder, IO_VALUE.LOW);
benQInFromOutStep.ToNextStep(BenQ_IN_FROM_OUT_STEP.SHELF_TO_UPDOWN);
benQInFromOutStep.Msg = "检测到BenQ AGV向右侧提升机送入料架,提升机链条反转";
benQInFromOutStep.AddIoWait(IO_Type.R_LeftStopCheck, IO_VALUE.HIGH);
benQInFromOutStep.AddIoWait(IO_Type.R_RightStopCheck, IO_VALUE.HIGH);
benQInFromOutStep.AddIoWait(IO_Type.R_LeftStopCheck, IO_VALUE.HIGH,5000);
benQInFromOutStep.AddIoWait(IO_Type.R_RightStopCheck, IO_VALUE.HIGH,5000);
IOMove(IO_Type.R_OutLineBackRun, IO_VALUE.HIGH);
}
else if (hasShelfRight && !noShelfLeft && benQOutStep.GetCurStep() <= BenQ_OUT_STEP.WAIT_AGV && chainNoRun)//准备送满料,但提升机上有架子
......
......@@ -67,7 +67,7 @@ namespace OnlineStore.DeviceLibrary
//CheckAndMove(IO_Type.S1_LineRun, IO_VALUE.LOW);
s1RLeaveStep.ToNextStep(S1_R_LEAVE_SHELF_STEP.NONE);
//右侧下方线体是否停止,要根据情况来
outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.SHELF_OUT_S2);
outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.SHELF_OUT_S1);
}
}
else
......
......@@ -353,12 +353,12 @@ namespace OnlineStore.DeviceLibrary
private StepInfo<SHELF_TO_LEAVE_STATION> outShelfStep = new StepInfo<SHELF_TO_LEAVE_STATION>(SHELF_TO_LEAVE_STATION.NONE);
private enum SHELF_TO_LEAVE_STATION
{
NONE, SHELF_OUT_S2, WAIT_LINE_RUN_TIME,WAIT_OUT_IO
NONE, SHELF_OUT_S1, WAIT_LINE_RUN_TIME,WAIT_OUT_IO
}
private void ProcessShelfOutS2()
private void ProcessShelfOutS1()
{
if (outShelfStep.IsStep(SHELF_TO_LEAVE_STATION.SHELF_OUT_S2)){
if (outShelfStep.IsStep(SHELF_TO_LEAVE_STATION.SHELF_OUT_S1)){
bool hasShelfToLeave = IOValue(IO_Type.R_StopCheck2).Equals(IO_VALUE.HIGH);
KeepLineRun(IO_Type.R_LineRun);
if (hasShelfToLeave)
......@@ -366,7 +366,7 @@ namespace OnlineStore.DeviceLibrary
outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.WAIT_LINE_RUN_TIME);
//出料口已有料架,转动60秒
outShelfStep.Msg= "料架流出工位1时,出口已有料架,下层线体转动60秒";
outShelfStep.AddTimeWait(600000);
outShelfStep.AddTimeWait(60000);
}
else
{
......@@ -374,6 +374,7 @@ namespace OnlineStore.DeviceLibrary
outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.WAIT_OUT_IO);
outShelfStep.Msg = "料架流出工位1时,出口无料架,下层线体转动到料架到达出口";
outShelfStep.AddIoWait(IO_Type.R_StopCheck2, IO_VALUE.HIGH, 3000);
IOMove(IO_Type.R_StopCylinder1, IO_VALUE.HIGH,1500);
}
}else if (outShelfStep.IsStep(SHELF_TO_LEAVE_STATION.WAIT_LINE_RUN_TIME) || outShelfStep.IsStep(SHELF_TO_LEAVE_STATION.WAIT_OUT_IO))
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!