Commit 623747df LN

没有料盘时不去ng口

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