Commit 02967b37 张东亮
2 个父辈 26617581 ecc17b1d
......@@ -818,9 +818,9 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
IBR02_LineRun,
/// <summary>
/// 入料模块复位:料串信号一致,阻挡气缸上升
/// 入料模块复位:批量轴直接走到待机点P1
/// </summary>
IBR03_StopUp,
IBR03_BatchToP1,
/// <summary>
/// 入料模块复位:批量轴原点返回
/// </summary>
......
......@@ -97,8 +97,12 @@ namespace OnlineStore.DeviceLibrary
{
if (StoreManager.checkWatch(shelfWatch, 10000, true))
{
Asa.ClientAction action= AgvClient.GetAction(Config.AgvName);
var agvcallresult = AgvClient.NeedEnter(Config.AgvName, "", Asa.ClientLevel.High);
WorkLog("无料串,:通知agv来送料串AgvName:" + Config.AgvName + ",send NeedEnter=:" + agvcallresult.ToString());
if (!action.Equals(Asa.ClientAction.NeedEnter))
{
WorkLog("无料串,:通知agv来送料串AgvName:" + Config.AgvName + ",send NeedEnter=:" + agvcallresult.ToString());
}
}
}
else if (Robot.IOValue(Config.IO_LineIn_Check).Equals(IO_VALUE.HIGH) && Robot.IOValue(Config.IO_LineEnd_Check).Equals(IO_VALUE.HIGH)
......@@ -121,7 +125,7 @@ namespace OnlineStore.DeviceLibrary
}
string msg = "";
bool axisOpen = BatchAxis.Open(true, out msg);
WorkLog("批量轴打开结果:" + axisOpen);
// WorkLog("批量轴打开结果:" + axisOpen);
if (!axisOpen)
{
BatchAxis.SuddenStop();
......@@ -164,25 +168,21 @@ namespace OnlineStore.DeviceLibrary
}
if (MoveInfo.IsStep(StepEnum.IBR01_StopDown))
{
//if (Robot.IOValue(Config.IO_LineIn_Check).Equals(Robot.IOValue(Config.IO_LineEnd_Check)))
//{
// LineStop();
// MoveInfo.NextMoveStep(StepEnum.IBR04_BatchHome);
// WorkLog("复位:批量轴开始回原点");
// BatchAxis.HomeMove(MoveInfo);
//}
//else
//{
MoveInfo.NextMoveStep(StepEnum.IBR02_LineRun);
WorkLog("复位:链条正转3秒");
LineRun(MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
//}
{
MoveInfo.NextMoveStep(StepEnum.IBR02_LineRun);
WorkLog("复位:链条正转3秒");
LineRun(MoveInfo);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
}
else if (MoveInfo.IsStep(StepEnum.IBR02_LineRun))
{
LineStop();
MoveInfo.NextMoveStep(StepEnum.IBR03_BatchToP1);
WorkLog("复位:批量轴走到待机点");
BatchAxis.AbsMove(MoveInfo, Config.BatchAxisP1, Robot.Config.BatchAxis_P1Speed);
}
else if (MoveInfo.IsStep(StepEnum.IBR03_BatchToP1))
{
MoveInfo.NextMoveStep(StepEnum.IBR04_BatchHome);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
WorkLog("复位:批量轴开始回原点");
......@@ -230,11 +230,7 @@ namespace OnlineStore.DeviceLibrary
{
StopMove();
}
}
}
#region 气缸操作
public void LineRun(DeviceMoveInfo moveInfo = null)
......
......@@ -174,62 +174,53 @@ namespace OnlineStore.DeviceLibrary
int updownP = UpdownAxis.GetAclPosition();
int middleP = MiddleAxis.GetAclPosition();
// if (UpdownAxis.IsInPosition(Config.Updown_P5_AUpperL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位 {MoveInfo.SLog}:当前升降轴在 A上暂存区低点 {Config.Updown_P5_AUpperL},升降轴先到P4:{Config.Updown_P4_AUpperH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P7_AUnderL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 A下暂存区低点 {Config.Updown_P7_AUnderL},升降轴先到P6:{Config.Updown_P6_AUnderH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P6_AUnderH, Config.Updown_P6_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P11_BUpperL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 B上暂存区低点{Config.Updown_P11_BUpperL},升降轴先到P10:{Config.Updown_P10_BUpperH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed);
//}
//else if (UpdownAxis.IsInPosition(Config.Updown_P13_BUnderL))
//{
// MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
// LogInfo($"复位{MoveInfo.SLog}:当前升降轴在 B下暂存区低点 {Config.Updown_P13_BUnderL},升降轴先到P12{Config.Updown_P12_BUnderH}");
// UpdownAxis.AbsMove(MoveInfo, Config.Updown_P12_BUnderH, Config.Updown_P12_Speed);
//}
int middleWucha = 20000;
int updownWucha = 20000;
//旋转轴在A暂存区
if (MiddleAxis.IsInPosition(Config.Middle_P4_AUpper) || MiddleAxis.IsInPosition(Config.Middle_P7_AUnder))
if (MiddleAxis.IsInPosition(Config.Middle_P4_AUpper, middleWucha) || MiddleAxis.IsInPosition(Config.Middle_P7_AUnder, middleWucha))
{
//如果升降轴<下方高点
if(updownP< Config.Updown_P6_AUnderH+10000)
//如果升降轴低于下方高点
if(updownP> Config.Updown_P6_AUnderH- updownWucha)
{
MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P4:{Config.Updown_P6_AUnderH}");
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P6:{Config.Updown_P6_AUnderH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P6_AUnderH, Config.Updown_P6_Speed);
}
else
//升降轴高于上方低点
else if(updownP<Config.Updown_P5_AUpperL+ updownWucha)
{
MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},在上方暂存区,升降轴先回待机点:{Config.Updown_P1}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P1, Config.Updown_P1_Speed);
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 A侧暂存区{middleP},升降轴当前位置{updownP},高于上方低点,升降轴到上方高点P4:{Config.Updown_P4_AUpperH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P4_AUpperH, Config.Updown_P4_Speed);
}
else
{
SetWarnMsg($"复位失败,当前旋转轴位置{middleP},升降轴位置{updownP},无法判断位于A侧暂存区上方或下方");
Alarm(AlarmType.SuddenStop);
}
}
else if (MiddleAxis.IsInPosition(Config.Middle_P5_BUpper)|| MiddleAxis.IsInPosition(Config.Middle_P8_BUnder))
else if (MiddleAxis.IsInPosition(Config.Middle_P5_BUpper, middleWucha) || MiddleAxis.IsInPosition(Config.Middle_P8_BUnder, middleWucha))
{
if (updownP < Config.Updown_P12_BUnderH + 10000)
//如果升降轴低于下方高点
if (updownP > Config.Updown_P12_BUnderH - updownWucha)
{
MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到P4:{Config.Updown_P12_BUnderH}");
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},低于下方高点,升降轴先到12:{Config.Updown_P12_BUnderH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P12_BUnderH, Config.Updown_P12_BUnderH);
}
else
//升降轴高于上方低点
else if (updownP<Config.Updown_P11_BUpperL+ updownWucha)
{
MoveInfo.NextMoveStep(StepEnum.IR02_UpdownUpMove);
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},在上方暂存区,升降轴先回待机点:{Config.Updown_P1}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P1, Config.Updown_P1_Speed);
}
LogInfo($"复位 {MoveInfo.SLog}:当前旋转轴在 B侧暂存区{middleP},升降轴当前位置{updownP},高于上方低点,升降轴到上方高点P10:{Config.Updown_P10_BUpperH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P10_BUpperH, Config.Updown_P10_Speed);
}
else
{
SetWarnMsg($"复位失败,当前旋转轴位置{middleP},升降轴位置{updownP},无法判断位于A侧暂存区上方或下方");
Alarm(AlarmType.SuddenStop);
}
}
else
{
......
......@@ -160,6 +160,7 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.MoveParam.PosInfo.barcode.EndsWith("TEST"))
{
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: 条码 {MoveInfo.MoveParam.PosInfo.barcode}为测试料,直接去目标位置");
LastPosInfo = MoveInfo.MoveParam.PosInfo;
StrartToTargetP(MoveInfo.MoveParam.PosInfo);
}
else
......@@ -404,25 +405,25 @@ namespace OnlineStore.DeviceLibrary
}
}
private void StrartToTargetP(InOutPosInfo lastPosInfo)
{
{
int shelf = MoveInfo.MoveParam.ShelfType;
//判断是A还是B
if (LastPosInfo.IsNG)
if (lastPosInfo.IsNG)
{
MoveInfo.NextMoveStep(StepEnum.II81_UpdownToP8);
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: NG料{LastPosInfo.ToStr()} 升降轴到P8(NG料区放料高点){Config.Updown_P8_NGH}");
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: NG料{lastPosInfo.ToStr()} 升降轴到P8(NG料区放料高点){Config.Updown_P8_NGH}");
UpdownAxis.AbsMove(MoveInfo, Config.Updown_P8_NGH, Config.Updown_P8_Speed);
}
else if (LastPosInfo.GetPosSide().Equals("A"))
else if (lastPosInfo.GetPosSide().Equals("A"))
{
MoveInfo.NextMoveStep(StepEnum.II41_WaitNoReel);
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: A侧入库料{LastPosInfo.ToStr()} 等待A上暂存区无料");
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: A侧入库料{lastPosInfo.ToStr()} 等待A上暂存区无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.UpperArea_Check_A, IO_VALUE.LOW));
}
else
{
MoveInfo.NextMoveStep(StepEnum.II61_WaitNoReel);
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: B侧入库料{LastPosInfo.ToStr()} 等待B上暂存区无料");
MoveLog($"入库取料{shelf}{MoveInfo.SLog}: B侧入库料{lastPosInfo.ToStr()} 等待B上暂存区无料");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.UpperArea_Check_B, IO_VALUE.LOW));
}
}
......@@ -481,6 +482,15 @@ namespace OnlineStore.DeviceLibrary
LastPosInfo = result.Param;
break;
}
if (count >= 3)
{
//自动NG
LastPosInfo = new InOutPosInfo(pos.barcode, "");
LastPosInfo.IsNG = true;
LastPosInfo.NgMsg = "获取库位超过三次,直接NG";
break;
}
count++;
}
}
......
......@@ -474,9 +474,13 @@ namespace OnlineStore.XLRStore
InputControl.ShowData(input.IsDebug, input.GetRunStr(), input.WarnMsg, input.MoveInfo, input.GetShowColor());
ShelfAControl.ShowData(true, "", input.BatchMove_A.WarnMsg, input.BatchMove_A.MoveInfo, input.BatchMove_A.GetShowColor(), input.BatchMove_A.CurrShelf?.ToStr());
ShelfBControl.ShowData(true, "", input.BatchMove_B.WarnMsg, input.BatchMove_B.MoveInfo, input.BatchMove_B.GetShowColor(), input.BatchMove_B.CurrShelf?.ToStr());
ReelControlA1.ShowData("A上暂存区物料", BufferDataManager.AInStoreInfo);
ReelControlA2.ShowData("A下暂存区物料", BufferDataManager.AOutStoreInfo);
ReelControlB1.ShowData("B上暂存区物料", BufferDataManager.BInStoreInfo);
ReelControlB2.ShowData("B下暂存区物料", BufferDataManager.BOutStoreInfo);
if (StoreBean.runStatus > RunStatus.Wait)
{
if (启动AToolStripMenuItem.Enabled.Equals(true))
......
......@@ -236,7 +236,7 @@
this.batchAxisP2.Name = "batchAxisP2";
this.batchAxisP2.PointBackColor = System.Drawing.Color.Transparent;
this.batchAxisP2.PointForeColor = System.Drawing.Color.Blue;
this.batchAxisP2.PointText = "上升待机点P2:";
this.batchAxisP2.PointText = "上料目标位置P2:";
this.batchAxisP2.PointValue = 0;
this.batchAxisP2.Size = new System.Drawing.Size(233, 41);
this.batchAxisP2.TabIndex = 325;
......@@ -248,7 +248,7 @@
this.batchAxisP1.Name = "batchAxisP1";
this.batchAxisP1.PointBackColor = System.Drawing.Color.Transparent;
this.batchAxisP1.PointForeColor = System.Drawing.Color.Blue;
this.batchAxisP1.PointText = "上升待机点P1:";
this.batchAxisP1.PointText = "待机点P1:";
this.batchAxisP1.PointValue = 0;
this.batchAxisP1.Size = new System.Drawing.Size(233, 41);
this.batchAxisP1.TabIndex = 324;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!