From 1b9f41e12e3ee8ac8bbc388eab7585300bdab75a Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期二, 27 五月 2025 16:57:35 +0800 Subject: [PATCH] #ZH --- src/main/java/com/zy/core/thread/RgvThread.java | 62 ++++++++++++++++++++++++++++++- 1 files changed, 60 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index 879779c..8cf35c2 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -53,6 +53,7 @@ private Long trackBenchmark = 1L; // # 閬胯璺濈 private Long avoidDistance = 5000L; + private String errorRgv = "-"; /** * 宸ヤ綅1澶嶄綅淇″彿 @@ -290,6 +291,7 @@ while (true) { RgvRunProtocol rgvRun = RgvRunCache.getRgvRun(); if (!rgvRun.getRgvNo().equals(slave.getId())){ + continue; } try { @@ -307,6 +309,7 @@ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; rgvRun.setRgvNo(slave.getOtherId()); RgvRunCache.updateRgvStatus(rgvRun); + RgvErrCache.updateRgvErr(slave.getId(),errorRgv); continue; } @@ -327,6 +330,7 @@ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50; rgvRun.setRgvNo(slave.getOtherId()); RgvRunCache.updateRgvStatus(rgvRun); + RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅鎺㈢墿鐗╃姸鎬佸紓甯�"); continue; } if (rgvTaskProtocol.getAvoid() != 0) { @@ -337,6 +341,7 @@ issued.setTaskStatus(1); issued.setDirection(true); write(issued); + RgvErrCache.updateRgvErr(slave.getId()); rgvTaskProtocol.setAvoid(0); // try{Thread.sleep(50L);} catch (Exception e){} @@ -358,21 +363,25 @@ if (rgvOtherStatusEnable()) { //鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛� if (!otherRgvAvoid(taskProtocol.getTargetPosition())) { + RgvErrCache.updateRgvErr(slave.getId(),errorRgv); break; } } if (taskProtocol.getTargetPosition()<=rgvProtocol.getRgvPos()+50 && taskProtocol.getTargetPosition()>=rgvProtocol.getRgvPos()-50){ taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection()); + RgvErrCache.updateRgvErr(slave.getId()); break; } else { TaskProtocol issued = new TaskProtocol(taskProtocol,true); write(issued); + RgvErrCache.updateRgvErr(slave.getId()); taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection()); break; } } } + RgvErrCache.updateRgvErr(slave.getId()); } else { for (TaskProtocol taskProtocol : allTakeTaskProtocol) { if (taskProtocol.getIsRunning() == 1) {//鍑嗗涓嬪彂 @@ -380,6 +389,7 @@ if (rgvOtherStatusEnable()) { //鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛� if (!otherRgvAvoid(taskProtocol.getTargetPosition())) { + RgvErrCache.updateRgvErr(slave.getId(),errorRgv); break; } } @@ -389,32 +399,38 @@ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, taskProtocol.getTargetPositionStaNoPlcId()); StaProtocol staProtocol = devpThread.getStation().get(taskProtocol.getTargetPositionStaNo()); if (staProtocol == null ) { + RgvErrCache.updateRgvErr(slave.getId(),"鏈煡鍒板皬杞︿綔涓氱珯"+staProtocol.getStaNo()+"绔欑偣"); break; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (!staProtocol.isAutoing() || staProtocol.isLoading() ){ + RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅绛夊緟"+staProtocol.getStaNo()+"绔欑偣灏辩华"); break; } } else if (taskProtocol.getTaskStatus()==2){ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, taskProtocol.getTargetPositionStaNoPlcId()); StaProtocol staProtocol = devpThread.getStation().get(taskProtocol.getTargetPositionStaNo()); if (staProtocol == null ) { + RgvErrCache.updateRgvErr(slave.getId(),"鏈煡鍒板皬杞︿綔涓氱珯"+staProtocol.getStaNo()+"绔欑偣"); break; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (!staProtocol.isAutoing() || !staProtocol.isLoading() || staProtocol.getWorkNo()==0 ){ + RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅绛夊緟"+staProtocol.getStaNo()+"绔欑偣灏辩华"); break; } } TaskProtocol issued = new TaskProtocol(taskProtocol); write(issued); + RgvErrCache.updateRgvErr(slave.getId()); taskProtocolCache.removeTaskProtocol(taskProtocol.getTaskNoDirection()); break; } else { TaskProtocol issued = new TaskProtocol(taskProtocol,true); write(issued); + RgvErrCache.updateRgvErr(slave.getId()); break; } } @@ -465,10 +481,25 @@ RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); if (rgvProtocol == null || rgvTaskProtocol == null) { + errorRgv = slave.getId()+"鍙峰皬杞﹁繛鎺ュけ璐�"; return false; } - if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 || rgvProtocol.getRgvPosDestination() == 0L - || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO)) { + errorRgv = slave.getId()+"鍙峰皬杞﹂潪鑷姩"; + return false; + } + if (rgvProtocol.getRgvPos().equals(0L) + || rgvTaskProtocol.getAvoid() == -1 + || rgvProtocol.getRgvPosDestination() == 0L) { + errorRgv = slave.getId()+"鍙峰皬杞︾姸鎬佸紓甯�"; + return false; + } + if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM)) { + errorRgv = slave.getId()+"鍙峰皬杞﹂潪绌洪棽"; + return false; + } + if ( (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM)) { + errorRgv = slave.getId()+"鍙峰皬杞﹀瓨鍦ㄨ繍琛岀洰鏍囧�硷紝闇�瑕佸浣嶏紒锛侊紒"; return false; } RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); @@ -477,10 +508,12 @@ // "rgvTaskProtocolOther:"+slave.getOtherId()+"sign:"+rgvTaskProtocolOther.isSignRun()+"/n"); if (rgvProtocolOther == null) { + errorRgv = slave.getOtherId()+"鍙峰皬杞﹁繛鎺ュけ璐�"; return false; } if (rgvProtocolOther.statusEnable) { if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1 || rgvProtocolOther.getRgvPosDestination() == 0L) { + errorRgv = slave.getOtherId()+"鍙峰皬杞︾姸鎬佸紓甯�"; return false; } } @@ -536,6 +569,7 @@ long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿"; try{ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿"); @@ -559,12 +593,15 @@ } } if (signNowPosRun){ + errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟..."; return false; } } long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿"; + try{ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿"); @@ -591,6 +628,8 @@ long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿"; + try{ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿"); @@ -618,6 +657,8 @@ long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿"; + try{ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿"); @@ -635,6 +676,8 @@ RgvTaskCache.updateRgvStatus(rgvTaskProtocol); return false; } + errorRgv = slave.getOtherId()+"鍙稲GV褰卞搷锛岀瓑寰呬腑..."; + return false; } } else { @@ -671,6 +714,8 @@ long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿"; + try{ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿"); @@ -694,12 +739,15 @@ } } if (signNowPosRun){ + errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟浣滀笟..."; return false; } } long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿"; + try{ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿"); @@ -726,6 +774,8 @@ long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿"; + try{ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿"); @@ -754,6 +804,8 @@ long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing(); if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { log.error("RGV琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + errorRgv = "RGV琛岃蛋鐩爣瓒呭嚭鑼冨洿"; + try{ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); deviceErrorService.addDeviceError("rgv", slave.getId(), "RGV琛岃蛋瓒呭嚭鑼冨洿"); @@ -771,6 +823,7 @@ RgvTaskCache.updateRgvStatus(rgvTaskProtocol); return false; } + errorRgv = slave.getOtherId()+"鍙稲GV绛夊緟涓�..."; return false; } } else { @@ -781,6 +834,8 @@ } } } + + errorRgv = slave.getOtherId()+"鍙稲GV褰卞搷锛岀瓑寰呬腑..."; return false; } @@ -918,6 +973,9 @@ // } // } // } + if (rgvProtocol.getAlarm$()!=0){ + RgvErrCache.updateRgvErr(slave.getId(),rgvProtocol.getAlarmM()); + } try { // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� -- Gitblit v1.9.1