| | |
| | | //井松叠盘机安全交互 |
| | | if (TN_Task.S_NOTE == "空托回库") |
| | | { |
| | | LogHelper.Info($"-------叠盘机安全请求------"); |
| | | var Device = Settings.deviceInfos.Where(a => a.TN_Location == TN_Task.S_START_LOC).FirstOrDefault(); |
| | | if (Device != null) |
| | | { |
| | |
| | | } |
| | | if (TN_Task.S_NOTE == "空托回库") |
| | | { |
| | | LogHelper.Info($"-------叠盘机安全请求------"); |
| | | var Device = Settings.deviceInfos.Where(a => a.TN_Location == TN_Task.S_START_LOC).FirstOrDefault(); |
| | | if (Device != null) |
| | | { |
| | | if (!S7Helper.WriteDpj(Device.address, 1002, 0)) |
| | | { |
| | | Task.Run(() => |
| | | { |
| | | while (!S7Helper.WriteDpj(Device.address, 1002, 0)) |
| | | { |
| | | Thread.Sleep(1000); |
| | | } |
| | | }); |
| | | } |
| | | //写入失败重新写入 |
| | | if (!S7Helper.WriteDpj(Device.address, 1001, 1)) |
| | | { |
| | |
| | | } |
| | | }); |
| | | } |
| | | if (!S7Helper.WriteDpj(Device.address, 1002, 0)) |
| | | { |
| | | Task.Run(() => |
| | | { |
| | | while (!S7Helper.WriteDpj(Device.address, 1002, 0)) |
| | | { |
| | | Thread.Sleep(1000); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | Console.WriteLine($"任务:{mst.S_CODE},起点仓库:{mst.S_START_WH}已经禁用推送"); |
| | | return false; |
| | | } |
| | | var sendTask = db.Queryable<SendTask>().Where(a => a.AREA_CODE == mst.S_END_AREA && a.able == "1").First(); |
| | | if (sendTask != null) |
| | | { |
| | | int taskNumber = WCSHelper.GetTaskByEndArea(sendTask.AREA_CODE, sendTask.loctioncode); |
| | | LogHelper.Info($"任务:{mst.S_CODE},终点仓库:{sendTask.AREA_CODE},货位类型:{sendTask.loctioncode},存在任务数量:{taskNumber},限制任务数量:{sendTask.max}"); |
| | | if (taskNumber >= sendTask.max) |
| | | { |
| | | Console.WriteLine($"任务:{mst.S_CODE},以达到限制推送数量,已经禁用推送"); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | var mstbyEqno = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO == mst.S_EQ_NO).ToList(); |
| | |
| | | info = "agv已完成送料任务"; |
| | | break; |
| | | } |
| | | string message = "1"; |
| | | string message = null; |
| | | if (status == 7) { message = "agv任务已取消"; } |
| | | int flag = 0; |
| | | if (mst.S_NOTE == "粉料") |
| | | { |
| | | flag = 1; |
| | | } |
| | | string number = mst.S_EQ_NO; |
| | | if (!string.IsNullOrEmpty(mst.S_MES_NO)) |
| | | { |
| | | number = mst.S_MES_NO; |
| | | } |
| | | //List<StatusArrive> statusArrives = new List<StatusArrive>(); |
| | | StatusArrive statusArrive = new StatusArrive(); |
| | | statusarrive.UseToken = "iFQ5fExGrLYLXliHYWzs"; |
| | | statusArrive.TaskNumber = mst.S_EQ_NO; |
| | | statusArrive.LocationNum = mst.S_END_LOC; |
| | | statusArrive.TaskNumber = number; |
| | | if (status == 1 || status == 3 || status == 4) |
| | | { |
| | | statusArrive.LocationNum = mst.S_START_LOC; |
| | | } |
| | | else |
| | | { |
| | | statusArrive.LocationNum = mst.S_END_LOC; |
| | | } |
| | | statusArrive.Time = DateTime.Now.ToString(); |
| | | statusArrive.Status = status.ToString(); |
| | | statusArrive.Rfid = mst.S_CNTR_CODE; |
| | |
| | | //物料到位接口和状态反馈同时调IIOT,为了区分id,物料到位长度加一区分 |
| | | request.RequestId = "杭叉AGV" + time + "1"; |
| | | request.UseToken = "iFQ5fExGrLYLXliHYWzs"; |
| | | |
| | | |
| | | MesItemBackModel mesItemBackModel = new MesItemBackModel(); |
| | | |
| | | mesItemBackModel.TaskNumber = MesNo; |
| | |
| | | mesItemBackModel.LocationNum = mst.S_END_LOC; |
| | | mesItemBackModel.Result = "1"; |
| | | mesItemBackModel.ArricalTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); |
| | | |
| | | |
| | | if (cntritem != null) |
| | | { |
| | | string curBagNum = null; |
| | |
| | | Qty = cntritem.F_WEIGHT, |
| | | PartLevel = cntritem.LEV, |
| | | WmsLot = cntritem.WmsLot, |
| | | WeightBag = weightBag, |
| | | WeightBag = initBagNum, |
| | | CurBagNum = curBagNum, |
| | | InitBagNum = initBagNum |
| | | InitBagNum = weightBag |
| | | }); |
| | | |
| | | |