From 830f5f93c11b16a1014e2bf815c43af9c16eb52b Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 24 七月 2025 15:13:16 +0800 Subject: [PATCH] * --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 54 +++-------------- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 97 +++++--------------------------- src/main/java/com/zy/core/cache/CrnErrCache.java | 4 + src/main/java/com/zy/core/MainProcess.java | 4 4 files changed, 31 insertions(+), 128 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index e9205b7..0462563 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -941,41 +941,6 @@ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) { - TaskWrk taskWrkNow3 = taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()); - if (taskWrkNow3.getWrkSts() == 3){ - try{ - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� - crnCommand.setTaskNo(taskWrkNow3.getWrkNo().shortValue()); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(Utils.getRowShort(taskWrkNow3.getTargetPoint())); // 鐩爣搴撲綅鍒� - int bay1 = Utils.getBayShort(taskWrkNow3.getTargetPoint()) + 1; - crnCommand.setDestinationPosY((short)bay1); // 鐩爣搴撲綅灞� - crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrkNow3.getTargetPoint())); // 鐩爣搴撲綅鎺� -// crnCommand.setCommand((short) 1); - try{ - DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); - deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+crnCommand.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆:"+JSON.toJSONString(crnCommand.getNowTask())); - } catch (Exception e2){ - } - if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { - log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); - devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); - CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触"); - - throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); - } - } catch (Exception eNow3){ - - } - } - devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄瓨鍦ㄥ悐杞︿换鍔�"); CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟"); continue; @@ -1024,22 +989,22 @@ // } // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� - crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� + CrnCommand crnCommand1 = new CrnCommand(); + crnCommand1.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand1.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙� + crnCommand1.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand1.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand1.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand1.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand1.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand1.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand1.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� int bay1 = Utils.getBayShort(taskWrk.getTargetPoint()) + 1; - crnCommand.setDestinationPosY((short)bay1); // 鐩爣搴撲綅灞� - crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� + crnCommand1.setDestinationPosY((short)bay1); // 鐩爣搴撲綅灞� + crnCommand1.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� // crnCommand.setCommand((short) 1); - if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { - log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); + if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand1))) { + log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand1)); devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触"); @@ -1153,39 +1118,6 @@ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) { - - TaskWrk taskWrkNow3 = taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()); - if (taskWrkNow3.getWrkSts() == 12){ - try{ - CrnCommand command = new CrnCommand(); - command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - command.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo(taskWrkNow3.getWrkNo().shortValue()); // 宸ヤ綔鍙� - command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 - command.setSourcePosX(Utils.getRowShort(taskWrkNow3.getStartPoint())); // 婧愬簱浣嶆帓 - int bayS = Utils.getBayShort(taskWrkNow3.getStartPoint()) + 1; - command.setSourcePosY((short)bayS); // 婧愬簱浣嶅垪 - command.setSourcePosZ(Utils.getLevShort(taskWrkNow3.getStartPoint())); // 婧愬簱浣嶅眰 - command.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� - command.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� - command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� -// command.setCommand((short) 1); - try{ - DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); - deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆:"+JSON.toJSONString(command.getNowTask())); - } catch (Exception e2){ - } - if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command))) { - log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command)); - devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); - CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触"); - throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); - } - } catch (Exception eNow3){ - - } - } devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄瓨鍦ㄥ悐杞︿换鍔�"); CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟"); break; @@ -1312,6 +1244,7 @@ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) { + CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟"); continue; } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index dfa182a..2ca1f41 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -32,7 +32,7 @@ while (!Thread.currentThread().isInterrupted()) { try { // 闂撮殧 - Thread.sleep(400); + Thread.sleep(500); // 绯荤粺杩愯鐘舵�佸垽鏂� if (!SystemProperties.WCS_RUNNING_STATUS.get()) { continue; @@ -58,7 +58,7 @@ while (!Thread.currentThread().isInterrupted()) { try { // 闂撮殧 - Thread.sleep(200); + Thread.sleep(400); // 绯荤粺杩愯鐘舵�佸垽鏂� if (!SystemProperties.WCS_RUNNING_STATUS.get()) { continue; diff --git a/src/main/java/com/zy/core/cache/CrnErrCache.java b/src/main/java/com/zy/core/cache/CrnErrCache.java index f1af02f..6156da1 100644 --- a/src/main/java/com/zy/core/cache/CrnErrCache.java +++ b/src/main/java/com/zy/core/cache/CrnErrCache.java @@ -2,12 +2,14 @@ import com.zy.core.model.protocol.CrnErrProtocol; import com.zy.core.model.protocol.RgvErrProtocol; +import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ConcurrentHashMap; /** * Created by IX on 2025/02/21 */ +@Slf4j public class CrnErrCache { // 鏈湴缂撳瓨锛岄敭涓� currentPosition锛屽�间负 DeviceStatus private static final ConcurrentHashMap<Integer, CrnErrProtocol> cache = new ConcurrentHashMap<>(); @@ -37,6 +39,8 @@ crnErrProtocol.setError(error); cache.put(crnErrProtocol.getCrnNo(), crnErrProtocol); } + } catch (Exception e){ + log.error("鏇存柊鍫嗗灈鏈鸿澶囩姸鎬侊細"+e.getMessage()); } finally { } } diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 527d5e1..686cdbd 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -282,52 +282,18 @@ log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); return false; } - CrnErrCache.updateCrnErr(slave.getId(), "-"); -// try{ -// BasErrLogService basErrLogService = SpringUtils.getBean(BasErrLogService.class); -// BasErrLog basErrLog = new BasErrLog(command,"","浠诲姟涓嬪彂璁板綍"); -// if (!basErrLogService.insert(basErrLog)) { -// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", slave.getId(), "浠诲姟涓嬪彂璁板綍澶辫触"); -// } -// } catch (Exception e3){ -// } -// convertRow(command); - if (command.getAckFinish() == 0){ - try{ - Thread.sleep(100L); - OperateResultExOne<byte[]> resultReadNOW = siemensNet.Read("DB100.0", (short) 20); - if (resultReadNOW.IsSuccess) { - CrnCommand one = new CrnCommand(); - one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 2)); - one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 4)); - one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 6)); - one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 8)); - one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 10)); - one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 12)); - one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 14)); - one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 16)); - if (one.getTaskNo()>0 - || one.getTaskMode()>0 - || one.getSourcePosX()!=0 - || one.getSourcePosY()!=0 - || one.getSourcePosZ()!=0 - || one.getDestinationPosX()!=0 - || one.getDestinationPosY()!=0 - || one.getDestinationPosZ()!=0 - ){ - try{ - DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); - deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆鍙栨秷锛寃cs涓嬪彂鍦板潃瀛樺湪鏁版嵁:"+JSON.toJSONString(command.getNowTask())); - } catch (Exception e2){ - } - return true; - } - } - } catch (Exception eNow){ - - } + try{ + DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); + deviceErrorService.addDeviceError("crnWriteIng", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈哄緟涓嬪彂鎸囦护:"+JSON.toJSONString(command.getNowTask())); + } catch (Exception e){ } + try{ + CrnErrCache.updateCrnErr(slave.getId(), "-"); + } catch (Exception e){ + log.error(JSON.toJSONString(e)); + log.error("鍫嗗灈鏈轰换鍔″啓寮傚父锛氬紓甯稿畾浣嶅�硷細crnWrite-294琛�"); + } command.setCrnNo(slave.getId()); short[] array = new short[10]; -- Gitblit v1.9.1