From f107eaf4d1857d2230a5bc6983e4beb7fb811aa1 Mon Sep 17 00:00:00 2001 From: whycq <you@example.com> Date: 星期六, 08 七月 2023 22:06:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/bfwcs6' into bfwcs6 --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index a5d6264..a308273 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -228,6 +228,22 @@ return false; } + //涓嬪彂鍓嶅厠闅嗕竴浠� + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(command.getCrnNo()); + crnCommand.setAckFinish(command.getAckFinish()); + crnCommand.setTaskNo(command.getTaskNo()); + crnCommand.setTaskMode(command.getTaskMode()); + crnCommand.setSourcePosX(command.getSourcePosX()); + crnCommand.setSourcePosY(command.getSourcePosY()); + crnCommand.setSourcePosZ(command.getSourcePosZ()); + crnCommand.setDestinationPosX(command.getDestinationPosX()); + crnCommand.setDestinationPosY(command.getDestinationPosY()); + crnCommand.setDestinationPosZ(command.getDestinationPosZ()); + crnCommand.setSourceStaNo(command.getSourceStaNo()); + crnCommand.setDestinationStaNo(command.getDestinationStaNo()); + crnCommand.setCommand(command.getCommand()); + // convertRow(command); command.setCrnNo(slave.getId()); short[] array = new short[10]; @@ -243,6 +259,14 @@ array[9] = command.getCommand(); OperateResult result = siemensNet.Write("DB100.0", array); + if(!result.IsSuccess){ + log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand)); + MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand)); + Thread.sleep(100); + readStatus(); + return false; + } + //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� Thread.sleep(200); OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20); @@ -256,12 +280,19 @@ 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()!=one.getTaskNo() || command.getTaskMode()!=one.getTaskMode() + if (!command.getTaskNo().equals(one.getTaskNo()) || command.getTaskMode()!=one.getTaskMode() || command.getSourcePosX()!=one.getSourcePosX() || command.getSourcePosY()!=one.getSourcePosY() || command.getSourcePosZ()!=one.getSourcePosZ() || command.getDestinationPosX()!=one.getDestinationPosX() || command.getDestinationPosY()!=one.getDestinationPosY() || command.getDestinationPosZ()!=one.getDestinationPosZ() ){ News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand)); + MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand)); + Thread.sleep(100); + readStatus(); + return false; + }else{ + News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); } } @@ -270,7 +301,19 @@ short commandFinish = 1; Thread.sleep(300); News.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鎴愬姛锛屽紑濮嬪啓纭浣峓id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); - result = siemensNet.Write("DB100.18", commandFinish); + Integer counts = 0; + while(true) { + result = siemensNet.Write("DB100.18", commandFinish); + if(result.IsSuccess){ + break; + } else { + counts++; + if(counts>5){ + break; + } + } + Thread.sleep(300); + } } } -- Gitblit v1.9.1