From cffa14ea26fd5205acde107e7ec4b4588d421fa8 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 20 十一月 2024 14:03:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 56 ++++++++++++++++++++------------------------------------ 1 files changed, 20 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 15ce347..d4b171d 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -157,8 +157,8 @@ if (result.IsSuccess) { if (null == crnProtocol) { crnProtocol = new CrnProtocol(); - crnProtocol.setCrnNo(slave.getId()); } + crnProtocol.setCrnNo(slave.getId()); crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0)); crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2)); crnProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 4)); @@ -243,33 +243,23 @@ News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); return false; } - // 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵�� - try{ - OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24); - 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)); - 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()) - ){ -// News.error("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); - } else { -// News.info("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + int writeAck = 0; + do { + OperateResult resultAck = siemensNet.Write("DB100.0", (short) 0); + if (resultAck.IsSuccess){ + Thread.sleep(200); + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 2); + short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); + if (ack != 0) { + writeAck++; + }else { + News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), "ack澶嶄綅瀹屾垚"); + break; } } - }catch (Exception e){ - News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�"); - } -// convertRow(command); + }while (writeAck <5); + + command.setCrnNo(slave.getId()); // short[] array = new short[10]; short[] array = new short[11]; @@ -307,6 +297,7 @@ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24); if (resultRead.IsSuccess) { CrnCommand one = new CrnCommand(); + one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0)); one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); @@ -315,12 +306,14 @@ 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.setCommand(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18)); one.setTraySize(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20)); 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.getTraySize().equals(one.getTraySize()) + || !command.getTraySize().equals(one.getTraySize()) || !command.getCommand().equals(one.getCommand()) + || !command.getAckFinish().equals(one.getAckFinish()) ){ try{ News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); @@ -331,15 +324,6 @@ News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); } } - - try{ - Thread.sleep(100); - }catch (Exception e){ - - } - -// News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{},resetFlag={}", slave.getId(), JSON.toJSON(command),resetFlag); -// MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command)); News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount1); result = siemensNet.Write("DB100.0", array); writeCount1++; -- Gitblit v1.9.1