From f32a2b730c8ec969480d11a3369b432691d01ba7 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 23 十月 2024 16:39:53 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 75 +++++++++++++------------------------ 1 files changed, 27 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index e08db4f..c3d6eb5 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -185,8 +185,8 @@ // 澶嶄綅淇″彿 if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) { - News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�", - slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿"); +// News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�", +// slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿"); if (resetFlag) { if(crnProtocol.getTaskNo()==9999){ backHpFlag = false; @@ -196,8 +196,8 @@ crnCommand.setAckFinish((short)1); if (write(crnCommand)) { resetFlag = false; - News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒", - slave.getId(), wrkNo, resetFlag); +// News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒", +// slave.getId(), wrkNo, resetFlag); } } } @@ -243,36 +243,25 @@ 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(100); + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 2); + short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); + if (ack != 0) { + writeAck++; + }else { + break; } } - }catch (Exception e){ - News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�"); - } -// convertRow(command); + }while (writeAck <5); + + command.setCrnNo(slave.getId()); // short[] array = new short[10]; - short[] array = new short[10]; + short[] array = new short[11]; array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣� array[1] = command.getTaskNo(); // 浠诲姟鍙� array[2] = command.getTaskMode(); // 妯″紡 @@ -283,12 +272,11 @@ array[7] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿 array[8] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿 array[9] = command.getCommand(); -// array[10] = 0; //澶囩敤1 + array[10] = command.getTraySize(); //澶囩敤1 - boolean[] array2 = new boolean[1]; - array2[0] = command.isTraySize(); + OperateResult result = siemensNet.Write("DB100.0", array); - OperateResult result2 = siemensNet.Write("DB100.22", array2); + News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array); //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� @@ -297,11 +285,10 @@ do { try{ - if(!result.IsSuccess || !result2.IsSuccess){ + if(!result.IsSuccess ){ News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount1); // MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command)); result = siemensNet.Write("DB100.0", array); - result2 = siemensNet.Write("DB100.22", array2); Thread.sleep(100); writeCount1++; continue; @@ -309,6 +296,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)); @@ -317,12 +305,13 @@ 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.setTraySize(siemensNet.getByteTransform().TransBool(resultRead.Content, 22)); + 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.isTraySize() == one.isTraySize() + || !command.getTraySize().equals(one.getTraySize()) + || !command.getAckFinish().equals(one.getAckFinish()) ){ try{ News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); @@ -333,18 +322,8 @@ 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); - result2 = siemensNet.Write("DB100.22", array2); writeCount1++; continue; -- Gitblit v1.9.1