| | |
| | | */ |
| | | @SuppressWarnings("serial") |
| | | public synchronized void loopSteCharge() { |
| | | if (null != wrkChargeService.selectWorking(null, "reset")) { |
| | | return; |
| | | } |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | | for (SteSlave ste : slaveProperties.getSte()) { |
| | | SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); |
| | |
| | | wrkCharge.setIoPri((double) 10); |
| | | wrkCharge.setLocNo(chargeLocNo); |
| | | wrkCharge.setMemo("charge"); |
| | | wrkCharge.setAppeTime(new Date()); |
| | | if (!wrkChargeService.insert(wrkCharge)) { |
| | | log.error("保存{}号穿梭车充电任务失败!!!", ste.getId()); |
| | | continue; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 小车从充电桩 至 待机库位 |
| | | * 轮询充电桩是否有空闲小车 |
| | | */ |
| | | public synchronized void steFromChargeToIdleLoc() { |
| | | public synchronized void queryChargeLocOfComplete() { |
| | | // 与充电任务不同步进行 |
| | | if (null != wrkChargeService.selectWorking(null, "charge")) { return; } |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); |
| | |
| | | continue; |
| | | } |
| | | |
| | | WrkCharge wrkCharge = wrkChargeService.selectWorking(null, "reset"); |
| | | WrkCharge wrkCharge = wrkChargeService.selectWorking(steNo, "reset"); |
| | | |
| | | if (wrkCharge == null) { |
| | | // 开始穿梭车复位任务 |
| | |
| | | wrkCharge.setSourceLocNo(value.locNo); |
| | | wrkCharge.setLocNo(basSte.getIdleLoc()); |
| | | wrkCharge.setMemo("reset"); |
| | | wrkCharge.setAppeTime(new Date()); |
| | | if (!wrkChargeService.insert(wrkCharge)) { |
| | | log.error("保存{}号穿梭车复位任务失败!!!", steNo); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 小车从充电桩 至 待机库位 |
| | | */ |
| | | public synchronized void steFromChargeToIdleLoc() { |
| | | WrkCharge wrkCharge = wrkChargeService.selectWorking(null, "reset"); |
| | | SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkCharge.getSteNo()); |
| | | SteProtocol steProtocol = steThread.getSteProtocol(); |
| | | BasSte basSte = basSteService.selectById(wrkCharge.getSteNo()); |
| | | if (Cools.isEmpty(steProtocol, basSte)) { |
| | | return; |
| | | } |
| | | // 搬运至固定通道 |
| | | if (wrkCharge.getWrkSts() == 41L) { |
| | | // 搬小车至小车走向通道 |
| | |
| | | } else { |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkCharge.getCrnNo()); |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | if (crnProtocol == null) { continue; } |
| | | if (crnProtocol == null) { return; } |
| | | // 只有当堆垛机空闲 并且 无任务时才继续执行 |
| | | if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { |
| | | // 堆垛机命令下发区 -------------------------------------------------------------------------- |
| | |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |