| | |
| | | |
| | | throw new CoolException("更新plc站点信息失败"); |
| | | } |
| | | } else if (jsonObject.getInteger("code").equals(700)) { |
| | | SearchLocParam param2 = new SearchLocParam(); |
| | | param2.setBarcode(barcode); |
| | | param2.setBarcodeMat(barcodeMat); |
| | | param2.setSourceStaNo(inSta.getStaNo()); |
| | | param2.setLocType1(locTypeDto.getLocType1()); |
| | | String response2 = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/yk/loc/v33") |
| | | .setJson(JSON.toJSONString(param2)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject2 = JSON.parseObject(response2); |
| | | if (jsonObject2.getInteger("code").equals(200)) { |
| | | log.info("自动组托成功!!"); |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托成功")); |
| | | } else { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托失败!!!barcodeMat==>"+barcodeMat)); |
| | | News.error(methodName + "==>组托失败:请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/yk/loc/v33", JSON.toJSONString(param), response2); |
| | | } |
| | | try{ |
| | | Thread.sleep(500); |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | } else { |
| | | } |
| | | // else if (jsonObject.getInteger("code").equals(700)) { |
| | | // SearchLocParam param2 = new SearchLocParam(); |
| | | // param2.setBarcode(barcode); |
| | | // param2.setBarcodeMat(barcodeMat); |
| | | // param2.setSourceStaNo(inSta.getStaNo()); |
| | | // param2.setLocType1(locTypeDto.getLocType1()); |
| | | // String response2 = new HttpHandler.Builder() |
| | | // .setUri(wmsUrl) |
| | | // .setPath("/rpc/pakin/yk/loc/v33") |
| | | // .setJson(JSON.toJSONString(param2)) |
| | | // .build() |
| | | // .doPost(); |
| | | // JSONObject jsonObject2 = JSON.parseObject(response2); |
| | | // if (jsonObject2.getInteger("code").equals(200)) { |
| | | // log.info("自动组托成功!!"); |
| | | // MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托成功")); |
| | | // } else { |
| | | // MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "自动组托失败!!!barcodeMat==>"+barcodeMat)); |
| | | // News.error(methodName + "==>组托失败:请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/yk/loc/v33", JSON.toJSONString(param), response2); |
| | | // } |
| | | // try{ |
| | | // Thread.sleep(500); |
| | | // } catch (Exception e){ |
| | | // |
| | | // } |
| | | // } |
| | | else { |
| | | staProtocol.setWorkNo(wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | |
| | | // 库位移转 |
| | | //mark - 3 - .... |
| | | this.locToLoc(crn, crnProtocol,mark); |
| | | // this.crnRebackHp(crnProtocol, crnThread); |
| | | //预调度 |
| | | this.crnRebackHp(crnProtocol, crnThread); |
| | | |
| | | } |
| | | // News.infoNoLog(""+mark+" - 0"+" - 堆垛机入出库作业下发执行完成"); |
| | |
| | | * 回原点,堆垛机没有执行中任务,设备存在入库任务时叫回原点 |
| | | */ |
| | | public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread) { |
| | | // for (CrnSlave crn : slaveProperties.getCrn()) { |
| | | // // 获取堆垛机信息 |
| | | // CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); |
| | | // CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | // if (crnProtocol == null) { |
| | | // continue; |
| | | // } |
| | | // BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); |
| | | // if (basCrnp == null) { |
| | | // log.error("{}号堆垛机尚未在数据库进行维护!", crn.getId()); |
| | | // continue; |
| | | // } |
| | | if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { |
| | | if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) { |
| | | if (crnProtocol.getBay() == 1) { |
| | | return; |
| | | } |
| | | int x=1; |
| | | switch (crnProtocol.getCrnNo()){ |
| | | case 1: x =1; break; |
| | | case 2: x =3; break; |
| | | case 3: x =5; break; |
| | | case 4: x =7; break; |
| | | case 5: x =9; break; |
| | | } |
| | | |
| | | // 已经存在吊车执行任务时,则过滤3,12 |
| | |
| | | } |
| | | |
| | | //输送线没有入库任务,过滤2 |
| | | if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) { |
| | | if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) != null) { |
| | | return; |
| | | } |
| | | News.info("堆垛机召回原点==>>" + crnProtocol.getCrnNo() + "号堆垛机有入库任务,召回原点"); |
| | |
| | | crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 堆垛机编号 |
| | | crnCommand.setTaskNo((short) 9999); // 工作号 |
| | | crnCommand.setAckFinish((short) 0); // 任务完成确认位 |
| | | crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 任务模式: 回原点 |
| | | crnCommand.setSourcePosX((short) 0); // 源库位排 |
| | | crnCommand.setSourcePosY((short) 0); // 源库位列 |
| | | crnCommand.setSourcePosZ((short) 0); // 源库位层 |
| | | crnCommand.setTaskMode(CrnTaskModeType.X_MOVE); // 任务模式: 回原点 |
| | | crnCommand.setSourcePosX((short) x); // 源库位排 |
| | | crnCommand.setSourcePosY((short) 1); // 源库位列 |
| | | crnCommand.setSourcePosZ((short) 1); // 源库位层 |
| | | crnCommand.setDestinationPosX((short) 0); // 目标库位排 |
| | | crnCommand.setDestinationPosY((short) 0); // 目标库位列 |
| | | crnCommand.setDestinationPosZ((short) 0); // 目标库位层 |
| | |
| | | } |
| | | crnThread.setBackHpFlag(true); |
| | | } |
| | | |
| | | // } |
| | | } |
| | | |
| | |
| | | return; |
| | | } |
| | | Short loctype1 = 1; |
| | | if (site == 101){ |
| | | loctype1 = 2; |
| | | } |
| | | LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); |
| | | locTypeDto.setSiteId(site); |
| | | try { |
| | |
| | | |
| | | try { |
| | | Short loctype1 = 1; |
| | | if (site == 153){ |
| | | loctype1 = 2; |
| | | } |
| | | LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); |
| | | locTypeDto.setSiteId(site); |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * 自动生成RGV接驳任务(检索4楼任务,非3号堆垛机,则生成对应接驳任务) |
| | | * 自动生成RGV接驳任务(检索出入口任务,生成对应RGV任务,检索4楼任务,非3号堆垛机,则生成对应接驳任务) |
| | | */ |
| | | // public synchronized void rgvCreateWrkMastSta(){ |
| | | // try{ |
| | | // |
| | | // for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | // SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | // StaProtocol staProtocol = devpThread.getStation().get(1105); |
| | | // if (staProtocol == null) { |
| | | // continue; |
| | | // } else { |
| | | // staProtocol = staProtocol.clone(); |
| | | // } |
| | | // if (!staProtocol.isAutoing() || !staProtocol.isLoading()){ |
| | | // continue; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | |
| | | // 只有当RGV空闲、自动,工位一无物//rgv可用 |
| | | if (rgvProtocol.getStatusType() == RgvStatusType.IDLE |
| | | && rgvProtocol.getModeType() == RgvModeType.AUTO |
| | | && rgvProtocol.getLoaded1()==0 |
| | | && rgvProtocol.getLoaded1() == 0 |
| | | && rgvProtocol.getTaskNo1() == 0 |
| | | && rgvProtocol.getTaskNo2() == 0 |
| | | && rgvProtocol.getLoaded2() == 0 |
| | | && rgvThread.isPakMk() |
| | | ) { |
| | | BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); |
| | |
| | | basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //更新小车当前位置站点号 |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); |
| | | for (WrkMastSta wrkMastSta : wrkMastStaList){ |
| | | if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3 || wrkMastSta.getWrkSts()!=0){//1:满版 3:取放 |
| | | continue; |
| | | } |
| | | // if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3 || wrkMastSta.getWrkSts()!=0){//1:满版 3:取放 |
| | | // continue; |
| | | // } |
| | | //判断工作结束位置状态 |
| | | // boolean signDev = false; |
| | | // BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd())); |