From e89d0cdf971ecb56d4d323f17afff2e3e139a58d Mon Sep 17 00:00:00 2001 From: L <L@132> Date: 星期二, 15 七月 2025 13:00:00 +0800 Subject: [PATCH] * --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 37 ++++++++++++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 68 ++++++++++++++++++++++ src/main/java/com/zy/core/MainProcess.java | 54 +++++++++--------- 3 files changed, 132 insertions(+), 27 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 73e31c8..6f9f172 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -941,6 +941,41 @@ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� 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; @@ -1118,6 +1153,39 @@ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� 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; diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 91a1d16..948d3c9 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -22,7 +22,7 @@ private MainServiceImpl mainService; // 鎵�灞炵嚎绋� private Thread thread; -// private Thread thread2; + private Thread thread2; /** * =====>> 寮�濮嬪伐浣� @@ -41,14 +41,10 @@ mainService.generateStoreWrkFile(); // 缁勬墭 // mainService.generateStoreWrkFileIsEmptyMk(); // 缁勬墭 绌烘墭 mainService.generateStoreWrkFileWalk(); // wms鍏ュ簱浠诲姟涓嬪彂 - // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 - mainService.crnStnToOutStn(); // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 mainService.crnIoExecute(); // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� mainService.storeFinished(); - // 鍫嗗灈鏈哄紓甯镐俊鎭褰� - mainService.recCrnErr(); // 浠诲姟涓嬪彂 mainService.taskStart(); // 鍑哄簱 ===>> 鍫嗗灈鏈�10鍒嗛挓鏃犱换鍔″垯鍥炲埌婧愮偣 @@ -60,33 +56,37 @@ }); thread.start(); -// thread2 = new Thread(() -> { -// while (!Thread.currentThread().isInterrupted()) { -// try { -// // 闂撮殧 -// Thread.sleep(200); -// // 绯荤粺杩愯鐘舵�佸垽鏂� -// if (!SystemProperties.WCS_RUNNING_STATUS.get()) { -// continue; -// } -// // 杈撻�佺嚎寮傚父淇℃伅璁板綍 -//// mainService.recDevErr(); -// // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� -//// mainService.ledExecute(9); -// // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 -//// mainService.ledReset(10); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -// }); -// thread2.start(); + thread2 = new Thread(() -> { + while (!Thread.currentThread().isInterrupted()) { + try { + // 闂撮殧 + Thread.sleep(200); + // 绯荤粺杩愯鐘舵�佸垽鏂� + if (!SystemProperties.WCS_RUNNING_STATUS.get()) { + continue; + } + // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 + mainService.crnStnToOutStn(); + // 鍫嗗灈鏈哄紓甯镐俊鎭褰� + mainService.recCrnErr(); + // 杈撻�佺嚎寮傚父淇℃伅璁板綍 +// mainService.recDevErr(); + // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� +// mainService.ledExecute(9); + // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 +// mainService.ledReset(10); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + thread2.start(); } @PreDestroy public void shutDown(){ if (thread != null) thread.interrupt(); -// if (thread2 != null) thread2.interrupt(); + if (thread2 != null) thread2.interrupt(); } } diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 6d4d560..527d5e1 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -292,6 +292,43 @@ // } 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){ + + } + } + + command.setCrnNo(slave.getId()); short[] array = new short[10]; array[0] = command.getAckFinish(); -- Gitblit v1.9.1