| | |
| | | |
| | | #endregion |
| | | |
| | | #region 叫空托盘跺 |
| | | case "50": |
| | | // plc申请空托 |
| | | { |
| | | // 调用WMS空托出库接口,返回出库任务存入出库表 |
| | | |
| | | // 写入 |
| | | var strMsg = ""; |
| | | var http = new HttpService(); |
| | | strMsg = http.IssuePlnOutHouseWcs("1", "205"); |
| | | if (!strMsg.Contains("-1")) |
| | | { |
| | | // 写入plc流程字60 |
| | | var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "60"); |
| | | } |
| | | else |
| | | { |
| | | // 申请巷道失败!LED显示 |
| | | Log.Error(string.Format($"工位号:{modDevice.StationNum}申请空托跺失败:{strMsg};")); |
| | | } |
| | | } |
| | | break; |
| | | case "80": |
| | | // 空托盘跺已到位 |
| | | { |
| | | // 调用wms任务出库任务完成 |
| | | // 获取跺机点位配置 |
| | | var modPosTask = modDevice.listStation.FirstOrDefault(m => m.Text == "任务号"); |
| | | var (res, val) = plcConn.GetPlcDBValue(PLCDataTypeEnum.String, modDevice.DbNumber, modPosTask.PlcPos); |
| | | // 根据任务号获取任务信息 |
| | | if (res.IsSucceed) |
| | | { |
| | | string tasknoVal = val.ToString(); |
| | | var modTask = _db.Queryable<WcsTask>().First(m => m.Status == TaskStatusEnum.Doing && m.TaskNo == tasknoVal && m.IsDelete == false); |
| | | if (modTask == null) |
| | | { |
| | | Log.Error(string.Format($"工位号:{modDevice.StationNum}空托盘到达,未找到对应的任务!任务号{tasknoVal};")); |
| | | break; |
| | | } |
| | | // 写入plc流程字90 |
| | | var ret = plcConn.SetPlcDBValue(modDevice.PosType, modDevice.DbNumber, modDevice.WcsPos, "90"); |
| | | if (ret.IsSucceed) |
| | | { |
| | | // 改变任务状态 |
| | | modTask.Status = TaskStatusEnum.Complete; |
| | | modTask.FinishDate = DateTime.Now; |
| | | _db.Updateable(modTask).ExecuteCommand(); |
| | | |
| | | HubUtil.PublicTask(modTask.Adapt<WcsTaskOutput>()); |
| | | var modTaskMonitor = new WcsTaskMonitor() |
| | | { |
| | | TaskNo = modTask.TaskNo, |
| | | PlcId = modDevice.Id, |
| | | PlcName = modDevice.Text, |
| | | PalletNo = modTask.PalletNo, |
| | | Status = TaskStatusEnum.Complete, |
| | | StartLocat = modTask.StartLocate, |
| | | EndLocat = modTask.EndLocate, |
| | | InteractiveMsg = $"任务完成" |
| | | }; |
| | | if (modTask.Origin == "WMS") |
| | | { |
| | | // 反馈WMS |
| | | var requestMode = new TaskRequestWMS() |
| | | { |
| | | TaskNo = modTask.TaskNo, |
| | | PalletNo = modTask.PalletNo, |
| | | TaskType = ((int)TaskTypeEnum.Out).ToString(), |
| | | TaskStatus = ((int)TaskStatusEnum.Complete).ToString() |
| | | }; |
| | | HttpService httpService = new HttpService(); |
| | | var modResponseTask = httpService.RequestTask(requestMode).Result; |
| | | if (modResponseTask.StatusCode == 0) |
| | | { |
| | | modTaskMonitor.InteractiveMsg = "任务完成,返回给WMS任务完成"; |
| | | } |
| | | else |
| | | { |
| | | Log.Error(string.Format("任务反馈失败:StatusCode:{0};Msg:{1}", modResponseTask.StatusCode, modResponseTask.Msg)); |
| | | } |
| | | } |
| | | // 插入交互日志 |
| | | _db.Insertable(modTaskMonitor).ExecuteCommand(); |
| | | //下发任务日志 |
| | | HubUtil.PublicTaskMonitor(modTaskMonitor.Adapt<WcsTaskMonitorOutput>()); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | #endregion |
| | | |
| | | default: break; |
| | | } |
| | | |