Commit dd4ffa24 张东亮

右侧提升机有时不放行料架修复

1 个父辈 13775642
......@@ -7,6 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using static OnlineStore.DeviceLibrary.PackageLine;
namespace OnlineStore.DeviceLibrary
{
......@@ -78,7 +79,7 @@ namespace OnlineStore.DeviceLibrary
{
RHighProcess = true;
LogUtil.info("右侧双层线_" + "右上层放料架到阻挡2");
IOMove(IO_Type.RHigh_LineRun, IO_VALUE.HIGH,30000);
IOMove(IO_Type.RHigh_LineRun, IO_VALUE.HIGH, 30000);
IOMove(IO_Type.RHigh_StopCylinder1, IO_VALUE.HIGH, 3000);
if (WaitIo(IO_Type.RHigh_StopCheck2, IO_VALUE.HIGH, 30000, "右侧_上层放料架到阻挡2"))
{
......@@ -126,7 +127,7 @@ namespace OnlineStore.DeviceLibrary
{
if (IOValue(IO_Type.Line_StopCheck).Equals(IO_VALUE.HIGH))
{
if (MoveInfo.MoveType.Equals(LineMoveType.None)&&LineManager.checkWatch(inLineWatch,3000,true))
if (MoveInfo.MoveType.Equals(LineMoveType.None) && LineManager.checkWatch(inLineWatch, 3000, true))
{
LeftUpdownRFID = RFIDManager.ReadRFID(Config.L_Updown_Rfid, false).NumStr();
bool needProces = false;
......@@ -179,9 +180,10 @@ namespace OnlineStore.DeviceLibrary
}
//右侧出口
if (IOValue(IO_Type.R_StopCheck1).Equals(IO_VALUE.HIGH)&& ROutProcess.Equals(false))
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))
if (IOValue(IO_Type.R_StopCheck2).Equals(IO_VALUE.LOW) && LineManager.checkWatch(outLineWatch, 5000, true) &&
LineManager.packageLine.benQOutStep.GetCurStep() < BenQ_OUT_STEP.SHELF_TO_UPDOWN)
{
outLineWatch.Stop();
Task.Factory.StartNew(delegate
......@@ -189,7 +191,7 @@ namespace OnlineStore.DeviceLibrary
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_StopCylinder1, IO_VALUE.HIGH, 2000);
IOMove(IO_Type.R_LineRun, IO_VALUE.HIGH, 20000);
if (WaitIo(IO_Type.R_StopCheck2, IO_VALUE.HIGH, 20000, "料架到达出口"))
{
......@@ -272,7 +274,7 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.Line_StopCylinder, IO_VALUE.HIGH);
IOMove(IO_Type.L_InLineRun, IO_VALUE.HIGH);
LeftLineMove(IO_VALUE.HIGH, MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.L_InLineRun, IO_VALUE.HIGH,true));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.L_InLineRun, IO_VALUE.HIGH, true));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Line_InCheck, IO_VALUE.LOW));
}
else if (MoveInfo.MoveStep.Equals(MoveStep.SI04_InStopDown))
......@@ -298,7 +300,7 @@ namespace OnlineStore.DeviceLibrary
{
IsCanStart = true;
}
else if ( LeftUpdownRFID.StartsWith(Static_String.BigShelf_RFID_Prefix) && IOValue(IO_Type.Line_StopCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.Line_InCheck).Equals(IO_VALUE.HIGH) )
else if (LeftUpdownRFID.StartsWith(Static_String.BigShelf_RFID_Prefix) && IOValue(IO_Type.Line_StopCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.Line_InCheck).Equals(IO_VALUE.HIGH))
{
IsCanStart = true;
}
......@@ -330,7 +332,7 @@ namespace OnlineStore.DeviceLibrary
LeftLineMove(IO_VALUE.HIGH, MoveInfo);
}
}
else if(MoveInfo.IsTimeOut(120))
else if (MoveInfo.IsTimeOut(120))
{
WarnMsg = MoveInfo.MoveStep + "等待料架离开左侧升降机 超时:" + FormUtil.GetShowStr(MoveInfo.StepSpan().TotalSeconds) + "秒";
Alarm(AlarmType.IoSingleTimeOut);
......@@ -400,13 +402,13 @@ namespace OnlineStore.DeviceLibrary
}
}
private void LeftLineMove(IO_VALUE value, LineMoveInfo moveInfo=null)
private void LeftLineMove(IO_VALUE value, LineMoveInfo moveInfo = null)
{
if (LeftUpdownRFID.StartsWith(Static_String.SmallShelf_RFID_Prefix))
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_LineRun, value,true));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LHigh_LineRun, value, true));
}
CheckAndMove(IO_Type.LHigh_LineRun, value);
}
......@@ -414,7 +416,7 @@ namespace OnlineStore.DeviceLibrary
{
if (moveInfo != null)
{
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLown_LineRun, value,true));
moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LLown_LineRun, value, true));
}
CheckAndMove(IO_Type.LLown_LineRun, value);
}
......
......@@ -184,7 +184,9 @@ namespace OnlineStore.DeviceLibrary
bool isRightUpdownDown = CylinderIsOk(IO_Type.R_Updown_Up, IO_Type.R_Updown_Down);
//上层料满
bool topFull = IOValue(IO_Type.RHigh_FullCheck).Equals(IO_VALUE.HIGH);
if (isChainRun || !isRightUpdownDown || topFull)//料盘无法送入
//提升机上有料
bool hasInUpdown= IOValue(IO_Type.R_LeftStopCheck).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.R_RightStopCheck).Equals(IO_VALUE.HIGH);
if (isChainRun || !isRightUpdownDown || topFull || hasInUpdown)//料盘无法送入
{
string msg = "A6 ";
if (isChainRun)
......@@ -199,6 +201,10 @@ namespace OnlineStore.DeviceLibrary
{
msg = msg + "上层料满,";
}
if(hasInUpdown)
{
msg = msg + "提升机有料,";
}
//有料架或线上无空间
benQInStepRight.Msg = msg + "送料AGV 不允许进入,";
benQInStepRight.ToNextStep(BenQ_IN_STEP.NONE);
......@@ -308,15 +314,15 @@ namespace OnlineStore.DeviceLibrary
{
benQOutStep.Msg = "AGV已到达出料口, 打开链条,准备送出料架[" + agvClient_Dbline.A6_RFID + "]";
benQOutStep.ToNextStep(BenQ_OUT_STEP.SHELF_TO_UPDOWN);
benQOutStep.AddIoWait(IO_Type.R_StopCylinder2, IO_VALUE.HIGH);
benQOutStep.AddIoWait(IO_Type.R_RightStopCheck, IO_VALUE.HIGH);
agvClient_Dbline.MayLeave("A6");
IOMove(IO_Type.R_RightStopCylinder, IO_VALUE.LOW);
IOMove(IO_Type.R_LeftStopCylinder, IO_VALUE.HIGH);
KeepLineRun(IO_Type.R_LineRun);
CheckAndMove(IO_Type.R_OutLineBackRun, IO_VALUE.LOW);
IOMove(IO_Type.R_OutLineRun, IO_VALUE.HIGH);
IOMove(IO_Type.R_StopCylinder2, IO_VALUE.HIGH,3000);
IOMove(IO_Type.R_StopCylinder2, IO_VALUE.HIGH);
}
else
{
......@@ -340,17 +346,19 @@ namespace OnlineStore.DeviceLibrary
}
if (benQOutStep.IsFinished())
{
benQOutStep.ToNextStep(BenQ_OUT_STEP.SHELT_OUT);
benQOutStep.Msg = "料架[" + agvClient_Dbline.A6_RFID + "],到达升降机,停止右侧下层线体,继续送出";
IOMove(IO_Type.R_StopCylinder2, IO_VALUE.LOW);
IOMove(IO_Type.R_LineRun, IO_VALUE.LOW);
IOMove(IO_Type.R_LeftStopCylinder, IO_VALUE.HIGH);
IOMove(IO_Type.R_RightStopCylinder, IO_VALUE.HIGH);
benQOutStep.ToNextStep(BenQ_OUT_STEP.SHELT_OUT);
benQOutStep.AddIoWait(IO_Type.R_RightStopCheck, IO_VALUE.LOW, 5000);
benQOutStep.AddIoWait(IO_Type.R_RightStopCheck, IO_VALUE.LOW);
benQOutStep.AddIoWait(IO_Type.R_LeftStopCheck, IO_VALUE.LOW);
}
else
else if(benQOutStep.IsTimeOut(5000))
{
//料架未到达,检查链条
// IOMove(IO_Type.R_StopCylinder2, IO_VALUE.HIGH);
KeepLineRun(IO_Type.R_LineRun);
CheckAndMove(IO_Type.R_OutLineBackRun, IO_VALUE.LOW);
KeepLineRun(IO_Type.R_OutLineRun);
......@@ -368,7 +376,12 @@ namespace OnlineStore.DeviceLibrary
agvClient_Dbline.FinishLeave("A6");
IOMove(IO_Type.R_OutLineRun, IO_VALUE.LOW);
IOMove(IO_Type.R_LeftStopCylinder, IO_VALUE.LOW);
IOMove(IO_Type.R_RightStopCylinder, IO_VALUE.LOW);
IOMove(IO_Type.R_RightStopCylinder, IO_VALUE.HIGH);
}
else if (benQOutStep.IsTimeOut(10000))
{
IOMove(IO_Type.R_LeftStopCylinder, IO_VALUE.HIGH);
IOMove(IO_Type.R_RightStopCylinder, IO_VALUE.HIGH);
}
}
}
......
......@@ -94,7 +94,7 @@ namespace OnlineStore.DeviceLibrary
// IOMove(IO_Type.S2_StopCylinder2, IO_VALUE.LOW);
//双层线出料口
IOMove(IO_Type.R_StopCylinder1, IO_VALUE.HIGH);
IOMove(IO_Type.R_StopCylinder1, IO_VALUE.LOW);
IOMove(IO_Type.R_LeftStopCylinder, IO_VALUE.LOW);
IOMove(IO_Type.R_StopCylinder2, IO_VALUE.LOW);
......@@ -174,7 +174,7 @@ namespace OnlineStore.DeviceLibrary
//IOMove(IO_Type.S2_StopCylinder2, IO_VALUE.LOW);
//双层线出料口
IOMove(IO_Type.R_StopCylinder1, IO_VALUE.HIGH);
IOMove(IO_Type.R_StopCylinder1, IO_VALUE.LOW);
IOMove(IO_Type.R_LeftStopCylinder, IO_VALUE.LOW);
IOMove(IO_Type.R_StopCylinder2, IO_VALUE.LOW);
//右侧上层阻挡
......
......@@ -80,7 +80,7 @@ namespace OnlineStore.DeviceLibrary
CheckAndMove(IO_Type.R_RightStopCylinder, IO_VALUE.HIGH);
CheckAndMove(IO_Type.R_LeftStopCylinder, IO_VALUE.LOW);
benQInFromOutStep.ToNextStep(BenQ_IN_FROM_OUT_STEP.SHELF_TO_UPDOWN);
benQInFromOutStep.Msg = "检测到BenQ AGV向右侧提升机送入料架,提升机链条反转";
benQInFromOutStep.Msg = "检测到产线 AGV向右侧提升机送入料架,提升机链条反转";
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);
......@@ -148,7 +148,7 @@ namespace OnlineStore.DeviceLibrary
bool noShelfLeft = IOValue(IO_Type.R_LeftStopCheck).Equals(IO_VALUE.LOW);
if (noShelfRight && noShelfLeft)//员工手动从出口出料架,重置出口处的入料流程
{
benQInFromOutStep.Msg = "从右侧出口出料架,重置BenQ AGV 出口入料流程";
benQInFromOutStep.Msg = "从右侧出口出料架,重置产线 AGV 出口入料流程";
IOMove(IO_Type.R_OutLineBackRun, IO_VALUE.LOW);
CheckAndMove(IO_Type.R_RightStopCylinder, IO_VALUE.LOW);
CheckAndMove(IO_Type.R_LeftStopCylinder, IO_VALUE.LOW);
......@@ -224,7 +224,7 @@ namespace OnlineStore.DeviceLibrary
if (benQInFromOutStep.IsFinished())
{
benQInFromOutStep.ToNextStep(BenQ_IN_FROM_OUT_STEP.WAIT_SHELF_TO_READY_POS);
benQInFromOutStep.Msg = "BenQ AGV 在右侧提升机将料架送入上层平台完成";
benQInFromOutStep.Msg = "产线AGV 在右侧提升机将料架送入上层平台完成";
benQInFromOutStep.AddIoWait(IO_Type.RHigh_StopCheck1, IO_VALUE.HIGH);
benQInFromOutStep.AddTimeWait(60000);
}
......
......@@ -361,21 +361,21 @@ namespace OnlineStore.DeviceLibrary
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)
//if (hasShelfToLeave)
{
outShelfStep.ToNextStep(SHELF_TO_LEAVE_STATION.WAIT_LINE_RUN_TIME);
//出料口已有料架,转动60秒
outShelfStep.Msg= "料架流出工位1时,出口已有料架,下层线体转动60秒";
outShelfStep.Msg= "料架流出工位1,下层线体转动60秒";//时,出口已有料架,
outShelfStep.AddTimeWait(60000);
}
else
{
//出料口无料架,等待出料口信号持续3秒
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
//{
// //出料口无料架,等待出料口信号持续3秒
// 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))
{
if (outShelfStep.IsFinished())
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!