Commit c4c90572 LN

移栽模块流程优化。

上料模块出料架口收到ready信号后,先把状态设置为None。
1 个父辈 bbfcdee8
...@@ -279,7 +279,8 @@ PRO,0,移栽上下轴流水线取放料详细位置P2,UpDownP2DetialList,0X0=800 ...@@ -279,7 +279,8 @@ PRO,0,移栽上下轴流水线取放料详细位置P2,UpDownP2DetialList,0X0=800
20200309 20200309
流水线启动时先转动链条5秒,停止时最后停止流水线,防止托盘停留在rfid读卡器上方。 流水线启动时先转动链条5秒,停止时最后停止流水线,防止托盘停留在rfid读卡器上方。
移栽模块流程优化。
上料模块出料架口收到ready信号后,先把状态设置为None。
......
...@@ -681,10 +681,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -681,10 +681,11 @@ namespace OnlineStore.DeviceLibrary
string logName = Name + "[" + Config.AgvOutName + "] 料架送入AGV "; string logName = Name + "[" + Config.AgvOutName + "] 料架送入AGV ";
try try
{ {
LogUtil.info(logName + "开始,先设置状态为None");
AgvClient.SetStatus(Config.AgvOutName, LastOutShelfId, ClientAction.None, ClientLevel.High, true);
if (IOValue(IO_Type.SL_Out_Check).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.SL_Out_Check).Equals(IO_VALUE.HIGH))
{ {
LogUtil.info(logName+"开始"); // AgvClient.SetStatus(Config.AgvOutName,"",ClientAction.MayLeave,ClientLevel.High);
// AgvClient.SetStatus(Config.AgvOutName,"",ClientAction.MayLeave,ClientLevel.High);
ProcessShelfOut = true; ProcessShelfOut = true;
//出口阻挡下降,出口线体转动 //出口阻挡下降,出口线体转动
IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.HIGH); IOMove(IO_Type.SL_Out_StopDown, IO_VALUE.HIGH);
...@@ -713,6 +714,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -713,6 +714,10 @@ namespace OnlineStore.DeviceLibrary
ProcessShelfOut = false; ProcessShelfOut = false;
LogUtil.info(logName + ",停止转动, 结束"); LogUtil.info(logName + ",停止转动, 结束");
} }
else
{
LogUtil.info(logName + "开始,未检测到料架信号,不处理");
}
} }
catch (TimeoutException te) catch (TimeoutException te)
{ {
......
...@@ -59,22 +59,32 @@ namespace OnlineStore.DeviceLibrary ...@@ -59,22 +59,32 @@ namespace OnlineStore.DeviceLibrary
#region 移载装置 移栽物品操作 #region 移载装置 移栽物品操作
if (MoveInfo.MoveStep.Equals(LineMoveStep.MO_50_StartOutProcess)) if (MoveInfo.MoveStep.Equals(LineMoveStep.MO_50_StartOutProcess))
{ {
MoveInfo.NextMoveStep(LineMoveStep.MO_51_CylinderBefore); MoveInfo.NextMoveStep(LineMoveStep.MO_51_CylinderBefore);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
OutLog("出库 " + MoveInfo.MoveStep + ": 前后气缸前进"); OutLog("出库 " + MoveInfo.MoveStep + ": 前后气缸前进");
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before); CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before);
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.MO_51_CylinderBefore)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.MO_51_CylinderBefore))
{ {
MoveInfo.NextMoveStep(LineMoveStep.MO_52_CylinderDown); if (CylinderIsOk(IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before))
OutLog("出库 " + MoveInfo.SLog + ": 上下气缸下降 "); {
UpdownDownP3Move(MoveInfo.MoveParam.PlateH); MoveInfo.NextMoveStep(LineMoveStep.MO_52_CylinderDown);
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Up, IO_Type.UpDownCylinder_Down); OutLog("出库 " + MoveInfo.SLog + ": 上下气缸下降 ");
UpdownDownP3Move(MoveInfo.MoveParam.PlateH);
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Up, IO_Type.UpDownCylinder_Down);
}
else
{
MoveInfo.NextMoveStep(LineMoveStep.MO_51_CylinderBefore);
OutLog("出库 " + MoveInfo.MoveStep + ": 前后气缸前进");
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before);
}
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.MO_52_CylinderDown)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.MO_52_CylinderDown))
{ {
MoveInfo.NextMoveStep(LineMoveStep.MO_53_DownWait); MoveInfo.NextMoveStep(LineMoveStep.MO_53_DownWait);
OutLog("出库 " + MoveInfo.SLog + ": 等待600ms后夹紧"); OutLog("出库 " + MoveInfo.SLog + ": 等待200ms后夹紧");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(600)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.MO_53_DownWait)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.MO_53_DownWait))
{ {
...@@ -101,7 +111,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -101,7 +111,7 @@ namespace OnlineStore.DeviceLibrary
if (TrayIsOk()) if (TrayIsOk())
{ {
MoveInfo.NextMoveStep(LineMoveStep.MO_56_CylinderAfter); MoveInfo.NextMoveStep(LineMoveStep.MO_56_CylinderAfter);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
OutLog("出库 " + MoveInfo.SLog + ": 前后气缸后退"); OutLog("出库 " + MoveInfo.SLog + ": 前后气缸后退");
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After); CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After);
} }
...@@ -109,7 +119,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -109,7 +119,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
MoveInfo.NextMoveStep(LineMoveStep.MO_56_CylinderAfter); MoveInfo.NextMoveStep(LineMoveStep.MO_56_CylinderAfter);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(500)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
OutLog("出库 " + MoveInfo.SLog + ": 前后气缸后退"); OutLog("出库 " + MoveInfo.SLog + ": 前后气缸后退");
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After); CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After);
} }
...@@ -250,14 +260,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -250,14 +260,14 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(LineMoveStep.MI_06_CylinderDown); MoveInfo.NextMoveStep(LineMoveStep.MI_06_CylinderDown);
InLog("入库 " + MoveInfo.SLog + ": 升降下降"); InLog("入库 " + MoveInfo.SLog + ": 升降下降");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
UpdownDownP2Move(MoveInfo.MoveParam.PlateH,MoveInfo.MoveParam.PlateW); UpdownDownP2Move(MoveInfo.MoveParam.PlateH,MoveInfo.MoveParam.PlateW);
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_06_CylinderDown)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_06_CylinderDown))
{ {
MoveInfo.NextMoveStep(LineMoveStep.MI_07_DownWait); MoveInfo.NextMoveStep(LineMoveStep.MI_07_DownWait);
InLog("入库 " + MoveInfo.SLog + ": 等待600ms后夹紧"); InLog("入库 " + MoveInfo.SLog + ": 等待200ms后夹紧");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(600)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
} }
//只有当BOX可以进行出入库时,移栽物品,防止卡住 //只有当BOX可以进行出入库时,移栽物品,防止卡住
else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_07_DownWait)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_07_DownWait))
...@@ -294,9 +304,18 @@ namespace OnlineStore.DeviceLibrary ...@@ -294,9 +304,18 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_10_CylinderBefore)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_10_CylinderBefore))
{ {
MoveInfo.NextMoveStep(LineMoveStep.MI_11_CylinderDown); if (CylinderIsOk(IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before))
InLog("入库 " + MoveInfo.SLog + " ,上下气缸下降"); {
UpdownDownP3Move(MoveInfo.MoveParam.PlateH); MoveInfo.NextMoveStep(LineMoveStep.MI_11_CylinderDown);
InLog("入库 " + MoveInfo.SLog + " ,上下气缸下降");
UpdownDownP3Move(MoveInfo.MoveParam.PlateH);
}
else
{
MoveInfo.NextMoveStep(LineMoveStep.MI_10_CylinderBefore);
InLog("入库: " + MoveInfo.SLog + " 前后气缸1前进");
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before);
}
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_11_CylinderDown)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_11_CylinderDown))
{ {
...@@ -313,9 +332,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -313,9 +332,9 @@ namespace OnlineStore.DeviceLibrary
else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_13_UpdownCylinderUp)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.MI_13_UpdownCylinderUp))
{ {
MoveInfo.NextMoveStep(LineMoveStep.MI_14_CylinderAfter); MoveInfo.NextMoveStep(LineMoveStep.MI_14_CylinderAfter);
InLog("入库 " + MoveInfo.SLog + ",前后气缸后退,等待1000 "); InLog("入库 " + MoveInfo.SLog + ",前后气缸后退,等待300 ");
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After); CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
//此时box就可以入库操作了 //触发事件,BOX入库 //此时box就可以入库操作了 //触发事件,BOX入库
// LineServer.StartInStore(DeviceID, MoveInfo.MoveParam); // LineServer.StartInStore(DeviceID, MoveInfo.MoveParam);
} }
......
...@@ -433,14 +433,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -433,14 +433,14 @@ namespace OnlineStore.DeviceLibrary
{ {
MoveInfo.NextMoveStep(LineMoveStep.PO_01_CylinderDown); MoveInfo.NextMoveStep(LineMoveStep.PO_01_CylinderDown);
OutLog(" " + MoveInfo.SLog + " : 上下气缸下降"); OutLog(" " + MoveInfo.SLog + " : 上下气缸下降");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
UpdownDownP2Move(MoveInfo.MoveParam.PlateH, MoveInfo.MoveParam.PlateW); UpdownDownP2Move(MoveInfo.MoveParam.PlateH, MoveInfo.MoveParam.PlateW);
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_01_CylinderDown)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_01_CylinderDown))
{ {
MoveInfo.NextMoveStep(LineMoveStep.PO_02_DownWait); MoveInfo.NextMoveStep(LineMoveStep.PO_02_DownWait);
OutLog("出料 " + MoveInfo.SLog + " : 等待300后夹紧"); OutLog("出料 " + MoveInfo.SLog + " : 等待200后夹紧");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
} }
//只有当BOX可以进行出出料时,移栽物品,防止卡住 //只有当BOX可以进行出出料时,移栽物品,防止卡住
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_02_DownWait)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_02_DownWait))
...@@ -485,21 +485,30 @@ namespace OnlineStore.DeviceLibrary ...@@ -485,21 +485,30 @@ namespace OnlineStore.DeviceLibrary
} }
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_06_CylinderBefore)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_06_CylinderBefore))
{ {
if (LineIsReady()) if (CylinderIsOk(IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before))
{ {
//气缸不下降,直接扔料 if (LineIsReady())
//MoveInfo.NextMoveStep(LineMoveStep.PO_07_CylinderDown); {
//OutLog("出料:" + MoveInfo.SLog + " ,上下气缸下降)"); //气缸不下降,直接扔料
//UpdownDownP3Move(MoveInfo.MoveParam.PlateH); //MoveInfo.NextMoveStep(LineMoveStep.PO_07_CylinderDown);
MoveInfo.NextMoveStep(LineMoveStep.PO_08_CylinderRelax); //OutLog("出料:" + MoveInfo.SLog + " ,上下气缸下降)");
OutLog("出料:" + MoveInfo.SLog + ",夹料气缸放松)"); //UpdownDownP3Move(MoveInfo.MoveParam.PlateH);
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Slack, IO_Type.ClampCylinder_Tighten); MoveInfo.NextMoveStep(LineMoveStep.PO_08_CylinderRelax);
OutLog("出料:" + MoveInfo.SLog + ",夹料气缸放松)");
CylinderMove(MoveInfo, IO_Type.ClampCylinder_Slack, IO_Type.ClampCylinder_Tighten);
}
else if (MoveInfo.IsTimeOut())
{
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveType + "][" + MoveInfo.MoveStep + "]等待 皮带线可放料 " + "超时[" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
LogUtil.error(WarnMsg, DeviceID + 20);
Alarm(LineAlarmType.IoSingleTimeOut);
}
} }
else if (MoveInfo.IsTimeOut()) else
{ {
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveType + "][" + MoveInfo.MoveStep + "]等待 皮带线可放料 " + "超时[" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒"; MoveInfo.NextMoveStep(LineMoveStep.PO_06_CylinderBefore);
LogUtil.error(WarnMsg, DeviceID + 20); OutLog("出料:" + MoveInfo.SLog + " ,前后气缸前进)");
Alarm(LineAlarmType.IoSingleTimeOut); CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_After, IO_Type.BeforeAfterCylinder_Before);
} }
} }
//else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_07_CylinderDown)) //else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_07_CylinderDown))
...@@ -510,16 +519,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -510,16 +519,16 @@ namespace OnlineStore.DeviceLibrary
//} //}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_08_CylinderRelax)) else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_08_CylinderRelax))
{ {
MoveInfo.NextMoveStep(LineMoveStep.PO_09_CylinderUp); // MoveInfo.NextMoveStep(LineMoveStep.PO_09_CylinderUp);
OutLog("出料:" + MoveInfo.SLog + ",上下气缸上升)"); // OutLog("出料:" + MoveInfo.SLog + ",上下气缸上升)");
UpdownUpMove(); // UpdownUpMove();
} //}
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_09_CylinderUp)) //else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_09_CylinderUp))
{ //{
MoveInfo.NextMoveStep(LineMoveStep.PO_10_CylinderAfter); MoveInfo.NextMoveStep(LineMoveStep.PO_10_CylinderAfter);
OutLog("出料:" + MoveInfo.SLog + ",前后气缸后退,等待1000 ,皮带线继续运动"); OutLog("出料:" + MoveInfo.SLog + ",前后气缸后退,等待200 ,皮带线继续运动");
CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After); CylinderMove(MoveInfo, IO_Type.BeforeAfterCylinder_Before, IO_Type.BeforeAfterCylinder_After);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(1000)); MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(200));
//出料皮带线停止出料 //出料皮带线停止出料
DisLineContiune(); DisLineContiune();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!