| | |
| | | #endregion |
| | | } |
| | | break; |
| | | #region 出库交互 |
| | | |
| | | #region 出库交互 |
| | | case "420": |
| | | { |
| | | #region 托盘到达拣选工位/出库口 |
| | |
| | | |
| | | #endregion |
| | | |
| | | case "50": |
| | | // plc申请空托 |
| | | { |
| | | // 调用WMS空托出库接口,返回出库任务存入出库表 |
| | | |
| | | // 写入 |
| | | } |
| | | break; |
| | | case "80": |
| | | // 空托盘跺已到位 |
| | | { |
| | | |
| | | } |
| | | break; |
| | | default: break; |
| | | } |
| | | |
| | |
| | | { |
| | | // 写入流程控制字 2 |
| | | var retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "2"); |
| | | if (retVal.IsSucceed) |
| | | if (!retVal.IsSucceed) |
| | | { |
| | | Log.Error("演示模式写入分道号失败!"); |
| | | break; |
| | |
| | | { |
| | | // 根据工位号,获取托盘号 |
| | | var checkTaskMedel = _db.Queryable<WcsCheckTask>().First(m => m.Port == modDevice.StationNum && m.IsDelete == false); |
| | | // 根据工位号获取托盘线该工位号的配置信息 |
| | | var numModel = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business); |
| | | var posModel = PLCTaskAction.plcPositions.First(m => m.DeviceId == numModel.Id && m.Text == "目标工位" && m.IsDelete == false); |
| | | // 根据工位号获取 托盘线该工位号的配置信息 |
| | | var numModel = PLCTaskAction.plcDevices.First(m => m.StationNum == modDevice.StationNum && m.IsDelete == false && m.DeviceType == DeviceTypeEnum.Business && m.PlcId != modDevice.PlcId); |
| | | var posModel = PLCTaskAction.plcPositions.First(m => m.DeviceId == numModel.Id && m.Text == "目的工位" && m.IsDelete == false); |
| | | if (checkTaskMedel == null) |
| | | { |
| | | Log.Error(string.Format("组托失败根据码垛工位{0},获取托盘号失败!", modDevice.StationNum)); |
| | |
| | | // 码垛工位托盘号 |
| | | string palletNo = checkTaskMedel.PalletNo; |
| | | |
| | | // 是否演示模式 |
| | | if (PLCTaskAction.boDemo) |
| | | { |
| | | // 直接箱wms申请巷道 |
| | | var http = new HttpService(); |
| | | string TaskNo = "", EndLocate = ""; |
| | | string strMsg = http.RequestRoadWay(palletNo, modDevice.StationNum, "1", "2", ref EndLocate, ref TaskNo); |
| | | if (!strMsg.Contains("-1")) |
| | | if (strMsg.Contains("-1")) |
| | | { |
| | | Log.Error(string.Format("申请巷道失败,码垛工位{0};原因{1}", modDevice.StationNum, strMsg)); |
| | | break; |
| | |
| | | var taskModel = _db.Queryable<WcsTask>().First(m => m.TaskNo == TaskNo && m.IsDelete == false && m.Status == TaskStatusEnum.Wait); |
| | | if (taskModel != null) |
| | | { |
| | | // 写入码垛工位目标工位,写入交互流程组托成功 执行入库 |
| | | string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2"); // 获取入库取货工位 |
| | | // 获取入库取货工位 |
| | | string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2"); |
| | | |
| | | // 写入托盘输送线码垛工位 目的工位,写入交互流程组托成功 执行入库{若需要可以写入任务号等等其他信息} |
| | | var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, endLocatVlue); |
| | | if (retVal.IsSucceed) |
| | | { |
| | | // 写入组托回复流程字 |
| | | // 写入码垛交互-组托回复流程字 |
| | | retVal = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "50"); |
| | | |
| | | // 将入库任务由正在执行改为正在执行 |
| | |
| | | var taskModel = _db.Queryable<WcsTask>().First(m => m.TaskNo == TaskNo && m.IsDelete == false && m.Status == TaskStatusEnum.Wait); |
| | | if (taskModel != null) |
| | | { |
| | | // 写入码垛工位目标工位,写入交互流程组托成功 执行入库 |
| | | string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2"); // 获取入库取货工位 |
| | | // 获取入库取货工位 |
| | | string endLocatVlue = PLCCommon.RoadwayToStationNum(taskModel.EndRoadway, "2"); |
| | | |
| | | // 写入托盘输送线码垛工位 目的工位,写入交互流程组托成功 执行入库{若需要可以写入任务号等等其他信息} |
| | | var retVal = plcConn.SetPlcDBValue(posModel.PosType, numModel.DbNumber, posModel.PlcPos, endLocatVlue); |
| | | if (retVal.IsSucceed) |
| | | { |