From d63adcb214c6bc2a72c5b5bb7bd30abc391138dd Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期五, 03 十月 2025 15:31:37 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 96 ++++++++++++++++++++++++++--------------------- 1 files changed, 53 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index f2b7e8d..4a93d3b 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -74,7 +74,12 @@ break; // 鍐欏叆鏁版嵁 1鍙峰伐浣� case 2: - write((CrnCommand) task.getData()); + CrnCommand data = (CrnCommand) task.getData(); + if (data.getPltType() == null || data.getPltType() == 1) { + write(data); + } else if (data.getPltType() == 2) { + write2(data); + } break; // 澶嶄綅 1鍙峰伐浣� case 3: @@ -93,10 +98,6 @@ command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� write(command); - break; - // 鍐欏叆鏁版嵁 2鍙峰伐浣� - case 4: - write2((CrnCommand) task.getData()); break; // 澶嶄綅 2鍙峰伐浣� case 6: @@ -192,27 +193,34 @@ crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6)); crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8)); crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10)); - crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12)); - crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14)); - crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16)); - crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18)); - crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20)); - crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22)); - crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24)); - crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26)); - crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28)); - crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32)); - crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36)); - crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40)); - crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44)); - crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48)); - crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52)); + crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 26)); + crnProtocol.setWalkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 28)); + crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 30)); + + crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 12)); + crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 32)); + + + + //crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20)); + //crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22)); + //crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24)); + //crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26)); + crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 34)); + crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 38)); + crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 42)); + crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 46)); + crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 50)); + crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 54)); + crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 58)); //2宸ヤ綅 - crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56)); - crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 58)); - crnProtocol.setLiftPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 60)); - crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 64)); + crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 14)); + crnProtocol.setStatusTwo(siemensNet.getByteTransform().TransInt16(result.Content, 16)); + crnProtocol.setBayTwo(siemensNet.getByteTransform().TransInt16(result.Content, 18)); + crnProtocol.setLevelTwo(siemensNet.getByteTransform().TransInt16(result.Content, 20)); + crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 22)); + crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 24)); OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId())); @@ -326,7 +334,7 @@ // convertRow(command); command.setCrnNo(slave.getId()); // short[] array = new short[10]; - short[] array = new short[10]; + short[] array = new short[9]; array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣� array[1] = command.getTaskNo(); // 浠诲姟鍙� array[2] = command.getTaskMode(); // 妯″紡 @@ -336,7 +344,6 @@ array[6] = command.getDestinationPosX(); // 鐩爣浣嶇疆鎺掑彿 array[7] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿 array[8] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿 - array[9] = command.getCommand(); // array[10] = 0; //澶囩敤1 @@ -353,6 +360,7 @@ // if (!resetFlag){ News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1); result = siemensNet.Write("DB100.0", array); + // } Thread.sleep(100); writeCount1++; @@ -489,8 +497,8 @@ return false; } // 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵�� - try{ - OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18); + try { + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.20", (short) 18); if (resultRead.IsSuccess) { CrnCommand one = new CrnCommand(); one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2)); @@ -505,13 +513,13 @@ || !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)); } } - }catch (Exception e){ + } catch (Exception e) { News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�"); } // convertRow(command); @@ -531,7 +539,7 @@ // array[10] = 0; //澶囩敤1 short[] array2 = new short[1]; - array2[0] = command.getAckFinish(); + array2[0] = command.getAckFinish(); OperateResult result = siemensNet.Write("DB100.20", array); OperateResult result2 = siemensNet.Write("DB100.0", array2); News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array); @@ -539,7 +547,7 @@ int writeCount1 = 1; do { try { - if (!result.IsSuccess||!result2.IsSuccess) { + if (!result.IsSuccess || !result2.IsSuccess) { // if (!resetFlag){ News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1); result = siemensNet.Write("DB100.0", array); @@ -548,7 +556,7 @@ writeCount1++; continue; } - OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18); + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.20", (short) 18); if (resultRead.IsSuccess) { CrnCommand one = new CrnCommand(); one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0)); @@ -609,26 +617,26 @@ writeCount2++; short commandFinish = (short) 1; result = siemensNet.Write("DB100.38", commandFinish); - if(result.IsSuccess){ + if (result.IsSuccess) { //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� Thread.sleep(200); OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.38", (short) 2); if (resultRead.IsSuccess) { - commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); - if (commandFinish != 1){ - News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); - }else{ + commandFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); + if (commandFinish != 1) { + News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�"); + } else { //浠诲姟鍛戒护鍐欏叆鎴愬姛 // News.info("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); break; } - }else { - News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + } else { + News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍥炶澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�"); } } else { - News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�"); + News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�"); } - }while (writeCount2<5); + } while (writeCount2 < 5); } } @@ -654,7 +662,8 @@ null // 淇敼浜哄憳 ); bean.insert(basCrnOpt); - } catch (Exception ignore) {} + } catch (Exception ignore) { + } if (result != null && result.IsSuccess) { Thread.sleep(200); @@ -668,6 +677,7 @@ return false; } } + public void requestStop() { isRunning = false; } -- Gitblit v1.9.1