From 8c47919d892aaeb00cdef1b408c88a09113a6213 Mon Sep 17 00:00:00 2001 From: lsh <lsh123456> Date: 星期一, 15 七月 2024 21:46:41 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 68 +++++++++++++++++++++++---------- 1 files changed, 47 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 0adeb16..f860ea4 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -116,7 +116,7 @@ command2.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� write5(command2); break; - // 澶嶄綅 + // 鍙屽伐浣嶅悓鏃朵綔涓� case 7: write9((CrnCommandParam) task.getData()); break; @@ -607,16 +607,15 @@ } /** - * 鍐欏叆鏁版嵁 宸ヤ綅2 + * 鍐欏叆鏁版嵁 鍙屽伐浣� */ private boolean write9(CrnCommandParam command) throws InterruptedException { if (null == command) { log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); return false; } -// convertRow(command); command.setCrnNo(slave.getId()); - short[] array = new short[10]; + short[] array = new short[20]; array[0] = command.getAckFinish(); array[1] = command.getTaskNo(); array[2] = command.getTaskMode(); @@ -626,11 +625,21 @@ array[6] = command.getDestinationPosX(); array[7] = command.getDestinationPosY(); array[8] = command.getDestinationPosZ(); -// array[9] = command.getSourceStaNo(); -// array[10] = command.getDestinationStaNo(); array[9] = command.getCommand(); - OperateResult result18 = siemensNet.Write("DB100.38", (short)0); - OperateResult result = siemensNet.Write("DB100.20", array); + array[10] = command.getAckFinish2(); + array[11] = command.getTaskNo2(); + array[12] = command.getTaskMode2(); + array[13] = command.getSourcePosX2(); + array[14] = command.getSourcePosY2(); + array[15] = command.getSourcePosZ2(); + array[16] = command.getDestinationPosX2(); + array[17] = command.getDestinationPosY2(); + array[18] = command.getDestinationPosZ2(); + array[19] = command.getCommand(); + OperateResult result18 = siemensNet.Write("DB100.18", (short)0); + OperateResult result38 = siemensNet.Write("DB100.38", (short)0); + OperateResult result = siemensNet.Write("DB100.0", array); +// OperateResult result = siemensNet.Write("DB100.20", array); log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array); //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� @@ -640,14 +649,14 @@ try{ if(!result.IsSuccess){ log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); - result = siemensNet.Write("DB100.20", array); + result = siemensNet.Write("DB100.0", array); Thread.sleep(100); writeCount++; continue; } - OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.20", (short) 24); + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 40); if (resultRead.IsSuccess) { - CrnCommand one = new CrnCommand(); + CrnCommandParam one = new CrnCommandParam(); one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4)); one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6)); @@ -656,10 +665,23 @@ 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.setTaskNo2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 22)); + one.setTaskMode2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24)); + one.setSourcePosX2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 26)); + one.setSourcePosY2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 28)); + one.setSourcePosZ2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30)); + one.setDestinationPosX2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 32)); + one.setDestinationPosY2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 34)); + one.setDestinationPosZ2(siemensNet.getByteTransform().TransInt16(resultRead.Content, 36)); 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.getTaskNo2().equals(one.getTaskNo2()) || !command.getTaskMode2().equals(one.getTaskMode2()) + || !command.getSourcePosX2().equals(one.getSourcePosX2()) || !command.getSourcePosY2().equals(one.getSourcePosY2()) + || !command.getSourcePosZ2().equals(one.getSourcePosZ2()) || !command.getDestinationPosX2().equals(one.getDestinationPosX2()) + || !command.getDestinationPosY2().equals(one.getDestinationPosY2()) || !command.getDestinationPosZ2().equals(one.getDestinationPosZ2()) ){ try{ log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); @@ -676,7 +698,7 @@ } log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount); - result = siemensNet.Write("DB100.20", array); + result = siemensNet.Write("DB100.0", array); writeCount++; continue; } else { @@ -693,19 +715,23 @@ if (command.getAckFinish() == 0) { short commandFinish = 1; Thread.sleep(100L); - result = siemensNet.Write("DB100.38", commandFinish); + result18 = siemensNet.Write("DB100.18", commandFinish); + result38 = siemensNet.Write("DB100.38", commandFinish); int signFinish = 1; while (signFinish<5){ - OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.38", (short) 2); - short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0); - if (transInt16 != commandFinish){ - log.info("涓嬪彂DB100.38 鍥炶澶辫触" + "commandFinish:"+commandFinish); - log.info("涓嬪彂DB100.38 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array)); - result = siemensNet.Write("DB100.38", commandFinish); + OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2); + OperateResultExOne<byte[]> result10038 = siemensNet.Read("DB100.38", (short) 2); + short transInt1618 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0); + short transInt1638 = siemensNet.getByteTransform().TransInt16(result10038.Content, 0); + if (transInt1618 != commandFinish || transInt1638 != commandFinish){ + log.info("涓嬪彂DB100.18/DB100.38 鍥炶澶辫触" + "commandFinish:"+commandFinish); + log.info("涓嬪彂DB100.18/DB100.38 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array)); + result18 = siemensNet.Write("DB100.18", commandFinish); + result38 = siemensNet.Write("DB100.38", commandFinish); signFinish++; }else { - log.info("涓嬪彂DB100.38" + "commandFinish:"+commandFinish); - log.info("涓嬪彂DB100.38" + "array:"+ JSON.toJSONString(array)); + log.info("涓嬪彂DB100.18/DB100.38" + "commandFinish:"+commandFinish); + log.info("涓嬪彂DB100.18/DB100.38" + "array:"+ JSON.toJSONString(array)); break; } } -- Gitblit v1.9.1