| | |
| | | case 3: |
| | | WCSHelper.UpdateStatus(cst, "开始取货"); |
| | | var locCntrRels = LocationHelper.GetLocCntr(cst.S_START_LOC); |
| | | if (locCntrRels.Count > 0) |
| | | if (locCntrRels.Count > 0) |
| | | { |
| | | cst.S_CNTR_CODE = locCntrRels[0].S_CNTR_CODE; |
| | | WCSHelper.UpdateWcsTask(cst); |
| | |
| | | WMSHelper.addRfidAnomalyRecord(cst.S_CNTR_CODE, 2, cst.S_START_LOC, null); |
| | | // 查询扫描的RFID |
| | | // 发送 00 04 71 02到扫码器 ,接受返回数据并解析 |
| | | /* byte[] bytes = new byte[] { 00, 04, 71, 02 }; |
| | | var plc = Settings.carDeviceInfos.Where(a => a.deviceNo == model.ForkliftNo && a.enable == 1).FirstOrDefault(); |
| | | TcpServer.TcpServerSend(plc.address, bytes);*/ |
| | | /* byte[] bytes = new byte[] { 00, 04, 71, 02 }; |
| | | var plc = Settings.carDeviceInfos.Where(a => a.deviceNo == model.ForkliftNo && a.enable == 1).FirstOrDefault(); |
| | | TcpServer.TcpServerSend(plc.address, bytes);*/ |
| | | } |
| | | else if (model.State == 1002) |
| | | { |
| | |
| | | agvEndLoc = ApiHelper.AGVApplyDest(model.No, cst.S_START_LOC, cst.S_CNTR_CODE, "2"); |
| | | } |
| | | |
| | | ChangeParamModel paramModel = new ChangeParamModel() |
| | | ChangeParamModel paramModel = new ChangeParamModel() |
| | | { |
| | | task_no = model.No, |
| | | param_no = 0, |
| | |
| | | } |
| | | else |
| | | { |
| | | WMSHelper.addAlarmRecord("流程异常", "中", $"AGV任务回报,任务容器编码:{cst.S_CNTR_CODE}的容器没有录入到WMS系统","AGV"); |
| | | WMSHelper.addAlarmRecord("流程异常", "中", $"AGV任务回报,任务容器编码:{cst.S_CNTR_CODE}的容器没有录入到WMS系统", "AGV"); |
| | | } |
| | | } |
| | | else |
| | |
| | | // AGV任务完成 |
| | | if (model.State == 2) |
| | | { |
| | | // 检测物料是否合格,如不合格, |
| | | // 判断物料是否是环带库物料,是则回环带库,并让环带下发新的物料 |
| | | // 非环带库物料,则退出立库,同时下发新的物料出库任务 |
| | | if (cst.S_TYPE.Contains("叫料出库任务")) |
| | | { |
| | | var cntrItemRels = ContainerHelper.GetCntrItemRel(cst.S_CNTR_CODE); |
| | | if (cntrItemRels != null && cntrItemRels.Count > 0) |
| | | { |
| | | if (cntrItemRels[0].S_ITEM_STATE == "2") |
| | | { |
| | | // 不合格品回库 |
| | | ApiHelper.rejectReturnStock(mst, cst); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 检测是否是读码位,非读码位,可以激活预创建任务 |
| | | var transfe = WMSHelper.GetTransfeRelevance(cst.S_END_LOC); // 接驳位属性 |
| | | if (transfe != null && transfe.N_READ_LOC == 1) |
| | | { |
| | | WCSHelper.ActivatePreCreateTask(mst.S_CODE); |
| | | } |
| | | else if ( transfe.N_READ_LOC == 0) |
| | | { |
| | | if (cst.S_TYPE.Contains("【异常】")) |
| | | { |
| | | WCSHelper.ActivatePreCreateTask(mst.S_CODE,1); |
| | | } |
| | | else |
| | | { |
| | | WCSHelper.ActivatePreCreateTask(mst.S_CODE); |
| | | } |
| | | } |
| | | // 激活预创建任务 |
| | | // 场景:1.读码位激活预创建任务 2.空工装出库激活满料下线任务(非直连) |
| | | WCSHelper.ActivatePreCreateTask(mst.S_CODE); |
| | | |
| | | // 查询是否有未完成的任务 |
| | | if (WMSHelper.isFinishTask(mst.S_CODE)) |
| | |
| | | |
| | | // 更新任务中间表状态 |
| | | WMSHelper.updateMesTaskStatus(mst.S_CODE, "3"); |
| | | } |
| | | |
| | | // 如果作业名称为成型机叫料出库任务,则触发余料/空托搬运任务 |
| | | string locCode = WMSHelper.getReturnMaterialLocCode(mst.S_END_LOC); |
| | | ApiHelper.returnMaterialOrEmptyTray(locCode); |
| | | } |
| | | // 检测物料是否合格,如不合格, |
| | | // 判断物料是否是环带库物料,是则回环带库,并让环带下发新的物料 |
| | | // 非环带库物料,则退出立库,同时下发新的物料出库任务 |
| | | if (cst.S_TYPE.Contains("叫料出库任务")) |
| | | { |
| | | var bo = int.TryParse(mst.S_OP_DEF_CODE, out int mesId); |
| | | if (bo) |
| | | { |
| | | var mesTask = WMSHelper.GetLjMesTaskById(mesId); |
| | | var cntrItemRels = ContainerHelper.GetCntrItemRel(cst.S_CNTR_CODE); |
| | | if (cntrItemRels != null && cntrItemRels.Count > 0) |
| | | { |
| | | if (cntrItemRels[0].S_ITEM_STATE == "2") |
| | | { |
| | | mesTask.AWAIT_MSG = "物料检验状态为不合格,重新叫料中"; |
| | | WMSHelper.updateLjMesTask(mesTask); |
| | | |
| | | // 不合格品回库 |
| | | ApiHelper.rejectReturnStock(mst, cst); |
| | | } |
| | | else |
| | | { |
| | | // 如果作业名称为成型机叫料出库任务,则触发余料/空托搬运任务 |
| | | var sideLocConfig = WMSHelper.getReturnMaterialLocCode(mst.S_END_LOC); |
| | | ApiHelper.returnMaterialOrEmptyTray(sideLocConfig.S_RETURN_LOC_CODE, sideLocConfig.EQP); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | WMSHelper.addAlarmRecord("系统错误", "高", $"AGV任务状态回报,作业号:{cst.S_OP_CODE},未查询到作业","AGV"); |
| | | WMSHelper.addAlarmRecord("系统错误", "高", $"AGV任务状态回报,作业号:{cst.S_OP_CODE},未查询到作业", "AGV"); |
| | | } |
| | | } |
| | | else |