From fe783a3ae2295dba85fd9775b610eb13e4e41f00 Mon Sep 17 00:00:00 2001 From: cpT <1@123> Date: 星期二, 24 六月 2025 22:36:37 +0800 Subject: [PATCH] #改造 --- src/main/java/com/zy/core/thread/RgvThread.java | 51 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 33 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index 0a76c89..70700dc 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -65,6 +65,8 @@ private boolean resetFlag2 = false; private boolean connectRgv = false; + public Long currentTimeMilliConnectRgv= 0L; + private boolean delRgvTask = false; private short wrkSign = 0; @@ -75,6 +77,12 @@ @Override @SuppressWarnings("InfiniteLoopStatement") public void run() { + initRgv(); + try{ + Thread.sleep(2000); + } catch (Exception e){ + + } connectRgv = this.connect(); while(!connectRgv){ try { @@ -331,18 +339,18 @@ 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("鏃�")){ @@ -359,20 +367,20 @@ 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; @@ -460,7 +468,7 @@ } } } - rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10; + rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; rgvRun.setRgvNo(slave.getOtherId()); RgvRunCache.updateRgvStatus(rgvRun); } catch (Exception e) { @@ -472,7 +480,7 @@ // 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; @@ -1055,11 +1063,18 @@ // OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慠GV 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(); @@ -1118,11 +1133,10 @@ rgvProtocol.setErr4(status[11]); rgvProtocol.setErr5(status[12]); rgvProtocol.setErr6(status[13]); + rgvProtocol.setErr7(status[14]); + rgvProtocol.setErr8(status[15]); // System.out.println("璇荤嚎绋�"+ slave.getId()+"---"+JSON.toJSONString(rgvProtocol)); // System.out.println("璇荤嚎绋�,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis()+"灏忚溅鏁版嵁锛�"+JSON.toJSONString(rgvProtocol)); - if (rgvProtocol.getRgvNo()==1){ - log.info("璇荤嚎绋�,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis()+"灏忚溅鏁版嵁锛�"+JSON.toJSONString(rgvProtocol)); - } OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId())); // // 宸ヤ綅1澶嶄綅淇″彿 // if (rgvProtocol.getStatusType().equals(RgvStatusType.WAITING) @@ -1228,10 +1242,11 @@ OperateResult result2 = siemensNet.Write("DB100.6", taskProtocol.getTaskNo().intValue()); OperateResult result3 = siemensNet.Write("DB100.10", taskProtocol.isDirection()? (short) 1 : (short) 2); // 鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� Thread.sleep(20L); - this.wrkSign = 1; OperateResult result4 = siemensNet.Write("DB100.12.0", true); - log.info("浠诲姟涓嬪彂绾跨▼,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis()); + this.wrkSign = 1; + +// log.info("浠诲姟涓嬪彂绾跨▼,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis()); // if (taskProtocol.getAckFinish1() == 0) { // short commandFinish = 3; //宸ヤ綅1銆�2浠诲姟鍚屾椂鍐欏叆 -- Gitblit v1.9.1