From 376f9a04e2c2814d210e2c5177f0e27d115e1b5d Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期五, 23 二月 2024 09:46:35 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue                             |   38 
 CanadaMes-ui/src/views/home/index.vue                                                |   10 
 CanadaMes-ui/src/configuration/ManualJog.json                                        |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/PlchomeNew.java       |  403 ++++++++++++++++
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java          |    5 
 springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java         |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java       |  137 ++---
 springboot-vue3/src/main/resources/JsonFile/PlcSign.json                             |    5 
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java          |  280 ++++++-----
 springboot-vue3/src/main/resources/JsonFile/PlcState.json                            |   17 
 springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java |   34 
 springboot-vue3/src/main/resources/JsonFile/PlcTest.json                             |    7 
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java     |   49 -
 springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java       |  112 ++--
 springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java    |  314 +++++++++++++
 15 files changed, 1,068 insertions(+), 349 deletions(-)

diff --git a/CanadaMes-ui/src/configuration/ManualJog.json b/CanadaMes-ui/src/configuration/ManualJog.json
index 40c659a..07ee2fa 100644
--- a/CanadaMes-ui/src/configuration/ManualJog.json
+++ b/CanadaMes-ui/src/configuration/ManualJog.json
@@ -274,7 +274,7 @@
   [
     {
       "button": {
-        "name": "A01琛岃蛋浼烘湇鍥為浂",
+        "name": "A01鍘熺偣璁板繂",
         "value": 0,
         "value2": 0,
         "address": "DB10.0",
@@ -284,7 +284,7 @@
     },
     {
       "button": {
-        "name": "A02琛岃蛋浼烘湇鍥為浂",
+        "name": "A02鍘熺偣璁板繂",
         "value": 0,
         "value2": 0,
         "address": "DB10.0",
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
index 2f3fa0f..302a3d5 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -201,18 +201,18 @@
       const jsonString = JSON.stringify(jsonObject);
       console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
       socket?.send(jsonString);
-      setTimeout(() => {
-    const reversedData = data.map(values => values.map(value => {
-      return   (!value || value === 1) ? 0 : 0 ;
-    }));
+    //   setTimeout(() => {
+    // const reversedData = data.map(values => values.map(value => {
+    //   return   (!value || value === 1) ? 0 : 0 ;
+    // }));
 
-    const reversedJsonObject = { data: reversedData };
+   // const reversedJsonObject = { data: reversedData };
 
     // 鎻愪氦鏁版嵁鍒板悗绔�
-    const reversedJsonString = JSON.stringify(reversedJsonObject);
-    console.log('鍙嶈浆鍚�:', reversedJsonString);
-    socket?.send(reversedJsonString);
-  }, 1000);
+  //   const reversedJsonString = JSON.stringify(reversedJsonObject);
+  //   console.log('鍙嶈浆鍚�:', reversedJsonString);
+  //   socket?.send(reversedJsonString);
+  // }, 1000);
 
       }
 
@@ -233,18 +233,18 @@
       const jsonString = JSON.stringify(jsonObject);
       console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
       socket?.send(jsonString);
-      setTimeout(() => {
-    const reversedData = data.map(values => values.map(value => {
-      return   (!value || value === 1) ? 0 : 0 ;
-    }));
+    //   setTimeout(() => {
+    // const reversedData = data.map(values => values.map(value => {
+    //   return   (!value || value === 1) ? 0 : 0 ;
+    // }));
 
-    const reversedJsonObject = { data: reversedData };
+   // const reversedJsonObject = { data: reversedData };
 
-    // 鎻愪氦鏁版嵁鍒板悗绔�
-    const reversedJsonString = JSON.stringify(reversedJsonObject);
-    console.log('鍙嶈浆鍚�:', reversedJsonString);
-    socket?.send(reversedJsonString);
-  }, 1000);
+  //   // 鎻愪氦鏁版嵁鍒板悗绔�
+  //   const reversedJsonString = JSON.stringify(reversedJsonObject);
+  //   console.log('鍙嶈浆鍚�:', reversedJsonString);
+  //   socket?.send(reversedJsonString);
+  // }, 1000);
 
       }
 
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index 14792be..7622122 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -1045,6 +1045,15 @@
                         }
                     }
 
+                    //鏍规嵁杩涚墖鐘舵�佸嚭鍙戣繘鐗囦换鍔�
+                    if (obj.FeedState != null) {
+                        if (obj.FeedState[0] == true) {
+                            this.InsertQueueGlass(1);
+                        }
+                    }
+
+
+
                     // if (obj.alarmmg[0].length > 0) {
                     //     if (this.alarm.length > 0) {
                     //         if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
@@ -1104,6 +1113,7 @@
 
                     //鏄惁闇�瑕佹墜鍔ㄧ‘璁や笂鐗�
                     this.isConfirm = obj.isConfirm[0];
+
                     //鎵爜浣嶇幓鐠冧俊鎭�
                     if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 1) {
                         this.form3 = obj.form3[0];
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
index 33a3c43..6181031 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -1,11 +1,5 @@
 package com.example.springboot.component;
 
-
-
-
-
-import com.example.springboot.entity.device.PlcParameterObject;
-
 import com.example.springboot.entity.device.PlcBitObject;
 import com.example.springboot.entity.device.PlcParameterObject;
 
@@ -13,19 +7,45 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import static com.example.springboot.component.InitUtil.readAndUpdateBitValues;
+import static com.example.springboot.component.InitUtil.readAndUpdateWordValues;
+
 public class PLCAutoMes extends Thread {
 
     // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
     private Configuration config;
     private static InitUtil initUtil;
-    public static  PlcParameterObject plcParameterObject;
+    // public static PlcParameterObject PlcMesObject;
+    // public static PlcParameterObject PlcReadObject;
+    // public static PlcParameterObject PlcframeObject;
+
     // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
     MessageHandler customS7Control = new MessageHandler();
-;
-
 
     // 鍗曚緥瀹炰緥
     private static PLCAutoMes instance;
+    private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
+    private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
+    private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
+    private static String PlcParameter = PLCAutomaticParameterSettingReview2.class
+            .getResource("/JsonFile/PlcParameter.json").getPath();
+    private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json")
+            .getPath();
+    private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json")
+            .getPath();
+    private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
+    private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
+
+    // 璋冪敤initword鏂规硶
+
+    public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
+    public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
+    public static PlcBitObject  plcBitObject = initUtil.initbit(PlcSign);
+    public static PlcParameterObject  plcStateObject= initUtil.initword(PlcState);
+    public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+    public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
+    public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+    public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
 
     // 绉佹湁鏋勯�犲嚱鏁�
     public PLCAutoMes() throws IOException {
@@ -45,70 +65,34 @@
     public void run() {
         while (this != null) {
             try {
-                Thread.sleep(1000);
+                Thread.sleep(100);
 
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
-            String jsonFilePath = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
-            //  String jsonFilePath2 = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
-            //String jsonFilePath4 = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
-            //System.out.println(jsonFilePath4);
-            // 璋冪敤initword鏂规硶
-            plcParameterObject = initUtil.initword(jsonFilePath);
 
-//            List<String> addresses = new ArrayList<>();
-//            addresses.add("conveyorVelocity(AutoFAST)");
-//            addresses.add("A02ID");
-//            addresses.add("conveyorVelocity(Manual)");
-//
-//            PlcParameterObject paramObject = PLCAutomaticParameterSettingReview2.plcParameterObject;
-//
-//
-//
-//            List<String> address =  paramObject.getAddressListByCodeId(addresses);
-//            System.out.println(address);
+            // System.out.println(jsonFilePath);
 
+            readAndUpdateWordValues(PlcReadObject);
+            readAndUpdateWordValues(PlcMesObject);
+            readAndUpdateWordValues(PlcframeObject);
+            // readAndUpdateWordValues(PlcframeObject);
 
-            //PLCAutomaticParameterSettingReview2 plc ;
-                    
-//            String jsonFilePath = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
-//
-//            String jsonFilePath2 = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
-//            // String jsonFilePath3 = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
-//            // System.out.println(jsonFilePath);
-//
-//            // 璋冪敤initword鏂规硶
-//             PlcMesObject= initUtil.initword(jsonFilePath);
-//            // 璋冪敤initbit鏂规硶
-//             PlcParameterObject  PlcReadObject= initUtil.initword(jsonFilePath2);
-            //  // 璋冪敤initbit鏂规硶
-            // PlcParameterObject  PlcframeObject= initUtil.initword(jsonFilePath3);
-//            readAndUpdateWordValues(PlcReadObject);
-//            readAndUpdateWordValues(PlcMesObject);
-           //  readAndUpdateWordValues(PlcframeObject);
-            
-           
-
-            
             // readAndUpdateWordValues(plcStateObject);
-//            int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
-//            //System.out.println(index);
-//            PlcMesObject.getPlcParameter("AddStart").getAddress(index);
-//            //System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
-//            List<String> addresses = new ArrayList<>();
-//            addresses.add("FeedID");
-//            addresses.add("AddStart");
-//            //System.out.println(addresses);
-//            //System.out.println(PlcMesObject.getPlcParameterValues(addresses));
-//            List<String> addresses2 = new ArrayList<>();
-//            addresses2.add("FeedID");
-//            addresses2.add("FeedCarStatus");
+            int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
+            // System.out.println(index);
+            PlcMesObject.getPlcParameter("AddStart").getAddress(index);
+            // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
+            List<String> addresses = new ArrayList<>();
+            addresses.add("FeedID");
+            addresses.add("AddStart");
+            // System.out.println(addresses);
+            // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
+            List<String> addresses2 = new ArrayList<>();
+            addresses2.add("FeedID");
+            addresses2.add("FeedCarStatus");
 
-           // System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
-
-         
-        
+            System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
 
         }
     }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
index 296a397..30061c1 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -5,6 +5,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import com.example.springboot.service.JdbcConnections;
 import com.example.springboot.service.SpianService;
+import com.example.springboot.service.SpianServiceNew;
 import com.example.springboot.entity.north_glass_buffer1;
 import com.example.springboot.mapper.AlarmMapper;
 import com.example.springboot.mapper.SpianMapper;
@@ -17,6 +18,7 @@
   private JdbcConnections jdbcConnections;
   private SpianMapper spianMapper;
   private SpianService spianService;
+  private SpianServiceNew spianServiceNew;
   int aaa;
 
   @Override
@@ -34,6 +36,7 @@
       // if (S7control.getinstance().CheckConnected() == false) {
       spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
       spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
+      spianServiceNew = WebSocketServer.applicationContext.getBean(SpianServiceNew.class);
       jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
       // 鏍规嵁鐜荤拑id鑾峰彇璁㈠崟鍙�,鍗曠嫭鏁版嵁婧�
       // try {
@@ -45,6 +48,8 @@
       // }
 
       // 鍑虹墖浠诲姟////////////////////////////////
+      spianServiceNew.selectout2("X21942613103GV");
+
       List<Short> outlist = S7control.getinstance().ReadWord("DB106.20", 1); // 鍑虹墖杞︾姸鎬�
       List<Short> outlist1 = S7control.getinstance().ReadWord("DB105.18", 1); // 鍑虹墖浠诲姟鏄惁鍚姩
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
index ada22ca..5c979bf 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
@@ -1,11 +1,13 @@
 package com.example.springboot.component;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.example.springboot.service.JdbcConnections;
 import com.example.springboot.service.SpianService;
 import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.entity.device.PlcParameterObject;
 import com.example.springboot.mapper.AlarmMapper;
 import com.example.springboot.mapper.SpianMapper;
 
@@ -35,41 +37,31 @@
       spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
       spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
       jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
-      // 鏍规嵁鐜荤拑id鑾峰彇璁㈠崟鍙�,鍗曠嫭鏁版嵁婧�
-      // try {
-      // north_glass_buffer1 glass = jdbcConnections.selectGlass(112);
-      // // System.out.println(glass.getOrderId());
-      // } catch (SQLException e) {
-      // // TODO Auto-generated catch block
-      // e.printStackTrace();
-      // }
 
-      // 鍑虹墖浠诲姟////////////////////////////////
-      List<Short> outlist = S7control.getinstance().ReadWord("DB106.20", 1); // 鍑虹墖杞︾姸鎬�
-      List<Short> outlist1 = S7control.getinstance().ReadWord("DB105.18", 1); // 鍑虹墖浠诲姟鏄惁鍚姩
-
-      boolean Plcout = spianService.listbool("DB106.64"); // 鍑虹墖璇锋眰瀛�
-      boolean Plcout2 = spianService.listbool("DB105.18"); // 鍑虹墖鍚姩
-      if (Plcout == false&&Plcout2==true) {
-        S7control.getinstance().WriteWord("DB105.18", (short) 0);// 鍑虹墖浠诲姟鍚姩鏀逛负0
-        System.out.println("鍏抽棴鍑虹墖鍚姩" + LocalDateTime.now());// 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负0
-      }
-      boolean Plcadd = spianService.listbool("DB106.24"); // 杩涚墖璇锋眰瀛�
-      boolean Plcadd2 = spianService.listbool("DB105.16"); // 杩涚墖鍚姩
-      if (Plcadd == false&&Plcadd2==true) {
-        S7control.getinstance().WriteWord("DB105.16", (short) 0);//杩涚墖浠诲姟鍚姩鏀逛负0
-        System.out.println("鍏抽棴杩涚墖鍚姩" + LocalDateTime.now());// 杩涚墖浠诲姟鍙戦�佸瓧鏀逛负0
-      }
+      //璇诲彇DB105鍖烘枃浠�
+      PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+      //璇�106
+      PlcParameterObject plcread=PLCAutoMes.PlcReadObject;
+      //璇�103
+      PlcParameterObject plcstate=PLCAutoMes.plcStateObject;
+      String OutRequest=plcread.getPlcParameter("OutRequest").getValue();//鍑虹墖璇锋眰
+      String OutActivate=plcmes.getPlcParameter("OutActivate").getValue();//鍑虹墖鍚姩
       
 
-
-      // StringBuilder writedstrIdOut = new StringBuilder();
-      // 鑾峰彇宸蹭笅鍙戠殑鍑虹墖id
-      byte[] writedglassidbytesOut = S7control.getinstance().ReadByte("DB105.30", 14);
-      String writedstrIdOut = new String(writedglassidbytesOut);
-
+     
+      S7control.getinstance().WriteWord( plcmes.getPlcParameter("1231").getAddress(plcmes.getPlcParameter("1231").getAddressIndex()), (short) 0);
+      // 鍑虹墖浠诲姟
+      
+      if (OutActivate.equals("1") == false&&OutRequest.equals("1")==true) {
+        S7control.getinstance().WriteWord("DB105.18", (short) 0);// 鍑虹墖浠诲姟鍚姩鏀逛负0  
+      }
+      String FeedRequest=plcread.getPlcParameter("FeedRequest").getValue();// 杩涚墖璇锋眰瀛�
+      String AddActivate=plcmes.getPlcParameter("AddActivate").getValue();// 杩涚墖鍚姩
+      if (FeedRequest.equals("1") == false&&AddActivate.equals("1")==true) {
+        S7control.getinstance().WriteWord("DB105.16", (short) 0);//杩涚墖浠诲姟鍚姩鏀逛负0
+      }     
    
-      if (Plcout == true) {
+      if (OutActivate.equals("1") == true) {
         // 鍒ゆ柇褰撳墠鏄惁鏈夋湭鎵ц鐨勪换鍔�
         int outnum = spianMapper.SelectOutSliceshu();//鏄惁鏈夋鍦ㄥ嚭鐗囩殑浠诲姟
         int cageoutsum = spianMapper.Selectcageout(3);//绗煎瓙鍐呮槸鍚﹁繕鏈夊湪鍑虹墖鐨勭幓鐠�
@@ -94,88 +86,81 @@
      
       }
 
-      ///////////// 杩涚墖浠诲姟
-      List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);// 鑾峰彇prc杩涚墖璇锋眰鏁版嵁
-      List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 鑾峰彇杩涚墖杞︾姸鎬�
-      List<Short> datas1ListState2 = S7control.getinstance().ReadWord("DB105.16", 1);// 鑾峰彇杩涚墖杞︿换鍔℃槸鍚﹀惎鍔�
+      ///////////// 杩涚墖浠诲姟      
 
-      boolean B01backs = spianService.listbool("DB106.60");// b01姹囨姤
-      boolean B02backs = spianService.listbool("DB106.62");// b02姹囨姤
-      StringBuilder B01glassid = spianService.queGlassid("DB103.184", 14);// BO1鐨勭幓鐠僫d
-      StringBuilder B02glassid = spianService.queGlassid("DB103.212", 14);// B02鐨勭幓鐠僫d
+      String B01backs = plcread.getPlcParameter("B01CompleteTheReport").getValue();// b01姹囨姤
+      String B02backs = plcread.getPlcParameter("B02CompleteTheReport").getValue();// b02姹囨姤
+      
+      String B01glassid = plcstate.getPlcParameter("B01ID1").getValue();// BO1鐨勭幓鐠僫d
+      String B02glassid = plcstate.getPlcParameter("B02ID1").getValue();// B02鐨勭幓鐠僫d
 
       // 褰撹繘鐗囧皬杞﹀畬鎴愪换鍔℃椂
-      if (B01backs == true) {
+      if (B01backs.equals("1") == true) {
         // 鍒ゆ柇鏄惁姹囨姤姝g‘鐨刬d
         int HB = spianMapper.SelectHB(B01glassid.toString());
         if (HB > 0) {
-          // 褰揃01灏忚溅姹囨姤瀹屾垚鏃舵洿鏀圭幓鐠冪姸鎬� 涓�1
-          S7control.getinstance().WriteWord("DB105.48", (short) 1);// 鎭㈠B01灏忚溅搴旂瓟鏀逛负1
-          boolean yingda = spianService.listbool("DB105.48");// b01姹囨姤
-          if (yingda == true) {
+          // 鎭㈠B01灏忚溅搴旂瓟鏀逛负1
+          S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(plcmes.getPlcParameter("B01report").getAddressIndex()), (short) 1);
+          String yingda =plcmes.getPlcParameter("B01report").getValue();// b01姹囨姤
+          if (yingda.equals("1")) {
             spianService.overtask(B01glassid.toString());// 瀹屾垚浠诲姟
-          }
-          System.out.println("姹囨姤鏃禕01|绗�" + aaa + "娆�" + B01glassid + "搴旂瓟" + yingda);
-          aaa += 1;
+          }       
         }
 
       }else{
-        S7control.getinstance().WriteWord("DB105.48", (short) 0);// 鎭㈠B01灏忚溅搴旂瓟鏀逛负1
+        // 鎭㈠B01灏忚溅搴旂瓟鏀逛负0
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("B01report").getAddress(plcmes.getPlcParameter("B01report").getAddressIndex()), (short) 0);
       }
 
       // 褰撳嚭鐗囧皬杞﹀畬鎴愪换鍔℃椂
-      if (B02backs == true) {
+      if (B02backs.equals("1") == true) {
         // 鍒ゆ柇鏄惁姹囨姤姝g‘鐨刬d
-        int HB = spianMapper.SelectHB(B02glassid.toString());
-        System.out.println("姹囨姤鏃禕02|" + B02glassid);
+        int HB = spianMapper.SelectHB(B02glassid);
         if (HB > 0) {
-          // 褰揃02灏忚溅姹囨姤瀹屾垚鏃舵洿鏀圭幓鐠冪姸鎬佷负0
-
-          S7control.getinstance().WriteWord("DB105.50", (short) 1);// 鎭㈠B02灏忚溅搴旂瓟鏀逛负1
-          System.out.println("姹囨姤鏃禕02ID|" + B02glassid);
-          boolean yingda = spianService.listbool("DB105.50");// b02姹囨姤
-          if (yingda == true) {
-            spianService.overtask(B02glassid.toString());// 瀹屾垚浠诲姟
-          }
-          System.out.println("姹囨姤鏃禕02|绗�" + aaa + "娆�" + B02glassid + "搴旂瓟" + yingda);
+          // 鎭㈠B02灏忚溅搴旂瓟鏀逛负1
+          S7control.getinstance().WriteWord(plcmes.getPlcParameter("B02report").getAddress(plcmes.getPlcParameter("B02report").getAddressIndex()), (short) 1);
+          String yingda =plcmes.getPlcParameter("B01report").getValue();// b02搴旂瓟
+          if (yingda.equals("1") == true) {
+            spianService.overtask(B02glassid);// 瀹屾垚浠诲姟
+          }    
         }
       }else{
-         S7control.getinstance().WriteWord("DB105.50", (short) 0);// 鎭㈠B02灏忚溅搴旂瓟鏀逛负0
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("B02report").getAddress(plcmes.getPlcParameter("B02report").getAddressIndex()), (short) 0);
       }
 
 
       // 鑾峰彇DO1鏁版嵁
-      StringBuilder queueid1 = spianService.queGlassid("DB106.26", 14);// 鑾峰彇璇锋眰鐨刬d璺烡O1鍚屾椂娓�
+      String Do1ID=plcread.getPlcParameter("FeedID").getValue();// 鑾峰彇璇锋眰鐨刬d璺烡O1鍚屾椂娓�
       // 鑾峰彇DO2鏁版嵁
-      StringBuilder queueid2 = spianService.queGlassid("DB103.58", 14);
+      String Do2ID=plcread.getPlcParameter("FeedID").getValue();// 鑾峰彇璇锋眰鐨刬d璺烡O1鍚屾椂娓�
 
-      int questate = spianMapper.Selectquecount(queueid1.toString());// 鍒ゆ柇鎵爜浣嶆槸鍚︽湁鐜荤拑宸茬‘璁�
+
+      int questate = spianMapper.Selectquecount(Do1ID.toString());// 鍒ゆ柇鎵爜浣嶆槸鍚︽湁鐜荤拑宸茬‘璁�
       // queueid1.toString().isEmpty()
-      north_glass_buffer1 glass1 = spianMapper.selectGlass(queueid1.toString());// D01鐨勭幓鐠冧俊鎭�
-      north_glass_buffer1 glass2 = spianMapper.selectGlass(queueid2.toString());// D02鐜荤拑淇℃伅
+      north_glass_buffer1 glass1 = spianMapper.selectGlass(Do1ID);// D01鐨勭幓鐠冧俊鎭�
+      north_glass_buffer1 glass2 = spianMapper.selectGlass(Do2ID);// D02鐜荤拑淇℃伅
       // 褰撴壂鐮佷綅鐜荤拑id涓虹┖鏃� 瀹藉害涓�0
-      if (queueid1 != null && questate == 0) {
+      if (Do1ID != null && questate == 0) {
         // 鍐欏叆D01鐨勬暟鎹埌涓婄墖闃熷垪琛�
         if (glass1 == null) { // 褰撴病鏈夊�兼椂浼犵┖
           spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 1);
         } else {
-
-          spianMapper.Updatequeue(queueid1.toString(), glass1.getordernumber(), glass1.getlistnumber(),
-              glass1.getboxnumber(), 0, glass1.getglasslengthmm().toString(), glass1.getglassheightmm().toString(),
-              glass1.getglasslength().toString(), glass1.getglassheight().toString(), 1);
+          spianMapper.Updatequeue(Do1ID.toString(), glass1.getordernumber(), glass1.getlistnumber(),
+          glass1.getboxnumber(), 0, glass1.getglasslengthmm().toString(), glass1.getglassheightmm().toString(),
+          glass1.getglasslength().toString(), glass1.getglassheight().toString(), 1);
         }
 
       }
 
-      if (queueid2 != null) {
+      if (Do2ID != null) {
         // 鍐欏叆D02鐨勬暟鎹埌涓婄墖闃熷垪琛�
         if (glass2 == null) {
           spianMapper.Updatequeue(null, null, null, null, 0, null, null, null, null, 2);
         } else {
-          spianMapper.Updatequeue(queueid2.toString(), glass2.getordernumber(), glass2.getlistnumber(),
-              glass2.getboxnumber(), 0, glass2.getglasslengthmm().toString(), glass2.getglassheightmm().toString(),
-              glass2.getglasslength().toString(), glass2.getglassheight().toString(), 2);
-          spianMapper.overqueue2(queueid2.toString(), 0, 1);// 鏇存敼鎵爜浣嶄换鍔¤〃鐨勭姸鎬佷负0
+          spianMapper.Updatequeue(Do2ID.toString(), glass2.getordernumber(), glass2.getlistnumber(),
+          glass2.getboxnumber(), 0, glass2.getglasslengthmm().toString(), glass2.getglassheightmm().toString(),
+          glass2.getglasslength().toString(), glass2.getglassheight().toString(), 2);
+          spianMapper.overqueue2(Do2ID.toString(), 0, 1);// 鏇存敼鎵爜浣嶄换鍔¤〃鐨勭姸鎬佷负0
           S7control.getinstance().WriteWord("DB105.16", (short) 0);// 鍏抽棴浠诲姟鍚姩
         }
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
index d178723..a1e7574 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -7,7 +7,9 @@
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import com.example.springboot.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +20,7 @@
 import com.example.springboot.entity.StorageCage;
 import com.example.springboot.entity.alarmmg;
 import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.entity.device.PlcParameterObject;
 import com.example.springboot.mapper.HomeMapper;
 import com.example.springboot.mapper.SpianMapper;
 
@@ -60,7 +63,7 @@
             JSONObject jsonObject = new JSONObject();
             try {
                 Thread.sleep(1000);
-                // 娉ㄥ叆mapper
+                // 娉ㄥ叆mapper                
                 homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
                 spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
                 spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
@@ -123,162 +126,171 @@
                 // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                 // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
 
-                if (S7control.getinstance().CheckConnected() == true) {
+                // if (S7control.getinstance().CheckConnected() == true) {
 
-                    // 閾濇绾夸氦浜�
-                    if (S7controlLK.getinstance().CheckConnected() == true) {
-                        if (CurrentFrame != null) {
-                            S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), "DB17.0");
-                        }
-                        String E01id = S7controlLK.getinstance().readStrings("DB17.0");
-                        String J01id = S7controlLK.getinstance().readStrings("DB17.22");
+                
 
-                        List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1);
-                        List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1);
-                        Short framerequest = liststate.get(0);
-                        if (framerequest == 1) {
-                            // 閾濇id
-                            String position;
-                            try {
-                                position = dbserve.SelectPositionByFrameBarcode(J01id);
-                            } catch (SQLException e) {
-                                // TODO Auto-generated catch block
-                                position = "0";
-                                e.printStackTrace();
-                            }
-                            Short send;
-                            if (position.equals("0")) {
-                                send = 0;
-                            } else {
-                                send = 1;
-                            }
-                            S7controlLK.getinstance().WriteWord("DB17.38", (short) send);
-                        }
+                // 閾濇绾夸氦浜�
+                if (S7controlLK.getinstance().CheckConnected() == true) {
+                    if (CurrentFrame != null) {
+                        S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), "DB17.0");
                     }
+                    String E01id = S7controlLK.getinstance().readStrings("DB17.0");
+                    String J01id = S7controlLK.getinstance().readStrings("DB17.22");
 
-                    // 鑾峰彇褰撳墠鎵爜鏂瑰紡
-                    List<Boolean> Scanningmethods = S7control.getinstance().ReadBits("DB101.11.4", 1);
-                    if (Scanningmethods != null) {
-                        for (Boolean Scanningmethod : Scanningmethods) {
-                            jsonObject.append("Scanningmethod", Scanningmethod);
-                        }
-                    }
-                    // 鑾峰彇褰撳墠鎵爜鏋幓鐠僫d
-                    String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString();
-                    jsonObject.append("CurrrentGlassId", CurrrentGlassId);
-
-                    // 鑾峰彇D01-D06,A01,A02,B01,B02鐘舵��
-                    List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10);
-                    jsonObject.append("DeviceList", DeviceList);
-                    // 鑾峰彇D01-D06,A01,A02,B01,B02鐜荤拑id
-                    List<String> GlassIdList = new ArrayList<String>();
-                    GlassIdList.add(spianService.queGlassid("DB103.44", 14).toString());
-                    GlassIdList.add(spianService.queGlassid("DB103.58", 14).toString());
-
-                    GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString());
-                    GlassIdList.add(spianService.queGlassid("DB103.212", 14).toString());
-
-                    GlassIdList.add(spianService.queGlassid("DB103.128", 14).toString());
-                    GlassIdList.add(spianService.queGlassid("DB103.142", 14).toString());
-                    GlassIdList.add(spianService.queGlassid("DB103.156", 14).toString());
-
-                    GlassIdList.add(spianService.queGlassid("DB103.72", 14).toString());
-                    GlassIdList.add(spianService.queGlassid("DB103.86", 14).toString());
-                    GlassIdList.add(spianService.queGlassid("DB103.100", 14).toString());
-                    GlassIdList.add(spianService.queGlassid("DB103.114", 14).toString());
-                    jsonObject.append("GlassIdList", GlassIdList);
-
-                    // 璇诲幓Plc杩涚墖杞︿笌鍑虹墖杞︿綅缃甒
-                    List<String> addressList = new ArrayList<String>();
-                    addressList.add("DB106.12");
-                    addressList.add("DB106.0");
-                    List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
-                    if (paramlist != null) {
-                        jsonObject.append("params", paramlist);
-                    }
-                    // 鑾峰彇杩涚墖杞︾姸鎬�
-                    List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
-                            1);// 鑾峰彇杩涚墖杞︾姸鎬�
-                    if (datas1ListState != null) {
-                        boolean exist1 = datas1ListState.contains((short) 0);
-                        jsonObject.append("zhuangtai", exist1);
-                    }
-
-                    // 鑾峰彇杩涚墖鐜荤拑淇℃伅
-                    List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
-                    if (inglassInfo != null) {
-                        if (inglassInfo.size() > 0) {
-                            jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
-                        }
-                    }
-                    // // 鑾峰彇閾濇idDB106.DBW64锛屾坊鍔犲埌鍑虹墖闃熷垪
-                    // String frameno="X21763329601FB";
-                    String frameno = spianService.queGlassid("DB103.270", 14).toString();
-                    if (!frameno.equals(Plchome.FrameNo)) {
-                        Plchome.FrameNo = frameno;
+                    List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1);
+                    List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1);
+                    Short framerequest = liststate.get(0);
+                    if (framerequest == 1) {
+                        // 閾濇id
+                        String position;
                         try {
-                            Short num = 0;
-                            List<north_glass_buffer1> north_glass_buffer1s = north_Glass_Buffer1Service
-                                    .SelectAluminumFrameInfoById(Plchome.FrameNo);
-                            for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) {
-                                if (north_glass_buffer1.getstorageCage() == null) {
-                                    break;
-                                }
-                                num++;
-                            }
-                            if (num == north_glass_buffer1s.size()) {
-                                north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
-                            } else {
-                                Plchome.AluminumFrame = north_glass_buffer1s;
-                            }
+                            position = dbserve.SelectPositionByFrameBarcode(J01id);
                         } catch (SQLException e) {
                             // TODO Auto-generated catch block
+                            position = "0";
                             e.printStackTrace();
                         }
+                        Short send;
+                        if (position.equals("0")) {
+                            send = 0;
+                        } else {
+                            send = 1;
+                        }
+                        S7controlLK.getinstance().WriteWord("DB17.38", (short) send);
                     }
-                    if (AluminumFrame != null) {
-                        jsonObject.append("AluminumFrame", AluminumFrame);
-                    }
+                }
 
-                    // 澶嶄綅鍊掕鏃�
-                    // 鍦板潃104.9.6
-                    List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
-                    for (Boolean countdowns : countdown) {
-                        jsonObject.append("countdown", countdowns);
+                // 鑾峰彇褰撳墠鎵爜鏂瑰紡
+                List<Boolean> Scanningmethods = S7control.getinstance().ReadBits("DB101.11.4", 1);
+                if (Scanningmethods != null) {
+                    for (Boolean Scanningmethod : Scanningmethods) {
+                        jsonObject.append("Scanningmethod", Scanningmethod);
                     }
-                    // jsonObject.append("countdown", true);
-                    // 澶嶄綅瀹屾垚淇″彿ss
-                    List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1);
-                    for (Boolean reset : resetss) {
-                        jsonObject.append("reset", reset);
-                    }
+                }
+                // 鑾峰彇褰撳墠鎵爜鏋幓鐠僫d
+                String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString();
+                jsonObject.append("CurrrentGlassId", CurrrentGlassId);
 
