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