Commit 623747df LN

没有料盘时不去ng口

1 个父辈 c4e81548
...@@ -111,7 +111,7 @@ namespace OnlineStore.Common ...@@ -111,7 +111,7 @@ namespace OnlineStore.Common
} }
catch (Exception e) catch (Exception e)
{ {
LogUtil.error( "POST ERROR:" + e.StackTrace, 1); LogUtil.error( "POST ERROR:" + e.ToString(), 1);
} }
if (!result.Contains("null") && result.Length != 0) if (!result.Contains("null") && result.Length != 0)
{ {
......
...@@ -114,12 +114,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -114,12 +114,12 @@ namespace OnlineStore.DeviceLibrary
{ {
if (IOValue(IO_Type.LineTake_Check).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.LineTake_Check).Equals(IO_VALUE.HIGH))
{ {
LogInfo("BI_01_ReadyShelf 等待小车到达Arrive,检测到 LineTake_Check 信号,结束等待"); LogInfo("BI_01_ReadyShelf 等待agv到达Arrive,检测到 LineTake_Check 信号,结束等待");
wait.IsEnd = true; wait.IsEnd = true;
} }
else if (IOValue(IO_Type.LineIn_Check).Equals(IO_VALUE.HIGH)) else if (IOValue(IO_Type.LineIn_Check).Equals(IO_VALUE.HIGH))
{ {
LogInfo("BI_01_ReadyShelf 等待小车到达Arrive,检测到 LineIn_Check 信号,结束等待"); LogInfo("BI_01_ReadyShelf 等待agv到达Arrive,检测到 LineIn_Check 信号,结束等待");
wait.IsEnd = true; wait.IsEnd = true;
} }
} }
...@@ -127,7 +127,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -127,7 +127,7 @@ namespace OnlineStore.DeviceLibrary
{ {
if (IOValue(IO_Type.LineTake_Check).Equals(IO_VALUE.LOW) && IOValue(IO_Type.LineIn_Check).Equals(IO_VALUE.LOW)) if (IOValue(IO_Type.LineTake_Check).Equals(IO_VALUE.LOW) && IOValue(IO_Type.LineIn_Check).Equals(IO_VALUE.LOW))
{ {
LogInfo("等待小车离开FinishOut,检测到 LineTake_Check和LineIn_Check都没有信号,结束等待"); LogInfo("等待agv离开FinishOut,检测到 LineTake_Check和LineIn_Check都没有信号,结束等待");
wait.IsEnd = true; wait.IsEnd = true;
} }
} }
...@@ -302,13 +302,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -302,13 +302,13 @@ namespace OnlineStore.DeviceLibrary
} }
private void StartSendTray(string str = "扫码失败") private void StartSendTray(string str = "扫码失败")
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_71_ToNGDoor); MoveInfo.NextMoveStep(StoreMoveStep.BI_71_ToNGDoor);
InOutStoreLog("送出料盘 " + MoveInfo.SLog + ":" + str + ",升降轴到NG门口高点P12,旋转轴到NG门口P11"); InOutStoreLog("送出料盘 " + MoveInfo.SLog + ":" + str + ",升降轴到NG门口高点P12,旋转轴到NG门口P11");
ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.MoveP.UpDown_P12, Config.UpDownAxis_P1_Speed); ACAxisMove(Config.UpDown_Axis, MoveInfo.MoveParam.MoveP.UpDown_P12, Config.UpDownAxis_P1_Speed);
ACAxisMove(Config.Middle_Axis, MoveInfo.MoveParam.MoveP.Middle_P11, Config.MiddleAxis_P1_Speed); ACAxisMove(Config.Middle_Axis, MoveInfo.MoveParam.MoveP.Middle_P11, Config.MiddleAxis_P1_Speed);
} }
protected override void InStoreProcess() protected override void InStoreProcess()
{ {
...@@ -388,8 +388,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -388,8 +388,8 @@ namespace OnlineStore.DeviceLibrary
LastHeight = Config.GetComP2PlateH(targetP); LastHeight = Config.GetComP2PlateH(targetP);
MoveInfo.MoveParam.MoveP.ComPress_P2 = targetP; MoveInfo.MoveParam.MoveP.ComPress_P2 = targetP;
MoveInfo.MoveParam.MoveP.ComPress_P3 = targetP + Config.CompAxis_P3_P2_Value; MoveInfo.MoveParam.MoveP.ComPress_P3 = targetP + Config.CompAxis_P3_P2_Value;
InOutStoreLog("料架取料 " + MoveInfo.SLog + ":检测到料叉压紧确认信号,向下压紧【" + ComTargetPosition + "】目标【" + targetP + InOutStoreLog("料架取料 " + MoveInfo.SLog + ":检测到料叉压紧确认信号,向下压紧[" + Config.CompAxis_Down_Position + "]目标[" + targetP +
"】,记录料盘高度【" + LastHeight + "】,ComP2【"+ targetP + "】ComP3【"+ MoveInfo.MoveParam.MoveP.ComPress_P3 + "】"); "],盘高【" + LastHeight + "】,ComP2["+ targetP + "]ComP3["+ MoveInfo.MoveParam.MoveP.ComPress_P3 + "]");
ACAxisMove(Config.Comp_Axis, targetP, Config.CompAxis_P1_Speed); ACAxisMove(Config.Comp_Axis, targetP, Config.CompAxis_P1_Speed);
...@@ -437,22 +437,27 @@ namespace OnlineStore.DeviceLibrary ...@@ -437,22 +437,27 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_24_InOutToP1)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_24_InOutToP1))
{ {
if (IOValue(IO_Type.TrayCheck_3).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.TrayCheck_4).Equals(IO_VALUE.HIGH)) IO_VALUE io1 = IOValue(IO_Type.TrayCheck_1);
IO_VALUE io2 = IOValue(IO_Type.TrayCheck_2);
IO_VALUE io3 = IOValue(IO_Type.TrayCheck_3);
IO_VALUE io4 = IOValue(IO_Type.TrayCheck_4);
if (io3.Equals(IO_VALUE.HIGH) || io4.Equals(IO_VALUE.HIGH))
{ {
LastWidth = 15; LastWidth = 15;
} }
else if (IOValue(IO_Type.TrayCheck_1).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.TrayCheck_2).Equals(IO_VALUE.HIGH)) else if (io1.Equals(IO_VALUE.HIGH) || io2.Equals(IO_VALUE.HIGH))
{ {
LastWidth = 7; LastWidth = 7;
} }
else else
{ {
LastWidth = 7; LastWidth = 0;
LogUtil.info("未检测到识别区料盘检测信号, 默认高度为7"); LogUtil.info("未检测到识别区料盘检测信号, 设置默认宽度=0");
} }
MoveInfo.NextMoveStep(StoreMoveStep.BI_25_ScanCode); MoveInfo.NextMoveStep(StoreMoveStep.BI_25_ScanCode);
InOutStoreLog("扫码 " + MoveInfo.SLog + ":记录宽度,开始扫码"); InOutStoreLog("扫码 " + MoveInfo.SLog + ":记录宽度【"+ LastWidth + "】,料盘识别信号值 [" + io1 + "] [" + io2 + "] [" + io3 + "] [" + io4 + "] ,开始扫码");
MoveInfo.OneWaitCanEndStep = true; MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(6000));
MoveInfo.WaitList.Add(WaitResultInfo.WaitCode()); MoveInfo.WaitList.Add(WaitResultInfo.WaitCode());
...@@ -465,9 +470,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -465,9 +470,18 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_25_ScanCode)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_25_ScanCode))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_27_InoutToP2); if (LastScanCodes.Count <= 0 && LastWidth.Equals(0) && LastHeight.Equals(8))
InOutStoreLog("扫码 " + MoveInfo.SLog + ":进出轴到P2"); {
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed); storeStatus = StoreStatus.InStoreExecute;
MoveInfo.NextMoveStep(StoreMoveStep.BI_10_StartGetTray);
InOutStoreLog(" 扫码失败,且尺寸为" + LastWidth + "*" + LastHeight + ",认为没拿到料盘,判断是否有下个料盘,扫码入库");
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.BI_27_InoutToP2);
InOutStoreLog("扫码 " + MoveInfo.SLog + ":进出轴到P2");
ACAxisMove(Config.InOut_Axis, moveP.InOut_P2, Config.InOutAxis_P2_Speed);
}
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_27_InoutToP2)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BI_27_InoutToP2))
{ {
...@@ -486,7 +500,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -486,7 +500,7 @@ namespace OnlineStore.DeviceLibrary
{ {
if (LastScanCodes.Count <= 0) if (LastScanCodes.Count <= 0)
{ {
StartSendTray("扫码失败"); StartSendTray();
} }
else else
{ {
...@@ -562,6 +576,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -562,6 +576,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
storeStatus = StoreStatus.InStoreExecute;
MoveInfo.NextMoveStep(StoreMoveStep.BI_10_StartGetTray); MoveInfo.NextMoveStep(StoreMoveStep.BI_10_StartGetTray);
InOutStoreLog("料架入库 " + MoveInfo.SLog + ":上一盘入库结束, 耗时【" + FormUtil.GetSpanStr(span) + "】判断是否有下个料盘,扫码入库"); InOutStoreLog("料架入库 " + MoveInfo.SLog + ":上一盘入库结束, 耗时【" + FormUtil.GetSpanStr(span) + "】判断是否有下个料盘,扫码入库");
} }
...@@ -728,9 +743,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -728,9 +743,9 @@ namespace OnlineStore.DeviceLibrary
if ((IOValue(IO_Type.LineTake_Check).Equals(IO_VALUE.LOW) && MoveInfo.MoveParam.NeedEnterShelf) || MoveInfo.MoveParam.ShelfPosID.Equals("")) if ((IOValue(IO_Type.LineTake_Check).Equals(IO_VALUE.LOW) && MoveInfo.MoveParam.NeedEnterShelf) || MoveInfo.MoveParam.ShelfPosID.Equals(""))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BI_01_ReadyShelf); MoveInfo.NextMoveStep(StoreMoveStep.BI_01_ReadyShelf);
InOutStoreLog("出库 " + MoveInfo.SLog + ":ReadyShelf:通知agv调度准备带料架的小车,等待小车到达或检测到料架信号,进出轴到P1"); InOutStoreLog("出库 " + MoveInfo.SLog + ":ReadyShelf:通知agv调度准备带料架的agv,等待agv到达或检测到料架信号,进出轴到P1");
InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1); InOutBackToP1(MoveInfo.MoveParam.MoveP.InOut_P1);
//需要先叫小车到达 //需要先叫agv到达
AgvClient.ReadyShelf(Config.AgvNodeName); AgvClient.ReadyShelf(Config.AgvNodeName);
MoveInfo.WaitList.Add(WaitResultInfo.WaitAgvAction((int)Asa.Actions.Arrive)); MoveInfo.WaitList.Add(WaitResultInfo.WaitAgvAction((int)Asa.Actions.Arrive));
} }
...@@ -809,9 +824,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -809,9 +824,9 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep == StoreMoveStep.SO_07_LocationUp) else if (MoveInfo.MoveStep == StoreMoveStep.SO_07_LocationUp)
{ {
MoveInfo.NextMoveStep(StoreMoveStep.SO_08_ToShelfPosition); MoveInfo.NextMoveStep(StoreMoveStep.SO_08_ToShelfPosition);
InOutStoreLog("出库 " + MoveInfo.SLog + ":走到料架位置,旋转轴至P101,升降轴至P102, "); InOutStoreLog("出库 " + MoveInfo.SLog + ":走到料架位置,旋转轴至P101,升降轴至P102 ");
ACAxisMove(Config.UpDown_Axis, moveP.UpDown_HP102, Config.UpDownAxis_P102_Speed); ACAxisMove(Config.UpDown_Axis, moveP.UpDown_HP102, Config.UpDownAxis_P102_Speed);
ACAxisMove(Config.Middle_Axis, moveP.Middle_P101, Config.MiddleAxis_P101_Speed); ACAxisMove(Config.Middle_Axis, moveP.Middle_P101, Config.MiddleAxis_P101_Speed);
} }
else if (MoveInfo.MoveStep == StoreMoveStep.SO_08_ToShelfPosition) else if (MoveInfo.MoveStep == StoreMoveStep.SO_08_ToShelfPosition)
......
...@@ -43,7 +43,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -43,7 +43,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
// MoveInfo.ShelfPositionList = new List<string>(ShelfPosList); // MoveInfo.ShelfPositionList = new List<string>(ShelfPosList);
InOutStoreLog(moveName + MoveInfo.SLog + "调用AgvClient.MayEnter,小车已到达,打开入料口移门"); InOutStoreLog(moveName + MoveInfo.SLog + "调用AgvClient.MayEnter,agv已到达,打开入料口移门");
MoveInfo.NextMoveStep(StoreMoveStep.BI_02_DoorOpen); MoveInfo.NextMoveStep(StoreMoveStep.BI_02_DoorOpen);
DoorBean.StartOpen(MoveInfo); DoorBean.StartOpen(MoveInfo);
} }
...@@ -198,27 +198,38 @@ namespace OnlineStore.DeviceLibrary ...@@ -198,27 +198,38 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_03_DoorOpen)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_03_DoorOpen))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BS_04_ReadyEmpty); MoveInfo.NextMoveStep(StoreMoveStep.BS_04_ReadyEmpty);
InOutStoreLog(moveName + MoveInfo.SLog + ":调用AgvClient.ReadyEmpty,等待Agv小车到达"); MoveInfo.OneWaitCanEndStep = true;
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
InOutStoreLog(moveName + MoveInfo.SLog + ":调用AgvClient.ReadyEmpty,等待Agv到达 ,最多等待1000");
AgvClient.ReadyEmpty(Config.AgvNodeName); AgvClient.ReadyEmpty(Config.AgvNodeName);
//等待小车到达 //等待agv到达
MoveInfo.WaitList.Add(WaitResultInfo.WaitAgvAction((int)Asa.Actions.Arrive)); MoveInfo.WaitList.Add(WaitResultInfo.WaitAgvAction((int)Asa.Actions.Arrive));
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_04_ReadyEmpty)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_04_ReadyEmpty))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BS_05_LineBackRun); MoveInfo.NextMoveStep(StoreMoveStep.BS_05_LineBackRun);
//agv到达
if (instoreShelf) if (AgvClient.GetAction(Config.AgvNodeName).Equals(Asa.Actions.Arrive))
{ {
InOutStoreLog(moveName + MoveInfo.SLog + ":调用AgvClient.SendRFID【" + CurrShelfID + "】,调用AgvClient.MayOut,线体开始反转"); if (instoreShelf)
//TODO AGV到达,发送料架信息,是否需要重新读取? {
AgvClient.SendRFID(Config.AgvNodeName, CurrShelfID); InOutStoreLog(moveName + MoveInfo.SLog + ":agv到达,调用AgvClient.SendRFID【" + CurrShelfID + "】,调用AgvClient.MayOut,线体开始反转");
//TODO AGV到达,发送料架信息,是否需要重新读取?
AgvClient.SendRFID(Config.AgvNodeName, CurrShelfID);
}
else
{
InOutStoreLog(moveName + MoveInfo.SLog + ":agv到达, 调用AgvClient.MayOut,线体开始反转");
}
AgvClient.MayOut(Config.AgvNodeName);
LineBackRun();
} }
else else
{ {//如果agv未到达,直接结束
InOutStoreLog(moveName + MoveInfo.SLog + ": 调用AgvClient.MayOut,线体开始反转"); MoveEndToRuningStatus();
EmprtShelfList = new ConcurrentQueue<string>();
InOutStoreLog(moveName + MoveInfo.SLog + ":等待agv超时,直接结束");
} }
AgvClient.MayOut(Config.AgvNodeName);
LineBackRun();
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_05_LineBackRun)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_05_LineBackRun))
{ {
...@@ -232,7 +243,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -232,7 +243,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(StoreMoveStep.BS_07_WaitTime); MoveInfo.NextMoveStep(StoreMoveStep.BS_07_WaitTime);
InOutStoreLog(moveName + MoveInfo.SLog + ":再转动3000时间,同时等待收到FinishOut"); InOutStoreLog(moveName + MoveInfo.SLog + ":再转动3000时间,同时等待收到FinishOut");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(3000));
//等到小车离开 //等到agv离开
MoveInfo.WaitList.Add(WaitResultInfo.WaitAgvAction((int)Asa.Actions.FinishOut)); MoveInfo.WaitList.Add(WaitResultInfo.WaitAgvAction((int)Asa.Actions.FinishOut));
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_07_WaitTime)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_07_WaitTime))
...@@ -293,7 +304,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -293,7 +304,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info(logN + " ,未检测到:LineIn_Check,不处理"); LogUtil.info(logN + " ,未检测到:LineIn_Check,不处理");
return false; return false;
} }
//小车到达,开始处理 //agv到达,开始处理
if (storeRunStatus.Equals(StoreRunStatus.Runing) && if (storeRunStatus.Equals(StoreRunStatus.Runing) &&
MoveInfo.MoveType.Equals(StoreMoveType.None) && MoveInfo.MoveType.Equals(StoreMoveType.None) &&
IOValue(IO_Type.LineTake_Check).Equals(IO_VALUE.LOW)) IOValue(IO_Type.LineTake_Check).Equals(IO_VALUE.LOW))
...@@ -568,6 +579,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -568,6 +579,10 @@ namespace OnlineStore.DeviceLibrary
{ {
try try
{ {
if (LastWidth <= 0)
{
LastWidth = 7;
}
string message = StoreManager.ProcessCode(LastWidth, LastHeight, LastScanCodes); string message = StoreManager.ProcessCode(LastWidth, LastHeight, LastScanCodes);
if (message.Equals("") || string.IsNullOrEmpty(message)) if (message.Equals("") || string.IsNullOrEmpty(message))
{ {
......
...@@ -68,7 +68,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -68,7 +68,7 @@ namespace OnlineStore.DeviceLibrary
agvClient.ReadyEmpty(NodeName); agvClient.ReadyEmpty(NodeName);
} }
/// <summary> /// <summary>
/// 11 准备小车带料架 /// 11 准备agv带料架
/// </summary> /// </summary>
/// <param name="NodeName"></param> /// <param name="NodeName"></param>
internal static void ReadyShelf(string NodeName) internal static void ReadyShelf(string NodeName)
...@@ -101,7 +101,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -101,7 +101,7 @@ namespace OnlineStore.DeviceLibrary
agvClient.MayOut(NodeName); agvClient.MayOut(NodeName);
} }
/// <summary> /// <summary>
///17 小车离开 ///17 agv离开
/// </summary> /// </summary>
/// <param name="NodeName"></param> /// <param name="NodeName"></param>
internal static void GetOut(string NodeName) internal static void GetOut(string NodeName)
......
...@@ -161,7 +161,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -161,7 +161,7 @@ namespace OnlineStore.DeviceLibrary
#region 料架进入料仓步骤 1000开始 #region 料架进入料仓步骤 1000开始
/// <summary> /// <summary>
/// 通知agv准备带料架小车 /// 通知agv准备带料架agv
/// </summary> /// </summary>
BI_01_ReadyShelf=1001, BI_01_ReadyShelf=1001,
/// <summary> /// <summary>
......
...@@ -319,7 +319,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -319,7 +319,7 @@ namespace OnlineStore.DeviceLibrary
return "扫码完成"; return "扫码完成";
}else if (WaitType.Equals(WaitEnum.W010_AgvStatus)) }else if (WaitType.Equals(WaitEnum.W010_AgvStatus))
{ {
return "agv小车状态:" + (Asa.Actions)TargetPosition; return "Agv状态:" + (Asa.Actions)TargetPosition;
} }
else else
{ {
...@@ -413,7 +413,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -413,7 +413,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
internal static int W009_ScanCode = 9; internal static int W009_ScanCode = 9;
/// <summary> /// <summary>
/// agv小车状态 /// Agv状态
/// </summary> /// </summary>
internal static int W010_AgvStatus = 10; internal static int W010_AgvStatus = 10;
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!