From 83f222c9eebcee8db94d41a081596506f60f9775 Mon Sep 17 00:00:00 2001 From: lty <876263681@qq.com> Date: 星期二, 05 八月 2025 16:59:45 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/RgvThread.java | 83 +++++++++++++++++++++++++++++++---------- 1 files changed, 62 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index a91201c..127f483 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -12,6 +12,7 @@ import com.zy.asrs.service.BasRgvOptService; import com.zy.asrs.service.BasRgvService; import com.zy.common.utils.News; +import com.zy.core.RgvThread2; import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; @@ -35,7 +36,7 @@ */ @Data @Slf4j -public class RgvThread implements Runnable, ThreadHandler { +public class RgvThread implements Runnable, RgvThread2 { private SiemensS7Net siemensNet; private RgvSlave slave; @@ -48,6 +49,9 @@ * 宸ヤ綅2澶嶄綅淇″彿 */ private boolean resetFlag2 = false; + + //閿佸畾鏍囪 + private boolean PakMk = true; public RgvThread(RgvSlave slave) { this.slave = slave; @@ -78,9 +82,9 @@ write1((RgvCommand) task.getData()); break; // //宸ヤ綅2鍐欏叆鏁版嵁 -// case 5: -// write2((RgvCommand) task.getData()); -// break; + case 5: + write2((RgvCommand) task.getData()); + break; // 澶嶄綅 case 3: RgvCommand command = (RgvCommand) task.getData(); @@ -95,6 +99,20 @@ command.setDestinationStaNo1((short)0); // 鐩爣绔� command.setCommand((short)0); write1(command); + break; + case 6: + RgvCommand command2 = (RgvCommand) task.getData(); + if (null == command2) { + command2 = new RgvCommand(); + } + command2.setRgvNo(slave.getId()); // RGV缂栧彿 + command2.setTaskNo2((short) 0); // 宸ヤ綔鍙� + command2.setAckFinish2((short) 1); // 浠诲姟瀹屾垚纭浣� + command2.setTaskMode2(RgvTaskModeType.NONE); // 浠诲姟妯″紡 + command2.setSourceStaNo2((short)0); // 婧愮珯 + command2.setDestinationStaNo2((short)0); // 鐩爣绔� + command2.setCommand((short)0); + write2(command2); break; // 鍥炲師鐐� 閬胯 case 9: @@ -141,9 +159,10 @@ rgvProtocol.setLoaded1((short)0); rgvProtocol.setWalkPos((short)0); rgvProtocol.setRgvPos((short)0); -// rgvProtocol.setTaskNo2((short)0); -// rgvProtocol.setStatus2((short)-1); -// rgvProtocol.setLoaded2((short)0); + //宸ヤ綅2鐘舵�� + rgvProtocol.setTaskNo2((short)0); + rgvProtocol.setStatus2((short)-1); + rgvProtocol.setLoaded2((short)0); rgvProtocol.setAlarm((short)0); rgvProtocol.setxSpeed((short) 0); rgvProtocol.setxDistance((short) 0); @@ -189,6 +208,8 @@ rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt16(result.Content, 10)); rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12)); rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 14)); +// rgvProtocol.setTaskNo2(siemensNet.getByteTransform().TransInt16(result.Content, 4)); +// rgvProtocol.setLoaded2(siemensNet.getByteTransform().TransInt16(result.Content, 8)); // rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 16)); rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 18)); // rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20)); @@ -216,17 +237,17 @@ } } - // 宸ヤ綅2澶嶄綅淇″彿 -// if (rgvProtocol.getStatusType2().equals(RgvStatusType.WAITING) -// || rgvProtocol.getStatusType2().equals(RgvStatusType.FETCHWAITING)) { -// if (resetFlag2) { -// RgvCommand rgvCommand = new RgvCommand(); -// rgvCommand.setAckFinish2((short)1); -// if (write(rgvCommand)) { -// resetFlag2 = false; -// } -// } -// } +// 宸ヤ綅2澶嶄綅淇″彿 + if (rgvProtocol.getStatusType2().equals(RgvStatusType.WAITING) + || rgvProtocol.getStatusType2().equals(RgvStatusType.FETCHWAITING)) { + if (resetFlag2) { + RgvCommand rgvCommand = new RgvCommand(); + rgvCommand.setAckFinish2((short)1); + if (write(rgvCommand)) { + resetFlag2 = false; + } + } + } try { // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� @@ -244,12 +265,12 @@ } else { initRgv(); OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戣鍙朢GV plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); - log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); +// log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); } } catch (Exception e) { e.printStackTrace(); OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戣鍙朢GV plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// log.error("璇诲彇RGV plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); initRgv(); } } @@ -331,6 +352,26 @@ return false; } + OperateResultExOne<byte[]> result3 = siemensNet.Read("DB100.0", (short) 12); + OperateResultExOne<byte[]> result4 = siemensNet.Read("DB100.10", (short) 2); + if (result3.IsSuccess){ + RgvCommand one = new RgvCommand(); +// one.setAckFinish1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0)); + one.setTaskNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 2)); + one.setTaskMode1(siemensNet.getByteTransform().TransInt16(result3.Content, 4)); + one.setSourceStaNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 6)); + one.setDestinationStaNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 8)); + one.setCommand(siemensNet.getByteTransform().TransInt16(result4.Content, 0)); + + News.error("RGV鍛戒护涓嬪彂鍓嶈鍙栫姸鎬乕id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); + } + + + OperateResult result8 = siemensNet.Write("DB100.10", (short) 0); + if (result8.IsSuccess){ + News.error("涓嬪彂鍓嶆妸杞﹀瓙纭浣嶇疆涓�0"); + } + // siemensNet.Write("DB100.20", command.getCommand()); command.setRgvNo(slave.getId()); @@ -340,7 +381,7 @@ array[2] = command.getTaskMode1(); array[3] = command.getSourceStaNo1(); array[4] = command.getDestinationStaNo1(); - siemensNet.Write("DB100.10", command.getCommand()); +// siemensNet.Write("DB100.10", command.getCommand()); OperateResult result = siemensNet.Write("DB100.0", array); -- Gitblit v1.9.1