Commit b6054b76 LN

1.出料时料串多下降。2.入库旋转和上升可以一起动作。3.增加复位键启动功能

1 个父辈 4e3d775d
......@@ -32,7 +32,6 @@ namespace OnlineStore.DeviceLibrary
protected override void mainTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
AutoStartProcess();
TimerProcess();
}
......@@ -130,7 +129,7 @@ namespace OnlineStore.DeviceLibrary
}
}
protected void AutoStartProcess()
internal void AutoStartProcess()
{
DateTime time = DateTime.Now;
if (runStatus.Equals(RunStatus.Wait))
......
......@@ -294,6 +294,9 @@ namespace OnlineStore.DeviceLibrary
break;
default: break;
}
inputEquip.AutoStartProcess();
boxEquip.AutoStartProcess();
}
catch (Exception ex)
{
......
......@@ -556,8 +556,16 @@ namespace OnlineStore.DeviceLibrary
UpdateShelf(2, xnRfid);
MoveInfo.NextMoveStep(StepEnum.IS12_AxisDown);
MoveInfo.MoveParam.PosInfo = posInfo;
//如果料盘检测信号亮或者是上料目标位置,需要多下降20mm
int downValueMM = 4;
if (Robot.IOValue(Config.IO_ReelCheck).Equals(IO_VALUE.HIGH) || BatchAxis.IsInPosition(Config.BatchAxisP2))
{
downValueMM = 20;
}
int currPositon = BatchAxis.GetAclPosition();
int downValue = Robot.Config.Height_ChangeValue * (posInfo.PlateH + 2);
int downValue = Robot.Config.Height_ChangeValue * (posInfo.PlateH + downValueMM);
int batchTP = currPositon - downValue;
if (batchTP <= Config.BatchAxisP1)
{
......@@ -588,9 +596,9 @@ namespace OnlineStore.DeviceLibrary
}
private void CheckShelfIsFull()
{
{
int currPositon = BatchAxis.GetAclPosition();
int nextP = currPositon - Robot.Config.Height_ChangeValue * (8 + 2);
int nextP = currPositon - Robot.Config.Height_ChangeValue * (8 + 20);
if (nextP <= Config.BatchAxisP1)
{
if (Robot.IOValue(Config.IO_ReelCheck).Equals(IO_VALUE.HIGH))
......
......@@ -340,7 +340,6 @@ namespace OnlineStore.DeviceLibrary
AgvClient.SetStatus(Config.AgvName_A);
AgvClient.SetStatus(Config.AgvName_B);
runStatus = RunStatus.Wait;
MoveInfo.EndMove();
BatchMove_A.StopMove();
......
......@@ -244,11 +244,19 @@ namespace OnlineStore.DeviceLibrary
}
}
else if (MoveInfo.IsStep(StepEnum.II41_MiddleTWaitP4))
{
TrayHasLeave();
MoveInfo.NextMoveStep(StepEnum.II42_WaitNoReel);
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: 等待A上暂存区无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.UpperArea_Check_A, IO_VALUE.LOW));
{
if (UpdownAxis.IsInPosition(Config.Updown_P4_AUpperH))
{
TrayHasLeave();
MoveInfo.NextMoveStep(StepEnum.II42_WaitNoReel);
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: 等待A上暂存区无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.UpperArea_Check_A, IO_VALUE.LOW));
}
else
{
II41_MiddleTWaitP4();
}
}
else if (MoveInfo.IsStep(StepEnum.II42_WaitNoReel))
{
......@@ -333,10 +341,17 @@ namespace OnlineStore.DeviceLibrary
}
else if (MoveInfo.IsStep(StepEnum.II61_MiddleToWaitP5))
{
TrayHasLeave();
MoveInfo.NextMoveStep(StepEnum.II62_WaitNoReel);
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: 等待B上暂存区无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.UpperArea_Check_B, IO_VALUE.LOW));
if (UpdownAxis.IsInPosition(Config.Updown_P10_BUpperH))
{
TrayHasLeave();
MoveInfo.NextMoveStep(StepEnum.II62_WaitNoReel);
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: 等待B上暂存区无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.UpperArea_Check_B, IO_VALUE.LOW));
}
else
{
II61_MiddleToWaitP5();
}
}
else if (MoveInfo.IsStep(StepEnum.II62_WaitNoReel))
{
......@@ -499,20 +514,40 @@ namespace OnlineStore.DeviceLibrary
}
else if (lastPosInfo.GetPosSide().Equals("A"))
{
MoveInfo.NextMoveStep(StepEnum.II40_UpdownToP4);
MoveLog($" 入料->A侧 {MoveInfo.SLog}: A侧入库料{lastPosInfo.ToStr()}, 升降轴 到P4(A上暂存区放料高点){Config.Updown_P4_AUpperH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
//MoveInfo.NextMoveStep(StepEnum.II40_UpdownToP4);
//MoveLog($" 入料->A侧 {MoveInfo.SLog}: A侧入库料{lastPosInfo.ToStr()}, 升降轴 到P4(A上暂存区放料高点){Config.Updown_P4_AUpperH}");
//UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
II41_MiddleTWaitP4();
}
else
{
MoveInfo.NextMoveStep(StepEnum.II60_UpdownToP10);
MoveLog($" 入料->B侧 {MoveInfo.SLog}: B侧入库料{lastPosInfo.ToStr()} ,升降轴 到P10(B上暂存区放料高点){Config.Updown_P10_BUpperH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed);
//MoveInfo.NextMoveStep(StepEnum.II60_UpdownToP10);
//MoveLog($" 入料->B侧 {MoveInfo.SLog}: B侧入库料{lastPosInfo.ToStr()} ,升降轴 到P10(B上暂存区放料高点){Config.Updown_P10_BUpperH}");
//UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed);
II61_MiddleToWaitP5();
}
}
private void II61_MiddleToWaitP5()
{
int targetValue = Config.Middle_P5_BUpper + Config.MiddleOffsetValue;
MoveInfo.NextMoveStep(StepEnum.II61_MiddleToWaitP5);
MoveLog($" 入料->B侧 {MoveInfo.SLog}: 暂存区有料,升降轴 到P10(B上暂存区放料高点){Config.Updown_P10_BUpperH}, 旋转轴 到P5{Config.Middle_P5_BUpper}-{Config.MiddleOffsetValue}=目标{targetValue}位置等待暂存区无料");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed);
MiddleAxis.AbsMove(MoveInfo, targetValue, Config.Middle_P5_Speed);
}
private void II41_MiddleTWaitP4()
{
int targetV = Config.Middle_P4_AUpper - Config.MiddleOffsetValue;
MoveInfo.NextMoveStep(StepEnum.II41_MiddleTWaitP4);
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
MoveLog($" 入料->A侧 {MoveInfo.SLog}: 暂存区有料,升降轴 到P4(A上暂存区放料高点){Config.Updown_P4_AUpperH}, 旋转轴 到P4{Config.Middle_P4_AUpper}-{Config.MiddleOffsetValue}=目标{targetV}位置等待暂存区无料");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
MiddleAxis.AbsMove(MoveInfo, targetV, Config.Middle_P4_Speed);
}
private Task getPosTask = null;
private InOutPosInfo LastPosInfo = null;
private int LastResult = 0;
......
......@@ -186,6 +186,7 @@ namespace OnlineStore.XLRStore
clampJawControl1.UpdateSta();
ReadIOList();
lblName.BackColor = inputEquip.GetShowColor();
lblStoreStatus.Text = inputEquip.GetRunStr();
if (inputEquip.runStatus > RunStatus.Wait)
{
if (btnStart.Enabled)
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!