| | |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code.equals(200)) { |
| | | StartupDto dto = jsonObject.getObject("data", StartupDto.class); |
| | | // // plc 处理 |
| | | // barcodeThread.setBarcode(""); |
| | | // plc 处理 |
| | | barcodeThread.setBarcode(""); |
| | | // staProtocol.setWorkNo(dto.getWorkNo().shortValue()); |
| | | // staProtocol.setStaNo(dto.getStaNo().shortValue()); |
| | | // devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | |
| | | |
| | | //23.小车搬运完成 ==> 24.提升机搬运中 |
| | | if (wrkMast.getWrkSts() == 23) { |
| | | NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo()); |
| | | if (shuttleThread == null) { |
| | | return false; |
| | | } |
| | | |
| | | //调度小车避让 |
| | | boolean result = Utils.searchEmptyGroupToMoveShuttle(Utils.getLev(wrkMast.getSourceLocNo()), wrkMast.getShuttleNo(), shuttleThread); |
| | | if (!result) { |
| | | return false; |
| | | } |
| | | |
| | | //获取出库站点(目标站) |
| | | BasDevp basDevp = basDevpService.selectById(wrkMast.getStaNo()); |
| | | if (basDevp == null) { |
| | |
| | | case 3://3.提升机搬运中 ==> 4.提升机搬运完成 |
| | | wrkMast.setWrkSts(4L); |
| | | wrkMast.setLiftNo(null);//释放提升机 |
| | | if (liftProtocol.getToken() == wrkMast.getWrkNo()) { |
| | | if (liftProtocol.getToken().equals(wrkMast.getWrkNo())) { |
| | | //释放提升机令牌 |
| | | liftProtocol.setToken(0); |
| | | } |
| | |
| | | //释放提升机令牌 |
| | | liftProtocol.setToken(0); |
| | | } |
| | | |
| | | if (wrkMast.getMk() == null || !wrkMast.getMk().equals("Y")) { |
| | | //不需要用到机械臂,直接转29.出库完成 |
| | | wrkMast.setWrkSts(29L); |
| | | } |
| | | |
| | | break; |
| | | case 106://106.提升机搬运中 ==> 107.提升机搬运完成 |
| | | wrkMast.setWrkSts(107L); |
| | |
| | | Integer code = jsonObject.getInteger("code"); |
| | | if (code.equals(200)) { |
| | | StartupDto dto = jsonObject.getObject("data", StartupDto.class); |
| | | |
| | | barcodeThread.setBarcode(""); |
| | | // // 更新站点信息 且 下发plc命令 |
| | | // staProtocol.setWorkNo(dto.getWorkNo().shortValue()); |
| | | // staProtocol.setStaNo(dto.getStaNo().shortValue()); |
| | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * AGV补货 => 机械臂拣料 |
| | | */ |
| | | public void agvRestockByRobot() { |
| | | //检测300站是否自动、有物、工作号 |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | // 获取入库站信息 |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(300); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() != 0) { |
| | | //查询是否有工作档 |
| | | WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue()); |
| | | if (wrkMast == null) { |
| | | continue; |
| | | } |
| | | |
| | | if (wrkMast.getWrkSts() != 25) {//25.提升机搬运完成 |
| | | continue; |
| | | } |
| | | |
| | | if (wrkMast.getMk() != null && wrkMast.getMk().equals("Y")) {//标记为Y表示需要用到机械臂拣料 |
| | | Short targetSta = null;//目标站 |
| | | //判断机械臂拣料站是否空闲 |
| | | StaProtocol staProtocol303 = devpThread.getStation().get(303); |
| | | StaProtocol staProtocol317 = devpThread.getStation().get(317); |
| | | if (staProtocol303.isAutoing() && !staProtocol303.isLoading()) { |
| | | //自动、无物 |
| | | targetSta = (short) 303; |
| | | } else if (staProtocol317.isAutoing() && !staProtocol317.isLoading()) { |
| | | //自动、无物 |
| | | targetSta = (short) 317; |
| | | }else { |
| | | continue;//没有空闲站点 |
| | | } |
| | | |
| | | targetSta = (short) 317; |
| | | |
| | | if (wrkMast.getStaNo() != 303 && wrkMast.getStaNo() != 317) { |
| | | //覆盖工作档目标站 |
| | | wrkMast.setStaNo(targetSta.intValue()); |
| | | if (wrkMastMapper.updateById(wrkMast) > 0) { |
| | | //向300站写入目标站 |
| | | staProtocol = staProtocol.clone(); |
| | | staProtocol.setStaNo(targetSta);//移动到目标站 |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | try { |
| | | Thread.sleep(500); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | StaProtocol staProtocol303 = devpThread.getStation().get(303); |
| | | StaProtocol staProtocol317 = devpThread.getStation().get(317); |
| | | if (staProtocol303.isAutoing() && staProtocol303.isLoading() && staProtocol303.getWorkNo() != 0) { |
| | | //调度机械臂 |
| | | // //查询是否有工作档 |
| | | // WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol303.getWorkNo().intValue()); |
| | | // if (wrkMast == null) { |
| | | // continue; |
| | | // } |
| | | // WrkDetl wrkDetl = wrkDetlService.selectById(wrkMast.getWrkNo()); |
| | | // if (wrkDetl == null) { |
| | | // continue; |
| | | // } |
| | | // RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetl.getAnfme().intValue(), "303"); |
| | | RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), -1, "303"); |
| | | }else if (staProtocol317.isAutoing() && staProtocol317.isLoading() && staProtocol317.getWorkNo() != 0) { |
| | | //调度机械臂 |
| | | // //查询是否有工作档 |
| | | // WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol317.getWorkNo().intValue()); |
| | | // if (wrkMast == null) { |
| | | // continue; |
| | | // } |
| | | // WrkDetl wrkDetl = wrkDetlService.selectById(wrkMast.getWrkNo()); |
| | | // if (wrkDetl == null) { |
| | | // continue; |
| | | // } |
| | | // RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), wrkDetl.getAnfme().intValue(), "317"); |
| | | RobotUtils.sendTask(staProtocol303.getWorkNo().toString(), -1, "317"); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } else if (wrkCharge.getWrkSts() == 52) { |
| | | //检测小车是否满电 |
| | | int maxPower = 85; |
| | | int maxPower = 95; |
| | | if (shuttleProtocol.getPowerPercent() < maxPower) { |
| | | continue; |
| | | } |
| | |
| | | assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//源库位(小车当前位置) |
| | | assignCommand.setCommands(commands);//运行命令 |
| | | |
| | | //下发任务 |
| | | MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand)); |
| | | try { |
| | | Thread.sleep(3000); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | wrkCharge.setWrkSts(53L);//52.小车去充电中 => 53.小车充电完成 |
| | | wrkCharge.setModiTime(new Date()); |
| | | if (wrkChargeMapper.updateById(wrkCharge) > 0) { |
| | | //下发任务 |
| | | MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand)); |
| | | shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE.id); |
| | | shuttleProtocol.setTaskNo(0); |
| | | shuttleProtocol.setPakMk(false); |
| | | } |
| | | } else if (wrkCharge.getWrkSts() == 53) { |
| | | if (shuttleProtocol.getChargState() == 0) {//小车处于未充电状态 |
| | | boolean result = Utils.searchEmptyGroupToMoveShuttle(Utils.getLev(wrkCharge.getLocNo()), shuttleThread.getSlave().getId(), shuttleThread); |
| | | if (result) { |
| | | wrkCharge.setWrkSts(60L);//53.小车充电完成 => 60.充电任务完成 |
| | | wrkCharge.setModiTime(new Date()); |
| | | if (wrkChargeMapper.updateById(wrkCharge) > 0) { |
| | | shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE); |
| | | shuttleProtocol.setTaskNo(0); |
| | | } |
| | | if (!result) { |
| | | continue; |
| | | } |
| | | |
| | | wrkCharge.setWrkSts(60L);//53.小车充电完成 => 60.充电任务完成 |
| | | wrkCharge.setModiTime(new Date()); |
| | | if (wrkChargeMapper.updateById(wrkCharge) > 0) { |
| | | |
| | | } |
| | | } |
| | | } |