From 82c2df0968b099bd589936adc5b28c1ac4827a05 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期一, 04 十二月 2023 08:20:07 +0800
Subject: [PATCH] 更新测试后电气管理

---
 CanadaMes-ui/src/views/Electrical/Positioning2.vue                                  |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java   |   26 
 springboot-vue3/src/main/java/com/example/springboot/component/S7control.java       |    1 
 CanadaMes-ui/src/views/Electrical/Parameter2.vue                                    |   84 +-
 CanadaMes-ui/src/views/Electrical/State.vue                                         |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java    |   82 ++
 CanadaMes-ui/src/views/Electrical/Positioning1.vue                                  |    4 
 CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue                     |   10 
 CanadaMes-ui/src/views/Electrical/alarm.vue                                         |    2 
 CanadaMes-ui/src/views/Electrical/Action.vue                                        |    4 
 CanadaMes-ui/src/App.vue                                                            |    1 
 CanadaMes-ui/src/configuration/parameter2.json                                      |   44 -
 CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue                            |   95 ++-
 CanadaMes-ui/src/views/Electrical/Servomanual.vue                                   |    4 
 CanadaMes-ui/src/views/Electrical/Sign.vue                                          |    4 
 CanadaMes-ui/src/views/Electrical/ManualonePosition.vue                             |  939 ++++++++++++++++---------------
 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java |    2 
 CanadaMes-ui/src/configuration/Manualoneposition2.json                              |   16 
 /dev/null                                                                           |  281 ---------
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java    |   42 
 CanadaMes-ui/src/lang/locales/en-US.json                                            |   37 
 CanadaMes-ui/src/views/Electrical/ManualJog.vue                                     |   22 
 CanadaMes-ui/src/views/Electrical/Parameter1.vue                                    |    4 
 CanadaMes-ui/src/views/Electrical/ServoManualone.vue                                |    4 
 CanadaMes-ui/src/configuration/Manualoneposition.json                               |   72 -
 25 files changed, 811 insertions(+), 977 deletions(-)

diff --git a/CanadaMes-ui/src/App.vue b/CanadaMes-ui/src/App.vue
index 989ac2a..f884f4a 100644
--- a/CanadaMes-ui/src/App.vue
+++ b/CanadaMes-ui/src/App.vue
@@ -3,7 +3,6 @@
         <!--璺敱鍗犱綅绗�-->
         <router-view/>
         <div class="custom-icon">
-    
   </div>
     </div>
 </template>
diff --git a/CanadaMes-ui/src/configuration/Manualoneposition.json b/CanadaMes-ui/src/configuration/Manualoneposition.json
index c9a50e8..62d0a25 100644
--- a/CanadaMes-ui/src/configuration/Manualoneposition.json
+++ b/CanadaMes-ui/src/configuration/Manualoneposition.json
@@ -35,15 +35,7 @@
     },
     {
       "button": {
-        "name": "A01鏁呴殰",
-        "value": 1,
-        "address": "DB10.0",
-        "state": 1
-      }
-    },
-    {
-      "button": {
-        "name": "A01澶嶄綅",
+        "name": "鏁呴殰",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -51,18 +43,10 @@
     },
     {
       "button": {
-        "name": "A01鏈洖闆�",
+        "name": "澶嶄綅",
         "value": 0,
         "address": "DB10.0",
-        "state": 0
-      }
-    },
-    {
-      "button": {
-        "name": "A01鍥為浂",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
+        "state": 1
       }
     }
   ],
@@ -102,7 +86,7 @@
     },
     {
       "button": {
-        "name": "A02鏁呴殰",
+        "name": "鏁呴殰",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -110,26 +94,10 @@
     },
     {
       "button": {
-        "name": "A02澶嶄綅",
+        "name": "澶嶄綅",
         "value": 0,
         "address": "DB10.0",
         "state": 1
-      }
-    },
-    {
-      "button": {
-        "name": "鏈洖闆�",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
-      }
-    },
-    {
-      "button": {
-        "name": "鍥為浂",
-        "value": 0,
-        "address": "DB10.0",
-        "state": 0
       }
     }
   ],
@@ -169,7 +137,7 @@
     },
     {
       "button": {
-        "name": "B01鏁呴殰",
+        "name": "鏁呴殰",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -177,7 +145,7 @@
     },
     {
       "button": {
-        "name": "B01澶嶄綅",
+        "name": "澶嶄綅",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -185,7 +153,7 @@
     },
     {
       "button": {
-        "name": "B01鏈洖闆�",
+        "name": "鏈洖闆�",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -193,7 +161,7 @@
     },
     {
       "button": {
-        "name": "B01鍥為浂",
+        "name": "鍥為浂",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -236,15 +204,7 @@
     },
     {
       "button": {
-        "name": "B02鏁呴殰",
-        "value": 1,
-        "address": "DB10.0",
-        "state": 1
-      }
-    },
-    {
-      "button": {
-        "name": "B02澶嶄綅",
+        "name": "鏁呴殰",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -252,7 +212,7 @@
     },
     {
       "button": {
-        "name": "B02鏈洖闆�",
+        "name": "澶嶄綅",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -260,7 +220,15 @@
     },
     {
       "button": {
-        "name": "B02鍥為浂",
+        "name": "鏈洖闆�",
+        "value": 0,
+        "address": "DB10.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "name": "鍥為浂",
         "value": 0,
         "address": "DB10.0",
         "state": 1
diff --git a/CanadaMes-ui/src/configuration/Manualoneposition2.json b/CanadaMes-ui/src/configuration/Manualoneposition2.json
index 67105f2..a7bb6f1 100644
--- a/CanadaMes-ui/src/configuration/Manualoneposition2.json
+++ b/CanadaMes-ui/src/configuration/Manualoneposition2.json
@@ -32,7 +32,7 @@
     },
     {
       "button": {
-        "name": "A01鏁呴殰",
+        "name": "鏁呴殰",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -40,7 +40,7 @@
     },
     {
       "button": {
-        "name": "A01澶嶄綅",
+        "name": "澶嶄綅",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -48,7 +48,7 @@
     },
     {
       "button": {
-        "name": "A01鏈洖闆�",
+        "name": "鏈洖闆�",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -56,7 +56,7 @@
     },
     {
       "button": {
-        "name": "A01鍥為浂",
+        "name": "鍥為浂",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -96,7 +96,7 @@
     },
     {
       "button": {
-        "name": "A02鏁呴殰",
+        "name": "鏁呴殰",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -104,7 +104,7 @@
     },
     {
       "button": {
-        "name": "A02澶嶄綅",
+        "name": "澶嶄綅",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -112,7 +112,7 @@
     },
     {
       "button": {
-        "name": "A02鏈洖闆�",
+        "name": "鏈洖闆�",
         "value": 0,
         "address": "DB10.0",
         "state": 1
@@ -120,7 +120,7 @@
     },
     {
       "button": {
-        "name": "A02鍥為浂",
+        "name": "鍥為浂",
         "value": 0,
         "address": "DB10.0",
         "state": 1
diff --git a/CanadaMes-ui/src/configuration/parameter2.json b/CanadaMes-ui/src/configuration/parameter2.json
index 884e9d9..7d01342 100644
--- a/CanadaMes-ui/src/configuration/parameter2.json
+++ b/CanadaMes-ui/src/configuration/parameter2.json
@@ -172,25 +172,6 @@
       "sending": 0,
       "type": "0",
       "value": 0
-    }
-    
-  ],
-  [
-    {
-      "button": {
-        "name": "A01鎵嬪姩鐘舵��",
-        "value": 0,
-        "address": "DB10.0"
-      },
-      "type": "4"
-    },
-    {
-      "button": {
-        "name": "娓呴櫎ID",
-        "value": 0,
-        "address": "DB10.0"
-      },
-      "type": "3"
     },
     {
       "name": "ID2",
@@ -201,6 +182,7 @@
     }
     
   ],
+ 
   [
     {
       "button": {
@@ -219,8 +201,8 @@
       "type": "3"
     },
     {
-      "name": "ID",
-      "read": 33,
+      "name": "A02ID",
+      "read": "ID28",
       "sending": 0,
       "type": "0",
       "value": 0
@@ -230,22 +212,22 @@
     {
       "button": {
         "name": "B01鎵嬪姩鐘舵��",
-        "value": 0,
-        "address": "DB10.0"
+        "value": 0
+      
       },
       "type": "4"
     },
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0,
-        "address": "DB10.0"
+        "value": 0
+        
       },
       "type": "3"
     },
     {
-      "name": "ID",
-      "read": 33,
+      "name": "B01ID",
+      "read": "ID29",
       "sending": 0,
       "type": "0",
       "value": 0
@@ -263,14 +245,14 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0,
-        "address": "DB10.0"
+        "value": 0
+    
       },
       "type": "3"
     },
     {
-      "name": "ID",
-      "read": 33,
+      "name": "B02ID",
+      "read": "ID210",
       "sending": 0,
       "type": "0",
       "value": 0
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index e7a6d17..1098904 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -353,6 +353,9 @@
           "D01鎵嬪姩鐘舵��": "D01 Manual Status",
           "娓呴櫎ID": "Clear ID",
           "ID": "ID",
+          "A02ID": "ID",
+          "B01ID": "ID",
+          "B02ID": "ID",
           "D02鎵嬪姩鐘舵��": "D02 Manual Status",
           "D03鎵嬪姩鐘舵��": "D03 Manual Status",
           "D04鎵嬪姩鐘舵��": "D04 Manual Status",
@@ -417,35 +420,30 @@
               "鍑虹墖鏍间綅缃瀹�": "OutgoingGridPositionSetting",
               "B01鏍间綅缃瀹�":"B01PositionSetting",
               "B02浣嶇疆璁惧畾":"B02PositionSetting"
-              },"ManualonePositionlang": {
+              },  "ManualonePositionlang": {
                 "A01鎵嬪姩鏍煎瓙": "A01 Target grid(Manual)",
                 "A01瀹氫綅閫熷害": "A01 TRAVEL POS Velocity manual",
                 "A01褰撳墠鏍煎瓙": "A01 Current Grid",
                 "A01鍚姩": "A01 Start",
-                "A01鏁呴殰": "A01 Fault",
-                "A01澶嶄綅": "A01 Reset",
+                "鏁呴殰": "Fault",
+                "澶嶄綅": "Reset",
                 "A02鎵嬪姩鏍煎瓙": "A02 Target grid(Manual)",
                 "A02瀹氫綅閫熷害": "A02 TRAVEL POS Velocity manual",
                 "A02褰撳墠鏍煎瓙": "A02 Current Grid",
                 "A02鍚姩": "A02 Start",
-                "A02鏁呴殰": "A02 Fault",
-                "A02澶嶄綅": "A02 Reset",
+                "澶嶄綅": "Reset",
                 "B01鎵嬪姩鏍煎瓙": "B01 Target grid(Manual)",
                 "B01瀹氫綅閫熷害": "B01 TRAVEL POS Velocity manual",
                 "B01褰撳墠鏍煎瓙": "B01 Current Grid",
                 "B01鍚姩": "Start",
-                "B01鏁呴殰": "Fault",
-                "B01澶嶄綅": "Reset",
-                "B01鍥為浂": "Zero",
-                "B01鏈洖闆�": "NotZero",
+                "澶嶄綅": "Reset",
+                "鍥為浂": "Zero",
+                "鏈洖闆�": "NotZero",
                 "B02鎵嬪姩鏍煎瓙": "B02 Target grid(Manual)",
                 "B02瀹氫綅閫熷害": "B02 TRAVEL POS Velocity manual",
                 "B02褰撳墠鏍煎瓙": "B02 Current Grid",
                 "B02鍚姩": "Start",
-                "B02鏁呴殰": "Fault",
-                "B02澶嶄綅": "Reset",
-                "B02鍥為浂": "Zero",
-                "B02鏈洖闆�": "NotZero",
+                "澶嶄綅": "Reset",
                 "A01瀹炴椂浣嶇疆": "A01 tavel Actual Position",
                 "A02瀹炴椂浣嶇疆": "A02 tavel Actual Position",
                 "B01瀹炴椂浣嶇疆": "B02 tavel Actual Position",
@@ -456,18 +454,17 @@
                 "A01瀹氫綅閫熷害": "A01 TURN POS Velocity manual",
                 "A01缈昏浆瀹炴椂浣嶇疆": "A01 turn Actual angle",
                 "A01缈昏浆鍚姩": "A01 SERVE TURN",
-                "A01鏁呴殰": "Fault",
-                "A01澶嶄綅": "Reset",
-                "A01鏈洖闆�": "NotZero",
-                "A01鍥為浂": "Zero",
+                "鏁呴殰": "Fault",
+                "澶嶄綅": "Reset",
+                "鏈洖闆�": "NotZero",
+                "鍥為浂": "Zero",
                 "A02鎵嬪姩浣嶇疆": "A02 turn Target Angle(Manual)",
                 "A02瀹氫綅閫熷害": "A02 TURN POS Velocity manual",
                 "A02缈昏浆瀹炴椂浣嶇疆": "A02 turn Actual angle",
                 "A02缈昏浆鍚姩": "SERVE TURN",
-                "A02鏁呴殰": "Fault",
                 "A02澶嶄綅": "Reset",
-                "A02鏈洖闆�": "NotZero",
-                "A02鍥為浂": "Zero"
+                "鏈洖闆�": "NotZero",
+                "鍥為浂": "Zero"
               },
               "AutomaticParameterSettinglang": {
                 "A01琛岃蛋楂橀�熻搴�": "A01 turn Angle1",
diff --git a/CanadaMes-ui/src/views/Electrical/Action.vue b/CanadaMes-ui/src/views/Electrical/Action.vue
index 7a9e3a3..6fbb39c 100644
--- a/CanadaMes-ui/src/views/Electrical/Action.vue
+++ b/CanadaMes-ui/src/views/Electrical/Action.vue
@@ -8,8 +8,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
        <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Servo Manual')
diff --git a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
index 8f34e82..be85e56 100644
--- a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
+++ b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -7,8 +7,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
@@ -23,8 +23,8 @@
       }}</router-link>
       <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
       }}</router-link>
-      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
-        }}</router-link> -->
+     <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
+        }}</router-link>
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning1')
       }}</router-link>
@@ -157,7 +157,7 @@
 
           let obj = JSON.parse(msg.data);
           const jsonData2 = this.jsonData;
-          console.log(obj);
+          // console.log(obj);
           const handleMouseMove = throttle(function (event) {
 
             const inputBox = document.querySelectorAll('.el-card__body');
diff --git a/CanadaMes-ui/src/views/Electrical/ManualJog.vue b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
index a222e42..8596ab7 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualJog.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
@@ -7,8 +7,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
@@ -23,8 +23,8 @@
       }}</router-link>
       <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
       }}</router-link>
-      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
-        }}</router-link> -->
+      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
+        }}</router-link> 
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning1')
       }}</router-link>
@@ -94,7 +94,13 @@
       socket.close();
     },
     updateButtonValue (dataGroup, itemIndex) {
-      this.$set(dataGroup[itemIndex].button, 'value', 1); // 鐐瑰嚮鎸夐挳鍚庡皢鍊兼敼涓�1
+      if (dataGroup[itemIndex].button.value === 1) {
+    // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
+    this.$set(dataGroup[itemIndex].button, 'value', 0);
+  } else {
+    // 鍚﹀垯灏嗗叾璁句负 0
+    this.$set(dataGroup[itemIndex].button, 'value', 1);
+  }
     },
     submitDataToBackend () {
       const inputData = this.jsonData.map(dataGroup => {
@@ -118,7 +124,7 @@
     },
     //鏍规嵁璇诲彇PLC鐨勫�硷紝鏍规嵁鍚嶇О鏀瑰彉棰滆壊1鎵撳紑锛�0鍏抽棴
     getStatusClass (zhuangtai) {
-
+console.log(zhuangtai);
       if (zhuangtai === 1) {
         return "op";
       }
@@ -163,7 +169,7 @@
           const parms = obj.params;
           // const xiaoche = obj.params[3];
 
-          //console.log(parms);
+          // console.log(parms);
 
 
           for (let i = 0; i < jsonData2.length; i++) {
@@ -218,7 +224,7 @@
       });
 
 
-      console.log(this.jsonData)
+      // console.log(this.jsonData)
 
     }
   },
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
index 99a722d..c09e846 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -1,456 +1,485 @@
-<template>
-  <div class="app">
-    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
-      }}</router-link>
-      <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
-      }}</router-link>
-      <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
-      }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
-      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
-      }}</router-link>
-      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ServoManual')
-      }}</router-link>
-    </el-breadcrumb>
-
-    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-
-      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Servomanualone')
-      }}</router-link>
-      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
-      }}</router-link>
-      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
-      }}</router-link>
-      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Positioning1')
-      }}</router-link>
-      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Positioning2')
-      }}</router-link>
-      <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualonePosition')
-      }}</router-link>
-      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualonePosition2')
-      }}</router-link>
-      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
-        $t('AutomaticParameterSetting')
-      }}</router-link>
-      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualJog')
-      }}</router-link>
-    </el-breadcrumb>
-
-    <el-row :gutter="10">
-      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
-        <el-card class="json-block" style="width:585px;">
-          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
-            <div class="item-row">
-              <span class="name" style="width:300px;">{{ item.name }}</span>
-              <el-input style="width:250px;" v-if="item.state != 0 && item.type === '0'" v-model="item.value"
-                class="input-box"></el-input>
-            </div>
-          </div>
-          <div class="button-row" style="display: flex; justify-content: space-between;">
-            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
-              <el-button v-if="item.button && item.button.state != 0" :name="item.button.name" v-model="item.button.value"
-                :class="{ 'action-button': true, 'error-button': item.button.name ===  $t('鏁呴殰')
-      && item.button.value === 1 }"
-                @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
-                  item.button.name }}</el-button>
-            </div>
-          </div>
-        </el-card>
-      </el-col>
-    </el-row>
-    <!-- <el-button @click="submitDataToBackend">鎻愪氦鏁版嵁鍒板悗绔�</el-button> -->
-  </div>
-</template>
-
-<script>
-import LanguageMixin from '../../lang/LanguageMixin'
-import data from '../../configuration/Manualoneposition'
-import { throttle } from 'lodash';
-let socket;
-export default {
-  name: "ManualonePosition",
-  mixins: [LanguageMixin],
-  data () {
-    return {
-      jsonData: data,
-
-      // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
-    }
-  },
-  activated () {
-
-    this.initWebSocket();
-    const language = this.$i18n.locale;
-    console.log(language);
-    if (language === 'en-US') {
-      this.replaceChineseWithEnglish();
-    }
-    this.$forceUpdate();
-
-
-  },
-  methods: {
-    closeSocket () {
-      // 鍏抽棴 WebSocket 杩炴帴
-      socket.close();
-    },
-    updateButtonValue (dataGroup, itemIndex) {
-      // 灏嗗綋鍓嶆寜閽殑鍊艰涓�1
-
-      this.$set(dataGroup[itemIndex].button, 'value', 1);
-
-
-
-    },
-    submitDataToBackend (currentButtonName) {
-      if (currentButtonName === 'A01鍚姩' || currentButtonName === 'A01 Start' ) {
-        const data = [];
-
-        for (let i = 0; i < 1; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
-
-          const values = inputData.map(item => item.value);
-
-          data.push(values);
-        }
-
-
-
-        const jsonObject = { data };
-
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
-
-      }
-
-      if (currentButtonName === 'A02鍚姩' || currentButtonName === 'A02 Start') {
-        const data = [];
-
-        for (let i = 1; i < 2; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
-
-          const values = inputData.map(item => item.value);
-          data.unshift([]);
-          data.push(values);
-        }
-
-
-
-        const jsonObject = { data };
-
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
-
-      }
-
-      if (currentButtonName === 'B01鍚姩' || currentButtonName === 'B01 Start') {
-        const data = [];
-
-        for (let i = 2; i < 3; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
-
-          const values = inputData.map(item => item.value);
-          data.unshift([], []);
-          data.push(values);
-        }
-
-
-
-        const jsonObject = { data };
-
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
-
-      }
-
-      if (currentButtonName === 'B02鍚姩' || currentButtonName === 'B02 Start') {
-        const data = [];
-
-        for (let i = 3; i < 4; i++) {
-          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
-            return { value: item.value };
-          });
-
-          const values = inputData.map(item => item.value);
-          data.unshift([], [], []);
-          data.push(values);
-        }
-
-
-
-        const jsonObject = { data };
-
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-        socket?.send(jsonString);
-
-      }
-
-      if (currentButtonName === '鏁呴殰' || currentButtonName === 'Fault') {
-
-        const data2 = [];
-        const resetButtonValues = this.jsonData.map(item => {
-          // const buttonItem = item.find(subItem => subItem.button && subItem.button.name === '鏁呴殰' || subItem.button.name === 'Fault');
-          const buttonItem = item.find(subItem => subItem.button && ['鏁呴殰', 'Fault'].includes(subItem.button.name));
-          return buttonItem ? buttonItem.button.value : null;
-        }).filter(value => value !== null);
-
-        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-        data2.push(...resetButtonValues);
-        data2.unshift([], [], [], []);
-        const jsonObject2 = { data2 };
-
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString2 = JSON.stringify(jsonObject2);
-        console.log('鎵�鏈夋晠闅滅殑value:', jsonString2);
-        socket?.send(jsonString2);
-
-
-      }
-
-      if (currentButtonName === '澶嶄綅' || currentButtonName === 'Reset') {
-
-        const data2 = [];
-        const resetButtonValues = this.jsonData.map(item => {
-          const buttonItem = item.find(subItem => subItem.button && ['澶嶄綅', 'Reset'].includes(subItem.button.name));
-   
-          return buttonItem ? buttonItem.button.value : null;
-        }).filter(value => value !== null);
-
-        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-        data2.push(...resetButtonValues);
-        data2.unshift([], [], [], [], []);
-        const jsonObject2 = { data2 };
-
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString2 = JSON.stringify(jsonObject2);
-        console.log('鎵�鏈夊浣嶇殑value:', jsonString2);
-        socket?.send(jsonString2);
-        setTimeout(()=>
-    window.location.reload(),2000
-  )
-
-      }
-
-      if (currentButtonName === '鍥為浂' || currentButtonName === 'Zero') {
-
-        const data2 = [];
-        const resetButtonValues = this.jsonData.map(item => {
-          const buttonItem = item.find(subItem => subItem.button && ['鍥為浂', 'Zero'].includes(subItem.button.name));
-         
-          return buttonItem ? buttonItem.button.value : null;
-        }).filter(value => value !== null);
-
-        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-        data2.push(...resetButtonValues);
-        data2.unshift([], [], [], [], [], []);
-        const jsonObject2 = { data2 };
-
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString2 = JSON.stringify(jsonObject2);
-        console.log('鎵�鏈夊洖闆剁殑value:', jsonString2);
-        socket?.send(jsonString2);
-        setTimeout(()=>
-    window.location.reload(),2000
-  )
-
-      }
-
-
-
-
-    },
-
-
-    initWebSocket () {
-
-      let viewname = "ManualonePosition";
-
-      if (typeof WebSocket === "undefined") {
-        console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
-      } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
-
-        if (socket != null) {
-          socket.close();
-          socket = null;
-        }
-
-        // 寮�鍚竴涓獁ebsocket鏈嶅姟
-        socket = new WebSocket(socketUrl);
-
-        // 鎵撳紑浜嬩欢
-        socket.onopen = function () {
-          console.log("websocket宸叉墦寮�");
-        };
-
-        // 鏀跺埌娑堟伅
-        socket.onmessage = (msg) => {
-          if (!msg.data) {
-            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
-          }
-
-          let obj = JSON.parse(msg.data);
-          // console.log(obj)
-          const jsonData2 = this.jsonData;
-
-          const handleMouseMove = throttle(function (event) {
-            const inputBox = document.querySelectorAll('.el-card__body');
-            const target = event.target;
-            if (inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
-              // 鎵ц鏇存柊閫昏緫
-              for (let i = 0; i < 4; i++) {
-                jsonData2[i].forEach((item, index) => {
-                  if (typeof item.value !== 'undefined' && typeof obj[`zuhe${i + 1}`][0][index] !== 'undefined') {
-                    item.value = obj[`zuhe${i + 1}`][0][index];
-                  }
-                });
-              }
-
-              //鏇存柊瀹炴椂浣嶇疆
-              jsonData2.forEach((item) => {
-                item.forEach((subItem) => {
-                  if (subItem.sending === 4) {
-                    subItem.value = obj.shishi1[0][0];
-                  }
-                  if (subItem.sending === 5) {
-                    subItem.value = obj.shishi1[0][1];
-                  }
-                  if (subItem.sending === 6) {
-                    subItem.value = obj.shishi1[0][2];
-                  }
-                  if (subItem.sending === 7) {
-                    subItem.value = obj.shishi1[0][3];
-                  }
-                });
-              });
-
-              // 閬嶅巻guzhang鏁扮粍
-              for (let i = 0; i < obj.guzhang[0].length; i++) {
-                const guzhangValue = obj.guzhang[0][i];
-
-                // 鏌ユ壘jsonData2涓甫鏈�"button"鐨勫璞★紝骞朵笖name绛変簬"鏁呴殰"
-                for (let j = 0; j < jsonData2.length; j++) {
-                  const section = jsonData2[j];
-
-                  for (let k = 0; k < section.length; k++) {
-                    const item = section[k];
-
-                    if (item.button && (item.button.name === "鏁呴殰" || item.button.name === "Fault")) {
-                      // 鏇存柊value灞炴��
-                      item.button.value = guzhangValue;
-                      break;
-                    }
-                  }
-
-
-                }
-              }
-
-
-
-
-            }
-          }, 200);
-
-          document.addEventListener('mouseover', handleMouseMove);
-        };
-
-
-
-
-        // 鍏抽棴浜嬩欢
-        socket.onclose = function () {
-          console.log("websocket宸插叧闂�");
-        };
-
-        // 鍙戠敓閿欒浜嬩欢
-        socket.onerror = function () {
-          console.log("websocket鍙戠敓浜嗛敊璇�");
-        };
-        this.$router.afterEach(function () {
-          socket.close();
-        })
-
-      }
-    },
-    send () {
-
-
-      socket?.send(JSON.stringify(this.messagepack));
-    },
-    replaceChineseWithEnglish () {
-
-
-      const nameMap = this.$t('ManualonePositionlang')
-      this.jsonData = this.jsonData.map((item) => {
-        return item.map((obj) => {
-          if (obj.name) {
-            const newName = nameMap[obj.name] || obj.name;
-            return { ...obj, name: newName };
-          } else if (obj.button && obj.button.name) {
-            const newName = nameMap[obj.button.name] || obj.button.name;
-            return { ...obj, button: { ...obj.button, name: newName } };
-          } else {
-            return obj;
-          }
-        });
-      });
-
-
-      console.log(this.jsonData)
-
-    }
-
-  }
-}
-</script>
-
-<style scoped>
-.item-row {
-  display: flex;
-  align-items: center;
-  margin-bottom: 2px;
-  /* 璋冩暣姣忎釜椤圭洰涔嬮棿鐨勯棿璺� */
-}
-
-.action-button {
-  margin-right: 10px;
-  background: #66b1ff;
-  color: #FFF;
-}
-
-.blue-button {
-  background-color: skyblue;
-}
-
-.el-card ::v-deep .el-card__body {
-  padding: 13px;
-}
-
-.error-button {
-  background-color: red;
-}
+<template>
+  <div class="app">
+    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
+      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
+      }}</router-link>
+      <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
+      }}</router-link>
+      <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
+      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
+      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
+      }}</router-link>
+      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
+        $t('ServoManual')
+      }}</router-link>
+    </el-breadcrumb>
+
+    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
+
+      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
+        $t('Servomanualone')
+      }}</router-link>
+      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link>
+      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
+      }}</router-link>
+      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
+        $t('Positioning1')
+      }}</router-link>
+      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
+        $t('Positioning2')
+      }}</router-link>
+      <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
+        $t('ManualonePosition')
+      }}</router-link>
+      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+        $t('ManualonePosition2')
+      }}</router-link>
+      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
+        $t('AutomaticParameterSetting')
+      }}</router-link>
+      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
+        $t('ManualJog')
+      }}</router-link>
+    </el-breadcrumb>
+
+    <el-row :gutter="10">
+      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
+        <el-card class="json-block" style="width:585px;">
+          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
+            <div class="item-row">
+              <span class="name" style="width:300px;">{{ item.name }}</span>
+              <el-input style="width:250px;" v-if="item.state != 0 && item.type === '0'" v-model="item.value"
+                class="input-box"></el-input>
+            </div>
+          </div>
+          <div class="button-row" style="display: flex; justify-content: space-between;">
+            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
+              <el-button v-if="item.button && language === 'en-US' && item.state != 0" :name="item.button.name"
+                v-model="item.button.value"
+                :class="{ 'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1, 'error-button2': item.button.name === 'NotZero' && item.button.value === 0 }"
+                @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
+                  item.button.name }}</el-button>
+              <el-button v-if="item.button && language === 'zh-CN' && item.state != 0" :name="item.button.name"
+                v-model="item.button.value"
+                :class="{ 'action-button': true, 'error-button': item.button.name === '鏁呴殰' && item.button.value === 1, 'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0 }"
+                @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
+                  item.button.name }}</el-button>
+            </div>
+          </div>
+        </el-card>
+      </el-col>
+    </el-row>
+    <!-- <el-button @click="submitDataToBackend">鎻愪氦鏁版嵁鍒板悗绔�</el-button> -->
+  </div>
+</template>
+
+<script>
+import LanguageMixin from '../../lang/LanguageMixin'
+import data from '../../configuration/Manualoneposition'
+import { throttle } from 'lodash';
+let socket;
+export default {
+  name: "ManualonePosition",
+  mixins: [LanguageMixin],
+  data () {
+    return {
+      jsonData: data,
+      language: this.$i18n.locale,
+
+      // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
+    }
+  },
+  activated () {
+
+    this.initWebSocket();
+    const language = this.$i18n.locale;
+    //console.log(language);
+    if (language === 'en-US') {
+      this.replaceChineseWithEnglish();
+    }
+    this.$forceUpdate();
+
+
+  },
+  methods: {
+    closeSocket () {
+      // 鍏抽棴 WebSocket 杩炴帴
+      socket.close();
+    },
+    updateButtonValue (dataGroup, itemIndex) {
+      // 灏嗗綋鍓嶆寜閽殑鍊艰涓�1
+
+      this.$set(dataGroup[itemIndex].button, 'value', 1);
+
+
+
+    },
+    submitDataToBackend (currentButtonName) {
+      if (currentButtonName === 'A01鍚姩' || currentButtonName === 'A01 Start') {
+        const data = [];
+
+        for (let i = 0; i < 1; i++) {
+          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+            return { value: item.value };
+          });
+
+          const values = inputData.map(item => item.value);
+
+          data.push(values);
+        }
+        data.push([], [], [],[],[],[]);
+
+
+
+        const jsonObject = { data };
+
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString = JSON.stringify(jsonObject);
+        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+        socket?.send(jsonString);
+
+      }
+
+      if (currentButtonName === 'A02鍚姩' || currentButtonName === 'A02 Start') {
+        const data = [];
+
+        for (let i = 1; i < 2; i++) {
+          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+            return { value: item.value };
+          });
+
+          const values = inputData.map(item => item.value);
+          data.unshift([]);
+          data.push(values);
+        }
+        data.push([], [], [],[],[]);
+
+
+
+        const jsonObject = { data };
+
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString = JSON.stringify(jsonObject);
+        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+        socket?.send(jsonString);
+
+      }
+
+      if (currentButtonName === 'B01鍚姩' || currentButtonName === 'B01 Start') {
+        const data = [];
+
+        for (let i = 2; i < 3; i++) {
+          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+            return { value: item.value };
+          });
+
+          const values = inputData.map(item => item.value);
+          data.unshift([], []);
+          data.push(values);
+        }
+        //data.unshift([]);
+
+        data.push([], [], [],[]);
+
+
+        const jsonObject = { data };
+
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString = JSON.stringify(jsonObject);
+        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+        socket?.send(jsonString);
+
+      }
+
+      if (currentButtonName === 'B02鍚姩' || currentButtonName === 'B02 Start') {
+        const data = [];
+
+        for (let i = 3; i < 4; i++) {
+          const inputData = this.jsonData[i].filter(item => item.type === '0').map(item => {
+            return { value: item.value };
+          });
+
+          const values = inputData.map(item => item.value);
+          data.unshift([], [], []);
+          data.push(values);
+        }
+
+        data.push([], [],[]);
+
+
+
+        const jsonObject = { data };
+
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString = JSON.stringify(jsonObject);
+        console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+        socket?.send(jsonString);
+
+      }
+
+      if (currentButtonName === '鏁呴殰' || currentButtonName === 'Fault') {
+
+        const data2 = [];
+        const resetButtonValues = this.jsonData.map(item => {
+          // const buttonItem = item.find(subItem => subItem.button && subItem.button.name === '鏁呴殰' || subItem.button.name === 'Fault');
+          const buttonItem = item.find(subItem => subItem.button && ['鏁呴殰', 'Fault'].includes(subItem.button.name));
+          return buttonItem ? buttonItem.button.value : null;
+        }).filter(value => value !== null);
+
+        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+        data2.push(...resetButtonValues);
+        data2.unshift([], [], [], []);
+        const jsonObject2 = { data:data2 };
+        data.push([],[]);
+
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString2 = JSON.stringify(jsonObject2);
+        console.log('鎵�鏈夋晠闅滅殑value:', jsonString2);
+        socket?.send(jsonString2);
+
+
+      }
+
+      if (currentButtonName === '澶嶄綅' || currentButtonName === 'Reset') {
+
+        const data2 = [];
+        const resetButtonValues = this.jsonData.map(item => {
+          const buttonItem = item.find(subItem => subItem.button && ['澶嶄綅', 'Reset'].includes(subItem.button.name));
+
+          return buttonItem ? buttonItem.button.value : null;
+        }).filter(value => value !== null);
+
+        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+        data2.push(resetButtonValues.flat());
+        data2.unshift([], [], [], [], []);
+        const jsonObject2 = { data:data2 };
+        data2.push([]);
+
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString2 = JSON.stringify(jsonObject2);
+        console.log('鎵�鏈夊浣嶇殑value:', jsonString2);
+        socket?.send(jsonString2);
+        // setTimeout(() =>
+        //   window.location.reload(), 2000
+        // )
+
+      }
+
+      if (currentButtonName === '鍥為浂' || currentButtonName === 'Zero') {
+
+        const data2 = [];
+        const resetButtonValues = this.jsonData.map(item => {
+          const buttonItem = item.find(subItem => subItem.button && ['鍥為浂', 'Zero'].includes(subItem.button.name));
+
+          return buttonItem ? buttonItem.button.value : null;
+        }).filter(value => value !== null);
+
+        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+        data2.push(resetButtonValues.flat());
+        data2.unshift([], [], [], [], [], []);
+        const jsonObject2 = { data:data2 };
+
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString2 = JSON.stringify(jsonObject2);
+        console.log('鎵�鏈夊洖闆剁殑value:', jsonString2);
+        socket?.send(jsonString2);
+        // setTimeout(() =>
+        //   window.location.reload(), 2000
+        // )
+
+      }
+
+
+
+
+    },
+
+
+    initWebSocket () {
+
+      let viewname = "ManualonePosition";
+
+      if (typeof WebSocket === "undefined") {
+        console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
+      } else {
+        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+
+        if (socket != null) {
+          socket.close();
+          socket = null;
+        }
+
+        // 寮�鍚竴涓獁ebsocket鏈嶅姟
+        socket = new WebSocket(socketUrl);
+
+        // 鎵撳紑浜嬩欢
+        socket.onopen = function () {
+          console.log("websocket宸叉墦寮�");
+        };
+
+        // 鏀跺埌娑堟伅
+        socket.onmessage = (msg) => {
+          if (!msg.data) {
+            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+          }
+
+          let obj = JSON.parse(msg.data);
+          // console.log(obj);
+          const jsonData2 = this.jsonData;
+          const weihuiling = obj.weihuiling;
+          const handleMouseMove = throttle(function (event) {
+            const inputBox = document.querySelectorAll('.el-card__body');
+            const target = event.target;
+            if (inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
+              // 鎵ц鏇存柊閫昏緫
+              for (let i = 0; i < 4; i++) {
+                jsonData2[i].forEach((item, index) => {
+                  if (typeof item.value !== 'undefined' && typeof obj[`zuhe${i + 1}`][0][index] !== 'undefined') {
+                    item.value = obj[`zuhe${i + 1}`][0][index];
+                  }
+                });
+              }
+
+              //鏇存柊瀹炴椂浣嶇疆
+              jsonData2.forEach((item) => {
+                item.forEach((subItem) => {
+                  if (subItem.sending === 4) {
+                    subItem.value = obj.shishi1[0][0];
+                  }
+                  if (subItem.sending === 5) {
+                    subItem.value = obj.shishi1[0][1];
+                  }
+                  if (subItem.sending === 6) {
+                    subItem.value = obj.shishi1[0][2];
+                  }
+                  if (subItem.sending === 7) {
+                    subItem.value = obj.shishi1[0][3];
+                  }
+                });
+              });
+
+              // 閬嶅巻guzhang鏁扮粍
+              for (let i = 0; i < jsonData2.length; i++) {
+                let arr = jsonData2[i];
+                for (let j = 0; j < arr.length; j++) {
+                  let obj2 = arr[j];
+                  if (obj2.button && (obj2.button.name === "鏁呴殰" || obj2.button.name === "Fault")) {
+                    obj2.button.value = obj.guzhang[0][i];
+                    // console.log(obj2.button.value)
+                  }
+                }
+
+
+              }
+
+              for (let i = 2; i < jsonData2.length; i++) {
+                let arr2 = jsonData2[i];
+                for (let j = 2; j < arr2.length; j++) {
+                  let obj3 = arr2[j];
+                  if (obj3.button) {
+                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "NotZero")) {
+                      obj3.button.value = weihuiling[0][i];
+                       console.log(obj3.button.value)
+                    }
+
+                  }
+
+                }
+
+
+              }
+
+
+
+
+            }
+          }, 200);
+
+          document.addEventListener('mouseover', handleMouseMove);
+        };
+
+
+
+
+        // 鍏抽棴浜嬩欢
+        socket.onclose = function () {
+          console.log("websocket宸插叧闂�");
+        };
+
+        // 鍙戠敓閿欒浜嬩欢
+        socket.onerror = function () {
+          console.log("websocket鍙戠敓浜嗛敊璇�");
+        };
+        this.$router.afterEach(function () {
+          socket.close();
+        })
+
+      }
+    },
+    send () {
+
+
+      socket?.send(JSON.stringify(this.messagepack));
+    },
+    replaceChineseWithEnglish () {
+
+
+      const nameMap = this.$t('ManualonePositionlang')
+      this.jsonData = this.jsonData.map((item) => {
+        return item.map((obj) => {
+          if (obj.name) {
+            const newName = nameMap[obj.name] || obj.name;
+            return { ...obj, name: newName };
+          } else if (obj.button && obj.button.name) {
+            const newName = nameMap[obj.button.name] || obj.button.name;
+            return { ...obj, button: { ...obj.button, name: newName } };
+          } else if (obj.title && obj.title.name) {
+            const newName = nameMap[obj.title.name] || obj.title.name;
+            return { ...obj, title: { ...obj.title, name: newName } };
+          } else {
+            return obj;
+          }
+        });
+      });
+
+
+
+    }
+
+  }
+}
+</script>
+
+<style scoped>
+.item-row {
+  display: flex;
+  align-items: center;
+  margin-bottom: 2px;
+  /* 璋冩暣姣忎釜椤圭洰涔嬮棿鐨勯棿璺� */
+}
+
+.action-button {
+  margin-right: 10px;
+  background: #66b1ff;
+  color: #FFF;
+}
+
+.blue-button {
+  background-color: skyblue;
+}
+
+.el-card ::v-deep .el-card__body {
+  padding: 13px;
+}
+
+.error-button {
+  background-color: red;
+}
+
+.error-button2 {
+  background-color: red;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
index 27661b4..50d9f61 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -7,8 +7,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
@@ -23,8 +23,8 @@
       }}</router-link>
       <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
       }}</router-link>
-      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
-        }}</router-link> -->
+     <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
+        }}</router-link> 
       <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning1')
       }}</router-link>
@@ -57,9 +57,12 @@
           </div>
           <div class="button-row" style="display: flex; justify-content: space-between;">
             <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
-              <el-button v-if="item.button && item.button.state != 0" :name="item.button.name" v-model="item.button.value"
-                :class="{ 'action-button': true, 'error-button': item.button.name === $t('鏁呴殰')
-       && item.button.value === 1 }"
+              <el-button v-if="item.button && language === 'en-US'" :name="item.button.name" v-model="item.button.value"
+                :class="{ 'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1, 'error-button2': item.button.name === 'NotZero' && item.button.value === 0 }"
+                @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
+                  item.button.name }}</el-button>
+              <el-button v-if="item.button && language === 'zh-CN'" :name="item.button.name" v-model="item.button.value"
+                :class="{ 'action-button': true, 'error-button': item.button.name === '鏁呴殰' && item.button.value === 1, 'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0 }"
                 @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
                   item.button.name }}</el-button>
             </div>
@@ -81,7 +84,8 @@
   mixins: [LanguageMixin],
   data () {
     return {
-      jsonData: data // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
+      jsonData: data, // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
+      language: this.$i18n.locale,
     }
   },
 
@@ -106,7 +110,13 @@
     updateButtonValue (dataGroup, itemIndex) {
       // 灏嗗綋鍓嶆寜閽殑鍊艰涓�1
 
-      this.$set(dataGroup[itemIndex].button, 'value', 1);
+      if (dataGroup[itemIndex].button.value === 1) {
+    // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
+    this.$set(dataGroup[itemIndex].button, 'value', 0);
+  } else {
+    // 鍚﹀垯灏嗗叾璁句负 0
+    this.$set(dataGroup[itemIndex].button, 'value', 1);
+  }
 
 
 
@@ -124,6 +134,7 @@
 
           data.push(values);
         }
+        data.push([], [], [],[]);
 
 
 
@@ -148,7 +159,7 @@
           data.unshift([]);
           data.push(values);
         }
-
+        data.push([], [], []);
 
 
         const jsonObject = { data };
@@ -165,7 +176,7 @@
         const data2 = [];
         const resetButtonValues = this.jsonData.map(item => {
           const buttonItem = item.find(subItem => subItem.button && ['鏁呴殰', 'Fault'].includes(subItem.button.name));
-        
+
           return buttonItem ? buttonItem.button.value : null;
         }).filter(value => value !== null);
 
@@ -173,6 +184,7 @@
         data2.push(...resetButtonValues);
         data2.unshift([], []);
         const jsonObject2 = { data2 };
+        data2.push([], []);
 
         // 鎻愪氦鏁版嵁鍒板悗绔�
         const jsonString2 = JSON.stringify(jsonObject2);
@@ -192,9 +204,10 @@
         }).filter(value => value !== null);
 
         // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-        data2.push(...resetButtonValues);
+        data2.push(resetButtonValues.flat());
         data2.unshift([], [], []);
-        const jsonObject2 = { data2 };
+        const jsonObject2 = { data:data2 };
+        data2.push([]);
 
         // 鎻愪氦鏁版嵁鍒板悗绔�
         const jsonString2 = JSON.stringify(jsonObject2);
@@ -209,15 +222,14 @@
         const data2 = [];
         const resetButtonValues = this.jsonData.map(item => {
           const buttonItem = item.find(subItem => subItem.button && ['鍥為浂', 'Zero'].includes(subItem.button.name));
-       
+
           return buttonItem ? buttonItem.button.value : null;
         }).filter(value => value !== null);
 
         // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-        data2.push(...resetButtonValues);
+        data2.push(resetButtonValues.flat());
         data2.unshift([], [], [], []);
-        const jsonObject2 = { data2 };
-
+        const jsonObject2 = { data:data2 };
         // 鎻愪氦鏁版嵁鍒板悗绔�
         const jsonString2 = JSON.stringify(jsonObject2);
         console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString2);
@@ -261,7 +273,7 @@
           let obj = JSON.parse(msg.data);
           // console.log(obj)
           const jsonData2 = this.jsonData;
-
+          const weihuiling = obj.weihuiling;
           const handleMouseMove = throttle(function (event) {
             const inputBox = document.querySelectorAll('.el-card__body');
             const target = event.target;
@@ -293,33 +305,41 @@
               });
 
               // 閬嶅巻guzhang鏁扮粍
-              for (let i = 0; i < obj.guzhang[0].length; i++) {
-                const guzhangValue = obj.guzhang[0][i];
+              for (let i = 0; i < jsonData2.length; i++) {
+                let arr = jsonData2[i];
+                for (let j = 0; j < arr.length; j++) {
+                  let obj2 = arr[j];
+                  if (obj2.button && (obj2.button.name === "鏁呴殰" || obj2.button.name === "Fault")) {
+                    obj2.button.value = obj.guzhang[0][i];
+                    // console.log(obj2.button.value)
+                  }
+                }
 
-                // 鏌ユ壘jsonData2涓甫鏈�"button"鐨勫璞★紝骞朵笖name绛変簬"鏁呴殰"
-                for (let j = 0; j < jsonData2.length; j++) {
-                  const section = jsonData2[j];
 
-                  for (let k = 0; k < section.length; k++) {
-                    const item = section[k];
+              }
 
-                  
-                    if (item.button && (item.button.name === "鏁呴殰" || item.button.name === "Fault")) {
-                      // 鏇存柊value灞炴��
-                      item.button.value = guzhangValue;
-                      break;
+              for (let i = 0; i < jsonData2.length; i++) {
+                let arr2 = jsonData2[i];
+                for (let j = 0; j < arr2.length; j++) {
+                  let obj3 = arr2[j];
+                  if (obj3.button) {
+                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "NotZero")) {
+                      obj3.button.value = weihuiling[0][i];
+                      //  console.log(obj3.button.value)
                     }
+
                   }
 
-
                 }
+
+
               }
 
 
 
 
             }
-          }, 200);
+          }, 50);
 
           document.addEventListener('mouseover', handleMouseMove);
         };
@@ -359,6 +379,9 @@
           } else if (obj.button && obj.button.name) {
             const newName = nameMap[obj.button.name] || obj.button.name;
             return { ...obj, button: { ...obj.button, name: newName } };
+          } else if (obj.title && obj.title.name) {
+            const newName = nameMap[obj.title.name] || obj.title.name;
+            return { ...obj, title: { ...obj.title, name: newName } };
           } else {
             return obj;
           }
@@ -391,4 +414,12 @@
 .blue-button {
   background-color: skyblue;
 }
+
+.error-button {
+  background-color: red;
+}
+
+.error-button2 {
+  background-color: red;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter1.vue b/CanadaMes-ui/src/views/Electrical/Parameter1.vue
index be9b91f..b424275 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter1.vue
@@ -7,8 +7,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter2.vue b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
index 986805b..bfb3046 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
@@ -7,8 +7,8 @@
         }}</router-link>
         <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
         }}</router-link>
-        <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-        }}</router-link>
+        <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+        }}</router-link> -->
         <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
         }}</router-link>
          <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Servo Manual')
@@ -141,37 +141,44 @@
     });
   },
   
-    updateButtonValue(dataGroup, itemIndex) {
-  // 灏嗗綋鍓嶆寜閽殑鍊艰涓�1
-  
+  updateButtonValue(dataGroup, itemIndex) {
+  if (dataGroup[itemIndex].button.value === 1) {
+    // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
+    this.$set(dataGroup[itemIndex].button, 'value', 0);
+  } else {
+    // 鍚﹀垯灏嗗叾璁句负 0
     this.$set(dataGroup[itemIndex].button, 'value', 1);
-  
-
-  // 灏嗗叾浠栨寜閽殑鍊煎叏閮ㄨ涓�0
-
+  }
 },
     submitDataToBackend(currentButtonName) {
-  if (currentButtonName === '娓呴櫎ID'  || currentButtonName === 'Clear ID' ) {
-    const inputData = this.jsonData.map(dataGroup => {
-      return dataGroup.map(item => {
-        if (item.type === '3') {
-          return { value: item.button.value };
-        } 
-        return null;
-      });
-    });
 
-    const values = inputData.flat().filter(item => item !== null).map(item => item.value);
-    const jsonObject = { data: values };
+
+
+  if (currentButtonName === '娓呴櫎ID'  || currentButtonName === 'Clear ID' ) {
+  const data2 = [];
+  const resetButtonValues = this.jsonData.map(item => {
+    const buttonItem = item.find(subItem => subItem.button && ['娓呴櫎ID', 'Clear ID'].includes(subItem.button.name));
+
+    
+    return buttonItem ? buttonItem.button.value : null;
+  }).filter(value => value !== null);
+
+  // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+  data2.push(resetButtonValues.flat());
  
- // 鎻愪氦鏁版嵁鍒板悗绔�
- const jsonString = JSON.stringify(jsonObject);
-   console.log('Type涓�3鐨剉alue:', jsonString);
-     socket?.send(jsonString);
-     setTimeout(()=>
-    window.location.reload(),2000
-  )
-  }
+  // 鍦� data2 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
+ 
+
+  // 鍒涘缓 jsonObject2 瀵硅薄锛屽苟娣诲姞 data2 灞炴��
+  const jsonObject2 = { data: data2 };
+
+  // 鎻愪氦鏁版嵁鍒板悗绔�
+  const jsonString2 = JSON.stringify(jsonObject2);
+  console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString2);
+  socket?.send(jsonString2);
+ 
+ 
+}
 },
     initWebSocket () {
  
@@ -204,13 +211,13 @@
   let obj = JSON.parse(msg.data);
  
   const jsonData2 = this.jsonData;
- 
+  // console.log(jsonData2);
       // 濡傛灉榧犳爣涓嶅湪杈撳叆妗嗗唴锛屾洿鏂拌緭鍏ユ鐨勫��
       // this.submitDataToBackend()
       const parms = obj.params;
       // const xiaoche = obj.params[3];
    
-  // console.log(parms);
+  //  console.log(obj);
 //娓呴櫎id
       for (let i = 0; i < jsonData2.length; i++) {
   let arr = jsonData2[i];
@@ -218,6 +225,7 @@
     let obj = arr[j];
     if (obj.type === '3') {
       obj.button.value = parms[0][i];
+      // console.log(obj.button.value);
     }
   }
 
@@ -236,6 +244,21 @@
     obj.value = parms[1][i].replace(specialChars, '');
     // console.log(obj.value);
   }
+  if (obj.name === 'ID2') {
+        obj.value = parms[1][7].replace(specialChars, ''); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][6]
+      }
+
+      if (obj.name === 'A02ID') {
+        obj.value = parms[1][8].replace(specialChars, ''); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][6]
+      }
+      if (obj.name === 'B01ID') {
+        obj.value = parms[1][9].replace(specialChars, ''); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][6]
+      }
+      if (obj.name === 'B02ID') {
+        obj.value = parms[1][10].replace(specialChars, ''); // 灏咺D2瀵瑰簲鐨勫�艰祴涓簆arms[1][6]
+      }
+
+
 }
 
   }
@@ -262,6 +285,7 @@
     }
   });
 });
+
 jsonData2.forEach((item) => {
   item.forEach((subItem) => {
     if (subItem.read === 666) {
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning1.vue b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
index c0c51e7..f04a1a7 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -7,8 +7,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning2.vue b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
index d922fbf..7b3cb6b 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
@@ -7,8 +7,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
diff --git a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
index 1fb5565..9d37abe 100644
--- a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
+++ b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -7,8 +7,8 @@
         }}</router-link>
         <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
         }}</router-link>
-        <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-        }}</router-link>
+        <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+        }}</router-link> -->
         <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
         }}</router-link>
          <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Servo Manual')
diff --git a/CanadaMes-ui/src/views/Electrical/Servomanual.vue b/CanadaMes-ui/src/views/Electrical/Servomanual.vue
index 804876a..e3b1e82 100644
--- a/CanadaMes-ui/src/views/Electrical/Servomanual.vue
+++ b/CanadaMes-ui/src/views/Electrical/Servomanual.vue
@@ -7,8 +7,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
diff --git a/CanadaMes-ui/src/views/Electrical/Sign.vue b/CanadaMes-ui/src/views/Electrical/Sign.vue
index d5da76a..4ee28d3 100644
--- a/CanadaMes-ui/src/views/Electrical/Sign.vue
+++ b/CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -9,8 +9,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
  <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Servo Manual')
diff --git a/CanadaMes-ui/src/views/Electrical/State.vue b/CanadaMes-ui/src/views/Electrical/State.vue
index 80bfc28..fa4dd52 100644
--- a/CanadaMes-ui/src/views/Electrical/State.vue
+++ b/CanadaMes-ui/src/views/Electrical/State.vue
@@ -9,8 +9,8 @@
       }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
       }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
+      }}</router-link> -->
       <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
       }}</router-link>
  <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Servo Manual')
diff --git a/CanadaMes-ui/src/views/Electrical/alarm.vue b/CanadaMes-ui/src/views/Electrical/alarm.vue
index 50dc757..93d48b6 100644
--- a/CanadaMes-ui/src/views/Electrical/alarm.vue
+++ b/CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -6,7 +6,7 @@
       <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm') }}</router-link>
       <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State') }}</router-link>
       <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link>
-      <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link>
+      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link> -->
     <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
     <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Servo Manual')
         }}</router-link>
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
index 23ac20d..1711970 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
@@ -71,8 +71,36 @@
       // Integer Plccount = this.count;
 
       // System.out.println(stt);
-      List<Boolean> arraylist = S7control.getinstance().ReadBits("DB101.0.0", 16);
-      List<Boolean> arraylist2 = S7control.getinstance().ReadBits("DB101.2.6", 8);
+
+      List<String> addressList0 = new ArrayList<>();
+      addressList0.add("DB101.2.6");
+      addressList0.add("DB101.2.7");
+      addressList0.add("DB101.3.0");
+      addressList0.add("DB101.3.1");
+      addressList0.add("DB101.3.2");
+      addressList0.add("DB101.3.3");
+      addressList0.add("DB101.3.4");
+      addressList0.add("DB101.3.5");
+
+      List<String> addressList21 = new ArrayList<>();
+      addressList21.add("DB101.0.0");
+      addressList21.add("DB101.0.1");
+      addressList21.add("DB101.0.2");
+      addressList21.add("DB101.0.3");
+      addressList21.add("DB101.0.4");
+      addressList21.add("DB101.0.5");
+      addressList21.add("DB101.0.6");
+      addressList21.add("DB101.0.7");
+      addressList21.add("DB101.1.0");
+      addressList21.add("DB101.1.1");
+      addressList21.add("DB101.1.2");
+      addressList21.add("DB101.1.3");
+      addressList21.add("DB101.1.4");
+      addressList21.add("DB101.1.5");
+      addressList21.add("DB101.1.6");
+      addressList21.add("DB101.1.7");
+      List<Boolean> arraylist = S7control.getinstance().readBits(addressList21);
+      List<Boolean> arraylist2 = S7control.getinstance().readBits(addressList0);
       List<Boolean> arraylist3 = S7control.getinstance().ReadBits("DB101.5.2", 2);
       // Boolean[] values1 = { false, true, true, true, false, false, true, false,
       // false, true, true, true, false, false,
@@ -96,6 +124,7 @@
 
       jsonObject.append("params", params);
 
