Commit 8b465734 张东亮

入库完空料架等待30秒,有出库时出库

1 个父辈 966c1238
...@@ -17,7 +17,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -17,7 +17,7 @@ namespace OnlineStore.DeviceLibrary
{ {
private DateTime startOutStoreTime = DateTime.Now; private DateTime startOutStoreTime = DateTime.Now;
public bool IsIgnoreComSig = false; //忽略料叉压紧信号 public bool IsIgnoreComSig = false; //忽略料叉压紧信号
private void StartExecuctOut(InOutParam param) private bool StartExecuctOut(InOutParam param)
{ {
bool result; bool result;
...@@ -29,6 +29,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -29,6 +29,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo(" 执行出库【" + param.ToStr() + "】失败,加入等待队列"); LogInfo(" 执行出库【" + param.ToStr() + "】失败,加入等待队列");
waitOutStoreList.Enqueue(param); waitOutStoreList.Enqueue(param);
} }
return result;
} }
/// <summary> /// <summary>
...@@ -412,8 +413,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -412,8 +413,13 @@ namespace OnlineStore.DeviceLibrary
if (hasShelf) if (hasShelf)
{ {
string LastRfidID = GetLastRfid(); string LastRfidID = GetLastRfid();
// if (IsRightShelfId(CurrShelfID, MoveInfo.MoveParam.realRfid)) if (IsRightShelfId(LastRfidID, MoveInfo.MoveParam.realRfid))
if (MoveInfo.MoveParam.rfid.Equals(LastRfidID)) {
LogRunStepInfo($"【LastRfidID={LastRfidID}】【{MoveInfo.MoveParam.rfid}】 料架未使用,开始取料");
SO_03_ToBagPosition();
return;
}
else if (MoveInfo.MoveParam.rfid.Equals(LastRfidID))
{ {
//if(MoveInfo.MoveParam.cutReel || MoveInfo.MoveParam.urgentReel) //if(MoveInfo.MoveParam.cutReel || MoveInfo.MoveParam.urgentReel)
//{ //{
...@@ -688,7 +694,25 @@ namespace OnlineStore.DeviceLibrary ...@@ -688,7 +694,25 @@ namespace OnlineStore.DeviceLibrary
LogUtil.error(Name + " 出库处理,moveStatus=" + MoveInfo.MoveStep + ",没有对应的处理!"); LogUtil.error(Name + " 出库处理,moveStatus=" + MoveInfo.MoveStep + ",没有对应的处理!");
} }
} }
bool IsRightShelfId(string curShelfId,string xuniId)
{
if(string.IsNullOrEmpty(curShelfId) || curShelfId.StartsWith("0"))
{
LogRunStepInfo($"当前料架号为空,无法出库");
return false;
}
if(string.IsNullOrEmpty(xuniId))
{
LogRunStepInfo($"当前虚拟rfid为空,无法出库");
return false;
}
if(string.IsNullOrEmpty(StoreManager.FindRealRfidByTempRfid(xuniId)))
{
LogRunStepInfo($"当前虚拟rfid={xuniId}未出库,可以使用{curShelfId}出库");
return true;
}
return false;
}
//private void SO_06_StartCompress() //private void SO_06_StartCompress()
//{ //{
// //如果检测信号亮或者当前位置大于P4,直接走相对位置 // //如果检测信号亮或者当前位置大于P4,直接走相对位置
......
...@@ -184,7 +184,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -184,7 +184,7 @@ namespace OnlineStore.DeviceLibrary
{ {
if (instoreShelf) if (instoreShelf)
{ {
if (!IgnoreEmptySig()&&CheckShelfIsEmpty())//空料架 if (!IgnoreEmptySig() && CheckShelfIsEmpty())//空料架
{ {
LogRunStepInfo(moveName + "检测到料架为空料架,不进行入库,即将送出料架"); LogRunStepInfo(moveName + "检测到料架为空料架,不进行入库,即将送出料架");
StartShelfOut(); StartShelfOut();
...@@ -215,7 +215,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -215,7 +215,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
if(IgnoreEmptySig()) if (IgnoreEmptySig())
{ {
SO_03_ToBagPosition(); SO_03_ToBagPosition();
} }
...@@ -264,13 +264,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -264,13 +264,11 @@ namespace OnlineStore.DeviceLibrary
if (MoveInfo.MoveType.Equals(StoreMoveType.OutStore)) if (MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
{ {
string mark = GetMarkInfo(); string mark = GetMarkInfo();
LogRunStepInfo("送出[" + CurrShelfID + "][" + mark + "]:顶升下降,调用 NeedLeave[" + mark + "][" + CurrShelfID + "] "); LogRunStepInfo("送出出库料架[" + CurrShelfID + "][" + mark + "]:顶升下降[" + mark + "][" + CurrShelfID + "] ");
AgvClient.NeedLeave(Config.AgvNodeName, mark, CurrShelfID);
} }
else else
{ {
LogRunStepInfo("送出空料架[" + CurrShelfID + "]:顶升下降,调用 NeedLeave[0][" + CurrShelfID + "],clearPutInRfid[" + CurrShelfID + "]"); LogRunStepInfo("送出空料架[" + CurrShelfID + "]:顶升下降[" + CurrShelfID + "],clearPutInRfid[" + CurrShelfID + "]");
AgvClient.NeedLeave(Config.AgvNodeName, "0", CurrShelfID);
StoreManager.clearPutInRfid(Name, CurrShelfID); StoreManager.clearPutInRfid(Name, CurrShelfID);
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxis_P1, Config.UpDownAxis_P1_Speed); ACAxisMove(Config.UpDown_Axis, Config.UpDownAxis_P1, Config.UpDownAxis_P1_Speed);
} }
...@@ -290,10 +288,40 @@ namespace OnlineStore.DeviceLibrary ...@@ -290,10 +288,40 @@ namespace OnlineStore.DeviceLibrary
// LogCPU(); // LogCPU();
if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_01_TopDown)) if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_01_TopDown))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BS_02_LocatinDown); if (MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
LogRunStepInfo(moveName + "定位气缸下降"); {
MoveInfo.NextMoveStep(StoreMoveStep.BS_02_LocatinDown);
LogRunStepInfo(moveName + "定位气缸下降");
}
else
{
if (CheckShelfIsEmpty())
{
MoveInfo.NextMoveStep(StoreMoveStep.BS_02_1_CheckOutSotre);
LogRunStepInfo(moveName + "是空料架,检查出库并等待30秒");
}
else
{
MoveInfo.NextMoveStep(StoreMoveStep.BS_02_LocatinDown);
LogRunStepInfo(moveName + "不是空料架,定位气缸下降");
}
}
// CylinderMove(MoveInfo, IO_Type.LocationCylinder_Up, IO_Type.LocationCylinder_Down); // CylinderMove(MoveInfo, IO_Type.LocationCylinder_Up, IO_Type.LocationCylinder_Down);
} }
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_02_1_CheckOutSotre))
{
TimeSpan span = DateTime.Now - MoveInfo.LastSetpTime;
if (waitOutStoreList.Count > 0)
{
LogRunStepInfo(moveName + "有出库任务,结束出空料架");
MoveEndToRuningStatus();
}
else if (span.TotalSeconds > 30)
{
MoveInfo.NextMoveStep(StoreMoveStep.BS_02_LocatinDown);
LogRunStepInfo(moveName + "等待30秒无出库任务");
}
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_02_LocatinDown)) else if (MoveInfo.MoveStep.Equals(StoreMoveStep.BS_02_LocatinDown))
{ {
MoveInfo.NextMoveStep(StoreMoveStep.BS_03_WaitEmptyAgv); MoveInfo.NextMoveStep(StoreMoveStep.BS_03_WaitEmptyAgv);
......
...@@ -558,6 +558,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -558,6 +558,7 @@ namespace OnlineStore.DeviceLibrary
/// 送出空料架:关闭仓门 /// 送出空料架:关闭仓门
/// </summary> /// </summary>
BS_11_CloseDoor = 4011, BS_11_CloseDoor = 4011,
BS_02_1_CheckOutSotre,
#endregion #endregion
#region 把紧急料送到紧急料箱 #region 把紧急料送到紧急料箱
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!