From ce641926a957d238b202aa0d9dac3b8f15aff153 Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期三, 14 五月 2025 14:43:00 +0800 Subject: [PATCH] 123 --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 173 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 121 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 04f881f..5fd4565 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -39,6 +39,7 @@ private CrnSlave slave; private CrnProtocol crnProtocol; private boolean resetFlag = false; + private boolean resetFlagTwo = false; /** * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪 @@ -186,9 +187,8 @@ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId())); - - // 澶嶄綅淇″彿 - if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) { + if (!Cools.isEmpty(crnProtocol.getTaskNo()) && crnProtocol.getStatusType() == CrnStatusType.WAITING_ONE) { + // 澶嶄綅淇″彿 if (resetFlag) { if (crnProtocol.getTaskNo() == 9999) { backHpFlag = false; @@ -196,10 +196,52 @@ CrnCommand crnCommand = new CrnCommand(); crnCommand.setAckFinish((short) 1); if (write(crnCommand)) { + News.info("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 涓�宸ヤ綅澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒", + slave.getId(), crnProtocol.getTaskNo(), resetFlag); resetFlag = false; + } else { + News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 涓�宸ヤ綅澶嶄綅resetFlag鏍囪澶辫触{}锛侊紒", + slave.getId(), crnProtocol.getTaskNo(), resetFlag); + } + } + } else if (!Cools.isEmpty(crnProtocol.getTaskNo()) && crnProtocol.getStatusTypeTwo() == CrnStatusType.WAITING_TWO) { + // 澶嶄綅淇″彿 + if (resetFlagTwo) { + if (crnProtocol.getTaskNo() == 9999) { + backHpFlag = false; + } + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setAckFinish((short) 1); + if (write(crnCommand)) { + News.info("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 浜屽伐浣嶅浣峳esetFlag鏍囪鎴愬姛{}锛侊紒", + slave.getId(), crnProtocol.getTaskNo(), resetFlag); + resetFlagTwo = false; + } else { + News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 浜屽伐浣嶅浣峳esetFlag鏍囪澶辫触{}锛侊紒", + slave.getId(), crnProtocol.getTaskNo(), resetFlag); + } + + } + } else if (!Cools.isEmpty(crnProtocol.getTaskNo()) && crnProtocol.getStatusType() == CrnStatusType.WAITING_All && crnProtocol.getStatusTypeTwo() == CrnStatusType.WAITING_All) { + // 澶嶄綅淇″彿 + if (resetFlag && resetFlagTwo) { + if (crnProtocol.getTaskNo() == 9999) { + backHpFlag = false; + } + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setAckFinish((short) 1); + if (write(crnCommand)) { + News.info("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鍙屽伐浣嶅浣峳esetFlag鏍囪鎴愬姛{}锛侊紒", + slave.getId(), crnProtocol.getTaskNo(), resetFlag); + resetFlag = false; + resetFlagTwo = false; + } else { + News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鍙屽伐浣嶅浣峳esetFlag鏍囪澶辫触{}锛侊紒", + slave.getId(), crnProtocol.getTaskNo(), resetFlag); } } } + try { // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� @@ -243,9 +285,6 @@ News.error("SiemensCrn" + " - 6" + " - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); return false; } - command.setCommand((short) 1); - System.out.println("------------------"); - System.out.println(command); // convertRow(command); command.setCrnNo(slave.getId()); short[] array = new short[16]; @@ -289,50 +328,80 @@ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 32); if (resultRead.IsSuccess) { CrnCommand one = new CrnCommand(); - one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); - one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); - one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); - one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8)); - one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10)); - one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12)); - one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14)); - one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16)); - one.setSourcePosXTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18)); - one.setSourcePosYTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20)); - one.setSourcePosZTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 22)); - one.setDestinationPosXTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24)); - one.setDestinationPosYTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 26)); - one.setDestinationPosZTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 28)); - one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30)); - if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode()) - || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY()) - || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX()) - || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ()) - || !command.getSourcePosXTwo().equals(one.getSourcePosXTwo()) || !command.getSourcePosYTwo().equals(one.getSourcePosYTwo()) - || !command.getSourcePosZTwo().equals(one.getSourcePosZTwo()) || !command.getDestinationPosXTwo().equals(one.getDestinationPosXTwo()) - || !command.getDestinationPosYTwo().equals(one.getDestinationPosYTwo()) || !command.getDestinationPosZTwo().equals(one.getDestinationPosZTwo()) - ) { - try { - log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one)); - } catch (Exception e) { + one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0)); + one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); + one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); + one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); + one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8)); + one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10)); + one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12)); + one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14)); + one.setSourcePosXTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16)); + one.setSourcePosYTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18)); + one.setSourcePosZTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20)); + one.setDestinationPosXTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 22)); + one.setDestinationPosYTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24)); + one.setDestinationPosZTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 26)); + one.setCommand(siemensNet.getByteTransform().TransInt16(resultRead.Content, 28)); + one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30)); + if (command.getTaskMode() != 2) { + if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode()) + || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY()) + || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX()) + || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ()) + || !command.getCommand().equals(one.getCommand()) || !command.getAckFinish().equals(one.getAckFinish()) + ) { try { - log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(resultRead)); - } catch (Exception e1) { - log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command)); + log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one)); + } catch (Exception e) { + try { + log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(resultRead)); + } catch (Exception e1) { + log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command)); + } } - } - try { - Thread.sleep(100); - } catch (Exception e) { + try { + Thread.sleep(100); + } catch (Exception e) { + } + log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command), writeCount); + result = siemensNet.Write("DB100.0", array); + writeCount++; + continue; + } else { + log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one)); + break; } - log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command), writeCount); - result = siemensNet.Write("DB100.0", array); - writeCount++; - continue; } else { - log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one)); - break; + if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode()) + || !command.getSourcePosXTwo().equals(one.getSourcePosXTwo()) || !command.getSourcePosYTwo().equals(one.getSourcePosYTwo()) + || !command.getSourcePosZTwo().equals(one.getSourcePosZTwo()) || !command.getDestinationPosXTwo().equals(one.getDestinationPosXTwo()) + || !command.getDestinationPosYTwo().equals(one.getDestinationPosYTwo()) || !command.getDestinationPosZTwo().equals(one.getDestinationPosZTwo()) + || !command.getCommand().equals(one.getCommand()) || !command.getAckFinish().equals(one.getAckFinish()) + ) { + try { + log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one)); + } catch (Exception e) { + try { + log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(resultRead)); + } catch (Exception e1) { + log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command)); + } + } + try { + Thread.sleep(100); + } catch (Exception e) { + + } + log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command), writeCount); + result = siemensNet.Write("DB100.0", array); + writeCount++; + continue; + } else { + log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one)); + break; + } } } } catch (Exception e) { @@ -344,19 +413,19 @@ if (command.getAckFinish() == 0) { short commandFinish = 1; Thread.sleep(100L); - result = siemensNet.Write("DB100.30", commandFinish); + result = siemensNet.Write("DB100.28", commandFinish); int signFinish = 1; while (signFinish < 5) { - OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.30", (short) 2); + OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.28", (short) 2); short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0); if (transInt16 != commandFinish) { - log.info("涓嬪彂DB100.30 鍥炶澶辫触" + "commandFinish:" + commandFinish); - log.info("涓嬪彂DB100.30 鍥炶澶辫触" + "array:" + JSON.toJSONString(array)); - result = siemensNet.Write("DB100.18", commandFinish); + log.info("涓嬪彂DB100.28 鍥炶澶辫触" + "commandFinish:" + commandFinish); + log.info("涓嬪彂DB100.28 鍥炶澶辫触" + "array:" + JSON.toJSONString(array)); + result = siemensNet.Write("DB100.28", commandFinish); signFinish++; } else { - log.info("涓嬪彂DB100.30" + "commandFinish:" + commandFinish); - log.info("涓嬪彂DB100.30" + "array:" + JSON.toJSONString(array)); + log.info("涓嬪彂DB100.28" + "commandFinish:" + commandFinish); + log.info("涓嬪彂DB100.28" + "array:" + JSON.toJSONString(array)); break; } } -- Gitblit v1.9.1