Commit 8b465734 张东亮

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

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