| | |
| | | private boolean resetFlag2 = false; |
| | | |
| | | private boolean connectRgv = false; |
| | | public Long currentTimeMilliConnectRgv= 0L; |
| | | |
| | | private boolean delRgvTask = false; |
| | | private short wrkSign = 0; |
| | | |
| | |
| | | @Override |
| | | @SuppressWarnings("InfiniteLoopStatement") |
| | | public void run() { |
| | | initRgv(); |
| | | try{ |
| | | Thread.sleep(2000); |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | connectRgv = this.connect(); |
| | | while(!connectRgv){ |
| | | try { |
| | |
| | | continue; |
| | | } |
| | | try { |
| | | Thread.sleep(50); |
| | | Thread.sleep(100); |
| | | rgvRun = RgvRunCache.getRgvRun(); |
| | | // System.out.println(JSON.toJSON(rgvRun)); |
| | | |
| | | // 休眠 1 秒 |
| | | if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld > 100) { |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10; |
| | | if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld > 500) { |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; |
| | | } else { |
| | | continue; |
| | | } |
| | | if (!deviceDetection()) { |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10; |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; |
| | | rgvRun.setRgvNo(slave.getOtherId()); |
| | | RgvRunCache.updateRgvStatus(rgvRun); |
| | | if (!errorRgv.equals("无")){ |
| | |
| | | rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); |
| | | } |
| | | if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)){ |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10; |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; |
| | | rgvRun.setRgvNo(slave.getOtherId()); |
| | | RgvRunCache.updateRgvStatus(rgvRun); |
| | | continue; |
| | | } |
| | | if (rgvProtocol.getLoaded() == -1){ |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10; |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; |
| | | rgvRun.setRgvNo(slave.getOtherId()); |
| | | RgvRunCache.updateRgvStatus(rgvRun); |
| | | RgvErrCache.updateRgvErr(slave.getId(),"小车探物物状态异常"); |
| | | continue; |
| | | } |
| | | if (rgvTaskProtocol.getAvoid() != 0) { |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10; |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; |
| | | rgvRun.setRgvNo(slave.getOtherId()); |
| | | RgvRunCache.updateRgvStatus(rgvRun); |
| | | continue; |
| | |
| | | } |
| | | } |
| | | } |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10; |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; |
| | | rgvRun.setRgvNo(slave.getOtherId()); |
| | | RgvRunCache.updateRgvStatus(rgvRun); |
| | | } catch (Exception e) { |
| | |
| | | // log.error("e2:"+e2.getMessage()); |
| | | } |
| | | rgvRun = RgvRunCache.getRgvRun(); |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10; |
| | | rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; |
| | | rgvRun.setRgvNo(slave.getOtherId()); |
| | | RgvRunCache.updateRgvStatus(rgvRun); |
| | | continue; |
| | |
| | | // OutputQueue.RGV.offer(MessageFormat.format("【{0}】RGV plc连接失败!!! ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | log.error("RGV plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); |
| | | |
| | | try{ |
| | | DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | deviceErrorService.addDeviceError("rgv", slave.getId(), "RGVplc连接失败"); |
| | | } catch (Exception e2){ |
| | | if (System.currentTimeMillis()-currentTimeMilliConnectRgv>1000*60*10){ |
| | | try{ |
| | | DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | deviceErrorService.addDeviceError("rgv", slave.getId(), "RGVplc连接失败"); |
| | | } catch (Exception e2){ |
| | | // log.error("e2:"+e2.getMessage()); |
| | | } |
| | | if (currentTimeMilliConnectRgv == 0){ |
| | | currentTimeMilliConnectRgv = System.currentTimeMillis()-1000*60*10-1; |
| | | } else { |
| | | currentTimeMilliConnectRgv = System.currentTimeMillis(); |
| | | } |
| | | } |
| | | } |
| | | initRgv(); |