|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @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) { | 
|---|
|  |  |  | // 堆垛机命令下发区 -------------------------------------------------------------------------- | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|