-                    // 鏄惁鎬ュ仠
-                    List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
-                    for (Boolean emergencystop : emergencystops) {
-                        jsonObject.append("emergencystop", emergencystop);
-                    }
-                    // 鑾峰彇杩涚墖璇锋眰鐘舵��
-                    List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
-                    boolean D01RequestState = D01Request.contains((short) 1);
-                    jsonObject.append("D01RequestState", D01RequestState);
+                // 鑾峰彇D01-D06,A01,A02,B01,B02鐘舵��
+                List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10);
+                jsonObject.append("DeviceList", DeviceList);
+                // 鑾峰彇D01-D06,A01,A02,B01,B02鐜荤拑id
+                List<String> GlassIdList = new ArrayList<String>();
+                GlassIdList.add(spianService.queGlassid("DB103.44", 14).toString());
+                GlassIdList.add(spianService.queGlassid("DB103.58", 14).toString());
 
-                    // 鑾峰彇杩涚墖鍙戦�佺姸鎬�
-                    List<Short> D01respnse = S7control.getinstance().ReadWord("DB106.16", 1);
-                    boolean D01ResponseState = D01respnse.contains((short) 1);
-                    // jsonObject.append("D01RequestState", D01RequestState);
-                    // 鑷姩杩涚墖
+                GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString());
+                GlassIdList.add(spianService.queGlassid("DB103.212", 14).toString());
+
+                GlassIdList.add(spianService.queGlassid("DB103.128", 14).toString());
+                GlassIdList.add(spianService.queGlassid("DB103.142", 14).toString());
+                GlassIdList.add(spianService.queGlassid("DB103.156", 14).toString());
+
+                GlassIdList.add(spianService.queGlassid("DB103.72", 14).toString());
+                GlassIdList.add(spianService.queGlassid("DB103.86", 14).toString());
+                GlassIdList.add(spianService.queGlassid("DB103.100", 14).toString());
+                GlassIdList.add(spianService.queGlassid("DB103.114", 14).toString());
+                jsonObject.append("GlassIdList", GlassIdList);
+
+                // 鑾峰彇Plc杩涚墖杞︿笌鍑虹墖杞︿綅缃�
+                List<String> addressList = new ArrayList<String>();
+                addressList.add("DB106.12");
+                addressList.add("DB106.0");
+                List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
+                if (paramlist != null) {
+                    jsonObject.append("params", paramlist);
+                }
+                // // 鑾峰彇杩涚墖杞︾姸鎬�
+                // List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
+                //         1);// 鑾峰彇杩涚墖杞︾姸鎬�
+                // if (datas1ListState != null) {
+                //     boolean exist1 = datas1ListState.contains((short) 0);
+                //     jsonObject.append("zhuangtai", exist1);
+                // }
+
+                // // 鑾峰彇杩涚墖鐜荤拑淇℃伅
+                // List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
+                // if (inglassInfo != null) {
+                //     if (inglassInfo.size() > 0) {
+                //         jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
+                //     }
+                // }
+                // // 鑾峰彇閾濇idDB106.DBW64锛屾坊鍔犲埌鍑虹墖闃熷垪
+                // String frameno="X21763329601FB";
+                String frameno = spianService.queGlassid("DB103.270", 14).toString();
+                if (!frameno.equals(Plchome.FrameNo)) {
+                    Plchome.FrameNo = frameno;
+                    try {
+                        Short num = 0;
+                        List<north_glass_buffer1> north_glass_buffer1s = north_Glass_Buffer1Service
+                                .SelectAluminumFrameInfoById(Plchome.FrameNo);
+                        for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) {
+                            if (north_glass_buffer1.getstorageCage() == null) {
+                                break;
+                            }
+                            num++;
+                        }
+                        if (num == north_glass_buffer1s.size()) {
+                            north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
+                        } else {
+                            Plchome.AluminumFrame = north_glass_buffer1s;
+                        }
+                    } catch (SQLException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    }
+                }
+                if (AluminumFrame != null) {
+                    jsonObject.append("AluminumFrame", AluminumFrame);
+                }
+
+                // 澶嶄綅鍊掕鏃�
+                // 鍦板潃104.9.6
+                List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
+                for (Boolean countdowns : countdown) {
+                    jsonObject.append("countdown", countdowns);
+                }
+                // jsonObject.append("countdown", true);
+                // 澶嶄綅瀹屾垚淇″彿
+                List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1);
+                for (Boolean reset : resetss) {
+                    jsonObject.append("reset", reset);
+                }
+
+                // 鏄惁鎬ュ仠
+                List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
+                for (Boolean emergencystop : emergencystops) {
+                    jsonObject.append("emergencystop", emergencystop);
+                }
+                // 鑾峰彇杩涚墖璇锋眰鐘舵��
+                List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
+                boolean D01RequestState = D01Request.contains((short) 1);
+                jsonObject.append("D01RequestState", D01RequestState);
+
+                // 鑾峰彇杩涚墖鍙戦�佺姸鎬�
+                List<Short> D01respnse = S7control.getinstance().ReadWord("DB106.16", 1);
+                boolean D01ResponseState = D01respnse.contains((short) 1);
+                // jsonObject.append("D01RequestState", D01RequestState);
+                // 鑷姩杩涚墖
+                isConfirm=true;
+                if (isConfirm == true && form3.getglassId() != null && form3.getglassId() != "") {
                     if ((form3.getglassheight() < 380 || form3.getglasswidth() < 390 || form3.getglassheight() > 1810
                             || form3.getglasswidth() > 2760)
                             || (form3.getglassheight() < 390 || form3.getglasswidth() < 380
                                     || form3.getglassheight() > 2760 || form3.getglasswidth() > 1810)) {
-
-                        if (isConfirm == true && D01RequestState == true && D01ResponseState == false) {
+                        FeedState = true;
+                        jsonObject.append("FeedState", FeedState);
+                        FeedState = false;
+                    } else {
+                        if (D01RequestState == true && D01ResponseState != true) {
                             storageCageService.InsertQueueGlassId((short) 1, form3);
                         }
                     }
                 }
 
+                // }
+
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlchomeNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlchomeNew.java
new file mode 100644
index 0000000..3b03f97
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlchomeNew.java
@@ -0,0 +1,403 @@
+package com.example.springboot.component;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+
+import java.io.IOException;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.example.springboot.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.example.springboot.entity.Glass;
+import com.example.springboot.entity.Out_slice;
+import com.example.springboot.entity.Queue;
+import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.alarmmg;
+import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.entity.device.PlcBitObject;
+import com.example.springboot.entity.device.PlcParameterObject;
+import com.example.springboot.mapper.HomeMapper;
+import com.example.springboot.mapper.SpianMapper;
+
+public class PlchomeNew extends Thread {
+
+    @Autowired
+    private HomeMapper homeMapper;
+    private OutSliceServive outSliceServive;
+    private SpianMapper spianMapper;
+    private SpianService spianService;
+    private North_Glass_Buffer1Service north_Glass_Buffer1Service;
+    private JdbcConnections dbserve;
+    // 鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
+    public static Boolean isAllowQueue = true;
+    public static Boolean isAllowReordering = true;
+    // 鍑虹墖闃熷垪璀﹀憡
+    public static Boolean isQueueWarning = false;
+    // 閾濇id
+    public static String FrameNo = "";
+    // 鏄惁闇�瑕佹墜鍔ㄧ‘璁ょ幓鐠�
+    public static Boolean isConfirm = false;
+    // 寰呯‘璁ょ殑鍑虹墖闃熷垪
+    public static List<north_glass_buffer1> AluminumFrame;
+
+    // private Configuration config;
+
+    private StorageCageService storageCageService;
+
+    public static Boolean FeedState = false;
+
+    // public Plchome() throws IOException {
+    // config = new Configuration("config.properties");
+    // }
+
+    // public static Map b=new HashMap<>();
+    // b.put()
+    @Override
+    public void run() {
+        while (this != null) {
+            JSONObject jsonObject = new JSONObject();
+            try {
+                Thread.sleep(1000);
+                // 娉ㄥ叆mapper
+
+                homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
+                spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
+                spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
+                outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
+                north_Glass_Buffer1Service = WebSocketServer.applicationContext
+                        .getBean(North_Glass_Buffer1Service.class);
+                storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
+                dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
+
+                // 绗煎瓙浣跨敤鎯呭喌
+                List<StorageCage> tableData = homeMapper.selectAll();
+                jsonObject.append("tableData", tableData);
+                // 鏍肩悊鐗囩鏍煎瓙鐘舵��
+                List<StorageCage> cagelist1 = homeMapper.selectRack1();
+                List<StorageCage> cagelist2 = homeMapper.selectRack2();
+                List<StorageCage> cagelist3 = homeMapper.selectRack3();
+                List<StorageCage> cagelist4 = homeMapper.selectRack4();
+                jsonObject.append("cagelist1", cagelist1);
+                jsonObject.append("cagelist2", cagelist2);
+                jsonObject.append("cagelist3", cagelist3);
+                jsonObject.append("cagelist4", cagelist4);
+                // 杩涘嚭鐗囦换鍔�
+                List<StorageCage> tasklist1 = homeMapper.selectinout(3);
+                List<StorageCage> tasklist2 = homeMapper.selectinout(2);
+                jsonObject.append("tasklist1", tasklist1);
+                jsonObject.append("tasklist2", tasklist2);
+                // 鏌ヨ鎶ヨ淇℃伅
+                List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
+                jsonObject.append("alarmmg", alarmmg);
+
+                // 浼� 鑾峰彇杩涙槸鍚︽湁寰呯‘璁ょ殑鐜荤拑id
+                String queid = spianMapper.Selectqueueid();
+                int state = spianMapper.Selectqueuestate();
+                jsonObject.append("queid", queid);
+                jsonObject.append("state", state);
+                // 鑾峰彇鎵爜浣嶄笌涓婄墖浣嶇幓鐠冧俊鎭�
+                Queue form2 = homeMapper.GetQueueInfo(2);
+                Queue form3 = homeMapper.GetQueueInfo(1);
+                if (form2.getglassId() != null && form2.getglassId() != "") {
+                    jsonObject.append("form2", form2);
+                }
+                if (form3.getglassId() != null && form3.getglassId() != "") {
+                    jsonObject.append("form3", form3);
+                }
+                // 鑾峰彇鍑虹墖闃熷垪淇℃伅
+                List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
+                jsonObject.append("listoutslice", listoutslice);
+                // 鑾峰彇褰撳墠鍑虹墖闃熷垪鍑虹墖鐘舵��
+                jsonObject.append("isAllowQueue", PlchomeNew.isAllowQueue);
+                // 鑾峰彇鍑虹墖闃熷垪璀﹀憡鐘舵��
+                jsonObject.append("isQueueWarning", PlchomeNew.isQueueWarning);
+                // 鑾峰彇褰撳墠鍑虹墖闃熷垪璋冨簭鐘舵��
+                jsonObject.append("isAllowReordering", PlchomeNew.isAllowReordering);
+                // 鏄惁闇�瑕佷汉宸ョ‘璁や笂鐗囩幓鐠�
+                jsonObject.append("isConfirm", isConfirm);
+                // 鏌ヨ褰撳墠閾濇淇℃伅
+                Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame();
+                jsonObject.append("CurrentFrame", CurrentFrame);
+
+                // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
+                // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
+
+                // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
+                // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
+                // public static PlcBitObject plcBitObject = initUtil.initbit(PlcSign);
+                // public static PlcParameterObject plcStateObject = initUtil.initword(PlcState);
+                // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+                // public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
+                // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+                // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
+
+                PlcParameterObject PlcParameter = PLCAutoMes.plcParameterObject;// plc鍙傛暟鍦板潃DB100
+                PlcBitObject PlcTest = PLCAutoMes.plcPlcTest;// plc鏍囪瘑鍦板潃DB101
+                PlcBitObject PlcSign = PLCAutoMes.plcBitObject;// plc璁惧鐘舵�佸湴鍧�DB102
+                PlcParameterObject PlcState = PLCAutoMes.plcStateObject;// plc鐘舵�佸湴鍧�DB103
+                PlcBitObject PlcAlarm = PLCAutoMes.plcPlcAlarm;// plc鎶ヨ鍦板潃DB104
+                PlcParameterObject MesMission = PLCAutoMes.PlcMesObject;// mes浠籑ES鍔″湴鍧�DB105
+                PlcParameterObject PLCMission = PLCAutoMes.PlcReadObject;// plc浠诲姟鍦板潃DB106
+                PlcParameterObject Plcframe = PLCAutoMes.PlcframeObject;// plc閾濇鍦板潃DB17
+
+                // if (S7control.getinstance().CheckConnected() == true) {
+
+                // 閾濇绾夸氦浜�
+                if (S7controlLK.getinstance().CheckConnected() == true) {
+                    if (CurrentFrame != null) {
+                        S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(),
+                                Plcframe.getPlcParameter("E01id")
+                                        .getAddress(Plcframe.getPlcParameter("E01id").getAddressIndex()));
+                    }
+                    String E01id = S7controlLK.getinstance().readStrings(Plcframe.getPlcParameter("E01id")
+                            .getAddress(Plcframe.getPlcParameter("E01id").getAddressIndex()));
+                    String J01id = S7controlLK.getinstance().readStrings(Plcframe.getPlcParameter("J01id")
+                            .getAddress(Plcframe.getPlcParameter("J01id").getAddressIndex()));
+
+                    String framerequest = Plcframe.getPlcParameter("J01Quest").getValue();
+                    // List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1);
+                    // List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1);
+                    // Short framerequest = liststate.get(0);
+                    if (framerequest.equals("1")) {
+                        // 閾濇id
+                        String position;
+                        try {
+                            position = dbserve.SelectPositionByFrameBarcode(J01id);
+                        } catch (SQLException e) {
+                            // TODO Auto-generated catch block
+                            position = "0";
+                            e.printStackTrace();
+                        }
+                        Short send;
+                        if (position.equals("0")) {
+                            send = 0;
+                        } else {
+                            send = 1;
+                        }
+                        S7controlLK.getinstance().WriteWord(Plcframe.getPlcParameter("J01Quest")
+                                .getAddress(Plcframe.getPlcParameter("J01Quest").getAddressIndex()), (short) send);
+                    }
+                }
+
+                // 鑾峰彇褰撳墠鎵爜鏂瑰紡
+                // List<Boolean> Scanningmethods =
+                // S7control.getinstance().ReadBits("DB101.11.4", 1);
+                // if (Scanningmethods != null) {
+                // for (Boolean Scanningmethod : Scanningmethods) {
+                // jsonObject.append("Scanningmethod", Scanningmethod);
+                // }
+                // }
+                //
+                Boolean Scanningmethod = PlcTest.getPlcBit("Scanningmethod").getValue();
+                if (Scanningmethod != null) {
+                    jsonObject.append("Scanningmethod", Scanningmethod);
+                }
+
+                // 鑾峰彇褰撳墠鎵爜鏋幓鐠僫d
+                String CurrrentGlassId=PlcState.getPlcParameter("Scanningguns").getValue();
+
+                // String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString();
+                jsonObject.append("CurrrentGlassId", CurrrentGlassId);
+
+                // 鑾峰彇D01-D06,A01,A02,B01,B02鐘舵��
+                // List<Short> DeviceList = S7control.getinstance().ReadWord("DB103.0", 10);
+                List<String> DeviceStateList=new ArrayList<String>();
+                DeviceStateList.add("D01.State");
+                DeviceStateList.add("D02.State");
+                DeviceStateList.add("B01.State");
+                DeviceStateList.add("B02.State");
+                DeviceStateList.add("A01.State");
+                DeviceStateList.add("A02.State");
+                DeviceStateList.add("D03.State");
+                DeviceStateList.add("D04.State");
+                DeviceStateList.add("D05.State");
+                DeviceStateList.add("D06.State");
+                List<String> DeviceList=PlcState.getPlcParameterValues(DeviceStateList);
+                jsonObject.append("DeviceList", DeviceList);
+                
+                // 鑾峰彇D01-D06,A01,A02,B01,B02鐜荤拑id
+                List<String> GlassStateList=new ArrayList<String>();
+                GlassStateList.add("D01ID");
+                GlassStateList.add("D02ID");
+                GlassStateList.add("B01ID1");
+                GlassStateList.add("B02ID1");
+                GlassStateList.add("A01ID1");
+                GlassStateList.add("A01ID2");
+                GlassStateList.add("A02ID1");
+                GlassStateList.add("D03ID");
+                GlassStateList.add("D04ID");
+                GlassStateList.add("D05ID");
+                GlassStateList.add("D06ID");
+                List<String> GlassIdList = PlcState.getPlcParameterValues(GlassStateList);
+                // List<String> GlassIdList = new ArrayList<String>();
+                // GlassIdList.add(spianService.queGlassid("DB103.44", 14).toString());
+                // GlassIdList.add(spianService.queGlassid("DB103.58", 14).toString());
+
+                // GlassIdList.add(spianService.queGlassid("DB103.184", 14).toString());
+                // GlassIdList.add(spianService.queGlassid("DB103.212", 14).toString());
+
+                // GlassIdList.add(spianService.queGlassid("DB103.128", 14).toString());
+                // GlassIdList.add(spianService.queGlassid("DB103.142", 14).toString());
+                // GlassIdList.add(spianService.queGlassid("DB103.156", 14).toString());
+
+                // GlassIdList.add(spianService.queGlassid("DB103.72", 14).toString());
+                // GlassIdList.add(spianService.queGlassid("DB103.86", 14).toString());
+                // GlassIdList.add(spianService.queGlassid("DB103.100", 14).toString());
+                // GlassIdList.add(spianService.queGlassid("DB103.114", 14).toString());
+                jsonObject.append("GlassIdList", GlassIdList);
+
+                // 鑾峰彇Plc杩涚墖杞︿笌鍑虹墖杞︿綅缃�
+                List<String> addressList = new ArrayList<String>();
+                addressList.add("A02Position");
+                addressList.add("A01Position");
+                List<String> paramlist=PLCMission.getPlcParameterValues(addressList);
+                // addressList.add("DB106.12");
+                // addressList.add("DB106.0");
+                // List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
+                if (paramlist != null) {
+                    jsonObject.append("params", paramlist);
+                }
+                // // 鑾峰彇杩涚墖杞︾姸鎬�
+
+                // List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
+                //         1);// 鑾峰彇杩涚墖杞︾姸鎬�
+                // if (datas1ListState != null) {
+                //     boolean exist1 = datas1ListState.contains((short) 0);
+                //     jsonObject.append("zhuangtai", exist1);
+                // }
+
+                // // 鑾峰彇杩涚墖鐜荤拑淇℃伅
+                // List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
+                // if (inglassInfo != null) {
+                //     if (inglassInfo.size() > 0) {
+                //         jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
+                //     }
+                // }
+                // // 鑾峰彇閾濇idDB106.DBW64锛屾坊鍔犲埌鍑虹墖闃熷垪
+                // String frameno="X21763329601FB";
+                
+                String frameno=PlcState.getPlcParameter("Frameid").getValue();//寰呯數姘旀洿鏂板湴鍧�琛ㄦ牸
+                // String frameno = spianService.queGlassid("DB103.270", 14).toString();
+                if (!frameno.equals(PlchomeNew.FrameNo)) {
+                    PlchomeNew.FrameNo = frameno;
+                    try {
+                        Short num = 0;
+                        List<north_glass_buffer1> north_glass_buffer1s = north_Glass_Buffer1Service
+                                .SelectAluminumFrameInfoById(PlchomeNew.FrameNo);
+                        for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) {
+                            if (north_glass_buffer1.getstorageCage() == null) {
+                                break;
+                            }
+                            num++;
+                        }
+                        if (num == north_glass_buffer1s.size()) {
+                            north_Glass_Buffer1Service.AddOutSliceS(PlchomeNew.FrameNo);
+                        } else {
+                            PlchomeNew.AluminumFrame = north_glass_buffer1s;
+                        }
+                    } catch (SQLException e) {
+                        // TODO Auto-generated catch block
+                        e.printStackTrace();
+                    }
+                }
+                if (AluminumFrame != null) {
+                    jsonObject.append("AluminumFrame", AluminumFrame);
+                }
+
+                // 澶嶄綅鍊掕鏃�
+                // 鍦板潃104.9.6
+                Boolean countdown=PlcAlarm.getPlcBit("resetDelay").getValue();
+                jsonObject.append("countdown", countdown);
+                // List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
+                // for (Boolean countdowns : countdown) {
+                //     jsonObject.append("countdown", countdowns);
+                // }
+                // jsonObject.append("countdown", true);
+                // 澶嶄綅瀹屾垚淇″彿
+                String reset=PlcState.getPlcParameter("resetDelay").getValue();
+                jsonObject.append("reset", reset);
+                // List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1);
+                // for (Boolean reset : resetss) {
+                //     jsonObject.append("reset", reset);
+                // }
+
+                // 鏄惁鎬ュ仠
+                Boolean emergencystop=PlcAlarm.getPlcBit("emergencystopalarm").getValue();
+                jsonObject.append("emergencystop", emergencystop);
+
+                // List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
+                // for (Boolean emergencystop : emergencystops) {
+                //     jsonObject.append("emergencystop", emergencystop);
+                // }
+                // 鑾峰彇杩涚墖璇锋眰鐘舵��
+                String D01Request=PLCMission.getPlcParameter("FeedRequest").getValue();
+
+                // List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
+                Boolean D01RequestState = D01Request.contains("1");
+                jsonObject.append("D01RequestState", D01RequestState);
+
+                // 鑾峰彇杩涚墖鍙戦�佺姸鎬�
+                String D01respnse=PLCMission.getPlcParameter("A02QuestStartPosition").getValue();
+                // List<Short> D01respnse = S7control.getinstance().ReadWord("DB106.16", 1);
+                boolean D01ResponseState = D01respnse.contains("1");
+                // jsonObject.append("D01RequestState", D01RequestState);
+                // 鑷姩杩涚墖
+                isConfirm = true;
+                if (isConfirm == true && form3.getglassId() != null && form3.getglassId() != "") {
+                    if ((form3.getglassheight() < 380 || form3.getglasswidth() < 390 || form3.getglassheight() > 1810
+                            || form3.getglasswidth() > 2760)
+                            || (form3.getglassheight() < 390 || form3.getglasswidth() < 380
+                                    || form3.getglassheight() > 2760 || form3.getglasswidth() > 1810)) {
+                        FeedState = true;
+                        jsonObject.append("FeedState", FeedState);
+                        FeedState = false;
+                    } else {
+                        if (D01RequestState == true && D01ResponseState != true) {
+                            storageCageService.InsertQueueGlassId((short) 1, form3);
+                        }
+                    }
+                }
+
+                // }
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            boolean dbconnected = false;
+            try {
+                dbserve.getConn();
+                dbconnected = true;
+            } catch (Exception e) {
+                // TODO: handle exception
+                dbconnected = false;
+            }
+            jsonObject.append("dbconnected", dbconnected);
+            // jsonObject.append("params", new short[] { 30, 40, });
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
+
+                    if (webserver != null) {
+
+                        List<String> messages = webserver.getMessages();
+
+                        if (!messages.isEmpty()) {
+                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                            webserver.clearMessages();
+                        }
+
+                    }
+
+                }
+            }
+        }
+    }
+}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java b/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
index 17ccdb8..e3d0611 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -1,7 +1,6 @@
 package com.example.springboot.config;
 
 import com.example.springboot.component.*;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.core.annotation.Order;