+//      System.out.println("messageValue锛�" + arraylist +"messageValue2锛�" + arraylist2 );
       WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualJog");
       if (sendwServer != null) {
         sendwServer.sendMessage(jsonObject.toString());
@@ -104,9 +133,43 @@
       WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualJog");
 
       if (webSocketServer != null) {
-        String addressList1 = "DB101.0.0";
-        String addressList2 = "DB101.2.6";
+ //       String addressList1 = "DB101.0.0";
+//        String addressList2 = "DB101.2.6";
         String addressList3 = "DB101.5.2";
+
+
+        List<String> addressList2 = new ArrayList<>();
+        addressList2.add("DB101.2.6");
+        addressList2.add("DB101.2.7");
+        addressList2.add("DB101.3.0");
+        addressList2.add("DB101.3.1");
+        addressList2.add("DB101.3.2");
+        addressList2.add("DB101.3.3");
+        addressList2.add("DB101.3.4");
+        addressList2.add("DB101.3.5");
+
+
+        List<String> addressList211 = new ArrayList<>();
+        addressList211.add("DB101.0.0");
+        addressList211.add("DB101.0.1");
+        addressList211.add("DB101.0.2");
+        addressList211.add("DB101.0.3");
+        addressList211.add("DB101.0.4");
+        addressList211.add("DB101.0.5");
+        addressList211.add("DB101.0.6");
+        addressList211.add("DB101.0.7");
+        addressList211.add("DB101.1.0");
+        addressList211.add("DB101.1.1");
+        addressList211.add("DB101.1.2");
+        addressList211.add("DB101.1.3");
+        addressList211.add("DB101.1.4");
+        addressList211.add("DB101.1.5");
+        addressList211.add("DB101.1.6");
+        addressList211.add("DB101.1.7");
+
+        List<String> addressList311 = new ArrayList<>();
+        addressList311.add("DB101.5.2");
+        addressList311.add("DB101.5.3");
 
         List<String> messages = webSocketServer.getMessages();
         if (!messages.isEmpty()) {
@@ -153,17 +216,18 @@
           // System.out.println(bolList2);
           // System.out.println(bolList3);
           if (!bolList.isEmpty()) {
-            S7control.getinstance().WriteBit(addressList1, bolList);
-            System.out.println("messageValue锛�" + bolList + " written to PLC at address " + addressList1);
+            S7control.getinstance().WriteBit(addressList211, bolList);
+            System.out.println("messageValue锛�" + bolList + " written to PLC at address " + addressList211);
           }
           if (!bolList2.isEmpty()) {
-            S7control.getinstance().WriteBit(addressList2, bolList2);
+          S7control.getinstance().WriteBit(addressList2, bolList2);
             System.out.println("messageValue锛�" + bolList2 + " written to PLC at address " + addressList2);
           }
           if (!bolList3.isEmpty()) {
-            S7control.getinstance().WriteBit(addressList3, bolList3);
-            System.out.println("messageValue锛�" + bolList3 + " written to PLC at address " + addressList3);
+           S7control.getinstance().WriteBit(addressList311, bolList3);
+            System.out.println("messageValue锛�" + bolList3 + " written to PLC at address " + addressList311);
           }
+          webSocketServer.clearMessages();
         }
 
       }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
deleted file mode 100644
index 49566c2..0000000
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
+++ /dev/null
@@ -1,367 +0,0 @@
-package com.example.springboot.component;
-
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import org.apache.commons.io.FileUtils;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class PlcManualonePosition extends Thread {
-  String name = "";
-  Integer count = 0;
-
-  public static String readFileToString(String filePath) throws IOException {
-    File file = new File(filePath);
-    return FileUtils.readFileToString(file, "UTF-8");
-  }
-
-  public void readValue() {
-    String str = "";
-    BufferedReader bufferedReader = null;
-    FileInputStream fileInputStream;
-    try {
-      // 浠庢枃浠朵腑璇诲彇瀛楄妭鏁版嵁瀛樺叆 fileInputStream
-      fileInputStream = new FileInputStream("CanadaMes-ui/src/configuration/address.json");
-      // 璇诲彇 fileInputStream 涓瓧鑺傚苟灏嗗叾瑙g爜涓哄瓧绗�
-      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
-      // 鎻愰珮璇诲彇鏁堢巼锛屽湪 BufferedReader 鍐呭寘瑁� InputStreamReader
-      bufferedReader = new BufferedReader(inputStreamReader);
-      String line = null;
-      // 灏� bufferedReader 鍐呭涓�琛屼竴琛岃祴鍊肩粰str
-      while ((line = bufferedReader.readLine()) != null) {
-        str += line;
-      }
-
-      // 灏唖tr瀛楃涓叉牸寮忚浆涓簀son
-      JSONObject jsonObject = new JSONObject(str);
-
-      // 鑾峰彇json涓殑鍊�
-      JSONArray address = jsonObject.getJSONArray("ManualonePosition");
-      for (int i = 0; i < address.size(); i++) {
-        JSONObject ress = (JSONObject) address.get(i);
-
-        this.name = ress.getStr("name");
-        this.count = ress.getInt("count");
-
-      }
-
-    } catch (FileNotFoundException e) {
-      e.printStackTrace();
-    } catch (UnsupportedEncodingException e) {
-      e.printStackTrace();
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-  }
-
-  @Override
-  public void run() {
-    while (this != null) {
-      try {
-        Thread.sleep(500);
-
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-      // this.readValue();
-      // String PlcAddress = this.name;
-      // Integer Plccount = this.count;
-
-      List<String> addresses = new ArrayList<>();
-      addresses.add("DB100.108");
-      addresses.add("DB100.20");
-      addresses.add("DB103.52");
-      List<Short> arraylist = S7control.getinstance().readWords(addresses);
-//       System.out.println(arraylist);
-
-      List<String> addresses2 = new ArrayList<>();
-      addresses2.add("DB100.110");
-      addresses2.add("DB100.176");
-      addresses2.add("DB103.54");
-      List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
-
-      List<String> addresses3 = new ArrayList<>();
-      addresses3.add("DB100.112");
-      addresses3.add("DB100.24");
-      addresses3.add("DB103.56");
-      List<Short> arraylist3 = S7control.getinstance().readWords(addresses3);
-
-      List<String> addresses4 = new ArrayList<>();
-      addresses4.add("DB100.114");
-      addresses4.add("DB100.178");
-      addresses4.add("DB103.60");
-      List<Short> arraylist4 = S7control.getinstance().readWords(addresses4);
-
-      List<Short> arraylist5 = S7control.getinstance().ReadWord("DB103.40", 1);
-      List<Short> arraylist6 = S7control.getinstance().ReadWord("DB103.44", 1);
-      List<Short> arraylist7 = S7control.getinstance().ReadWord("DB103.48", 1);
-      List<Short> arraylist8 = S7control.getinstance().ReadWord("DB103.50", 1);
-      List<String> addresses9 = new ArrayList<>();
-      addresses9.add("DB104.1.2");
-      addresses9.add("DB104.1.3");
-      addresses9.add("DB104.1.6");
-      addresses9.add("DB104.1.7");
-//      addresses9.add("DB104.28");
-//      addresses9.add("DB104.30");
-      List<Boolean> arraylist9 = S7control.getinstance().readBits(addresses9);
-      short[] params2 = new short[arraylist9.size()];
-      for (int i = 0; i < arraylist9.size(); i++) {
-        boolean value = arraylist9.get(i);
-        params2[i] = value ? (short) 1 : (short) 0;
-      }
-//      List<Short> arraylist9 = S7control.getinstance().readWords(addresses9);
-      arraylist5.addAll(arraylist6);
-      arraylist5.addAll(arraylist7);
-      arraylist5.addAll(arraylist8);
-
-      JSONObject jsonObject = new JSONObject();
-      // System.out.println(arraylist6);
-      jsonObject.append("zuhe1", arraylist);
-      jsonObject.append("zuhe2", arraylist2);
-      jsonObject.append("zuhe3", arraylist3);
-      jsonObject.append("zuhe4", arraylist4);
-      jsonObject.append("shishi1", arraylist5);
-      jsonObject.append("guzhang", params2);
-      // jsonObject.append("weihuiling", arraylist8);
-
-      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition");
-      if (sendwServer != null) {
-        sendwServer.sendMessage(jsonObject.toString());
-      }
-
-      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition");
-      if (webSocketServer != null) {
-        List<String> messages = webSocketServer.getMessages();
-        List<String> waddresses1 = new ArrayList<>();
-        waddresses1.add("DB100.108");
-        waddresses1.add("DB100.20");
-        waddresses1.add("DB103.52");
-
-        List<String> waddresses2 = new ArrayList<>();
-        waddresses2.add("DB100.110");
-        waddresses2.add("DB100.176");
-        waddresses2.add("DB103.54");
-
-        List<String> waddresses3 = new ArrayList<>();
-        waddresses3.add("DB100.112");
-        waddresses3.add("DB100.24");
-        waddresses3.add("DB103.56");
-
-        List<String> waddresses4 = new ArrayList<>();
-        waddresses4.add("DB100.114");
-        waddresses4.add("DB100.178");
-        waddresses4.add("DB103.60");
-
-        // 鏁呴殰鍦板潃
-        List<String> waddresses5 = new ArrayList<>();
-        waddresses5.add("DB103.244");
-        waddresses5.add("DB103.250");
-        waddresses5.add("DB103.252");
-        waddresses5.add("DB103.254");
-
-        // 澶嶄綅鍦板潃
-        List<String> waddresses6 = new ArrayList<>();
-        waddresses6.add("DB101.4.0");
-        waddresses6.add("DB101.4.3");
-        waddresses6.add("DB101.4.4");
-        waddresses6.add("DB101.4.6");
-
-        // 鍥為浂鍦板潃
-        List<String> waddresses7 = new ArrayList<>();
-        waddresses7.add("DB101.4.5");
-        waddresses7.add("DB101.4.7");
-
-        System.out.println(messages.isEmpty());
-        if (!messages.isEmpty()) {
-          // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
-          String lastMessage = messages.get(messages.size() - 1);
-          // System.out.println("lastMessage锛�" + lastMessage);
-          JSONArray messageArray = new JSONArray(lastMessage);
-          // 鍐欏叆A01
-          if (messageArray.getJSONArray(0).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(0);
-            List<Short> sValue = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue.add(val);
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue.isEmpty()) {
-              S7control.getinstance().WriteWord(waddresses1, sValue);
-              System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
-            }
-          }
-
-          // 鍐欏叆A02
-          if (messageArray.getJSONArray(1).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(1);
-            List<Short> sValue2 = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue2.isEmpty()) {
-              S7control.getinstance().WriteWord(waddresses2, sValue2);
-              System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
-            }
-          }
-
-          // 鍐欏叆B01
-          if (messageArray.getJSONArray(2).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(2);
-            List<Short> sValue2 = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue2.isEmpty()) {
-              S7control.getinstance().WriteWord(waddresses2, sValue2);
-              System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses3);
-            }
-          }
-
-          // 鍐欏叆B02
-          if (messageArray.getJSONArray(3).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(3);
-            List<Short> sValue2 = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue2.isEmpty()) {
-              S7control.getinstance().WriteWord(waddresses2, sValue2);
-              System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses4);
-            }
-          }
-
-          // 鍐欏叆鏁呴殰鍦板潃
-          if (messageArray.getJSONArray(4).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(4);
-            List<Short> sValue2 = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue2.isEmpty()) {
-              S7control.getinstance().WriteWord(waddresses5, sValue2);
-              System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses5);
-            }
-          }
-
-          // 鍐欏叆澶嶄綅鍦板潃
-          if (messageArray.getJSONArray(5).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(5);
-            List<Short> sValue2 = new ArrayList<>();
-            List<Boolean> messageBooleans = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
-                  for (short values : sValue2) {
-                    messageBooleans.add(values == 1 ? true : false);
-                  }
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!messageBooleans.isEmpty()) {
-              // S7control.getinstance().WriteWord(waddresses6, messageBooleans);
-              System.out.println("Values " + messageBooleans + " written to PLC at address " + waddresses6);
-            }
-          }
-
-          // 鍐欏叆鍥為浂鍦板潃
-          if (messageArray.getJSONArray(6).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(6);
-            List<Short> sValue2 = new ArrayList<>();
-            List<Boolean> messageBooleans = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
-                  for (short values : sValue2) {
-                    messageBooleans.add(values == 1 ? true : false);
-                  }
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!messageBooleans.isEmpty()) {
-              S7control.getinstance().WriteBit(waddresses7, messageBooleans);
-              System.out.println("Values " + messageBooleans + " written to PLC at address " + waddresses7);
-            }
-          }
-
-          // 娓呯┖娑堟伅鍒楄〃
-          webSocketServer.clearMessages();
-        }
-      }
-    }
-  }
-}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
deleted file mode 100644
index f5da68d..0000000
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
+++ /dev/null
@@ -1,281 +0,0 @@
-package com.example.springboot.component;
-
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import org.apache.commons.io.FileUtils;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class PlcManualonePosition2 extends Thread {
-  String name = "";
-  Integer count = 0;
-
-  public static String readFileToString(String filePath) throws IOException {
-    File file = new File(filePath);
-    return FileUtils.readFileToString(file, "UTF-8");
-  }
-
-  public void readValue() {
-    String str = "";
-    BufferedReader bufferedReader = null;
-    FileInputStream fileInputStream;
-    try {
-      // 浠庢枃浠朵腑璇诲彇瀛楄妭鏁版嵁瀛樺叆 fileInputStream
-      fileInputStream = new FileInputStream("CanadaMes-ui/src/configuration/address.json");
-      // 璇诲彇 fileInputStream 涓瓧鑺傚苟灏嗗叾瑙g爜涓哄瓧绗�
-      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
-      // 鎻愰珮璇诲彇鏁堢巼锛屽湪 BufferedReader 鍐呭寘瑁� InputStreamReader
-      bufferedReader = new BufferedReader(inputStreamReader);
-      String line = null;
-      // 灏� bufferedReader 鍐呭涓�琛屼竴琛岃祴鍊肩粰str
-      while ((line = bufferedReader.readLine()) != null) {
-        str += line;
-      }
-
-      // 灏唖tr瀛楃涓叉牸寮忚浆涓簀son
-      JSONObject jsonObject = new JSONObject(str);
-
-      // 鑾峰彇json涓殑鍊�
-      JSONArray address = jsonObject.getJSONArray("ServoManualone");
-      for (int i = 0; i < address.size(); i++) {
-        JSONObject ress = (JSONObject) address.get(i);
-
-        this.name = ress.getStr("name");
-        this.count = ress.getInt("count");
-
-      }
-
-    } catch (FileNotFoundException e) {
-      e.printStackTrace();
-    } catch (UnsupportedEncodingException e) {
-      e.printStackTrace();
-    } catch (IOException e) {
-      e.printStackTrace();
-    }
-  }
-
-  @Override
-  public void run() {
-    while (this != null) {
-      try {
-        Thread.sleep(500);
-
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-      // this.readValue();
-      // String PlcAddress = this.name;
-      // Integer Plccount = this.count;
-
-      List<String> addresses = new ArrayList<>();
-      addresses.add("DB100.16");
-      addresses.add("DB100.116");
-      addresses.add("DB103.20");
-      List<Short> arraylist = S7control.getinstance().readWords(addresses);
-//       System.out.println(arraylist);
-
-      List<String> addresses2 = new ArrayList<>();
-      addresses2.add("DB100.192");
-      addresses2.add("DB100.118");
-      addresses2.add("DB103.22");
-      List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
-
-      List<String> addresses9 = new ArrayList<>();
-
-
-
-      addresses9.add("DB104.1.2");
-      addresses9.add("DB104.1.3");
-      List<Boolean> arraylist9 = S7control.getinstance().readBits(addresses9);
-      short[] params2 = new short[arraylist9.size()];
-      for (int i = 0; i < arraylist9.size(); i++) {
-        boolean value = arraylist9.get(i);
-        params2[i] = value ? (short) 1 : (short) 0;
-      }
-
-      JSONObject jsonObject = new JSONObject();
-      // System.out.println(arraylist);
-      jsonObject.append("zuhe1", arraylist);
-      jsonObject.append("zuhe2", arraylist2);
-      jsonObject.append("guzhang", params2);
-      // jsonObject.append("weihuiling", arraylist8);
-
-      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
-      if (sendwServer != null) {
-        sendwServer.sendMessage(jsonObject.toString());
-      }
-
-      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition2");
-      if (webSocketServer != null) {
-        List<String> messages = webSocketServer.getMessages();
-        List<String> waddresses1 = new ArrayList<>();
-        waddresses1.add("DB100.108");
-        waddresses1.add("DB100.20");
-        waddresses1.add("DB103.52");
-
-        List<String> waddresses2 = new ArrayList<>();
-        waddresses2.add("DB100.110");
-        waddresses2.add("DB100.176");
-        waddresses2.add("DB103.54");
-
-        // 鏁呴殰鍦板潃
-        List<String> waddresses3 = new ArrayList<>();
-        waddresses3.add("DB103.242");
-        waddresses3.add("DB103.248");
-
-        // 澶嶄綅鍦板潃
-        List<String> waddresses4 = new ArrayList<>();
-        waddresses4.add("DB101.3.6");
-        waddresses4.add("DB101.4.1");
-
-        // 鍥為浂鍦板潃
-        List<String> waddresses5 = new ArrayList<>();
-        waddresses5.add("DB101.3.7");
-        waddresses5.add("DB101.4.2");
-
-        if (!messages.isEmpty()) {
-          // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
-          String lastMessage = messages.get(messages.size() - 1);
-          // System.out.println("lastMessage锛�" + lastMessage);
-          JSONArray messageArray = new JSONArray(lastMessage);
-
-          // A01涓嬪彂
-          if (messageArray.getJSONArray(0).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(0);
-            List<Short> sValue = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue.add(val);
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue.isEmpty()) {
-              S7control.getinstance().WriteWord(waddresses1, sValue);
-              System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
-            }
-          }
-
-          // A02涓嬪彂
-          if (messageArray.getJSONArray(1).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(1);
-            List<Short> sValue2 = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue2.isEmpty()) {
-              S7control.getinstance().WriteWord(waddresses2, sValue2);
-              System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
-            }
-          }
-
-          // 鍐欏叆鏁呴殰鍦板潃
-          if (messageArray.getJSONArray(2).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(2);
-            List<Short> sValue2 = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue2.isEmpty()) {
-              S7control.getinstance().WriteWord(waddresses3, sValue2);
-              System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses3);
-            }
-          }
-
-          // 鍐欏叆澶嶄綅鍦板潃
-          if (messageArray.getJSONArray(3).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(3);
-            List<Short> sValue2 = new ArrayList<>();
-            List<Boolean> messageBooleans = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
-                  for (short values : sValue2) {
-                    messageBooleans.add(values == 1 ? true : false);
-                  }
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!messageBooleans.isEmpty()) {
-              S7control.getinstance().WriteBit(waddresses4, messageBooleans);
-              System.out.println("Values " + messageBooleans + " written to PLC at address " + waddresses4);
-            }
-          }
-
-          // 鍐欏叆鍥為浂鍦板潃
-          if (messageArray.getJSONArray(4).size() > 0) {
-            JSONArray jsonArray = messageArray.getJSONArray(4);
-            List<Short> sValue2 = new ArrayList<>();
-            List<Boolean> messageBooleans = new ArrayList<>();
-            for (int i = 0; i < jsonArray.size(); i++) {
-              Object value = jsonArray.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  short val = Short.parseShort(cleanedValue.trim());
-                  sValue2.add(val);
-                  // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
-                  for (short values : sValue2) {
-                    messageBooleans.add(values == 1 ? true : false);
-                  }
-                  System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!messageBooleans.isEmpty()) {
-              S7control.getinstance().WriteBit(waddresses5, messageBooleans);
-              System.out.println("Values " + messageBooleans + " written to PLC at address " + waddresses5);
-            }
-          }
-
-          // 娓呯┖娑堟伅鍒楄〃
-          webSocketServer.clearMessages();
-        }
-      }
-    }
-  }
-}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
index fd033a7..6f18c01 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
@@ -100,9 +100,22 @@
       addresses.add("DB103.6");
       List<Short> data = S7control.getinstance().readWords(addresses);
 
