//出库后任务处理,通知物流线是空筐还是满筐 private bool AsrsOutTaskBusiness(AsrsControl.AsrsPortalModel outPort, CtlDBAccess.Model.ControlTaskModel task, ref string reStr) { try { if (task == null) { reStr = "任务为空"; return(false); } if (task.TaskType == (int)SysCfg.EnumAsrsTaskType.产品出库) { outPort.Db1ValsToSnd[1] = 2; } else if (task.TaskType == (int)SysCfg.EnumAsrsTaskType.空筐出库) { outPort.Db1ValsToSnd[1] = 1; } if (!outPort.NodeCmdCommit(true, ref reStr)) { reStr = string.Format("出库站台{0}状态'出库完成'提交失败", outPort.PortSeq); return(false); } System.Threading.Thread.Sleep(500); return(true); } catch (Exception ex) { reStr = ex.ToString(); return(false); } }
private bool AsrsOutTaskBusiness(AsrsControl.AsrsPortalModel outPort, AsrsControl.AsrsTaskParamModel taskParam, ref string reStr) { try { outPort.Db1ValsToSnd[1] = (short)taskParam.CellPos1.Row; if (!outPort.NodeCmdCommit(true, ref reStr)) { reStr = string.Format("出库站台{0}状态'出库完成'提交失败", outPort.PortSeq); return(false); } System.Threading.Thread.Sleep(500); return(true); } catch (Exception ex) { reStr = ex.ToString(); return(false); } }
/// <summary> /// 空筐出库请求处理 /// </summary> private void EmptyPalletOutputRequire() { AsrsCtlModel asrsHouse = asrsCtls[0]; AsrsPortalModel emptyPalletOutport = asrsHouse.GetPortByDeviceID("2003"); if (emptyPalletOutport.Db2Vals[1] == 1) { //出口有框,禁止出库 return; } if (emptyPalletOutport.Db1ValsToSnd[0] == 2) { return; } if (emptyPalletOutport.Db2Vals[0] != 3) { return; } bool exitFlag = false; int row = 2, col = 21, layer = 6; //要查询得到 int r = 1, c = 1, L = 1; for (r = 1; r < row + 1; r++) { if (exitFlag) { break; } for (c = 1; c < col + 1; c++) { if (exitFlag) { break; } for (L = 1; L < layer + 1; L++) { CellCoordModel cell = new CellCoordModel(r, c, L); EnumCellStatus cellStoreStat = EnumCellStatus.空闲; EnumGSTaskStatus cellTaskStat = EnumGSTaskStatus.完成; if (!this.asrsResourceManage.GetCellStatus(asrsHouse.HouseName, cell, ref cellStoreStat, ref cellTaskStat)) { continue; } if (cellStoreStat == EnumCellStatus.空料框 && cellTaskStat != EnumGSTaskStatus.锁定) { if (asrsHouse.GenerateOutputTask(cell, null, SysCfg.EnumAsrsTaskType.空筐出库, true)) { exitFlag = true; emptyPalletOutport.Db1ValsToSnd[0] = 2; string reStr = ""; if (!emptyPalletOutport.NodeCmdCommit(true, ref reStr)) { logRecorder.AddDebugLog(emptyPalletOutport.NodeName, "发送命令失败" + reStr); } else { return; } break; } } } } } }