@@ -12,48 +11,36 @@
 
 public class AppRunnerConfig implements ApplicationRunner {
 
-    private final PlcParameter plcParameter;
-
-    public AppRunnerConfig(PlcParameter plcParameter) {
-        this.plcParameter = plcParameter;
-    }
     @Override
     public void run(ApplicationArguments args) throws Exception {
         // TODO Auto-generated method stub
         //
         System.out.println("鍚姩瀹屾垚");
 
-       // plcParameter.start();
-//
-//         new PlcHold().start();
-//
-//        new Plchome().start();
-//         new PlcLayout().start();
-//         new Plcalarm().start();
-//
-//         new Plcsign().start();
-//
-//         new Plcstate().start();
-//         new PlcPositioning1().start();
-//
-//         new PlcParameter2().start();
-//         new PLCAutomaticParameterSetting().start();
-//
-//         new PlcManualonePosition().start();
-//         new PlcManualonePosition2().start();
-//         new PlcServoManualone().start();
-//         new PLCManualJog().start();
-//         new Plclog().start();
-//
-//         new PlcInteractionState().start();
+        //  new PlcHold().start();
+        // new PLCAutoMes().start();
 
+        // new Plchome().start();
+        //  new PlcLayout().start();
+        //  new Plcalarm().start();
 
+        //  new Plcsign().start();
 
+        //  new Plcstate().start();
+        //  new PlcPositioning1().start();
 
+        //  new PlcParameter2().start();
+        //  new PLCAutomaticParameterSetting().start();
+
+        //  new PlcManualonePosition().start();
+        //  new PlcManualonePosition2().start();
+        //  new PlcServoManualone().start();
+        //  new PLCManualJog().start();
+        //  new Plclog().start();
+
+        //  new PlcInteractionState().start();
         //new PlcParameter1Review().start();
-        //new PLCAutoMes().start();
         //new PLCAutomaticParameterSettingReview2().start();
-
 
     // new PLCManualJogReview().start();
     }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
index fd3424e..aef8585 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -98,7 +98,7 @@
     void UpdataOutCage1(double width, int cage, int cell);
 
     // 璋冩嫧鏇存崲绗煎瓙淇℃伅
-    @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid,a.FrameBarcode=b.FrameBarcode where a.id=#{id1}")
+    @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=2,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid,a.FrameBarcode=b.FrameBarcode where a.id=#{id1}")
     void UpdateDBCage(int id1, int cage, int cell, int tier);
 
     // @Insert("insert into user(name, date, address, user_no) values (#{name},
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
new file mode 100644
index 0000000..15942f2
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
@@ -0,0 +1,314 @@
+package com.example.springboot.service;
+
+
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.example.springboot.component.PLCAutoMes;
+import com.example.springboot.component.S7control;
+import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.north_glass_buffer1;
+import com.example.springboot.entity.device.PlcParameterObject;
+import com.example.springboot.mapper.SpianMapper;
+import com.google.common.primitives.Bytes;
+
+
+@Service
+public class SpianServiceNew {
+    @Autowired
+    private SpianMapper spianMapper;
+          //璇诲彇DB105鍖烘枃浠�
+      PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+      //璇�106
+      PlcParameterObject plcread=PLCAutoMes.PlcReadObject;
+    // @GetMapping("/all")
+    public Short selectAll(String glassid) {
+
+        int cage1 = 0;
+        int cells;
+        int ids;
+        int prcid;
+        int tiers;
+        int prctier;
+        double width;
+        double minwidth = 0;
+
+        north_glass_buffer1 glasslist = spianMapper.selectGlass(glassid); // 鑾峰彇鐜荤拑鍙傛暟
+        // 濡傛灉娌℃湁姝d鏃�
+        if (glasslist == null) {
+            return (300);
+        }
+
+        double widths = glasslist.getglasslengthmm();
+        String orderids = glasslist.getordernumber();
+        String FrameBarcode = glasslist.getFrameBarcode();
+        // 鑾峰彇閾濇鐩稿叧搴︽渶楂樼殑绗煎瓙鎺掑簭
+        List<StorageCage> storageCage = spianMapper.selectAllFbarcode(FrameBarcode, widths, 400);
+        // 鍒ゆ柇閾濇鎸囧畾绌烘牸鏄惁闇�瑕侀棿闅旂┖闂�
+        if (storageCage.size() == 0) {
+            storageCage = spianMapper.selectAll(orderids, FrameBarcode);
+        }
+        if (storageCage == null) {
+            return (400);
+        }
+        for (StorageCage storageCage2 : storageCage) {
+            // 淇濆瓨璁㈠崟浼樺厛椤哄簭绗煎瓙鍙�
+            cage1 = storageCage2.getCage();
+            // 鍒ゆ柇璇ョ瀛愬彿鐩搁偦鏈�澶х殑绌烘牸鏁�
+            int cages = spianMapper.selectCage(cage1);
+
+            // 濡傛灉鐩搁偦绗煎瓙娌℃湁绌烘牸,鎴栬�呮湁姝e湪鎵ц鐨勫嚭鐗囦换鍔℃椂杩斿洖400
+            if (cages == 0) {
+                return (400);
+            }
+            StorageCage cages1;
+            // 鍒ゆ柇鏄惁鏄浜岀墖闇�瑕佸姞闂撮殧鐗�
+            prctier = spianMapper.selectsum(cage1, storageCage2.getCell());// 浼犵粰prc鐨勬牸瀛愬唴鐜荤拑鏁�
+            if (prctier > 0) {
+                cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths + 400);
+            } else {
+                cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths);
+            }
+            // 鍒ゆ柇閫変腑绗煎瓙鏄惁鏈夊悎閫傚搴︾┖鏍�
+            // 鏈夊悎閫傜┖鏍兼椂杩涚墖
+            if (cages1 != null && cages >= 1 && storageCage2.getDisabled() == 0) {
+                ids = cages1.getId();// 鏁版嵁搴揑D
+                tiers = cages1.getTier();// 鍐呭鐗�
+                cells = cages1.getCell();// 鏍煎瓙鍙�
+                prcid = cages1.getPrcId();// 浼犵粰prc鐨勭洰鏍囧湴id
+                width = cages1.getWidth();// 鏍煎瓙鍓╀綑瀹藉害
+                widths = glasslist.getglasslengthmm();
+
+                // 鎵ц杩涚墖
+
+                // 鑾峰彇璇ユ牸瀛愬唴鏄惁鏈夌幓鐠�
+                int cellint = spianMapper.selectcell(cage1, cells);
+                if (cellint == 1) {
+                    // 灏嗗鐗囩幓鐠冪殑鏁版嵁鏇存柊鍒板唴鐗�
+                    spianMapper.UpdateDBCage(ids, cage1, cells, 1);
+                    // 灏嗘柊鍏ョ殑鐜荤拑瀛樺叆澶栫墖
+                    spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids - 1, 2);
+                    spianMapper.UpdataAddCage1(widths, cage1, cells);// 鍑忓皯鏍煎瓙瀹藉害
+                } else {
+                    // 鏁版嵁搴撲慨鏀圭瀛愯〃鏂板涓�鏉$幓鐠�
+                    spianMapper.UpdataAddCage2(orderids, glassid, glasslist, cage1, cells, ids, 2);
+                    spianMapper.UpdataAddCage1(widths, cage1, cells);// 鍑忓皯鏍煎瓙瀹藉害        
+                }
+                // 杩涚墖杞﹁捣濮嬩綅缃�
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("AddStart").getAddressIndex()), (short) 1000);
+                // 杩涚墖杞︾洰鏍囦綅缃�
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Addgoal").getAddressIndex()), (short) prcid);
+                // 杩涚墖鐜荤拑瀹�
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddLength").getAddress(plcmes.getPlcParameter("AddLength").getAddressIndex()), (short) widths);
+                // 杩涚墖绗煎唴宸叉湁鐜荤拑鏁�
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("AddCount").getAddressIndex()), (short) prctier);
+                // 杩涚墖杞﹀惎鍔� 1涓哄惎鍔�
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);       
+                String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
+                int activate2 = 0;
+                if (activate.equals("1")) {
+                    activate2 = 1;
+                }else{
+                    while (activate.equals("1")) {
+                        // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1
+                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);
+                        activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
+                    }
+                }
+                outmesid(glassid, "FeedID");//娲惧彂id
+                spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier,activate2);// 鏂板浠诲姟
+                return (200);
+
+            }
+
+        }
+        return (400);
+
+    }
+
+    public Short selectout2(String glassid) {
+        char[] a = glassid.toCharArray();
+        List<Short> datas = new ArrayList<>();
+        // 鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
+        StorageCage cageout = spianMapper.selectOut2(glassid);
+        if (cageout == null) {
+            return (300);
+        }
+
+        int cage = cageout.getCage(); // 鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
+        int cell = cageout.getCell();// 鍑虹墖鏍煎彿
+        int tier = cageout.getTier();// 鍑虹墖鍐呭鐗�
+        int prcid = cageout.getPrcId();// prcid
+        int prcid2;
+        int ids;
+        int cages;
+        int cells;
+        double glasswidth = cageout.getGlassWidth();
+        int state = spianMapper.selectGlassState(cage, cell);// 鑾峰彇鏍煎瓙鏁伴噺
+        // 鍒ゆ柇鐜荤拑鍐呭鐗�
+        if (tier == 2) {
+            
+            // 鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
+            spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 鏇存柊鍑虹墖闃熷垪浠诲姟鐘舵�佷负杩涜涓�
+            spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+            spianMapper.UpdataGlassCageState(glassid.toString(), 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵�� 
+            spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, state, 3);// 鏂板浠诲姟
+           
+        } else {
+            // 鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
+           
+            // 鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
+            if (state == 1) {
+                spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 鏇存柊鍑虹墖闃熷垪浠诲姟鐘舵�佷负杩涜涓�
+                spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+                spianMapper.UpdataGlassCageState(glassid, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵��
+                spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1,3);// 鏂板浠诲姟
+                
+
+            } else {
+                // 鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
+                if (cage < 6) {
+                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6, cell);
+                    if (cagecell == null) {
+                        return (300);
+                    }
+                    // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峆RCID
+                    ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
+                    cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
+                    cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
+                    // 鏇存崲鐜荤拑鐨勭瀛�
+                    String glassids = spianMapper.SelectGlassid(cage, cell); // 鑾峰彇琚皟鎷ㄧ殑鐜荤拑id
+                    spianMapper.UpdataGlassCageState(glassids, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵��
+                    spianMapper.UpdateDBCage(ids, cage, cell, 2);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+                    spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴�
+                    spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+                    spianMapper.Inserttask(2, 0, cageout.getId(), ids, glassids, 2, 3);// 鏂板璋冨害浠诲姟
+                    
+                } else {// 绗煎瓙鍙峰ぇ浜�5鏃�
+                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11, cell);
+                    if (cagecell == null) {
+                        return (300);
+                    }
+                    // 鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+                    prcid2 = cagecell.getPrcId();// 璋冩嫧鐩爣浣峱rcID
+                    ids = cagecell.getId();// 璋冩嫧鐩爣浣岻D
+                    cages = cagecell.getCage();// 璋冩嫧鐩爣浣嶇瀛�
+                    cells = cagecell.getCell();// 璋冩嫧鐩爣浣嶆牸瀛�
+                    String glassids = spianMapper.SelectGlassid(cage, cell); // 鑾峰彇琚皟鎷ㄧ殑鐜荤拑id               
+                    spianMapper.UpdataGlassCageState(glassids, 3);// 鏇存敼绗煎瓙琛ㄧ殑鐜荤拑鐘舵��           
+                    spianMapper.Inserttask(2, 0, cageout.getId() + 1, ids, glassids, 2, 3);// 鏂板璋冨害浠诲姟
+                    spianMapper.UpdateDBCage(ids, cage, cell, 2);// 灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+                    spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 鍑忓皯鏂版牸瀛愬搴�
+                    spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 澧炲姞鍘熸牸瀛愬搴�
+                    
+
+                }
+                //鍙戦�乸lc浠诲姟
+                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("AddStart").getAddressIndex()), (short) prcid);
+                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Addgoal").getAddressIndex()), (short) prcid2);
+                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("AddCount").getAddressIndex()), (short) state);
+                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);       
+                 String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
+                 int activate2 = 0;
+                 if (activate.equals("1")) {
+                     activate2 = 1;
+                 }else{
+                     while (activate.equals("1")) {
+                         // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1
+                         S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);
+                         activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
+                     }
+                 }
+                outmesid(glassid, "ReleaseID");//娲惧彂id
+                //鍙戦�佸畬鍊掔墖缁撴潫
+                return (200); // 缁撴潫
+            }
+        }
+         // 鍑虹墖杞﹁捣濮嬩綅缃�
+         S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddStart").getAddress(plcmes.getPlcParameter("OutStart").getAddressIndex()), (short) prcid);
+         // 鍑虹墖杞︾洰鏍囦綅缃�
+         S7control.getinstance().WriteWord(plcmes.getPlcParameter("Addgoal").getAddress(plcmes.getPlcParameter("Outgoal").getAddressIndex()), (short) 1000);
+         // 鍑虹墖绗煎唴宸叉湁鐜荤拑鏁�
+         S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddCount").getAddress(plcmes.getPlcParameter("OutCount").getAddressIndex()), (short) state);
+         // 鍑虹墖杞﹀惎鍔� 1涓哄惎鍔�
+         S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("OutActivate").getAddressIndex()), (short) 1);       
+         String activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
+         int activate2 = 0;
+         if (activate.equals("1")) {
+             activate2 = 1;
+         }else{
+             while (activate.equals("1")) {
+                 // 鍑虹墖浠诲姟鍙戦�佸瓧鏀逛负1
+                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("AddActivate").getAddress(plcmes.getPlcParameter("AddActivate").getAddressIndex()), (short) 1);
+                 
+                 activate =plcmes.getPlcParameter("AddActivate").getValue();// 鍒ゆ柇鍚姩鏄惁鍐欏叆
+             }
+         }
+         outmesid(glassid, "ReleaseID");//娲惧彂id
+        //鐩存帴鍑虹墖缁撴潫
+        return(200);// 缁撴潫
+    }
+
+    // 娲惧彂浠诲姟鐜荤拑id
+    public void outmesid(String glassid, String address) {
+        // System.out.println("outmesid:" + glassid);
+        List<Byte> glassidlist = new ArrayList();
+        char ds[] = glassid.toCharArray();
+        for (char iditem : ds) {
+            glassidlist.add((byte) iditem);
+        }
+        byte[] bytes = Bytes.toArray(glassidlist);
+        System.out.println("outmesidbytes:" + bytes.length);
+        S7control.getinstance().WriteByte(plcmes.getPlcParameter(address).getAddress(plcmes.getPlcParameter(address).getAddressIndex()),bytes);
+        //S7control.getinstance().WriteByte(address, bytes);// 娲惧彂鍑虹墖id
+
+    }
+
+    // 鑾峰彇鍦板潃鍐呯殑鐜荤拑id杞瓧绗︿覆
+    public StringBuilder queGlassid(String address, int count) {
+        StringBuilder writedstrIdOut = new StringBuilder();
+        byte[] writedglassidbytesOut = S7control.getinstance().ReadByte(address, count);
+        if (writedglassidbytesOut != null) {
+            // 鑾峰彇鐜荤拑id
+            for (byte iditem : writedglassidbytesOut) {
+                writedstrIdOut.append((char) iditem);
+            }
+        }
+        return writedstrIdOut;
+    }
+
+    // char鏁扮粍杞寲鎴恇it鏁扮粍
+    public static byte[] toBytes(char[] chars) {
+        String s = new String(chars);
+        return s.getBytes(StandardCharsets.UTF_8);
+    }
+
+    // bit鏁扮粍杞寲鎴恈har鏁扮粍
+    public static char[] toChars(byte[] bytes) {
+        String s = new String(bytes, StandardCharsets.UTF_8);
+        return s.toCharArray();
+    }
+
+    // 鍒ゆ柇闆嗗悎閲屾槸鍚︿负1
+    public boolean listbool(String address) {
+        List<Short> list = S7control.getinstance().ReadWord(address, 1);// 杩斿洖涓簍ure鏃朵负1
+        boolean listbool = list.contains((short) 1);
+        return listbool;
+    }
+
+    // 鏍规嵁鐜荤拑id瀹屾垚鍦ㄨ繘琛屼腑鐨勪换鍔�
+    public void overtask(String glassid) {
+
+        spianMapper.UpdatetaskOut(glassid.toString());// 瀹屾垚涓婁竴娆� 鍑虹墖鎴栬�呰繘鐗囦换鍔�
+        spianMapper.OverOutSlice(glassid.toString(), 2, 1);// 瀹屾垚鍑虹墖闃熷垪浠诲姟
+        spianMapper.UpdataGlassCage(glassid.toString(), 0);// 娓呴櫎鍑虹墖鏍煎瓙鐜荤拑淇℃伅
+        spianMapper.UpdateCageOver(glassid.toString(), 0);// 鏇存敼绗煎瓙琛ㄥ嚭鐗囩姸鎬�
+        spianMapper.UpdateCageadd(glassid.toString(), 1);// 鏇存敼绗煎瓙琛ㄨ繘鐗囩姸鎬�
+        spianMapper.UpdateAddQueue(glassid.toString());// 鎶婅繘鐗囩殑鐜荤拑鏇存柊鍒板嚭鐗囬槦鍒椾腑
+    }
+
+}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
index cbbb948..df711b9 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -181,25 +181,23 @@
 
     public Result InsertQueueGlassId(Short id, Queue queue) {
         Map<String, Object> map = new HashMap<>();
-        if (Plchome.FeedState == false) {
-            Plchome.FeedState = true;
-            Short zhi = 200;
-            short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
-            if (result > 0) {
-                map.put("message", "300");
-            } else {
-                if (id == 1) {
-                    // 璋冪敤浼嶅瓨鍌ㄨ繃绋�
-                    zhi = spianService.selectAll(queue.getglassId());
-                    if (zhi == 200) {
-                        homeMapper.InsertQueueGlassId(queue, id);
-                    }
-                }
-                map.put("message", zhi);
-            }
-            Plchome.FeedState = false;
+
+        Short zhi = 200;
+        short result = homeMapper.SelectStorageByGlassId(queue.getglassId());
+        if (result > 0) {
+            map.put("message", "300");
         } else {
-            map.put("message", 200);
+            if (id == 1) {
+                // 璋冪敤浼嶅瓨鍌ㄨ繃绋�
+                zhi = spianService.selectAll(queue.getglassId());
+                if (zhi == 200) {
+                    homeMapper.InsertQueueGlassId(queue, id);
+                }
+            }
+            map.put("message", zhi);
+        }
+        if (zhi != 200) {
+            Plchome.FeedState = true;
         }
         return Result.success(map);
     }
diff --git a/springboot-vue3/src/main/resources/JsonFile/PlcSign.json b/springboot-vue3/src/main/resources/JsonFile/PlcSign.json
index b4ba6e6..8f9295a 100644
--- a/springboot-vue3/src/main/resources/JsonFile/PlcSign.json
+++ b/springboot-vue3/src/main/resources/JsonFile/PlcSign.json
@@ -451,5 +451,10 @@
       "codeId": "space",
       "addressIndex": 111
     }