+      List<String> addressList0 = new ArrayList<>();
+
+      addressList0.add("DB101.9.2");
+      addressList0.add("DB101.9.3");
+      addressList0.add("DB101.9.4");
+      addressList0.add("DB101.9.5");
+      addressList0.add("DB101.9.6");
+      addressList0.add("DB101.9.7");
+
+      addressList0.add("DB101.10.0");
+      addressList0.add("DB101.10.1");
+      addressList0.add("DB101.10.2");
+      addressList0.add("DB101.10.3");
 
 
-      List<Boolean> data2 = S7control.getinstance().ReadBits("DB101.9.2", 10);
+      List<Boolean> data2 = S7control.getinstance().readBits(addressList0);
       List<String> addressList3 = new ArrayList<>();
       addressList3.add("DB103.256");
       addressList3.add("DB103.270");
@@ -116,16 +129,16 @@
 
       List<Short> data4 = S7control.getinstance().readWords(addresses4);
 
-
+//
 //      String[] values6 = { ".x1 ","x2 ","x3",";;x4","x5","x6","x7","x8","x9","x10","x11"};
 //      List<String> paramlist = new ArrayList<>(Arrays.asList(values6));
 //      Short[] values1 = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
 //     List<Short> data = new ArrayList<>(Arrays.asList(values1));
-//      Boolean[] value4 = { false, true, true, true, true, true, true, true, true,
+//      Boolean[] value4 = { true, true, true, true, true, true, true, true, true,
 //              true};
 //     List<Boolean> data2 = new ArrayList<>(Arrays.asList(value4));
-//      Short[] values3 = { 22,33};
-//     List<Short> data3 = new ArrayList<>(Arrays.asList(values3));
+//      String[] values3 = { ".x11 ","x21 "};
+//      List<String> data3 = new ArrayList<>(Arrays.asList(values3));
 //      Short[] values4 = { 2,2,3,4};
 //      List<Short> data4 = new ArrayList<>(Arrays.asList(values4));
 //
@@ -167,6 +180,7 @@
         addressList.add("DB101.10.3");
 
 
+
         if (!messages.isEmpty()) {
           // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
           String lastMessage = messages.get(messages.size() - 1);
@@ -192,7 +206,7 @@
           }
 
           // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
-         S7control.getinstance().WriteBit(addressList, messageBooleans);
+       S7control.getinstance().WriteBit(addressList, messageBooleans);
           System.out.println("messageValues锛�" + messageBooleans);
           System.out.println("addressList锛�" + addressList);
           // 娓呯┖娑堟伅鍒楄〃
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java
index 608bb76..9b72c6f 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java
@@ -124,7 +124,7 @@
 
                     // 鍐欏叆绗瑈i涓湴鍧�
                     if (!mergedList.isEmpty()) {
-//            S7control.getinstance().WriteWord(addressList3, mergedList);
+            S7control.getinstance().WriteWord(addressList3, mergedList);
                         System.out.println("messageValue锛�" + mergedList + " written to PLC at address " + addressList3);
                     }
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
index 8db324e..0b6b94b 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -344,6 +344,7 @@
         if (stringdatas.length == 2) {
             dbwindex = Integer.parseInt(stringdatas[1]);
         } else if (stringdatas.length == 3) {
+            dbwindex = Integer.parseInt(stringdatas[1]);
             bitindex = Integer.parseInt(stringdatas[2]);
         } else
             return null;
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 0bc6e31..15adfff 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
@@ -35,28 +35,28 @@
     //
     System.out.println("鍚姩瀹屾垚");
 
-    new PlcHold().start();
-
+//    new PlcHold().start();
+//
     //
-    new Plchome().start();
-    //
-    // new PlcParameter().start();
-    // //
-    // // new Plcalarm().start();
-    // //
-    // new Plcsign().start();
-    // //
-    // new Plcaction().start();
-    // new Plcstate().start();
-    // new PlcPositioning1().start();
-    // new PlcPositioning2().start();
-    // new PlcParameter2().start();
-    // new PlcParameter1().start();
-    // new PLCAutomaticParameterSetting().start();
+//    new Plchome().start();
+//    //
+     new PlcParameter().start();
+     //
+     // new Plcalarm().start();
+     //
+     new Plcsign().start();
+     //
+     new Plcaction().start();
+     new Plcstate().start();
+     new PlcPositioning1().start();
+     new PlcPositioning2().start();
+    new PlcParameter2().start();
+     new PlcParameter1().start();
+     new PLCAutomaticParameterSetting().start();
 
-    // new PlcManualonePosition().start();
-    // new PlcManualonePosition2().start();
-    // new PlcServoManualone().start();
-    // new PLCManualJog().start();
+     new PlcManualonePosition().start();
+     new PlcManualonePosition2().start();
+     new PlcServoManualone().start();
+     new PLCManualJog().start();
   }
 }
\ No newline at end of file

--
Gitblit v1.8.0