+    ,
+    {
+      "codeId": "space",
+      "addressIndex": 111
+    }
   ]
 }
\ No newline at end of file
diff --git a/springboot-vue3/src/main/resources/JsonFile/PlcState.json b/springboot-vue3/src/main/resources/JsonFile/PlcState.json
index 608180e..dfdbaec 100644
--- a/springboot-vue3/src/main/resources/JsonFile/PlcState.json
+++ b/springboot-vue3/src/main/resources/JsonFile/PlcState.json
@@ -1,6 +1,6 @@
 {
   "plcAddressBegin": "DB103.0",
-  "plcAddressLenght": "256",
+  "plcAddressLenght": "258",
   "dataType": "word",
   "parameteInfor": [
     {
@@ -267,6 +267,19 @@
       "addressLenght": "2",
       "unit": ""
     }
-
+    ,
+    {
+      "codeId": "Scanningguns",
+      "addressIndex": "256",
+      "addressLenght": "2",
+      "unit": ""
+    }
+    ,
+    {
+      "codeId": "Frameid",
+      "addressIndex": "270",
+      "addressLenght": "2",
+      "unit": ""
+    }
   ]
 }
\ No newline at end of file
diff --git a/springboot-vue3/src/main/resources/JsonFile/PlcTest.json b/springboot-vue3/src/main/resources/JsonFile/PlcTest.json
index bfc7602..263c782 100644
--- a/springboot-vue3/src/main/resources/JsonFile/PlcTest.json
+++ b/springboot-vue3/src/main/resources/JsonFile/PlcTest.json
@@ -1,6 +1,6 @@
 {
   "plcAddressBegin": "DB101.0.0",
-  "plcAddressLenght": "92",
+  "plcAddressLenght": "93",
   "dataType": "bit",
   "parameteInfor": [
     {
@@ -370,6 +370,9 @@
     {
       "codeId": "emgHMI",
       "addressIndex": 91
-    }
+    },
+    {
+      "codeId": "Scanningmethod",
+      "addressIndex": 92
   ]
 }
\ No newline at end of file

--
Gitblit v1.8.0