From 37f7f87968cfd2c400283fbf83851c39c2c4d456 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期三, 20 十二月 2023 08:12:26 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 springboot-vue3/src/main/resources/config.properties                                             |   78 +
 CanadaMes-ui/src/views/Electrical/Positioning2.vue                                               |    4 
 CanadaMes-ui/src/views/home/index.vue                                                            |   86 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java                |  282 +---
 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java              |   62 
 CanadaMes-ui/src/views/Electrical/Parameter2.vue                                                 |   32 
 CanadaMes-ui/src/views/Electrical/State.vue                                                      |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java                 |  170 +-
 CanadaMes-ui/src/views/Electrical/Parameter.vue                                                  |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java            |  353 ++--
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java                      |  381 ++--
 CanadaMes-ui/src/configuration/AutomaticParameterSetting.json                                    |  100 +
 CanadaMes-ui/src/views/Electrical/Positioning1.vue                                               |   52 
 CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue                                  |  173 +-
 CanadaMes-ui/src/views/Electrical/alarm.vue                                                      |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java |  172 --
 CanadaMes-ui/src/views/Electrical/Action.vue                                                     |    4 
 CanadaMes-ui/src/views/device/talkvue.vue                                                        |    3 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter1.java                |  274 +--
 CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue                                         |   94 +
 springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java        |  413 ++---
 CanadaMes-ui/src/configuration/ManualJog.json                                                    |   50 
 CanadaMes-ui/src/configuration/Positioning1.json                                                 |    4 
 CanadaMes-ui/src/views/Electrical/Servomanual.vue                                                |    4 
 CanadaMes-ui/src/views/Electrical/Sign.vue                                                       |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java                      |    6 
 CanadaMes-ui/.env                                                                                |    2 
 CanadaMes-ui/src/views/Electrical/ManualonePosition.vue                                          |   91 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java              |   46 
 springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java                     |    7 
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java                 |   24 
 springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java               |   22 
 CanadaMes-ui/src/views/login/index.vue                                                           |    2 
 CanadaMes-ui/src/lang/locales/en-US.json                                                         |    4 
 CanadaMes-ui/src/views/Electrical/ManualJog.vue                                                  |  123 +
 CanadaMes-ui/src/views/Electrical/Parameter1.vue                                                 |    4 
 CanadaMes-ui/src/views/Electrical/ServoManualone.vue                                             |  179 +-
 springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java         |  592 +++-----
 38 files changed, 1,753 insertions(+), 2,152 deletions(-)

diff --git a/CanadaMes-ui/.env b/CanadaMes-ui/.env
index a5fd3e6..a8d4e88 100644
--- a/CanadaMes-ui/.env
+++ b/CanadaMes-ui/.env
@@ -1 +1 @@
-VUE_APP_BASE_API=/api
\ No newline at end of file
+VUE_APP_BASE_API=/api
diff --git a/CanadaMes-ui/src/configuration/AutomaticParameterSetting.json b/CanadaMes-ui/src/configuration/AutomaticParameterSetting.json
index 87ec239..57ad2f0 100644
--- a/CanadaMes-ui/src/configuration/AutomaticParameterSetting.json
+++ b/CanadaMes-ui/src/configuration/AutomaticParameterSetting.json
@@ -8,7 +8,9 @@
       "address": "DB100.0",
       "count": 3,
       "unit": "掳",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     },
     {
       "name": "A01琛岃蛋浣庨�熻搴�",
@@ -17,7 +19,9 @@
       "address": "DB100.0",
       "unit": "掳",
       "type": "0",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     },
     {
       "name": "A01杈撻�佹帴鐗囪搴�",
@@ -26,7 +30,9 @@
       "unit": "掳",
       "address": "DB100.0",
       "type": "0",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     },
     {
       "name": "A01绗煎瓙瑙掑害",
@@ -35,7 +41,9 @@
       "unit": "掳",
       "address": "DB100.0",
       "type": "0",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     }
   ],
   [
@@ -47,7 +55,9 @@
       "unit": "掳",
       "address": "DB100.0",
       "count": 3,
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     },
     {
       "name": "A02琛岃蛋浣庨�熻搴�",
@@ -56,7 +66,9 @@
       "unit": "掳",
       "address": "DB100.0",
       "type": "0",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     },
     {
       "name": "A02杈撻�佹帴鐗囪搴�",
@@ -65,7 +77,9 @@
       "unit": "掳",
       "address": "DB100.0",
       "type": "0",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     },
     {
       "name": "A02绗煎瓙瑙掑害",
@@ -74,7 +88,9 @@
       "unit": "掳",
       "address": "DB100.0",
       "type": "0",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     }
   ],
   [
@@ -86,7 +102,9 @@
       "unit": "m/min",
       "address": "DB100.0",
       "count": 3,
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     }
   ],
   [
@@ -97,7 +115,9 @@
       "unit": "m/min",
       "address": "DB100.0",
       "type": "0",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     }
   ],
   [
@@ -108,7 +128,9 @@
       "unit": "m/min",
       "address": "DB100.0",
       "type": "0",
-      "value": ""
+      "value": "",
+      "min": 0,
+      "max": 100
     }
   ],
   [
@@ -125,7 +147,9 @@
     "type": "0",
     "unit": "m/min",
     "count":3,
-    "value":0
+    "value":0,
+    "min": 0,
+    "max": 1000
   },
   {
     "name": "楂橀�熺嚎閫熷害",
@@ -133,7 +157,9 @@
     "sending": 0,
     "type": "0",
     "unit": "m/min",
-    "value":0
+    "value":0,
+    "min": 0,
+    "max": 100
   },
   {
     "name": "浣庨�熺嚎閫熷害",
@@ -141,7 +167,9 @@
     "sending": 0,
     "type": "0",
     "unit": "m/min",
-    "value":0
+    "value":0,
+    "min": 0,
+    "max": 100
   },
   {
     "name": "鎵嬪姩閫熷害",
@@ -149,7 +177,9 @@
     "sending": 0,
     "type": "0",
     "unit": "m/min",
-    "value":0
+    "value":0,
+    "min": 0,
+    "max": 100
   }
   
  
@@ -169,7 +199,9 @@
   "type": "0",
   "unit": "m/min",
   "count":3,
-  "value":0
+  "value":0,
+  "min": 0,
+  "max": 100
 },
 {
   "name": "楂橀�熺嚎閫熷害",
@@ -177,7 +209,9 @@
   "sending": 0,
   "unit": "m/min",
   "type": "0",
-  "value":0
+  "value":0,
+  "min": 0,
+  "max": 100
 },
 {
   "name": "浣庨�熺嚎閫熷害",
@@ -185,7 +219,9 @@
   "sending": 0,
   "unit": "m/min",
   "type": "0",
-  "value":0
+  "value":0,
+  "min": 0,
+  "max": 100
 },
 {
   "name": "鎵嬪姩閫熷害",
@@ -193,7 +229,9 @@
   "sending": 0,
   "unit": "m/min",
   "type": "0",
-  "value":0
+  "value":0,
+  "min": 0,
+  "max": 100
 }
 
 
@@ -211,7 +249,9 @@
 "type": "0",
 "unit": "m/min",
 "count":3,
-"value":0
+"value":0,
+"min": 0,
+"max": 100
 },
 {
 "name": "楂橀�熺嚎閫熷害",
@@ -219,7 +259,9 @@
 "sending": 0,
 "type": "0",
 "unit": "m/min",
-"value":0
+"value":0,
+"min": 0,
+"max": 100
 },
 {
 "name": "浣庨�熺嚎閫熷害",
@@ -227,7 +269,9 @@
 "sending": 0,
 "type": "0",
 "unit": "m/min",
-"value":0
+"value":0,
+"min": 0,
+"max": 100
 },
 {
 "name": "鎵嬪姩閫熷害",
@@ -235,7 +279,9 @@
 "sending": 0,
 "type": "0",
 "unit": "m/min",
-"value":0
+"value":0,
+"min": 0,
+"max": 100
 }
 
 
@@ -250,7 +296,9 @@
 "unit": "mm/S",
 
 "count":3,
-"value":0
+"value":0,
+"min": 0,
+"max": 100
 }
 
 
@@ -264,7 +312,9 @@
 "sending": 0,
 "unit": "mm/S",
 "type": "0",
-"value":0
+"value":0,
+"min": 0,
+"max": 100
 }
 
 
diff --git a/CanadaMes-ui/src/configuration/ManualJog.json b/CanadaMes-ui/src/configuration/ManualJog.json
index 36a392a..40c659a 100644
--- a/CanadaMes-ui/src/configuration/ManualJog.json
+++ b/CanadaMes-ui/src/configuration/ManualJog.json
@@ -4,6 +4,7 @@
       "button": {
         "name": "D01杈撻��",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -13,6 +14,7 @@
       "button": {
         "name": "D02杈撻��",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -22,6 +24,7 @@
       "button": {
         "name": "D03杈撻��",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -31,6 +34,7 @@
       "button": {
         "name": "D04杈撻��",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -40,6 +44,7 @@
       "button": {
         "name": "D05杈撻��",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -49,6 +54,7 @@
       "button": {
         "name": "D06杈撻��",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -58,6 +64,7 @@
       "button": {
         "name": "A01杈撻�佹鍚�",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -67,6 +74,7 @@
       "button": {
         "name": "A01杈撻�佸弽鍚�",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -77,6 +85,7 @@
       "button": {
         "name": "A01琛岃蛋鐐瑰姩",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -86,6 +95,7 @@
       "button": {
         "name": "A01缈昏浆",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -95,6 +105,7 @@
       "button": {
         "name": "A01娉ㄧ數娉�",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -104,6 +115,7 @@
       "button": {
         "name": "A02杈撻�佹鍚�",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -113,6 +125,7 @@
       "button": {
         "name": "A02杈撻�佸弽鍚�",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -122,6 +135,7 @@
       "button": {
         "name": "A02琛岃蛋鐐瑰姩",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -131,6 +145,7 @@
       "button": {
         "name": "A02缈昏浆",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -143,6 +158,7 @@
       "button": {
         "name": "A02娉ㄧ數娉�",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -152,6 +168,7 @@
       "button": {
         "name": "B01杈撻��",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -161,6 +178,7 @@
       "button": {
         "name": "B01琛岃蛋鐐瑰姩",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -171,6 +189,7 @@
       "button": {
         "name": "B01缈昏浆姘旂几",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -180,6 +199,7 @@
       "button": {
         "name": "B01鍗囬檷姘旂几",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -188,6 +208,7 @@
       "button": {
         "name": "B01鍚规皵",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -197,6 +218,7 @@
       "button": {
         "name": "B02杈撻��",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -210,6 +232,7 @@
       "button": {
         "name": "B02琛岃蛋鐐瑰姩",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -219,6 +242,7 @@
       "button": {
         "name": "B02缈昏浆姘旂几",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -228,6 +252,7 @@
       "button": {
         "name": "B02鍗囬檷姘旂几",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -237,6 +262,7 @@
       "button": {
         "name": "B02鍚规皵",
         "value": 0,
+ "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -244,5 +270,29 @@
     }
    
    
+  ],
+  [
+    {
+      "button": {
+        "name": "A01琛岃蛋浼烘湇鍥為浂",
+        "value": 0,
+        "value2": 0,
+        "address": "DB10.0",
+        "state": 1
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "A02琛岃蛋浼烘湇鍥為浂",
+        "value": 0,
+        "value2": 0,
+        "address": "DB10.0",
+        "state": 1
+      },
+      "type": "3"
+    }
+
+
   ]
 ]
\ No newline at end of file
diff --git a/CanadaMes-ui/src/configuration/Positioning1.json b/CanadaMes-ui/src/configuration/Positioning1.json
index 0a4f289..c39530e 100644
--- a/CanadaMes-ui/src/configuration/Positioning1.json
+++ b/CanadaMes-ui/src/configuration/Positioning1.json
@@ -5,7 +5,9 @@
     "sending": 0,
     "type": "0",
     "unit": "mm",
-    "value":"0"
+    "value":"0",
+    "min": 0,
+     "max": 100
     
   }],
     [{
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index e983db3..124e8c3 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -530,7 +530,9 @@
                 "A01杈撻�佸弽鍚�": "A01 VFD conveyor reverse",
                 "A02杈撻�佸弽鍚�": "A02 VFD conveyor reverse",
                 "A01娉ㄧ數娉�": "A01 oil pump",
-                "A02娉ㄧ數娉�": "A02 oil pump"
+                "A02娉ㄧ數娉�": "A02 oil pump",
+                "A01琛岃蛋浼烘湇鍥為浂":"A01 SERVE TRAVEL Home",
+                "A02琛岃蛋浼烘湇鍥為浂":"A02 SERVE TRAVEL Home"
               }
           
 
diff --git a/CanadaMes-ui/src/views/Electrical/Action.vue b/CanadaMes-ui/src/views/Electrical/Action.vue
index 4f9a45d..14bdbb6 100644
--- a/CanadaMes-ui/src/views/Electrical/Action.vue
+++ b/CanadaMes-ui/src/views/Electrical/Action.vue
@@ -6,8 +6,8 @@
       }}</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/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')
diff --git a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
index 88ca078..c9fd7bb 100644
--- a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
+++ b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -5,8 +5,8 @@
       }}</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/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')
@@ -60,9 +60,23 @@
           <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
             <div class="item-row">
               <span class="name" style="width:250px;">{{ item.name }}</span>
-              <el-input v-if="item.type === '0'" v-model="item.value" class="input-box"
-                @keyup.enter.native="submitDataToBackend"></el-input>
-                <span v-if="item.unit" :name="item.unit" >{{ item.unit }}</span>
+              <!-- <el-input v-if="item.type === '0'"
+            v-model="item.value"
+            class="input-box"
+            :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`"
+            @keyup.enter.native="submitDataToBackend">
+  </el-input> -->
+
+  <el-input v-if="item.type === '0'"
+            v-model="item.value"
+            class="input-box"
+           
+            @keyup.enter.native="submitDataToBackend">
+  </el-input>
+
+                <span v-if="item.unit" :name="item.unit"  >{{ item.unit }}</span>
+
+
 
             </div>
           </div>
@@ -77,7 +91,7 @@
 <script>
 import LanguageMixin from '../../lang/LanguageMixin'
 import data from '../../configuration/AutomaticParameterSetting'
-import { throttle } from 'lodash';
+
 let socket;
 
 export default {
@@ -107,6 +121,11 @@
     },
     updateButtonValue (dataGroup, itemIndex) {
       this.$set(dataGroup[itemIndex].button, 'value', 1); // 鐐瑰嚮鎸夐挳鍚庡皢鍊兼敼涓�1
+    },
+    checkInputValue() {
+      if (this.item.value < this.item.min || this.item.value > this.item.max) {
+        this.item.value = ''; // 娓呯┖杈撳叆妗嗙殑鍊�
+      }
     },
     submitDataToBackend () {
       const inputData = this.jsonData.map(dataGroup => {
@@ -163,93 +182,83 @@
 
         // 鏀跺埌娑堟伅
         socket.onmessage = (msg) => {
-          if (!msg.data) {
-            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
-          }
+  if (!msg.data) {
+    return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+  }
 
-          let obj = JSON.parse(msg.data);
-          const jsonData2 = this.jsonData;
-          // console.log(obj);
-          const handleMouseMove = throttle(function (event) {
+  let obj = JSON.parse(msg.data);
+  const jsonData2 = this.jsonData;
 
-            const inputBox = document.querySelectorAll('.input-box');
-            const target = event.target;
-            if (inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
-              const parms = obj.params;
-              const fanzhuan = obj.fanzhuan;
-              const xiaoche = obj.xiaoche;
-              const dache = obj.dache1;
+  const handleMouseMove = (event) => {
+    if (!event || !event.target) {
+      return; // 濡傛灉 event 鎴� event.target 涓嶅瓨鍦紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+    }
 
-              const parms2 = obj.params2;
-              const fanzhuan2 = obj.fanzhuan2;
-              const xiaoche2 = obj.xiaoche2;
+    const inputBox = document.querySelectorAll('.input-box');
+    const target = event.target;
+    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
 
-              // console.log('parms:', parms);
-              // console.log('fanzhuan:', fanzhuan);
-              // console.log('xiaoche:', xiaoche);
-              // console.log('dache:', dache);
+    if (!isMouseInInput) {
+      const parms = obj.params;
+      const fanzhuan = obj.fanzhuan;
+      const xiaoche = obj.xiaoche;
+      const dache = obj.dache1;
 
-              let index = 0;
-              for (let i = 0; i < jsonData2.length - 1; i++) {
-                let arr = jsonData2[i];
+      const parms2 = obj.params2;
+      const fanzhuan2 = obj.fanzhuan2;
+      const xiaoche2 = obj.xiaoche2;
 
-                for (let j = 0; j < arr.length; j++) {
-                  let obj = arr[j];
-                  if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) {
-                    if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) {
-                      obj.value = parms[0][index];
-                      index++;
-                    }
-                  }
-                }
-              }
-              if (Array.isArray(fanzhuan) && Array.isArray(fanzhuan[0]) && fanzhuan[0][0] !== undefined) {
-                jsonData2[4][0]['value'] = fanzhuan[0][0];
-              }
-              if (Array.isArray(xiaoche) && Array.isArray(xiaoche[0]) && xiaoche[0][0] !== undefined) {
-                jsonData2[3][0]['value'] = xiaoche[0][0];
-              }
-              if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) {
-                jsonData2[2][0]['value'] = dache[0][0];
-              }
-           
+      let index = 0;
+      for (let i = 0; i < jsonData2.length - 1; i++) {
+        let arr = jsonData2[i];
 
-
-
-
-            let index2 = 0;
-              for (let i =5; i < jsonData2.length; i++) {
-                let arr = jsonData2[i];
-
-                for (let j = 0; j < arr.length; j++) {
-                  let obj2 = arr[j];
-                  if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) {
-                    if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) {
-                      obj2.value = parms2[0][index2];
-                      index2++;
-                    }
-                  }
-                }
-              }
-              if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) {
-                jsonData2[8][0]['value'] = fanzhuan2[0][0];
-              }
-              if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) {
-                jsonData2[9][0]['value'] = xiaoche2[0][0];
-              }
-
+        for (let j = 0; j < arr.length; j++) {
+          let obj = arr[j];
+          if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) {
+            if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) {
+              obj.value = parms[0][index];
+              index++;
             }
+          }
+        }
+      }
+      if (Array.isArray(fanzhuan) && Array.isArray(fanzhuan[0]) && fanzhuan[0][0] !== undefined) {
+        jsonData2[4][0]['value'] = fanzhuan[0][0];
+      }
+      if (Array.isArray(xiaoche) && Array.isArray(xiaoche[0]) && xiaoche[0][0] !== undefined) {
+        jsonData2[3][0]['value'] = xiaoche[0][0];
+      }
+      if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) {
+        jsonData2[2][0]['value'] = dache[0][0];
+      }
 
+      let index2 = 0;
+      for (let i = 5; i < jsonData2.length; i++) {
+        let arr = jsonData2[i];
 
+        for (let j = 0; j < arr.length; j++) {
+          let obj2 = arr[j];
+          if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) {
+            if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) {
+              obj2.value = parms2[0][index2];
+              index2++;
+            }
+          }
+        }
+      }
+      if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) {
+        jsonData2[8][0]['value'] = fanzhuan2[0][0];
+      }
+      if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) {
+        jsonData2[9][0]['value'] = xiaoche2[0][0];
+      }
+    }
+  };
 
+  setInterval(() => handleMouseMove(event), 1000); // 姣忛殧 1000ms 妫�娴嬩竴娆¢紶鏍囦綅缃�
 
-
-
-          }, 50);
-
-          document.addEventListener('mouseover', handleMouseMove);
-        };
-
+document.addEventListener('mousemove', event => handleMouseMove(event));
+};
 
 
 
@@ -295,7 +304,7 @@
       });
 
 
-      console.log(this.jsonData)
+      //console.log(this.jsonData)
 
     }
 
diff --git a/CanadaMes-ui/src/views/Electrical/ManualJog.vue b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
index 6cfa63b..dab071b 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualJog.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
@@ -5,8 +5,8 @@
       }}</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/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')
@@ -50,14 +50,14 @@
     </el-breadcrumb>
 
     <el-row :gutter="40" >
-      <el-col :span="16" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
+      <el-col :span="26" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
         <el-card class="json-block" style="width:100%;">
 
           <div class="button-row" style="display: flex; justify-content: flex-start;flex-wrap:wrap;">
             <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" style="margin: 10px;">
-              <el-button v-if="item.button" :name="item.button.name"
- :class="{ 'dow': false, 'op': item.button.value === 1 }" class="action-button"
- @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend();">{{
+              <el-button v-if="item.button"   v-model="item.button.value"   :name="item.button.name" style='width:200px;'
+ :class="{ 'dow': item.button.value === 0, 'op': item.button.value === 1 }" class="action-button"
+ @click="updateButtonValue(dataGroup, itemIndex);  submitDataToBackend(item.button.name);">{{
  item.button.name
  }}</el-button>
             </div>
@@ -72,16 +72,19 @@
 <script>
 import LanguageMixin from '../../lang/LanguageMixin'
 import data from '../../configuration/ManualJog'
+import {SelectPassword} from "../../api/home";
 let socket;
 export default {
   name: "ManualJog",
   mixins: [LanguageMixin],
   data () {
     return {
-      jsonData: data // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
+      jsonData: data, // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
+      password: 1,
     }
   },
   activated () {
+
 
     this.initWebSocket();
     const language = this.$i18n.locale;
@@ -89,9 +92,12 @@
     if (language === 'en-US') {
       this.replaceChineseWithEnglish();
     }
-    this.$forceUpdate();
+    // this.$forceUpdate();
 
-
+             SelectPassword().then(res => {
+                this.password = res.data.password;
+                console.log(this.password)
+            });
   },
   methods: {
     closeSocket () {
@@ -99,33 +105,77 @@
       socket.close();
     },
     updateButtonValue (dataGroup, itemIndex) {
-      if (dataGroup[itemIndex].button.value === 1) {
+      if (dataGroup[itemIndex].button.value2 === 0) {
     // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
-    this.$set(dataGroup[itemIndex].button, 'value', 0);
+    this.$set(dataGroup[itemIndex].button, 'value2', 1);
   } else {
     // 鍚﹀垯灏嗗叾璁句负 0
-    this.$set(dataGroup[itemIndex].button, 'value', 1);
+    this.$set(dataGroup[itemIndex].button, 'value2', 0);
   }
     },
-    submitDataToBackend () {
-      const inputData = this.jsonData.map(dataGroup => {
-        return dataGroup.map(item => {
-          if (item.type === '3') {
-            return { value: item.button.value };
+    submitDataToBackend (currentButtonName) {
+
+      if (currentButtonName === 'A01 SERVE TRAVEL Home' || currentButtonName === 'A02 SERVE TRAVEL Home' || currentButtonName === 'A01琛岃蛋浼烘湇鍥為浂' || currentButtonName === 'A02琛岃蛋浼烘湇鍥為浂') {
+        this.$prompt(
+          this.$t('Are you sure to perform this operation?'),
+          this.$t('prompt'),
+          {
+            inputType: 'password',
+            inputPlaceholder: this.$t('Please enter the password'),
+            confirmButtonText: this.$t('Yes'),
+            cancelButtonText: this.$t('No'),
+            type: 'warning',
           }
-          return null;
+        ).then(({ value }) => {
+          // 楠岃瘉瀵嗙爜鏄惁姝g‘
+          if (value !== this.password) {
+            this.$message.error(this.$t('Incorrect password'));
+            return;
+          }
+
+          // 瀵嗙爜姝g‘锛岀户缁彁浜ゆ暟鎹埌鍚庣
+          const inputData = this.jsonData.map(dataGroup => {
+            return dataGroup.map(item => {
+              if (item.type === '3') {
+                return { value: item.button.value2 };
+              }
+              return null;
+            });
+          });
+
+          const values = inputData.flat().filter(item => item !== null).map(item => item.value);
+
+          const jsonObject = { data: values };
+
+          // 鎻愪氦鏁版嵁鍒板悗绔�
+          const jsonString = JSON.stringify(jsonObject);
+          console.log('Type涓�3鐨剉alue:', jsonString);
+          socket?.send(jsonString);
+
+        }).catch(() => {
+          // 鍙栨秷鎿嶄綔
+          console.log('鍙栨秷');
         });
-      });
+      } else {
+        // 濡傛灉涓嶆槸 A01 SERVE TRAVEL Home 鎸夐挳锛岀户缁彁浜ゆ暟鎹埌鍚庣
+        const inputData = this.jsonData.map(dataGroup => {
+          return dataGroup.map(item => {
+            if (item.type === '3') {
+              return { value: item.button.value2 };
+            }
+            return null;
+          });
+        });
 
-      const values = inputData.flat().filter(item => item !== null).map(item => item.value);
+        const values = inputData.flat().filter(item => item !== null).map(item => item.value);
 
-      const jsonObject = { data: values };
+        const jsonObject = { data: values };
 
-      // 鎻愪氦鏁版嵁鍒板悗绔�
-      const jsonString = JSON.stringify(jsonObject);
-      console.log('Type涓�3鐨剉alue:', jsonString);
-      socket?.send(jsonString);
-
+        // 鎻愪氦鏁版嵁鍒板悗绔�
+        const jsonString = JSON.stringify(jsonObject);
+        console.log('Type涓�3鐨剉alue:', jsonString);
+        socket?.send(jsonString);
+      }
     },
     //鏍规嵁璇诲彇PLC鐨勫�硷紝鏍规嵁鍚嶇О鏀瑰彉棰滆壊1鎵撳紑锛�0鍏抽棴
 //     getStatusClass (zhuangtai) {
@@ -168,25 +218,30 @@
           let obj = JSON.parse(msg.data);
 
           const jsonData2 = this.jsonData;
-
+          const parms = obj.params;
+//  console.log(obj)
+//console.log(this.jsonData)
+          if(parms){
           // 濡傛灉榧犳爣涓嶅湪杈撳叆妗嗗唴锛屾洿鏂拌緭鍏ユ鐨勫��
           // this.submitDataToBackend()
-          const parms = obj.params;
-          // const xiaoche = obj.params[3];
-
-          // console.log(parms);
-
-if(obj.params){
-
+         
+          
+      
           for (let i = 0; i < jsonData2.length; i++) {
             let arr = jsonData2[i];
             for (let j = 0; j < arr.length; j++) {
               let obj = arr[j];
               obj.button.value = parms[0][j];
+              obj.button.value2 =obj.button.value;
+
 
             }
 
           }
+
+
+
+
         }
 
 
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
index 3a20c2c..c9934cd 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -5,8 +5,8 @@
       }}</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/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')
@@ -55,8 +55,14 @@
             <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' && groupIndex === 0" v-model="item.value"  @keyup.enter.native="A01start"
+                <el-input style="width:250px;"  v-if="item.state != 0 && item.type === '0' && groupIndex === 0 && (itemIndex === 2)"  readonly v-model="item.value"  
                 class="input-box"></el-input>
+
+                <el-input style="width:250px;"  v-else-if="item.state != 0 && item.type === '0' && groupIndex === 0 "  v-model="item.value"  @keyup.enter.native="A01start"
+                class="input-box"></el-input>
+                <el-input style="width: 250px;" v-else-if="(item.state !== 0) && (item.type === '0') && (itemIndex === 2)" v-model="item.value" readonly class="input-box"></el-input>
+
+                
                 <el-input style="width:250px;"  v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1" v-model="item.value"  @keyup.enter.native="A02start"
                 class="input-box"></el-input>
                 <el-input style="width:250px;"  v-else-if="item.state != 0 && item.type === '0' && groupIndex === 2" v-model="item.value"  @keyup.enter.native="B01start"
@@ -71,12 +77,12 @@
             <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,'error-button3': item.button.name === 'NotZero' && item.button.value === 1,'greenbutton': item.button.name !== 'NotZero' && item.button.name !== 'Fault' && item.button.value === 1 }"
+                :class="{ 'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1, 'error-button2': item.button.name === 'NotZero' && item.button.value === 0,'error-button3': item.button.name === 'Zero' && item.button.value === 1,'greenbutton': item.button.name !== 'NotZero' && item.button.name !== 'Fault' && item.button.value === 1 }"
                 @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,'error-button3': item.button.name === '鏈洖闆�' && item.button.value === 1,'greenbutton': item.button.name !== '鏈洖闆�' && item.button.name !== '鏁呴殰' && item.button.value === 1 }"
+                :class="{ 'action-button': true, 'error-button': item.button.name === '鏁呴殰' && item.button.value === 1, 'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0,'error-button3': item.button.name === '宸插洖闆�' && item.button.value === 1,'greenbutton': item.button.name !== '鏈洖闆�' && item.button.name !== '鏁呴殰' && item.button.value === 1 }"
                 @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
                   item.button.name }}</el-button>
             </div>
@@ -98,7 +104,7 @@
 <script>
 import LanguageMixin from '../../lang/LanguageMixin'
 import data from '../../configuration/Manualoneposition'
-import { throttle } from 'lodash';
+
 import ManualonePosition2 from './ManualonePosition2.vue';
 let socket;
 export default {
@@ -325,24 +331,25 @@
       }
 
       if (currentButtonName === '鏁呴殰' || currentButtonName === 'Fault') {
+        return false;
 
-        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);
+        // 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([],[]);
+        // // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+        // data2.push(...resetButtonValues);
+        // data2.unshift([], [], [], []);
+        // const jsonObject2 = { data:data2 };
+        // data.push([],[]);
 
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString2 = JSON.stringify(jsonObject2);
-        console.log('鎵�鏈夋晠闅滅殑value:', jsonString2);
-        socket?.send(jsonString2);
+        // // 鎻愪氦鏁版嵁鍒板悗绔�
+        // const jsonString2 = JSON.stringify(jsonObject2);
+        // console.log('鎵�鏈夋晠闅滅殑value:', jsonString2);
+        // socket?.send(jsonString2);
 
 
       }
@@ -372,11 +379,11 @@
 
       }
 
-      if (currentButtonName === '鍥為浂' || currentButtonName === 'Zero') {
+      if (currentButtonName === '鍥為浂' || currentButtonName === 'Home') {
 
         const data2 = [];
         const resetButtonValues = this.jsonData.map(item => {
-          const buttonItem = item.find(subItem => subItem.button && ['鍥為浂', 'Zero'].includes(subItem.button.name));
+          const buttonItem = item.find(subItem => subItem.button && ['鍥為浂', 'Home'].includes(subItem.button.name));
 
           return buttonItem ? buttonItem.button.value : null;
         }).filter(value => value !== null);
@@ -430,13 +437,26 @@
           }
 
           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 (obj.zuhe1 &&inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
+          const handleMouseMove = (event) => {
+    if (!event || !event.target) {
+      return; // 濡傛灉 event 鎴� event.target 涓嶅瓨鍦紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+    }
+
+    const inputBox = document.querySelectorAll('.input-box');
+    const target = event.target;
+    // console.log(obj);
+   
+    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
+
+    if (!isMouseInInput) {
+
+
+  if(obj.zuhe1){
+
+
+  
               // 鎵ц鏇存柊閫昏緫
               for (let i = 0; i < 4; i++) {
                 jsonData2[i].forEach((item, index) => {
@@ -445,17 +465,16 @@
                   }
                 });
               }
-
-             
-
-
-
-
+            }
 
             }
-          }, 50);
+        }
 
-          document.addEventListener('mouseover', handleMouseMove);
+              // console.log(jsonData2);
+              setInterval(() => handleMouseMove(event), 1000); // 姣忛殧 1000ms 妫�娴嬩竴娆¢紶鏍囦綅缃�
+
+document.addEventListener('mousemove', event => handleMouseMove(event));
+
 
 
 if(obj.zuhe1){
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
index fee9ef8..c2db6ea 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -43,10 +43,24 @@
             <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' && groupIndex === 0" v-model="item.value"  @keyup.enter.native="A01start"
+                
+ <el-input style="width:250px;"  v-if="item.state != 0 && item.type === '0' && groupIndex === 0 && (itemIndex === 2)"  readonly v-model="item.value"  
                 class="input-box"></el-input>
-                <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1" v-model="item.value" @keyup.enter.native="A02start"
+
+
+                <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1 && (itemIndex === 2)"  readonly v-model="item.value"
                 class="input-box"></el-input>
+
+                <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 0 "   v-model="item.value"  @keyup.enter.native="A01start"
+                class="input-box"></el-input>
+
+
+                <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1 "  v-model="item.value" @keyup.enter.native="A02start"
+                class="input-box"></el-input>
+
+
+
+
                 <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0'" v-model="item.value"
                 class="input-box"></el-input>
             </div>
@@ -54,11 +68,11 @@
           <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'" :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,'greenbutton': item.button.name !== 'NotZero' && item.button.name !== 'Fault' && item.button.value === 1 }"
+                :class="{ 'action-button': true, 'error-button': item.button.name === 'Fault' && item.button.value === 1, 'error-button2': item.button.name === 'NotZero' && item.button.value === 0,'error-button3': item.button.name === 'Zero' && item.button.value ===1,'greenbutton': item.button.name !== 'NotZero' && item.button.name !== 'Fault' && item.button.value === 1 }"
                 @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,'greenbutton': item.button.name !== '鏈洖闆�' && item.button.name !== '鏁呴殰' && item.button.value === 1 }"
+                :class="{ 'action-button': true, 'error-button': item.button.name === '鏁呴殰' && item.button.value === 1, 'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0,'error-button3': item.button.name === '宸插洖闆�' && item.button.value === 1,'greenbutton': item.button.name !== '鏈洖闆�' && item.button.name !== '鏁呴殰' && item.button.value === 1 }"
                 @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
                   item.button.name }}</el-button>
             </div>
@@ -73,7 +87,7 @@
 <script>
 import LanguageMixin from '../../lang/LanguageMixin'
 import data from '../../configuration/Manualoneposition2'
-import { throttle } from 'lodash';
+
 let socket;
 export default {
   name: "ManualonePosition2",
@@ -210,24 +224,25 @@
       }
 
       if (currentButtonName === '鏁呴殰' || currentButtonName === 'Fault') {
+        return false;
 
-        const data2 = [];
-        const resetButtonValues = this.jsonData.map(item => {
-          const buttonItem = item.find(subItem => subItem.button && ['鏁呴殰', 'Fault'].includes(subItem.button.name));
+        // 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);
+        //   return buttonItem ? buttonItem.button.value : null;
+        // }).filter(value => value !== null);
 
-        // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-        data2.push(...resetButtonValues);
-        data2.unshift([], []);
-        const jsonObject2 = { data2 };
-        data2.push([], []);
+        // // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
+        // data2.push(...resetButtonValues);
+        // data2.unshift([], []);
+        // const jsonObject2 = { data2 };
+        // data2.push([], []);
 
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString2 = JSON.stringify(jsonObject2);
-        console.log('鎵�鏈夋晠闅滅殑value:', jsonString2);
-        socket?.send(jsonString2);
+        // // 鎻愪氦鏁版嵁鍒板悗绔�
+        // const jsonString2 = JSON.stringify(jsonObject2);
+        // console.log('鎵�鏈夋晠闅滅殑value:', jsonString2);
+        // socket?.send(jsonString2);
 
 
       }
@@ -255,11 +270,11 @@
 
       }
 
-      if (currentButtonName === '鍥為浂' || currentButtonName === 'Zero') {
+      if (currentButtonName === '鍥為浂' || currentButtonName === 'Home') {
 
         const data2 = [];
         const resetButtonValues = this.jsonData.map(item => {
-          const buttonItem = item.find(subItem => subItem.button && ['鍥為浂', 'Zero'].includes(subItem.button.name));
+          const buttonItem = item.find(subItem => subItem.button && ['鍥為浂', 'Home'].includes(subItem.button.name));
 
           return buttonItem ? buttonItem.button.value : null;
         }).filter(value => value !== null);
@@ -309,13 +324,26 @@
           }
 
           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 (obj.zuhe1 && inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
+            const handleMouseMove = (event) => {
+    if (!event || !event.target) {
+      return; // 濡傛灉 event 鎴� event.target 涓嶅瓨鍦紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+    }
+
+    const inputBox = document.querySelectorAll('.input-box');
+    const target = event.target;
+    // console.log(obj);
+   
+    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
+ 
+
+if (!isMouseInInput) {
+            
+            if (obj.zuhe1 ) {
               // 鎵ц鏇存柊閫昏緫
               for (let i = 0; i < 2; i++) {
                 jsonData2[i].forEach((item, index) => {
@@ -348,9 +376,15 @@
 
 
             }
-          }, 50);
+         
 
-          document.addEventListener('mouseover', handleMouseMove);
+          }
+        
+        }
+              // console.log(jsonData2);
+              setInterval(() => handleMouseMove(event), 1000); // 姣忛殧 1000ms 妫�娴嬩竴娆¢紶鏍囦綅缃�
+
+document.addEventListener('mousemove', event => handleMouseMove(event));
 
 
           if(obj.zuhe1){
@@ -518,4 +552,10 @@
 
 background-color: green;
 }
+
+.error-button3{
+  background-color: green;
+
+
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter.vue b/CanadaMes-ui/src/views/Electrical/Parameter.vue
index bb15ca4..3d41689 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter.vue
@@ -102,7 +102,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + "192.168.10.21:8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter1.vue b/CanadaMes-ui/src/views/Electrical/Parameter1.vue
index 8cdd45d..c40f7b9 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter1.vue
@@ -5,8 +5,8 @@
       }}</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/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')
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter2.vue b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
index 12173e8..c8ae4de 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
@@ -15,13 +15,13 @@
         active-class="blue-button"
         >{{ $t("State") }}</router-link
       >
-      <router-link
+      <!-- <router-link
         to="/Electrical/Action"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Action") }}</router-link
-      >
+        >{{ $t("Action") }}</router-link -->
+      
       <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
         }}</router-link> -->
       <router-link
@@ -141,7 +141,7 @@
                     item.button.value === 2 && item.button.name !== 'Clear ID',
                   'yellow-button':
                     item.button.value === 1 && item.button.name !== 'Clear ID',
-                  id: item.button.value === 1 && item.button.name == 'Clear ID',
+                  'id': item.button.value === 1 && item.button.name === 'Clear ID',
                 }"
                 >{{ item.button.name }}</el-button
               >
@@ -162,7 +162,7 @@
                     item.button.value === 2 && item.button.name !== '娓呴櫎ID',
                   'yellow-button':
                     item.button.value === 1 && item.button.name !== '娓呴櫎ID',
-                  id: item.button.value === 1 && item.button.name == '娓呴櫎ID',
+                  'id': item.button.value === 1 && item.button.name === '娓呴櫎ID',
                 }"
                 >{{ item.button.name }}</el-button
               >
@@ -259,14 +259,14 @@
     },
 
     updateButtonValue(dataGroup, itemIndex) {
-      if (dataGroup[itemIndex].button.value === 0) {
-        // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
-        this.$set(dataGroup[itemIndex].button, "value", 1);
-      } else {
-        // 鍚﹀垯灏嗗叾璁句负 0
-        this.$set(dataGroup[itemIndex].button, "value", 0);
-      }
-    },
+      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(currentButtonName) {
       if (currentButtonName === "娓呴櫎ID" || currentButtonName === "Clear ID") {
         const data2 = [];
@@ -358,13 +358,13 @@
 
           const parms = obj.params;
 
-          console.log(obj);
+         // console.log(obj);
 
           // const handleMouseMove = throttle(function(event) {
           // const inputBox = document.querySelectorAll('.id');
           // const target = event.target;
 
-          // if (parms && inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
+           if (parms ) {
           //鎬ュ仠鎸夐挳
           jsonData2[13][0].button.value = obj.jiting[0][0];
 
@@ -473,7 +473,9 @@
               }
             }
           }
+        }
         };
+
         //  console.log(jsonData2);
         // }, 50);
 
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning1.vue b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
index f4febfd..9862208 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -15,13 +15,13 @@
         active-class="blue-button"
         >{{ $t("State") }}</router-link
       >
-      <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
@@ -206,7 +206,7 @@
 
       // 鎻愪氦鏁版嵁鍒板悗绔�
       const jsonString = JSON.stringify(jsonObject);
-      // console.log('鎻愪氦浠ヤ笅鏁版嵁鍒板悗绔�:', jsonString);
+       console.log('鎻愪氦浠ヤ笅鏁版嵁鍒板悗绔�:', jsonString);
       socket?.send(jsonString);
     },
     initWebSocket() {
@@ -237,25 +237,34 @@
 
         // 鏀跺埌娑堟伅
         socket.onmessage = (msg) => {
-          if (!msg.data) {
-            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
-          }
+  if (!msg.data) {
+    return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+  }
 
-          let obj = JSON.parse(msg.data);
-          const jsonData2 = this.jsonData;
-          document.addEventListener("mouseover", function (event) {
-            const inputBox = document.querySelectorAll(".input-box");
-            const target = event.target;
+  let obj = JSON.parse(msg.data);
+  const jsonData2 = this.jsonData;
+
+  const handleMouseMove = (event) => {
+    if (!event || !event.target) {
+      return; // 濡傛灉 event 鎴� event.target 涓嶅瓨鍦紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+    }
+
+    const inputBox = document.querySelectorAll('.input-box');
+    const target = event.target;
+    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
+
+    if (!isMouseInInput) {
+           
+            
             const parms = obj.params;
-            if (
-              parms &&
-              inputBox &&
-              Array.from(inputBox).every((box) => !box.contains(target))
-            ) {
+         
               // 濡傛灉榧犳爣涓嶅湪杈撳叆妗嗗唴锛屾洿鏂拌緭鍏ユ鐨勫��
               // this.submitDataToBackend()
 
               // console.log(parms)
+if(parms){
+
+
 
               let index = 0;
               for (let i = 0; i < jsonData2.length; i++) {
@@ -271,11 +280,16 @@
                   }
                 }
               }
+            }
+          }
+        }
 
               // console.log(jsonData2);
-            }
-          });
-        };
+              setInterval(() => handleMouseMove(event), 1000); // 姣忛殧 1000ms 妫�娴嬩竴娆¢紶鏍囦綅缃�
+
+document.addEventListener('mousemove', event => handleMouseMove(event));
+};
+
 
         // 鍏抽棴浜嬩欢
         socket.onclose = function () {
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning2.vue b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
index 767a4e4..1212fc2 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
@@ -5,8 +5,8 @@
       }}</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/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')
diff --git a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
index 6480322..db99576 100644
--- a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
+++ b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -5,8 +5,8 @@
         }}</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/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')
@@ -59,6 +59,10 @@
              
               <el-input v-if="item.type === '0' && groupIndex === 0" v-model="item.value"  @keyup.enter.native="zuhe1"  class='input-box' :class="{ 'special-class': groupIndex === 0,'special-class2': groupIndex === 1 }" v-show="groupIndex !== 0 && groupIndex !== 1"  ></el-input>
               <el-input v-else-if="item.type === '0' && groupIndex === 1" v-model="item.value"  @keyup.enter.native="zuhe2"  class='input-box' :class="{ 'special-class': groupIndex === 0,'special-class2': groupIndex === 1 }" v-show="groupIndex !== 0 && groupIndex !== 1"  ></el-input>
+              <el-input v-else-if="item.type === '0' && groupIndex === 2" v-model="item.value" readonly  class='input-box'  ></el-input>
+              <el-input v-else-if="item.type === '0' && groupIndex === 3" v-model="item.value" readonly  class='input-box'  ></el-input>
+              <el-input v-else-if="item.type === '0' && groupIndex === 4" v-model="item.value" readonly  class='input-box'  ></el-input>
+              <el-input v-else-if="item.type === '0' && groupIndex === 5" v-model="item.value" readonly  class='input-box'  ></el-input>
               <el-input v-else-if="item.type === '0' " v-model="item.value"   class='input-box' :class="{ 'special-class': groupIndex === 0,'special-class2': groupIndex === 1 }" v-show="groupIndex !== 0 && groupIndex !== 1"  ></el-input>
             </div>
           </div>
@@ -66,8 +70,8 @@
       </el-row>
       <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' " :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,'error-button3': item.button.name === 'NotZero' && item.button.value === 1,'fuwei': item.button.name === 'Reset' && item.button.value === 1,'huiling': item.button.name === 'Home' && item.button.value === 1,'qidong': item.button.name === 'A01 Semi-Auto' && item.button.value === 1,'qidong2': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'qidong3': item.button.name === 'A01 Semi-Auto Start' && item.button.value === 1,'qidong4': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'qidong5': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'jiting': item.button.name === 'Abort/ResumeTasks' && item.button.value === 1,'yihuiling': item.button.name === 'Zero' && item.button.value === 1}" @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-button3': item.button.name === '鏈洖闆�' && item.button.value === 1,'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0,'fuwei': item.button.name === '澶嶄綅' && item.button.value === 1,'huiling': item.button.name === '鍥為浂' && item.button.value === 1,'qidong': item.button.name === 'A01鍗婅嚜鍔�' && item.button.value === 1,'qidong2': item.button.name === 'A02鍗婅嚜鍔�' && item.button.value === 1,'qidong3': item.button.name === 'A01鍗婅嚜鍔ㄥ惎鍔�' && item.button.value === 1,'qidong4': item.button.name === 'A02鍗婅嚜鍔ㄥ惎鍔�' && item.button.value === 1,'qidong5': item.button.name === 'A02鍗婅嚜鍔�' && item.button.value === 1,'jiting': item.button.name === '鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨' && item.button.value === 1,'yihuiling': item.button.name === '宸插洖闆�' && item.button.value === 1  }" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
+          <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,'error-button3': item.button.name === 'Zero' && item.button.value === 1,'fuwei': item.button.name === 'Reset' && item.button.value === 1,'huiling': item.button.name === 'Home' && item.button.value === 1,'qidong': item.button.name === 'A01 Semi-Auto' && item.button.value === 1,'qidong2': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'qidong3': item.button.name === 'A01 Semi-Auto Start' && item.button.value === 1,'qidong4': item.button.name === 'A02 Semi-Auto Start' && item.button.value === 1,'qidong5': item.button.name === 'A02 Semi-Auto' && item.button.value === 1,'jiting': item.button.name === 'Abort/ResumeTasks' && item.button.value === 1,'yihuiling': item.button.name === 'Zero' && item.button.value === 1}" @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-button3': item.button.name === '宸插洖闆�' && item.button.value === 1,'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0,'fuwei': item.button.name === '澶嶄綅' && item.button.value === 1,'huiling': item.button.name === '鍥為浂' && item.button.value === 1,'qidong': item.button.name === 'A01鍗婅嚜鍔�' && item.button.value === 1,'qidong2': item.button.name === 'A02鍗婅嚜鍔�' && item.button.value === 1,'qidong3': item.button.name === 'A01鍗婅嚜鍔ㄥ惎鍔�' && item.button.value === 1,'qidong4': item.button.name === 'A02鍗婅嚜鍔ㄥ惎鍔�' && item.button.value === 1,'qidong5': item.button.name === 'A02鍗婅嚜鍔�' && item.button.value === 1,'jiting': item.button.name === '鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨' && item.button.value === 1,'yihuiling': item.button.name === '宸插洖闆�' && item.button.value === 1  }" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
         </div>
       </div>
     </el-card>
@@ -81,7 +85,6 @@
 <script>
 import LanguageMixin from '../../lang/LanguageMixin'
 import data from '../../configuration/ServoManualone'
-import { throttle } from 'lodash';
 
 let socket;
   export default {
@@ -209,85 +212,40 @@
 
 },
 submitDataToBackend(currentButtonName) {
-
-//A01鍗婅嚜鍔ㄥ惎鍔ㄦ彁浜�
-  if (currentButtonName === 'A01鍗婅嚜鍔ㄥ惎鍔�' ||currentButtonName === 'A01 Semi-Auto Start') {
-    const data = [];
-
-
-  const values = [this.jsonData[0][10].button.value]
-
-  data.push(values);
- 
-
-data.unshift([], [],[],[], [],[],[], []);
-
-
-const jsonObject = { data };
-
-// 鎻愪氦鏁版嵁鍒板悗绔�
-const jsonString = JSON.stringify(jsonObject);
-console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-socket?.send(jsonString);
-
-  }
-  //A02鍗婅嚜鍔ㄥ惎鍔� 鎻愪氦
-
-  if (currentButtonName === 'A02鍗婅嚜鍔ㄥ惎鍔�' ||currentButtonName === 'A02 Semi-Auto Start') {
-    const data2 = [];
-
-    const values2 = [this.jsonData[1][8].button.value]
-
-  data2.push(values2);
-
-
-  data2.unshift([],[], [],[],[], [],[],[], []);
-
-
-
-
-
-const jsonObject = { data:data2 };
-
-// 鎻愪氦鏁版嵁鍒板悗绔�
-const jsonString = JSON.stringify(jsonObject);
-console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-socket?.send(jsonString);
+  const data = [];
+  let jsonObject;
+  if (currentButtonName === '鏁呴殰' || currentButtonName === 'Fault') {
+    return false;
 
   }
 
-  //澶嶄綅鎻愪氦
+  if (currentButtonName === 'A01鍗婅嚜鍔ㄥ惎鍔�' || currentButtonName === 'A01 Semi-Auto Start') {
+    const values = [this.jsonData[0][10].button.value];
+    data.push(values);
+    data.unshift([], [],[],[], [],[],[], []);
+    jsonObject = { data };
+  }
+
+  if (currentButtonName === 'A02鍗婅嚜鍔ㄥ惎鍔�' || currentButtonName === 'A02 Semi-Auto Start') {
+    const values2 = [this.jsonData[1][8].button.value];
+    data.push(values2);
+    data.unshift([],[], [],[],[], [],[],[], []);
+    jsonObject = { data };
+  }
 
   if (currentButtonName === '澶嶄綅' || currentButtonName === 'Reset') {
-  const data2 = [];
-  const resetButtonValues = this.jsonData.map(item => {
-    const buttonItem = item.find(subItem => subItem.button && ['澶嶄綅', 'Reset'].includes(subItem.button.name));
+    const resetButtonValues = this.jsonData
+      .map(item => item.find(subItem => subItem.button && ['澶嶄綅', 'Reset'].includes(subItem.button.name)))
+      .filter(value => value !== null)
+      .map(item => item.button.value);
 
-    
-    return buttonItem ? buttonItem.button.value : null;
-  }).filter(value => value !== null);
+    data.push(resetButtonValues.flat());
+    data.unshift([], []);
+    data.push([], [], [], [], []);
+    jsonObject = { data };
+  }
 
-  // 灏嗗緱鍒扮殑鍊兼坊鍔犲埌 data 鏁扮粍涓�
-  data2.push(resetButtonValues.flat());
-
-  // 鍦� data2 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
-  data2.unshift([], []);
-  data2.push([], [], [], [], []);
-
-  // 鍒涘缓 jsonObject2 瀵硅薄锛屽苟娣诲姞 data2 灞炴��
-  const jsonObject2 = { data: data2 };
-
-  // 鎻愪氦鏁版嵁鍒板悗绔�
-  const jsonString2 = JSON.stringify(jsonObject2);
-  console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString2);
-  socket?.send(jsonString2);
-  // setTimeout(()=>
-  //   window.location.reload(),2000
-  // )
- 
-}
-////鍥為浂鎻愪氦
-if (currentButtonName === '鍥為浂' || currentButtonName === 'Home') {
+  if (currentButtonName === '鍥為浂' || currentButtonName === 'Home') {
   const data3 = [];
   const resetButtonValues3 = this.jsonData.map(item => {
     const buttonItem3 = item.find(subItem => subItem.button && ['鍥為浂', 'Home'].includes(subItem.button.name));
@@ -303,22 +261,10 @@
   data3.push([], [], [], []);
 
   // 鍒涘缓 jsonObject3 瀵硅薄锛屽苟娣诲姞 data3 灞炴��
-  const jsonObject3 = { data: data3 };
+   jsonObject = { data: data3 };
 
-  // 鎻愪氦鏁版嵁鍒板悗绔�
-  const jsonString3 = JSON.stringify(jsonObject3);
-  console.log('鍥為浂:', jsonString3);
-  socket?.send(jsonString3);
-  // setTimeout(()=>
-  //   window.location.reload(),2000
-  // )
+
 }
-
-
-
-
-//A01鍗婅嚜鍔ㄦ彁浜�
-
   if (currentButtonName === 'A01鍗婅嚜鍔�' || currentButtonName === 'A01 Semi-Auto' ) {
     const elements = document.getElementsByClassName('special-class');
     const data = [];
@@ -376,12 +322,9 @@
 
 
 
-const jsonObject = { data };
+ jsonObject = { data };
 
 // 鎻愪氦鏁版嵁鍒板悗绔�
-const jsonString = JSON.stringify(jsonObject);
-console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-socket?.send(jsonString);
 
   }
 
@@ -446,20 +389,18 @@
     data.unshift([],[],[],[],[],[],[]);
 
 
-const jsonObject = { data };
+ jsonObject = { data };
 
-// 鎻愪氦鏁版嵁鍒板悗绔�
-const jsonString = JSON.stringify(jsonObject);
-console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
-socket?.send(jsonString);
 
-  }
 
  
+}
 
-  
+const jsonString = JSON.stringify(jsonObject);
+  console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+  socket?.send(jsonString);
+
 },
-
 
     initWebSocket () {
  
@@ -490,14 +431,28 @@
   }
 
   let obj = JSON.parse(msg.data);
-   console.log(obj)
+
+
+
+
+// console.log(obj)
 const weihuiling=obj.weihuiling;
   const jsonData2 = this.jsonData;
+  const handleMouseMove = (event) => {
+    if (!event || !event.target) {
+      return; // 濡傛灉 event 鎴� event.target 涓嶅瓨鍦紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+    }
 
-  const handleMouseMove = throttle(function(event) {
-  const inputBox = document.querySelectorAll('.el-card__body');
-  const target = event.target;
-  if (obj.zuhe1 && inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
+    const inputBox = document.querySelectorAll('.input-box');
+    const target = event.target;
+    // console.log(obj);
+   
+    const isMouseInInput = Array.from(inputBox).some(box => box.contains(target));
+ 
+
+    if (!isMouseInInput) {
+
+  if (obj.zuhe1) {
     
     //鍚姩鎸夐挳
  
@@ -537,10 +492,14 @@
 
 
   }
-}, 50);
 
-  document.addEventListener('mouseover', handleMouseMove);
+}
+        
+      }
+            // console.log(jsonData2);
+            setInterval(() => handleMouseMove(event), 1000); // 姣忛殧 1000ms 妫�娴嬩竴娆¢紶鏍囦綅缃�
 
+document.addEventListener('mousemove', event => handleMouseMove(event));
 
   if (obj.qidong){
 
diff --git a/CanadaMes-ui/src/views/Electrical/Servomanual.vue b/CanadaMes-ui/src/views/Electrical/Servomanual.vue
index 1164bb0..cd03f42 100644
--- a/CanadaMes-ui/src/views/Electrical/Servomanual.vue
+++ b/CanadaMes-ui/src/views/Electrical/Servomanual.vue
@@ -5,8 +5,8 @@
       }}</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/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')
diff --git a/CanadaMes-ui/src/views/Electrical/Sign.vue b/CanadaMes-ui/src/views/Electrical/Sign.vue
index fdccfad..f5e3edd 100644
--- a/CanadaMes-ui/src/views/Electrical/Sign.vue
+++ b/CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -7,8 +7,8 @@
       }}</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/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')
diff --git a/CanadaMes-ui/src/views/Electrical/State.vue b/CanadaMes-ui/src/views/Electrical/State.vue
index aa1079f..585edd4 100644
--- a/CanadaMes-ui/src/views/Electrical/State.vue
+++ b/CanadaMes-ui/src/views/Electrical/State.vue
@@ -7,8 +7,8 @@
       }}</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/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')
diff --git a/CanadaMes-ui/src/views/Electrical/alarm.vue b/CanadaMes-ui/src/views/Electrical/alarm.vue
index 4ded8cc..4c3eff5 100644
--- a/CanadaMes-ui/src/views/Electrical/alarm.vue
+++ b/CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -5,7 +5,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/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('Parameter')
diff --git a/CanadaMes-ui/src/views/device/talkvue.vue b/CanadaMes-ui/src/views/device/talkvue.vue
index d8cd75d..ccaf687 100644
--- a/CanadaMes-ui/src/views/device/talkvue.vue
+++ b/CanadaMes-ui/src/views/device/talkvue.vue
@@ -1,9 +1,10 @@
 <template>
   <div class="container">
-    <iframe src="http://localhost:8080/GERP/optimize/optimize/html/youhuacaidan.jsp"></iframe>
+    <!-- <iframe src="http://localhost:8080/GERP/optimize/optimize/html/youhuacaidan.jsp"></iframe> -->
   </div>
 </template>
 
+
 <style>
 .container {
   position: fixed;
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index e9a4965..ed730fa 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -453,7 +453,8 @@
                 </el-table-column>
                 <el-table-column :min-width="250" :label="$t('Operate')">
                     <template slot-scope='scope'>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="scope.row.state == 1 ? false : true"
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            :disabled="scope.row.state == 1 ? false : true"
                             @click="deleteglass(scope.row.glassId, scope.row.state)">{{ $t('Delete') }}</el-button>
                         <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                             :disabled="scope.row.state == 1 ? false : true"
@@ -643,7 +644,8 @@
                 <el-table-column prop="storageCage.glassheightmm" :label="$t('Width')"></el-table-column>
                 <el-table-column :min-width="90" prop="state" :label="$t('Glass State')">
                     <template slot-scope='scope'>
-                        {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : scope.row.state == 2 ? $t('Completed') :scope.row.state == 3 ? $t('Absent') :$t('Deleted') }}
+                        {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : scope.row.state == 2
+                            ? $t('Completed') : scope.row.state == 3 ? $t('Absent') : $t('Deleted') }}
                     </template>
                 </el-table-column>
                 <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column>
@@ -661,7 +663,8 @@
 
                 <el-table-column prop="barcode" :label="$t('Complete')">
                     <template slot-scope='scope'>
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="(!isAllowQueue||scope.row.state!=1)"
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+                            :disabled="(!isAllowQueue || scope.row.state != 1)"
                             @click="CompleteQueue(scope.row.id, scope.row.barcode, scope.row.glassId)">{{ $t('Complete')
                             }}</el-button>
                     </template>
@@ -729,7 +732,7 @@
         </el-dialog>
 
         <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh">
-            <div style="font-size: 500px;text-align: center;">
+            <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'">
                 {{ this.CountDowns }}
             </div>
         </el-dialog>
@@ -765,7 +768,7 @@
             dialogFormVisible5: false,
             dialogFormVisible6: false,
             dialogFormVisible7: false,
-            dialogFormCountDown:false,
+            dialogFormCountDown: false,
             form: {
                 orderId: "",
                 glassId: "",
@@ -826,19 +829,19 @@
             OutingQueue: true,
             OrderInfo: true,
             CageDetails: true,
-            CountDowns:0,
-            D01RequestState:false
+            CountDowns: "EMERGENCY STOP",
+            D01RequestState: false,
+            EmergencyStop: false,
+            PromptSize: 250
         };
     },
     created() {
         this.load();
-        
+
         this.init();
     }
     ,
     methods: {
-
-
         init() {
             let viewname = "Home";
             if (typeof (WebSocket) == "undefined") {
@@ -847,7 +850,7 @@
                 //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
                 let socketUrl = "ws://" + this.$t('ip') + ":8888" + "/springboot-vue3/api/talk/" + viewname;
                 if (socket != null) {
-                    socket.close();this.car1
+                    socket.close();
                     socket = null;
                 }
                 // 寮�鍚竴涓獁ebsocket鏈嶅姟
@@ -861,7 +864,7 @@
                     //console.log("鏀跺埌鏁版嵁====" + msg.data);
                     let obj = JSON.parse(msg.data);
                     if (obj.params != null) {
-                        
+
                         this.car1 = 145 + 8.15 * Math.abs(obj.params[0][0] - this.carlist[0]['start']) / Math.abs(this.carlist[0]['end'] - this.carlist[0]['start']) * 100;
                         this.car2 = 210 + 8.15 * Math.abs(obj.params[0][1] - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100;
                         // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
@@ -875,16 +878,22 @@
                     this.tasklist1 = obj.tasklist1[0];
                     this.tasklist2 = obj.tasklist2[0];
                     this.alarm = obj.alarmmg[0];
-                    if(this.alarm.length>0){
-                        this.dialogFormVisible2=true;
+                    if (this.alarm.length > 0) {
+                        this.dialogFormVisible2 = true;
+                    } else {
+                        this.dialogFormVisible2 = false;
                     }
+                    //鏄惁鎬ュ仠
+                    this.EmergencyStop = obj.emergencystop[0];
+
                     //澶嶄綅鍊掕鏃�
-                    if (obj.countdown[0] == true&&this.CountDowns==0) {
+                    if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                         this.CountDown();
                     }
                     //鏄惁鏈夎繘鐗囪姹�
-                    this.D01RequestState=obj.D01RequestState[0];
-                    
+                    console.log(obj.D01RequestState[0]);
+                    this.D01RequestState = obj.D01RequestState[0];
+
                     //鏄惁鍏佽鍑虹墖
                     this.isAllowQueue = obj.isAllowQueue[0];
                     //鍑虹墖闃熷垪
@@ -918,13 +927,11 @@
                         this.form5 = obj.form3[0];
                         this.showform3();
                         this.glassid1 = "";
-                        if(this.D01RequestState==true){
+                        if (this.D01RequestState == true) {
                             this.Sizerange(this.form5, 3);
-                        }else{
-                            this.disabled1=true;
+                        } else {
+                            this.disabled1 = true;
                         }
-                        
-                        
                     } else {
                         if (this.glassid1 == "") {
                             this.DeleteBarcodeGlass();
@@ -1332,7 +1339,7 @@
         },
         //鎵嬪姩涓婄墖
         FeedInglassid() {
-            if (this.form.glassId != ""&&this.form.glassId != null) {
+            if (this.form.glassId != "" && this.form.glassId != null) {
                 Inglassid(this.insertcage, this.insertcell, this.inserttier, this.form).then(res => {
                     if (res.data.message == 200) {
                         this.$message.success(this.$t('Operation successful'));
@@ -1620,7 +1627,7 @@
             column = rowIndex;
             rowIndex = column;
             let style = "";
-            if (columnIndex === 8 ) {
+            if (columnIndex === 8) {
                 style = "font-size:25px;text-align: center;";
             }
             if (columnIndex === 9 && row.flip == 1) {
@@ -1698,7 +1705,7 @@
                     } else {
                         this.disabled = false;
                     }
-                    if (position == 3 && this.isConfirm == true&&this.D01RequestState==true) {
+                    if (position == 3 && this.isConfirm == true && this.D01RequestState == true) {
                         this.InsertQueueGlass(1);
                     }
                 }
@@ -1716,24 +1723,35 @@
                 }
             });
         },
-        CountDown(){
+        CountDown() {
             //50绉掑�掓暟璁℃椂
             let count = 45;
             let timer = setInterval(
                 () => {
-                    if (count > 0) {
-                        this.CountDowns = count;
-                        count--;
-                    }
-                    else {
+                    if (this.EmergencyStop == true) {
                         clearInterval(timer);
-                        this.CountDowns = 0;
-                        this.dialogFormCountDown=false;
+                        this.PromptSize = 250;
+                        this.CountDowns = "EMERGENCY STOP";
+                    } else {
+                        if (count > 0) {
+                            this.PromptSize = 500;
+                            this.CountDowns = count;
+                            count--;
+                        }
+                        else {
+                            this.PromptSize = 250;
+                            this.CountDowns = "Waiting for reset";
+                            
+                            // if(澶嶄綅瀹屾垚==true){
+                            //     clearInterval(timer);
+                            //     this.dialogFormCountDown = false;
+                            // }
+                        }
                     }
                 },
                 1000
             );
-            
+            this.dialogFormCountDown = true;
         }
     }
 }
diff --git a/CanadaMes-ui/src/views/login/index.vue b/CanadaMes-ui/src/views/login/index.vue
index 2ae5618..cf85e17 100644
--- a/CanadaMes-ui/src/views/login/index.vue
+++ b/CanadaMes-ui/src/views/login/index.vue
@@ -83,7 +83,7 @@
           // 璁剧疆token
           setToken(res.data.Authorization);
           this.$router.push('/layout')
-          this.$message.success('鐧诲綍鎴愬姛');
+          this.$message.success(this.$t('loginSuccess'));
         });
       })
     },
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java b/springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java
index c380a42..ae39320 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/MessageHandler.java
@@ -66,7 +66,7 @@
         }
     }
 
-    //鍐欏叆Word
+    //涓嶈繛缁湴鍧� 鍐欏叆Word
     public void WriteWordToPLC(JSONArray messageArray, List<String> addresses, int index) {
         try {
             if (messageArray.getJSONArray(index).size() > 0) {
@@ -95,6 +95,26 @@
         }
     }
 
+
+
+    public void WriteWordsToPLC(JSONArray jsonArray,  String address,int index) {
+        if (jsonArray.getJSONArray(index).size() > 0) {
+            Object value = jsonArray.getJSONArray(index).get(0);
+            if (value != null && !value.toString().equals("null")) {
+                try {
+                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                    short sValue = Short.parseShort(cleanedValue.trim());
+                    S7control.getinstance().WriteWord(address, Arrays.asList(sValue));
+                    System.out.println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + address);
+                } catch (NumberFormatException e) {
+                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                    System.err.println("Could not parse value: " + value);
+                }
+            }
+        }
+    }
+
+
     //鍐欏叆String
     public void writeStringToPLC(JSONArray messageArray, String addresses, int index) {
         try {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
index 9bd4e04..7ae28fc 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
@@ -10,53 +10,17 @@
 import java.util.List;
 
 public class PLCAutomaticParameterSetting 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");
+  // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+  private Configuration config;
+
+  // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+  MessageHandler customS7Control = new MessageHandler();
+
+
+  public PLCAutomaticParameterSetting() throws IOException {
+    config = new Configuration("config.properties");
   }
-
-  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("address");
-      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) {
@@ -66,28 +30,17 @@
       } catch (InterruptedException e) {
         e.printStackTrace();
       }
-      // this.readValue();
-      // String PlcAddress = this.name;
-      // Integer Plccount = this.count;
+
 
       // System.out.println(stt);
+
       List<Short> arraylist = S7control.getinstance().ReadWord("DB100.120", 8);
       List<Short> dache1 = S7control.getinstance().ReadWord("DB100.18", 1);
       List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.22", 1);
       List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.14", 1);
-      List<String> addresses = new ArrayList<>();
-      addresses.add("DB100.0");
-      addresses.add("DB100.2");
-      addresses.add("DB100.4");
-      addresses.add("DB100.6");
-      addresses.add("DB100.26");
-      addresses.add("DB100.28");
-      addresses.add("DB100.30");
-      addresses.add("DB100.32");
-      addresses.add("DB100.34");
-      addresses.add("DB100.36");
-      addresses.add("DB100.38");
-      addresses.add("DB100.40");
+
+      List<String> addresses = Arrays.asList(config.getProperty("Auto.addresses").split(","));
+
       List<Short> arraylist2 = S7control.getinstance().readWords(addresses);
 //缈昏浆
       List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1);
@@ -161,55 +114,15 @@
               }
               System.out.println(messageArray);
               // 鍐欏叆绗竴涓湴鍧�
-              if (messageArray.getJSONArray(2).size() > 0) {
-                Object value = messageArray.getJSONArray(2).get(0);
-                if (value != null && !value.toString().equals("null")) {
-                  try {
-                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                    short sValue = Short.parseShort(cleanedValue.trim());
-                    S7control.getinstance().WriteWord(addressList2, Arrays.asList(sValue));
-                    System.out
-                            .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList2);
-                  } catch (NumberFormatException e) {
-                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                    System.err.println("Could not parse value: " + value);
-                  }
-                }
-              }
+              customS7Control.WriteWordsToPLC(messageArray, addressList2,2);
 
               // 鍐欏叆绗簩涓湴鍧�
-              if (messageArray.getJSONArray(3).size() > 0) {
-                Object value = messageArray.getJSONArray(3).get(0);
-                if (value != null && !value.toString().equals("null")) {
-                  try {
-                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                    short sValue = Short.parseShort(cleanedValue.trim());
-                    S7control.getinstance().WriteWord(addressList3, Arrays.asList(sValue));
-                    System.out
-                            .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList3);
-                  } catch (NumberFormatException e) {
-                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                    System.err.println("Could not parse value: " + value);
-                  }
-                }
-              }
+              customS7Control.WriteWordsToPLC(messageArray, addressList3,3);
+
 
               // 鍐欏叆绗笁涓湴鍧�
-              if (messageArray.getJSONArray(4).size() > 0) {
-                Object value = messageArray.getJSONArray(4).get(0);
-                if (value != null && !value.toString().equals("null")) {
-                  try {
-                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                    short sValue = Short.parseShort(cleanedValue.trim());
-                    S7control.getinstance().WriteWord(addressList4, Arrays.asList(sValue));
-                    System.out
-                            .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList4);
-                  } catch (NumberFormatException e) {
-                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                    System.err.println("Could not parse value: " + value);
-                  }
-                }
-              }
+              customS7Control.WriteWordsToPLC(messageArray, addressList4,4);
+
 
               // 鍐欏叆绗洓涓湴鍧�
               if (!mergedList.isEmpty()) {
@@ -217,20 +130,8 @@
                 System.out.println("messageValue锛�" + mergedList + " written to PLC at address " + addressList1);
               }
 
+              List<String> waddresses1 = Arrays.asList(config.getProperty("Auto.shusong").split(","));
 
-              List<String> waddresses1 = new ArrayList<>();
-              waddresses1.add("DB100.0");
-              waddresses1.add("DB100.2");
-              waddresses1.add("DB100.4");
-              waddresses1.add("DB100.6");
-              waddresses1.add("DB100.26");
-              waddresses1.add("DB100.28");
-              waddresses1.add("DB100.30");
-              waddresses1.add("DB100.32");
-              waddresses1.add("DB100.34");
-              waddresses1.add("DB100.36");
-              waddresses1.add("DB100.38");
-              waddresses1.add("DB100.40");
 
               String addressList22 = "DB100.8";
               String addressList33 = "DB100.12";
@@ -259,38 +160,11 @@
                 }
 
                 // 鍐欏叆绗紞涓湴鍧�
-                if (messageArray.getJSONArray(8).size() > 0) {
-                  Object value = messageArray.getJSONArray(8).get(0);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      short sValue = Short.parseShort(cleanedValue.trim());
-                      S7control.getinstance().WriteWord(addressList22, Arrays.asList(sValue));
-                      System.out
-                              .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList2);
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
-                    }
-                  }
-                }
+                customS7Control.WriteWordsToPLC(messageArray, addressList22,8);
+
 
                 // 鍐欏叆绗叚涓湴鍧�
-                if (messageArray.getJSONArray(9).size() > 0) {
-                  Object value = messageArray.getJSONArray(9).get(0);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      short sValue = Short.parseShort(cleanedValue.trim());
-                      S7control.getinstance().WriteWord(addressList33, Arrays.asList(sValue));
-                      System.out
-                              .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList3);
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
-                    }
-                  }
-                }
+                customS7Control.WriteWordsToPLC(messageArray, addressList33,9);
 
                 // 鍐欏叆绗竷涓湴鍧�
                 if (!mergedList2.isEmpty()) {
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 baccc4d..16fa085 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
@@ -12,63 +12,50 @@
 public class PLCManualJog extends Thread {
 
 
-  // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
-  private Configuration config;
+    // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+    private Configuration config;
 
-  // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
-  MessageHandler customS7Control = new MessageHandler();
+    // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+    MessageHandler customS7Control = new MessageHandler();
 
 
-  public PLCManualJog() throws IOException {
-    config = new Configuration("config.properties");
-  }
+    public PLCManualJog() throws IOException {
+        config = new Configuration("config.properties");
+    }
+
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(500);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
 
 
 
+           List<String> addressList21 = Arrays.asList(config.getProperty("PLCManualJog.button").split(","));
+         List<Boolean> arraylist = S7control.getinstance().readBits(addressList21);
 
-  @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;
-
-      // System.out.println(stt);
-
-
-      List<String> addressList21 = Arrays.asList(config.getProperty("PLCManualJog.button").split(","));
+//             Boolean[] values1 = { false, true, true, true, false, false, true, false,
+//             false, true, true, true, false, false,
+//             true, false,false, true, true, true, false, false, true, false,
+//                     false, true, false, true };
+//             List<Boolean> arraylist = new ArrayList<>(Arrays.asList(values1));
 
 
 
+            JSONObject jsonObject = new JSONObject();
 
-      List<Boolean> arraylist = S7control.getinstance().readBits(addressList21);
+            short[] params = new short[arraylist.size()];
+            for (int i = 0; i < arraylist.size(); i++) {
+                boolean value = arraylist.get(i);
+                params[i] = value ? (short) 1 : (short) 0;
+            }
 
-      // Boolean[] values1 = { false, true, true, true, false, false, true, false,
-      // false, true, true, true, false, false,
-      // true, false };
-      // List<Boolean> arraylist = new ArrayList<>(Arrays.asList(values1));
-      // Boolean[] values2 = { false, true, true, true, false, false, true, false };
-      // List<Boolean> arraylist2 = new ArrayList<>(Arrays.asList(values2));
-      // Boolean[] values3 = { false, false };
-      // List<Boolean> arraylist3 = new ArrayList<>(Arrays.asList(values3));
-
-
-
-      JSONObject jsonObject = new JSONObject();
-
-      short[] params = new short[arraylist.size()];
-      for (int i = 0; i < arraylist.size(); i++) {
-        boolean value = arraylist.get(i);
-        params[i] = value ? (short) 1 : (short) 0;
-      }
-
-      jsonObject.append("params", params);
+            jsonObject.append("params", params);
 
 //      System.out.println("messageValue锛�" + arraylist +"messageValue2锛�" + arraylist2 );
 //      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualJog");
@@ -76,62 +63,61 @@
 //        sendwServer.sendMessage(jsonObject.toString());
 //      }
 
-      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualJog");
-      if (sendwServer != null) {
-        for (WebSocketServer webserver : sendwServer) {
-          webserver.sendMessage(jsonObject.toString());
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualJog");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
 
 //      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualJog");
 
-          if (webserver != null) {
+                    if (webserver != null) {
 
 
+                        List<String> messages = webserver.getMessages();
+                        if (!messages.isEmpty()) {
+                            // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                            String lastMessage = messages.get(messages.size() - 1);
+                            // System.out.println("messages锛�" + messages);
+                            String[] parts = lastMessage.split(",");
+                            List<Integer> messageValues = new ArrayList<>();
+                            for (String part : parts) {
+                                try {
+                                    // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
+                                    String cleanedPart = part.replaceAll("[^0-9-]", "");
+                                    Integer value = Integer.parseInt(cleanedPart.trim());
+                                    messageValues.add(value);
+                                } catch (NumberFormatException e) {
+                                    // 濡傛灉鏃犳硶瑙f瀽涓烘暣鏁扮被鍨嬶紝鍒欏拷鐣ヨ閮ㄥ垎
+                                    // e.printStackTrace();
+                                }
 
-            List<String> messages = webserver.getMessages();
-            if (!messages.isEmpty()) {
-              // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-              String lastMessage = messages.get(messages.size() - 1);
-              // System.out.println("messages锛�" + messages);
-              String[] parts = lastMessage.split(",");
-              List<Integer> messageValues = new ArrayList<>();
-              for (String part : parts) {
-                try {
-                  // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
-                  String cleanedPart = part.replaceAll("[^0-9-]", "");
-                  Integer value = Integer.parseInt(cleanedPart.trim());
-                  messageValues.add(value);
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓烘暣鏁扮被鍨嬶紝鍒欏拷鐣ヨ閮ㄥ垎
-                  // e.printStackTrace();
+                            }
+                            // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
+                            List<Boolean> messageBooleans = new ArrayList<>();
+                            for (Integer value : messageValues) {
+                                messageBooleans.add(value == 1 ? true : false);
+                            }
+                            // System.out.println(messageBooleans);
+                            List<Boolean> bolList = new ArrayList<>();
+
+
+                            for (int i = 0; i < 28 && i < messageBooleans.size(); i++) {
+                                bolList.add(messageBooleans.get(i));
+                            }
+
+
+                            if (!bolList.isEmpty()) {
+                           S7control.getinstance().WriteBit(addressList21, bolList);
+                                System.out.println("messageValue锛�" + bolList + " written to PLC at address " + addressList21);
+                            }
+
+                            webserver.clearMessages();
+                        }
+                    }
                 }
 
-              }
-              // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
-              List<Boolean> messageBooleans = new ArrayList<>();
-              for (Integer value : messageValues) {
-                messageBooleans.add(value == 1 ? true : false);
-              }
-              // System.out.println(messageBooleans);
-              List<Boolean> bolList = new ArrayList<>();
-
-
-              for (int i = 0; i < 26 && i < messageBooleans.size(); i++) {
-                bolList.add(messageBooleans.get(i));
-              }
-
-
-              if (!bolList.isEmpty()) {
-                S7control.getinstance().WriteBit(addressList21, bolList);
-                System.out.println("messageValue锛�" + bolList + " written to PLC at address " + addressList21);
-              }
-
-              webserver.clearMessages();
             }
-          }
+
         }
-
-      }
-
     }
-  }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
index 811fd04..66ce3e1 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -40,7 +40,7 @@
       // // TODO Auto-generated catch block
       // e.printStackTrace();
       // }
-      List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);// 鑾峰彇prc杩涚墖璇锋眰鏁版嵁
+       List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);// 鑾峰彇prc杩涚墖璇锋眰鏁版嵁
       List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);// 鑾峰彇杩涚墖杞︾姸鎬�
       List<Short> datas1ListState2 = S7control.getinstance().ReadWord("DB105.16", 1);// 鑾峰彇杩涚墖杞︿换鍔℃槸鍚﹀惎鍔�
 
@@ -48,12 +48,14 @@
       boolean B02backs = spianService.listbool("DB106.62");// b02姹囨姤
       StringBuilder B01glassid = spianService.queGlassid("DB103.184", 14);// BO1鐨勭幓鐠僫d
       StringBuilder B02glassid = spianService.queGlassid("DB103.212", 14);// B02鐨勭幓鐠僫d
+      int aaa=1;
       // 褰撹繘鐗囧皬杞﹀畬鎴愪换鍔℃椂
       if (B01backs == true) {
         // 褰揃01灏忚溅姹囨姤瀹屾垚鏃舵洿鏀圭幓鐠冪姸鎬� 涓�1
         spianService.overtask(B01glassid.toString());// 瀹屾垚浠诲姟
         S7control.getinstance().WriteWord("DB106.60", (short) 0);// 鎭㈠B01灏忚溅搴旂瓟鏀逛负0
-        System.out.println("姹囨姤鏃禕01|" + B01glassid);
+        System.out.println("姹囨姤鏃禕01|绗�"+aaa+"娆�"+ B01glassid);
+        aaa+=1;
       }
 
       // 褰撳嚭鐗囧皬杞﹀畬鎴愪换鍔℃椂
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
index 819e14e..741e727 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
@@ -10,417 +10,267 @@
 import java.util.List;
 
 public class PlcManualonePosition extends Thread {
-  private Configuration config;
+    private Configuration config;
 
-  public PlcManualonePosition() throws IOException {
-    config = new Configuration("config.properties");
-  }
-
-
-
-  // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
-  MessageHandler customS7Control = new MessageHandler();
-
-
-
-
-  public static class PLCBooleanConverter {
-
-    public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
-      // 璁$畻鎵�鏈夊垪琛ㄤ腑鍏冪礌鐨勬�绘暟
-      int totalSize = 0;
-      for (List<Boolean> list : lists) {
-        totalSize += list.size();
-      }
-
-      // 鍒涘缓涓�涓冻澶熷ぇ鐨勬暟缁勬潵瀛樻斁鎵�鏈夌殑浜岃繘鍒跺��
-      short[] binaryShortArray = new short[totalSize];
-
-      // 褰撳墠鏁扮粍濉厖浣嶇疆鎸囬拡
-      int currentIndex = 0;
-
-      // 閬嶅巻鎵�鏈夌殑鍒楄〃
-      for (List<Boolean> list : lists) {
-        // 灏嗘瘡涓竷灏斿�艰浆鎹负 0 鎴� 1 骞跺~鍏ユ暟缁�
-        for (Boolean value : list) {
-          binaryShortArray[currentIndex++] = (short) (value ? 1 : 0);
-        }
-      }
-
-      return binaryShortArray;
+    public PlcManualonePosition() throws IOException {
+        config = new Configuration("config.properties");
     }
-  }
 
 
+    // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+    MessageHandler customS7Control = new MessageHandler();
 
 
-  @Override
-  public void run() {
-    while (this != null) {
-      try {
-        Thread.sleep(500);
+    public static class PLCBooleanConverter {
 
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-      // this.readValue();
-      // String PlcAddress = this.name;
-      // Integer Plccount = this.count;
+        public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
+            // 璁$畻鎵�鏈夊垪琛ㄤ腑鍏冪礌鐨勬�绘暟
+            int totalSize = 0;
+            for (List<Boolean> list : lists) {
+                totalSize += list.size();
+            }
 
-      List<String> addresses = new ArrayList<>();
-      addresses.add("DB100.108");
-      addresses.add("DB100.20");
-      addresses.add("DB103.32");
-      List<Short> arraylist = S7control.getinstance().readWords(addresses);
-      // System.out.println(arraylist);
+            // 鍒涘缓涓�涓冻澶熷ぇ鐨勬暟缁勬潵瀛樻斁鎵�鏈夌殑浜岃繘鍒跺��
+            short[] binaryShortArray = new short[totalSize];
 
-      List<String> addresses2 = new ArrayList<>();
-      addresses2.add("DB100.110");
-      addresses2.add("DB100.176");
-      addresses2.add("DB103.34");
-      List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
+            // 褰撳墠鏁扮粍濉厖浣嶇疆鎸囬拡
+            int currentIndex = 0;
 
-      List<String> addresses3 = new ArrayList<>();
-      addresses3.add("DB100.112");
-      addresses3.add("DB100.24");
-      addresses3.add("DB103.36");
-      List<Short> arraylist3 = S7control.getinstance().readWords(addresses3);
+            // 閬嶅巻鎵�鏈夌殑鍒楄〃
+            for (List<Boolean> list : lists) {
+                // 灏嗘瘡涓竷灏斿�艰浆鎹负 0 鎴� 1 骞跺~鍏ユ暟缁�
+                for (Boolean value : list) {
+                    binaryShortArray[currentIndex++] = (short) (value ? 1 : 0);
+                }
+            }
 
-      List<String> addresses4 = new ArrayList<>();
-      addresses4.add("DB100.114");
-      addresses4.add("DB100.178");
-      addresses4.add("DB103.40");
-      List<Short> arraylist4 = S7control.getinstance().readWords(addresses4);
+            return binaryShortArray;
+        }
+    }
 
-      List<Short> arraylist5 = S7control.getinstance().ReadWord("DB106.0", 1);
-      List<Short> arraylist6 = S7control.getinstance().ReadWord("DB106.12", 1);
-      List<Short> arraylist7 = S7control.getinstance().ReadWord("DB106.40", 1);
-      List<Short> arraylist8 = S7control.getinstance().ReadWord("DB106.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");
-      List<Boolean> arraylist9 = S7control.getinstance().readBits(addresses9);
 
-      List<String> addresses10 = new ArrayList<>();
-      addresses10.add("DB104.9.4");
-      addresses10.add("DB104.9.5");
-      addresses10.add("DB104.9.4");
-      addresses10.add("DB104.9.5");
-      List<Boolean> arraylist10 = S7control.getinstance().readBits(addresses10);
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(500);
 
-      //A01鍚姩鍦板潃
-      List<String> A01start = Arrays.asList(config.getProperty("mlp.A01start"));
-      //A02鍚姩鍦板潃
-      List<String> A02start = Arrays.asList(config.getProperty("mlp.A02start"));
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            // this.readValue();
+            // String PlcAddress = this.name;
+            // Integer Plccount = this.count;
 
-      List<String> B01start = Arrays.asList(config.getProperty("mlp.B01start"));
+            List<String> addresses = new ArrayList<>();
+            addresses.add("DB100.108");
+            addresses.add("DB100.20");
+            addresses.add("DB103.32");
+            List<Short> arraylist = S7control.getinstance().readWords(addresses);
+            // System.out.println(arraylist);
 
-      List<String> B02start = Arrays.asList(config.getProperty("mlp.B02start"));
+            List<String> addresses2 = new ArrayList<>();
+            addresses2.add("DB100.110");
+            addresses2.add("DB100.176");
+            addresses2.add("DB103.34");
+            List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
 
-      List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
-      List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
-      List<Boolean> B01readstart = S7control.getinstance().readBits(B01start);
-      List<Boolean> B02readstart = S7control.getinstance().readBits(B02start);
+            List<String> addresses3 = new ArrayList<>();
+            addresses3.add("DB100.112");
+            addresses3.add("DB100.24");
+            addresses3.add("DB103.36");
+            List<Short> arraylist3 = S7control.getinstance().readWords(addresses3);
 
-      short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
-              A01readstart,  A02readstart,B01readstart, B02readstart
-      );
+            List<String> addresses4 = new ArrayList<>();
+            addresses4.add("DB100.114");
+            addresses4.add("DB100.178");
+            addresses4.add("DB103.40");
+            List<Short> arraylist4 = S7control.getinstance().readWords(addresses4);
 
-      // Short[] values1 = { 1, 2, 3 };
-      // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
-      // Short[] values2 = { 1, 2, 3 };
-      // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
-      // Short[] values3 = { 1, 2, 3 };
-      // List<Short> arraylist3 = new ArrayList<>(Arrays.asList(values3));
-      // Short[] values4 = { 1, 2, 3 };
-      // List<Short> arraylist4 = new ArrayList<>(Arrays.asList(values4));
-      // Short[] values5 = { 5 };
-      // List<Short> arraylist5 = new ArrayList<>(Arrays.asList(values5));
-      // Short[] values6 = { 6 };
-      // List<Short> arraylist6 = new ArrayList<>(Arrays.asList(values6));
-      // Short[] values7 = { 7 };
-      // List<Short> arraylist7 = new ArrayList<>(Arrays.asList(values7));
-      // Short[] values8 = { 8 };
-      // List<Short> arraylist8 = new ArrayList<>(Arrays.asList(values8));
-      // Boolean[] values9 = { false, false, true, true };
-      // List<Boolean> arraylist9 = new ArrayList<>(Arrays.asList(values9));
-      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> arraylist5 = S7control.getinstance().ReadWord("DB106.0", 1);
+            List<Short> arraylist6 = S7control.getinstance().ReadWord("DB106.12", 1);
+            List<Short> arraylist7 = S7control.getinstance().ReadWord("DB106.40", 1);
+            List<Short> arraylist8 = S7control.getinstance().ReadWord("DB106.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");
+            List<Boolean> arraylist9 = S7control.getinstance().readBits(addresses9);
 
-      // Boolean[] values10 = { false, false, true, true };
-      // List<Boolean> arraylist10 = new ArrayList<>(Arrays.asList(values10));
-      short[] params3 = new short[arraylist10.size()];
-      for (int i = 0; i < arraylist10.size(); i++) {
-        boolean value = arraylist10.get(i);
-        params3[i] = value ? (short) 1 : (short) 0;
-      }
-      // List<Short> arraylist9 = S7control.getinstance().readWords(addresses9);
-      arraylist5.addAll(arraylist6);
-      arraylist5.addAll(arraylist7);
-      arraylist5.addAll(arraylist8);
+            List<String> addresses10 = new ArrayList<>();
+            addresses10.add("DB104.9.4");
+            addresses10.add("DB104.9.5");
+            addresses10.add("DB104.9.4");
+            addresses10.add("DB104.9.5");
+            List<Boolean> arraylist10 = S7control.getinstance().readBits(addresses10);
 
-      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", params3);
-      jsonObject.append("qidong", combinedBinaryShortArray);
+            //A01鍚姩鍦板潃
+            List<String> A01start = Arrays.asList(config.getProperty("mlp.A01start"));
+            //A02鍚姩鍦板潃
+            List<String> A02start = Arrays.asList(config.getProperty("mlp.A02start"));
+
+            List<String> B01start = Arrays.asList(config.getProperty("mlp.B01start"));
+
+            List<String> B02start = Arrays.asList(config.getProperty("mlp.B02start"));
+
+            List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
+            List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
+            List<Boolean> B01readstart = S7control.getinstance().readBits(B01start);
+            List<Boolean> B02readstart = S7control.getinstance().readBits(B02start);
+
+            short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
+                    A01readstart, A02readstart, B01readstart, B02readstart
+            );
+
+            // Short[] values1 = { 1, 2, 3 };
+            // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
+            // Short[] values2 = { 1, 2, 3 };
+            // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
+            // Short[] values3 = { 1, 2, 3 };
+            // List<Short> arraylist3 = new ArrayList<>(Arrays.asList(values3));
+            // Short[] values4 = { 1, 2, 3 };
+            // List<Short> arraylist4 = new ArrayList<>(Arrays.asList(values4));
+            // Short[] values5 = { 5 };
+            // List<Short> arraylist5 = new ArrayList<>(Arrays.asList(values5));
+            // Short[] values6 = { 6 };
+            // List<Short> arraylist6 = new ArrayList<>(Arrays.asList(values6));
+            // Short[] values7 = { 7 };
+            // List<Short> arraylist7 = new ArrayList<>(Arrays.asList(values7));
+            // Short[] values8 = { 8 };
+            // List<Short> arraylist8 = new ArrayList<>(Arrays.asList(values8));
+            // Boolean[] values9 = { false, false, true, true };
+            // List<Boolean> arraylist9 = new ArrayList<>(Arrays.asList(values9));
+            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;
+            }
+
+            // Boolean[] values10 = { false, false, true, true };
+            // List<Boolean> arraylist10 = new ArrayList<>(Arrays.asList(values10));
+            short[] params3 = new short[arraylist10.size()];
+            for (int i = 0; i < arraylist10.size(); i++) {
+                boolean value = arraylist10.get(i);
+                params3[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", params3);
+            jsonObject.append("qidong", combinedBinaryShortArray);
 
 //      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition");
 //      if (sendwServer != null) {
 //        sendwServer.sendMessage(jsonObject.toString());
 //      }
 
-      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition");
-      if (sendwServer != null) {
-        for (WebSocketServer webserver : sendwServer) {
-          webserver.sendMessage(jsonObject.toString());
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
 
 //      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition");
-      if (webserver != null) {
-        List<String> messages = webserver.getMessages();
-        List<String> waddresses1 = new ArrayList<>();
-        waddresses1.add("DB100.108");
-        waddresses1.add("DB100.20");
-        waddresses1.add("DB103.32");
+                    if (webserver != null) {
+                        List<String> messages = webserver.getMessages();
+                        List<String> waddresses1 = new ArrayList<>();
+                        waddresses1.add("DB100.108");
+                        waddresses1.add("DB100.20");
+                        waddresses1.add("DB103.32");
 
-        List<String> waddresses2 = new ArrayList<>();
-        waddresses2.add("DB100.110");
-        waddresses2.add("DB100.176");
-        waddresses2.add("DB103.34");
+                        List<String> waddresses2 = new ArrayList<>();
+                        waddresses2.add("DB100.110");
+                        waddresses2.add("DB100.176");
+                        waddresses2.add("DB103.34");
 
-        List<String> waddresses3 = new ArrayList<>();
-        waddresses3.add("DB100.112");
-        waddresses3.add("DB100.24");
-        waddresses3.add("DB103.36");
+                        List<String> waddresses3 = new ArrayList<>();
+                        waddresses3.add("DB100.112");
+                        waddresses3.add("DB100.24");
+                        waddresses3.add("DB103.36");
 
-        List<String> waddresses4 = new ArrayList<>();
-        waddresses4.add("DB100.114");
-        waddresses4.add("DB100.178");
-        waddresses4.add("DB103.40");
+                        List<String> waddresses4 = new ArrayList<>();
+                        waddresses4.add("DB100.114");
+                        waddresses4.add("DB100.178");
+                        waddresses4.add("DB103.40");
 
-        // 鏁呴殰鍦板潃
-        List<String> waddresses5 = new ArrayList<>();
-        // waddresses5.add("DB103.244");
-        // waddresses5.add("DB103.250");
-        waddresses5.add("DB103.252");
-        waddresses5.add("DB103.254");
+                        // 鏁呴殰鍦板潃
+                        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> 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<>();
+                        // 鍥為浂鍦板潃
+                        List<String> waddresses7 = new ArrayList<>();
 
-        waddresses7.add("DB101.4.5");
-        waddresses7.add("DB101.4.7");
+                        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);
+                        // 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
+                            customS7Control.WriteWordToPLC(messageArray, waddresses1, 0);
+
+
+                            // 鍐欏叆A02
+                            customS7Control.WriteWordToPLC(messageArray, waddresses2, 1);
+
+
+                            // 鍐欏叆B01
+                            customS7Control.WriteWordToPLC(messageArray, waddresses3, 2);
+
+                            // 鍐欏叆B02
+                            customS7Control.WriteWordToPLC(messageArray, waddresses4, 3);
+
+
+                            // 鍐欏叆鏁呴殰鍦板潃
+
+                            customS7Control.writeBitToPLC(messageArray, waddresses5, 4);
+
+
+                            // 鍐欏叆澶嶄綅鍦板潃
+                            customS7Control.writeBitToPLC(messageArray, waddresses6, 5);
+
+                            // 鍐欏叆鍥為浂鍦板潃
+
+                            customS7Control.writeBitToPLC(messageArray, waddresses7, 6);
+                            //A01鍚姩
+                            customS7Control.writeBitToPLC(messageArray, A01start, 7);
+                            //A02鍚姩
+                            customS7Control.writeBitToPLC(messageArray, A02start, 8);
+                            //B01鍚姩
+                            customS7Control.writeBitToPLC(messageArray, B01start, 9);
+                            //B02鍚姩
+                            customS7Control.writeBitToPLC(messageArray, B02start, 10);
+
+                            // 娓呯┖娑堟伅鍒楄〃
+                            webserver.clearMessages();
+                        }
+                    }
                 }
-              }
             }
-            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(waddresses3, 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(waddresses4, 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 jsonArray3 = messageArray.getJSONArray(5);
-            List<Boolean> sValue3 = new ArrayList<>();
-            for (int i = 0; i < jsonArray3.size(); i++) {
-              Object value = jsonArray3.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  boolean val = "1".equals(cleanedValue.trim());
-                  sValue3.add(val);
-                  System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue3.isEmpty()) {
-              S7control.getinstance().WriteBit(waddresses6, sValue3);
-              System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses6);
-            }
-          }
-
-          // 鍐欏叆鍥為浂鍦板潃
-          if (messageArray.getJSONArray(6).size() > 0) {
-            JSONArray jsonArray3 = messageArray.getJSONArray(6);
-            List<Boolean> sValue3 = new ArrayList<>();
-            for (int i = 0; i < jsonArray3.size(); i++) {
-              Object value = jsonArray3.get(i);
-              if (value != null && !value.toString().equals("null")) {
-                try {
-                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                  boolean val = "1".equals(cleanedValue.trim());
-                  sValue3.add(val);
-                  System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                } catch (NumberFormatException e) {
-                  // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                  System.err.println("Could not parse value: " + value);
-                }
-              }
-            }
-            if (!sValue3.isEmpty()) {
-              S7control.getinstance().WriteBit(waddresses7, sValue3);
-              System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses7);
-            }
-          }
-
-          customS7Control.writeBitToPLC( messageArray, A01start,7);
-          customS7Control.writeBitToPLC( messageArray, A02start,8);
-          customS7Control.writeBitToPLC( messageArray,B01start,9);
-          customS7Control.writeBitToPLC( messageArray, B02start,10);
-
-          // 娓呯┖娑堟伅鍒楄〃
-          webserver.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
index 2947528..4d24906 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
@@ -10,307 +10,200 @@
 import java.util.List;
 
 public class PlcManualonePosition2 extends Thread {
-  private Configuration config;
+    private Configuration config;
 
-  public PlcManualonePosition2() throws IOException {
-    config = new Configuration("config.properties");
-  }
-
-
-  MessageHandler customS7Control = new MessageHandler();
-  public static class PLCBooleanConverter {
-
-    public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
-      // 璁$畻鎵�鏈夊垪琛ㄤ腑鍏冪礌鐨勬�绘暟
-      int totalSize = 0;
-      for (List<Boolean> list : lists) {
-        totalSize += list.size();
-      }
-
-      // 鍒涘缓涓�涓冻澶熷ぇ鐨勬暟缁勬潵瀛樻斁鎵�鏈夌殑浜岃繘鍒跺��
-      short[] binaryShortArray = new short[totalSize];
-
-      // 褰撳墠鏁扮粍濉厖浣嶇疆鎸囬拡
-      int currentIndex = 0;
-
-      // 閬嶅巻鎵�鏈夌殑鍒楄〃
-      for (List<Boolean> list : lists) {
-        // 灏嗘瘡涓竷灏斿�艰浆鎹负 0 鎴� 1 骞跺~鍏ユ暟缁�
-        for (Boolean value : list) {
-          binaryShortArray[currentIndex++] = (short) (value ? 1 : 0);
-        }
-      }
-
-      return binaryShortArray;
+    public PlcManualonePosition2() throws IOException {
+        config = new Configuration("config.properties");
     }
-  }
 
 
+    MessageHandler customS7Control = new MessageHandler();
+
+    public static class PLCBooleanConverter {
+
+        public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
+            // 璁$畻鎵�鏈夊垪琛ㄤ腑鍏冪礌鐨勬�绘暟
+            int totalSize = 0;
+            for (List<Boolean> list : lists) {
+                totalSize += list.size();
+            }
+
+            // 鍒涘缓涓�涓冻澶熷ぇ鐨勬暟缁勬潵瀛樻斁鎵�鏈夌殑浜岃繘鍒跺��
+            short[] binaryShortArray = new short[totalSize];
+
+            // 褰撳墠鏁扮粍濉厖浣嶇疆鎸囬拡
+            int currentIndex = 0;
+
+            // 閬嶅巻鎵�鏈夌殑鍒楄〃
+            for (List<Boolean> list : lists) {
+                // 灏嗘瘡涓竷灏斿�艰浆鎹负 0 鎴� 1 骞跺~鍏ユ暟缁�
+                for (Boolean value : list) {
+                    binaryShortArray[currentIndex++] = (short) (value ? 1 : 0);
+                }
+            }
+
+            return binaryShortArray;
+        }
+    }
 
 
-  @Override
-  public void run() {
-    while (this != null) {
-      try {
-        Thread.sleep(500);
+    @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;
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            // this.readValue();
+            // String PlcAddress = this.name;
+            // Integer Plccount = this.count;
 
-      List<String> addresses = new ArrayList<>();
-      addresses.add("DB100.116");
-      addresses.add("DB100.16");
+            List<String> addresses = new ArrayList<>();
+            addresses.add("DB100.116");
+            addresses.add("DB100.16");
 
-      addresses.add("DB103.20");
-      List<Short> arraylist = S7control.getinstance().readWords(addresses);
-      // System.out.println(arraylist);
+            addresses.add("DB106.2");
+            List<Short> arraylist = S7control.getinstance().readWords(addresses);
+            // System.out.println(arraylist);
 
-      List<String> addresses2 = new ArrayList<>();
-      addresses2.add("DB100.118");
-      addresses2.add("DB100.192");
+            List<String> addresses2 = new ArrayList<>();
+            addresses2.add("DB100.118");
+            addresses2.add("DB100.192");
 
-      addresses2.add("DB103.22");
-      List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
+            addresses2.add("DB103.22");
+            List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
 
-      List<String> addresses9 = new ArrayList<>();
+            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;
-      }
+            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;
+            }
 
-      // Short[] values1 = { 1, 2, 3 };
-      // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
-      // Short[] values2 = { 1, 2, 3 };
-      // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
-      // Boolean[] values9 = { false, true };
-      // List<Boolean> arraylist9 = new ArrayList<>(Arrays.asList(values9));
-      // 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;
-      // }
+            // Short[] values1 = { 1, 2, 3 };
+            // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
+            // Short[] values2 = { 1, 2, 3 };
+            // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
+            // Boolean[] values9 = { false, true };
+            // List<Boolean> arraylist9 = new ArrayList<>(Arrays.asList(values9));
+            // 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;
+            // }
 
-      // Boolean[] values10 = { false, true };
-      List<String> addresses10 = new ArrayList<>();
+            // Boolean[] values10 = { false, true };
+            List<String> addresses10 = new ArrayList<>();
 
-      addresses10.add("DB104.9.0");
-      addresses10.add("DB104.9.1");
-      List<Boolean> arraylist10 = S7control.getinstance().readBits(addresses10);
-      short[] params3 = new short[arraylist10.size()];
-      for (int i = 0; i < arraylist10.size(); i++) {
-        boolean value = arraylist10.get(i);
-        params3[i] = value ? (short) 1 : (short) 0;
-      }
+            addresses10.add("DB104.9.0");
+            addresses10.add("DB104.9.1");
+            List<Boolean> arraylist10 = S7control.getinstance().readBits(addresses10);
+            short[] params3 = new short[arraylist10.size()];
+            for (int i = 0; i < arraylist10.size(); i++) {
+                boolean value = arraylist10.get(i);
+                params3[i] = value ? (short) 1 : (short) 0;
+            }
 
 
-
-      //A01鍚姩鍦板潃
-      List<String> A01start = Arrays.asList(config.getProperty("mlp2.A01start"));
-      //A02鍚姩鍦板潃
-      List<String> A02start = Arrays.asList(config.getProperty("mlp2.A02start"));
+            //A01鍚姩鍦板潃
+            List<String> A01start = Arrays.asList(config.getProperty("mlp2.A01start"));
+            //A02鍚姩鍦板潃
+            List<String> A02start = Arrays.asList(config.getProperty("mlp2.A02start"));
 
 
-
-      List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
-      List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
+            List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
+            List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
 
 
-      short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
-              A01readstart,  A02readstart
-      );
+            short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
+                    A01readstart, A02readstart
+            );
 
-      JSONObject jsonObject = new JSONObject();
+            JSONObject jsonObject = new JSONObject();
 
-      jsonObject.append("zuhe1", arraylist);
-      jsonObject.append("zuhe2", arraylist2);
-      jsonObject.append("guzhang", params2);
-      jsonObject.append("weihuiling", params3);
-      jsonObject.append("qidong", combinedBinaryShortArray);
-      // System.out.println(jsonObject);
+            jsonObject.append("zuhe1", arraylist);
+            jsonObject.append("zuhe2", arraylist2);
+            jsonObject.append("guzhang", params2);
+            jsonObject.append("weihuiling", params3);
+            jsonObject.append("qidong", combinedBinaryShortArray);
+            // System.out.println(jsonObject);
 //      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
 //      if (sendwServer != null) {
 //        sendwServer.sendMessage(jsonObject.toString());
 //      }
-      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
-      if (sendwServer != null) {
-        for (WebSocketServer webserver : sendwServer) {
-          webserver.sendMessage(jsonObject.toString());
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
 
 //      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition2");
-          if (webserver != null) {
-            List<String> messages = webserver.getMessages();
-            List<String> waddresses1 = new ArrayList<>();
-            waddresses1.add("DB100.116");
-            waddresses1.add("DB100.16");
+                    if (webserver != null) {
+                        List<String> messages = webserver.getMessages();
+                        List<String> waddresses1 = new ArrayList<>();
+                        waddresses1.add("DB100.116");
+                        waddresses1.add("DB100.16");
 
 
-            List<String> waddresses2 = new ArrayList<>();
-            waddresses2.add("DB100.118");
-            waddresses2.add("DB100.192");
+                        List<String> waddresses2 = new ArrayList<>();
+                        waddresses2.add("DB100.118");
+                        waddresses2.add("DB100.192");
 
 
-            // 鏁呴殰鍦板潃
-            List<String> waddresses3 = new ArrayList<>();
-            waddresses3.add("DB103.242");
-            waddresses3.add("DB103.248");
+                        // 鏁呴殰鍦板潃
+                        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> 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");
+                        // 鍥為浂鍦板潃
+                        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);
+                        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);
+                            // A01涓嬪彂
+                            customS7Control.WriteWordToPLC(messageArray, waddresses1, 0);
+
+
+                            // A02涓嬪彂
+                            customS7Control.WriteWordToPLC(messageArray, waddresses2, 1);
+
+
+                            // 鍐欏叆鏁呴殰鍦板潃
+                            customS7Control.WriteWordToPLC(messageArray, waddresses3, 2);
+
+
+                            // 鍐欏叆澶嶄綅鍦板潃
+                            customS7Control.writeBitToPLC(messageArray, waddresses4, 3);
+
+
+                            // 鍐欏叆鍥為浂鍦板潃
+                            customS7Control.writeBitToPLC(messageArray, waddresses5, 4);
+
+                            customS7Control.writeBitToPLC(messageArray, A01start, 5);
+                            customS7Control.writeBitToPLC(messageArray, A02start, 6);
+
+                            // 娓呯┖娑堟伅鍒楄〃
+                            webserver.clearMessages();
+                        }
                     }
-                  }
                 }
-                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 jsonArray3 = messageArray.getJSONArray(3);
-                List<Boolean> sValue3 = new ArrayList<>();
-                for (int i = 0; i < jsonArray3.size(); i++) {
-                  Object value = jsonArray3.get(i);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      boolean val = "1".equals(cleanedValue.trim());
-                      sValue3.add(val);
-                      System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
-                    }
-                  }
-                }
-                if (!sValue3.isEmpty()) {
-                  S7control.getinstance().WriteBit(waddresses4, sValue3);
-                  System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses4);
-                }
-              }
-
-              // 鍐欏叆鍥為浂鍦板潃
-              if (messageArray.getJSONArray(4).size() > 0) {
-                JSONArray jsonArray3 = messageArray.getJSONArray(4);
-                List<Boolean> sValue3 = new ArrayList<>();
-                for (int i = 0; i < jsonArray3.size(); i++) {
-                  Object value = jsonArray3.get(i);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      boolean val = "1".equals(cleanedValue.trim());
-                      sValue3.add(val);
-                      System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
-                    }
-                  }
-                }
-                if (!sValue3.isEmpty()) {
-                  S7control.getinstance().WriteBit(waddresses5, sValue3);
-                  System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses5);
-                }
-              }
-
-
-              customS7Control.writeBitToPLC( messageArray, A01start,5);
-              customS7Control.writeBitToPLC( messageArray, A02start,6);
-
-              // 娓呯┖娑堟伅鍒楄〃
-              webserver.clearMessages();
             }
-          }
         }
-      }
     }
-  }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter1.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter1.java
index 739f205..56947cc 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter1.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter1.java
@@ -10,202 +10,130 @@
 import java.util.List;
 
 public class PlcParameter1 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");
-  }
+    MessageHandler customS7Control = new MessageHandler();
 
-  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;
-      }
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(1000);
 
-      // 灏唖tr瀛楃涓叉牸寮忚浆涓簀son
-      JSONObject jsonObject = new JSONObject(str);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
 
-      // 鑾峰彇json涓殑鍊�
-      JSONArray address = jsonObject.getJSONArray("address");
-      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(1000);
-
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-      // this.readValue();
-      // String PlcAddress = this.name;
-      // Integer Plccount = this.count;
-
-      // System.out.println(stt);
-      List<String> addresses = new ArrayList<>();
-      addresses.add("DB100.0");
-      addresses.add("DB100.2");
-      addresses.add("DB100.4");
-      addresses.add("DB100.6");
-      addresses.add("DB100.26");
-      addresses.add("DB100.28");
-      addresses.add("DB100.30");
-      addresses.add("DB100.32");
-      addresses.add("DB100.34");
-      addresses.add("DB100.36");
-      addresses.add("DB100.38");
-      addresses.add("DB100.40");
-      List<Short> arraylist = S7control.getinstance().readWords(addresses);
+            // System.out.println(stt);
+            List<String> addresses = new ArrayList<>();
+            addresses.add("DB100.0");
+            addresses.add("DB100.2");
+            addresses.add("DB100.4");
+            addresses.add("DB100.6");
+            addresses.add("DB100.26");
+            addresses.add("DB100.28");
+            addresses.add("DB100.30");
+            addresses.add("DB100.32");
+            addresses.add("DB100.34");
+            addresses.add("DB100.36");
+            addresses.add("DB100.38");
+            addresses.add("DB100.40");
+            List<Short> arraylist = S7control.getinstance().readWords(addresses);
 //缈昏浆
-    List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.8", 1);
-    List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.12", 1);
-      // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
-      // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
-      // Short[] fanzhuan = { 4 };
-      // List<Short> fanzhuan1 = new ArrayList<>(Arrays.asList(fanzhuan));
-      // Short[] xiaoche = {5};
-      // List<Short> xiaoche1 = new ArrayList<>(Arrays.asList(xiaoche));
+            List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.8", 1);
+            List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.12", 1);
+            // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
+            // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
+            // Short[] fanzhuan = { 4 };
+            // List<Short> fanzhuan1 = new ArrayList<>(Arrays.asList(fanzhuan));
+            // Short[] xiaoche = {5};
+            // List<Short> xiaoche1 = new ArrayList<>(Arrays.asList(xiaoche));
 
-      JSONObject jsonObject = new JSONObject();
-      // new short[]{1,1, 1, 1, 1, 1, 2, 33, 2,3, 4, 5}
-      // new short[]{0,0, 0, 0, 0, 0, 0, 0, 0, 0}
+            JSONObject jsonObject = new JSONObject();
+            // new short[]{1,1, 1, 1, 1, 1, 2, 33, 2,3, 4, 5}
+            // new short[]{0,0, 0, 0, 0, 0, 0, 0, 0, 0}
 
-      jsonObject.append("params", arraylist);
-     jsonObject.append("fanzhuan", fanzhuan1);
-     jsonObject.append("xiaoche", xiaoche1);
+            jsonObject.append("params", arraylist);
+            jsonObject.append("fanzhuan", fanzhuan1);
+            jsonObject.append("xiaoche", xiaoche1);
 
 //      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter1");
 //      if (sendwServer != null) {
 //        sendwServer.sendMessage(jsonObject.toString());
 //      }
 
-      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter1");
-      if (sendwServer != null) {
-        for (WebSocketServer webserver : sendwServer) {
-          webserver.sendMessage(jsonObject.toString());
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter1");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
 
 
-          if (webserver != null) {
-            List<String> messages = webserver.getMessages();
-            List<String> waddresses1 = new ArrayList<>();
-            waddresses1.add("DB100.0");
-            waddresses1.add("DB100.2");
-            waddresses1.add("DB100.4");
-            waddresses1.add("DB100.6");
-            waddresses1.add("DB100.26");
-            waddresses1.add("DB100.28");
-            waddresses1.add("DB100.30");
-            waddresses1.add("DB100.32");
-            waddresses1.add("DB100.34");
-            waddresses1.add("DB100.36");
-            waddresses1.add("DB100.38");
-            waddresses1.add("DB100.40");
+                    if (webserver != null) {
+                        List<String> messages = webserver.getMessages();
+                        List<String> waddresses1 = new ArrayList<>();
+                        waddresses1.add("DB100.0");
+                        waddresses1.add("DB100.2");
+                        waddresses1.add("DB100.4");
+                        waddresses1.add("DB100.6");
+                        waddresses1.add("DB100.26");
+                        waddresses1.add("DB100.28");
+                        waddresses1.add("DB100.30");
+                        waddresses1.add("DB100.32");
+                        waddresses1.add("DB100.34");
+                        waddresses1.add("DB100.36");
+                        waddresses1.add("DB100.38");
+                        waddresses1.add("DB100.40");
 
-            String addressList2 = "DB100.8";
-            String addressList3 = "DB100.12";
+                        String addressList2 = "DB100.8";
+                        String addressList3 = "DB100.12";
 
-            if (!messages.isEmpty()) {
-              // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
-              String lastMessage = messages.get(messages.size() - 1);
-              // System.out.println("lastMessage锛�" + lastMessage);
-              JSONArray messageArray = new JSONArray(lastMessage);
+                        if (!messages.isEmpty()) {
+                            // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
+                            String lastMessage = messages.get(messages.size() - 1);
+                            // System.out.println("lastMessage锛�" + lastMessage);
+                            JSONArray messageArray = new JSONArray(lastMessage);
 
-              // 鏁村悎绗� 1 鍒� 3 涓暟缁勫苟鍘绘帀 null 鍏冪礌
-              List<Short> mergedList = new ArrayList<>();
-              for (int i = 0; i < 3; i++) {
-                JSONArray sublist = messageArray.getJSONArray(i);
-                for (int j = 0; j < sublist.size(); j++) {
-                  Object value = sublist.get(j);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      short sValue = Short.parseShort(cleanedValue.trim());
-                      mergedList.add(sValue);
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
+                            // 鏁村悎绗� 1 鍒� 3 涓暟缁勫苟鍘绘帀 null 鍏冪礌
+                            List<Short> mergedList = new ArrayList<>();
+                            for (int i = 0; i < 3; i++) {
+                                JSONArray sublist = messageArray.getJSONArray(i);
+                                for (int j = 0; j < sublist.size(); j++) {
+                                    Object value = sublist.get(j);
+                                    if (value != null && !value.toString().equals("null")) {
+                                        try {
+                                            String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                                            short sValue = Short.parseShort(cleanedValue.trim());
+                                            mergedList.add(sValue);
+                                        } catch (NumberFormatException e) {
+                                            // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
+                                            System.err.println("Could not parse value: " + value);
+                                        }
+                                    }
+                                }
+                            }
+
+                            // 鍐欏叆绗竴涓湴鍧�
+                            customS7Control.WriteWordsToPLC(messageArray, addressList2, 3);
+
+
+                            // 鍐欏叆绗簩涓湴鍧�
+                            customS7Control.WriteWordsToPLC(messageArray, addressList3, 4);
+
+
+                            // 鍐欏叆绗笁涓湴鍧�
+                            if (!mergedList.isEmpty()) {
+                                S7control.getinstance().WriteWord(waddresses1, mergedList);
+                                System.out.println("messageValue锛�" + mergedList + " written to PLC at address " + waddresses1);
+                            }
+
+                            // 娓呯┖娑堟伅鍒楄〃
+                            webserver.clearMessages();
+                        }
                     }
-                  }
                 }
-              }
 
-              // 鍐欏叆绗竴涓湴鍧�
-              if (messageArray.getJSONArray(3).size() > 0) {
-                Object value = messageArray.getJSONArray(3).get(0);
-                if (value != null && !value.toString().equals("null")) {
-                  try {
-                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                    short sValue = Short.parseShort(cleanedValue.trim());
-                    S7control.getinstance().WriteWord(addressList2, Arrays.asList(sValue));
-                    System.out
-                            .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList2);
-                  } catch (NumberFormatException e) {
-                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                    System.err.println("Could not parse value: " + value);
-                  }
-                }
-              }
-
-              // 鍐欏叆绗簩涓湴鍧�
-              if (messageArray.getJSONArray(4).size() > 0) {
-                Object value = messageArray.getJSONArray(4).get(0);
-                if (value != null && !value.toString().equals("null")) {
-                  try {
-                    String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                    short sValue = Short.parseShort(cleanedValue.trim());
-                    S7control.getinstance().WriteWord(addressList3, Arrays.asList(sValue));
-                    System.out
-                            .println("messageValue锛�" + Arrays.asList(sValue) + " written to PLC at address " + addressList3);
-                  } catch (NumberFormatException e) {
-                    // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                    System.err.println("Could not parse value: " + value);
-                  }
-                }
-              }
-
-              // 鍐欏叆绗笁涓湴鍧�
-              if (!mergedList.isEmpty()) {
-                S7control.getinstance().WriteWord(waddresses1, mergedList);
-                System.out.println("messageValue锛�" + mergedList + " written to PLC at address " + waddresses1);
-              }
-
-              // 娓呯┖娑堟伅鍒楄〃
-              webserver.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 361b818..89f1811 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
@@ -12,144 +12,67 @@
 
 
 public class PlcParameter2 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");
-  }
+    // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+    private Configuration config;
 
-  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;
-      }
+    // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+    MessageHandler customS7Control = new MessageHandler();
 
-      // 灏唖tr瀛楃涓叉牸寮忚浆涓簀son
-      JSONObject jsonObject = new JSONObject(str);
 
-      // 鑾峰彇json涓殑鍊�
-      JSONArray address = jsonObject.getJSONArray("Positioning1");
-      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();
+    public PlcParameter2() throws IOException {
+        config = new Configuration("config.properties");
     }
-  }
 
-  @Override
-  public void run() {
-    while (this != null) {
-      try {
-        Thread.sleep(1000);
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(1000);
 
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
 
-     //  鎵嬪姩鐘舵�佸湴鍧�
-      List<String> addressList1 = new ArrayList<>();
+            //  id
+            List<String> addressList1 = Arrays.asList(config.getProperty("Parameter2.id").split(","));
 
-      addressList1.add("DB103.44");//D01
-      addressList1.add("DB103.58");//D02
-      addressList1.add("DB103.72");//D03
-      addressList1.add("DB103.86");//D04
-      addressList1.add("DB103.100");//D05
-      addressList1.add("DB103.114");//D06
-      addressList1.add("DB103.128");//A01
-      addressList1.add("DB103.142");//A01 2
-      addressList1.add("DB103.156");//A02
-      addressList1.add("DB103.184");//B01
-      addressList1.add("DB103.212");//B02
+            List<String> paramlist = S7control.getinstance().readStrings(addressList1);
 
 
-      List<String> paramlist = S7control.getinstance().readStrings(addressList1);
+            //鎵嬪姩鐘舵��
+            List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(","));
+
+            List<Short> data = S7control.getinstance().readWords(addresses);
 
 
-   //娓呴櫎ID鍦板潃
-      List<String> addresses = new ArrayList<>();
-      addresses.add("DB103.0");
-      addresses.add("DB103.2");
-      addresses.add("DB103.12");
-      addresses.add("DB103.14");
-      addresses.add("DB103.16");
-      addresses.add("DB103.18");
-      addresses.add("DB103.8");
-      addresses.add("DB103.10");
-      addresses.add("DB103.4");
-      addresses.add("DB103.6");
-      List<Short> data = S7control.getinstance().readWords(addresses);
+            //娓呴櫎id
+            List<String> addressList0 = Arrays.asList(config.getProperty("Parameter2.cleanid").split(","));
 
 
-      //id
-      List<String> addressList0 = new ArrayList<>();
+            // 鎵爜鏋�
+            List<Boolean> data2 = S7control.getinstance().readBits(addressList0);
+            List<String> addressList3 = Arrays.asList(config.getProperty("Parameter2.scanner").split(","));
 
-      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");
+//鎬ュ仠鎸夐挳
+            List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(","));
 
-      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(addressList0);
-      List<String> addressList3 = new ArrayList<>();
-      addressList3.add("DB103.256");
-      addressList3.add("DB103.270");
+            List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
 
 
-
-
-      List<String> niuanaddressList3 = new ArrayList<>();
-
-      niuanaddressList3.add("DB101.10.4");
-      List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
-
-
-
-      List<String> data3 = S7control.getinstance().readStrings(addressList3);
+            List<String> data3 = S7control.getinstance().readStrings(addressList3);
 // A01 A02 B01 B02
-      List<String> addresses4 = new ArrayList<>();
-      addresses4.add("DB103.32");
-      addresses4.add("DB103.34");
-      addresses4.add("DB103.36");
-      addresses4.add("DB103.40");
 
-    List<Short> data4 = S7control.getinstance().readWords(addresses4);
+            List<String> addresses4 = Arrays.asList(config.getProperty("Parameter2.Currentcell").split(","));
+
+
+            List<Short> data4 = S7control.getinstance().readWords(addresses4);
 
 //      List<Long> TIME2 = Collections.singletonList(S7control.getinstance().readtime("DB100.194"));
 //      System.out.println("addressList锛�" + TIME2);
 
 
-      //
-
+            //
 
 
 //
@@ -166,25 +89,25 @@
 //      List<Short> data4 = new ArrayList<>(Arrays.asList(values4));
 //
 //
-      JSONObject jsonObject = new JSONObject();
-      short[] params = new short[data2.size()];
-      for (int i = 0; i < data2.size(); i++) {
-        boolean value = data2.get(i);
-        params[i] = value ? (short) 1 : (short) 0;
-      }
+            JSONObject jsonObject = new JSONObject();
+            short[] params = new short[data2.size()];
+            for (int i = 0; i < data2.size(); i++) {
+                boolean value = data2.get(i);
+                params[i] = value ? (short) 1 : (short) 0;
+            }
 //
-      short[] anniuparams = new short[anniuread.size()];
-      for (int i = 0; i < anniuread.size(); i++) {
-        boolean value = anniuread.get(i);
-        anniuparams[i] = value ? (short) 1 : (short) 0;
-      }
+            short[] anniuparams = new short[anniuread.size()];
+            for (int i = 0; i < anniuread.size(); i++) {
+                boolean value = anniuread.get(i);
+                anniuparams[i] = value ? (short) 1 : (short) 0;
+            }
 
-      jsonObject.append("params", params);
-      jsonObject.append("params", paramlist);
-      jsonObject.append("params", data);
-      jsonObject.append("params", data3);
-      jsonObject.append("params", data4);
-     jsonObject.append("jiting", anniuparams);
+            jsonObject.append("params", params);
+            jsonObject.append("params", paramlist);
+            jsonObject.append("params", data);
+            jsonObject.append("params", data3);
+            jsonObject.append("params", data4);
+            jsonObject.append("jiting", anniuparams);
 
 
 //      WebSocketServer sendwServer = WebSocketServer.getWebSocketServer("Parameter2");
@@ -194,92 +117,35 @@
 //        sendwServer.sendMessage(jsonObject.toString());
 //      }
 
-      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2");
- if (sendwServer != null) {
-     for (WebSocketServer webserver : sendwServer) {
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
 
-         webserver.sendMessage(jsonObject.toString());
+                    webserver.sendMessage(jsonObject.toString());
 
 
-         if (webserver != null) {
+                    if (webserver != null) {
 
 
-             List<String> messages = webserver.getMessages();
-             List<String> addressList = new ArrayList<>();
-
-             addressList.add("DB101.9.2");
-             addressList.add("DB101.9.3");
-             addressList.add("DB101.9.4");
-             addressList.add("DB101.9.5");
-             addressList.add("DB101.9.6");
-             addressList.add("DB101.9.7");
-             addressList.add("DB101.10.0");
-             addressList.add("DB101.10.1");
-             addressList.add("DB101.10.2");
-             addressList.add("DB101.10.3");
+                        List<String> messages = webserver.getMessages();
 
 
-             if (!messages.isEmpty()) {
-                 // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                 String lastMessage = messages.get(messages.size() - 1);
+                        if (!messages.isEmpty()) {
+                            // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                            String lastMessage = messages.get(messages.size() - 1);
 //        System.out.println("lastMessage锛�" + lastMessage);
-                 JSONArray messageArray = new JSONArray(lastMessage);
-
-                 if (messageArray.getJSONArray(0).size() > 0) {
-                     JSONArray jsonArray3 = messageArray.getJSONArray(0);
-                     List<Boolean> sValue3 = new ArrayList<>();
-                     for (int i = 0; i < jsonArray3.size(); i++) {
-                         Object value = jsonArray3.get(i);
-                         if (value != null && !value.toString().equals("null")) {
-                             try {
-                                 String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                                 boolean val = "1".equals(cleanedValue.trim());
-                                 sValue3.add(val);
-                                 System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                             } catch (NumberFormatException e) {
-                                 // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                                 System.err.println("Could not parse value: " + value);
-                             }
-                         }
-                     }
-                     if (!sValue3.isEmpty()) {
-           S7control.getinstance().WriteBit(addressList, sValue3);
-                         System.out.println("Values " + sValue3 + " written to PLC at address " + addressList);
-                     }
-                 }
-                 // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
-                 if (messageArray.getJSONArray(1).size() > 0) {
-                     JSONArray jsonArray3 = messageArray.getJSONArray(1);
-                     List<Boolean> sValue3 = new ArrayList<>();
-                     for (int i = 0; i < jsonArray3.size(); i++) {
-                         Object value = jsonArray3.get(i);
-                         if (value != null && !value.toString().equals("null")) {
-                             try {
-                                 String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                                 boolean val = "1".equals(cleanedValue.trim());
-                                 sValue3.add(val);
-                                 System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                             } catch (NumberFormatException e) {
-                                 // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                                 System.err.println("Could not parse value: " + value);
-                             }
-                         }
-                     }
-                     if (!sValue3.isEmpty()) {
-             S7control.getinstance().WriteBit(niuanaddressList3, sValue3);
-
-                         System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3);
-                     }
-                 }
-
-
-                 // 娓呯┖娑堟伅鍒楄〃
-                 webserver.clearMessages();
-             }
-         }
-     }
- }
-      }
+                            JSONArray messageArray = new JSONArray(lastMessage);
+                            //娓呴櫎ID
+                            customS7Control.writeBitToPLC(messageArray, addressList0, 0);
+                            //鎬ュ仠
+                            customS7Control.writeBitToPLC(messageArray, niuanaddressList3, 1);
+                            // 娓呯┖娑堟伅鍒楄〃
+                            webserver.clearMessages();
+                        }
+                    }
+                }
+            }
+        }
     }
-  }
+}
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
index 6c3299a..67956dd 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
@@ -17,53 +17,7 @@
 import org.apache.commons.io.FileUtils;
 
 public class PlcPositioning1 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("Positioning1");
-            for (int i = 0; i < address.size(); i++) {
-                JSONObject ress = (JSONObject) address.get(i);
-
-                this.name = ress.getStr("name");
-                this.count = ress.getInt("count");
-                System.out.println("messageValues锛�" + this.name);
-                System.out.println("messageValues锛�" + this.count);
-            }
-
-        } catch (FileNotFoundException e) {
-            e.printStackTrace();
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
 
     @Override
     public void run() {
@@ -74,21 +28,15 @@
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
-//        this.readValue();
-//            String PlcAddress = this.name;
-//            Integer Plccount = this.count;
+
 
             // System.out.println(stt);
             //瀛樼墖鏍�  鍑虹墖鏍艰鍙�
-  List<Short> arraylist = S7control.getinstance().ReadWord("DB100.42", 33);
+          List<Short> arraylist = S7control.getinstance().ReadWord("DB100.42", 33);
 //            System.out.println(arraylist);
-//            Short[] 瀛樼墖 = { 1 };
-//            List<Short> 瀛樼墖1 = new ArrayList<>(Arrays.asList(瀛樼墖));
-//            Short[] 鎺ョ墖 = { 1 };
-//            List<Short> 鎺ョ墖1 = new ArrayList<>(Arrays.asList(鎺ョ墖));
-//            Short[] 闂磋窛 = { 1 };
-//            List<Short> 闂磋窛1 = new ArrayList<>(Arrays.asList(闂磋窛));
-//            Short[] values1 = {1,1,1, 1,2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12,13,14,15,16,17,18,19,20 };
+
+
+//            Short[] values1 = {1,1,1, 1,2, 3, 4, 5, 6, 7, 8, 9, 10,11, 12,13,14,15,16,17,18,19,20,11, 12,13,14,15,16,17,18,19,20 };
 //            List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
 
 
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 2182ee9..fbc5c1c 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
@@ -10,53 +10,7 @@
 import java.util.List;
 
 public class PlcPositioning2 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("Positioning2");
-            for (int i = 0; i < address.size(); i++) {
-                JSONObject ress = (JSONObject) address.get(i);
-
-                this.name = ress.getStr("name");
-                this.count = ress.getInt("count");
-                System.out.println("messageValues锛�" + this.name);
-                System.out.println("messageValues锛�" + this.count);
-            }
-
-        } catch (FileNotFoundException e) {
-            e.printStackTrace();
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
 
     @Override
     public void run() {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
index 7d5e20e..1388c26 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
@@ -13,171 +13,167 @@
 public class PlcServoManualone extends Thread {
 
 
-  // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
-  private Configuration config;
+    // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+    private Configuration config;
 
-  // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
-  MessageHandler customS7Control = new MessageHandler();
+    // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+    MessageHandler customS7Control = new MessageHandler();
 
 
-  public PlcServoManualone() throws IOException {
-    config = new Configuration("config.properties");
-  }
+    public PlcServoManualone() throws IOException {
+        config = new Configuration("config.properties");
+    }
 
-//灏嗗竷灏斿垪琛ㄨ浆鎹负浜岃繘鍒剁殑 short 鏁扮粍
-  public static class PLCBooleanConverter {
+    //灏嗗竷灏斿垪琛ㄨ浆鎹负浜岃繘鍒剁殑 short 鏁扮粍
+    public static class PLCBooleanConverter {
 
-    public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
-      // 璁$畻鎵�鏈夊垪琛ㄤ腑鍏冪礌鐨勬�绘暟
-      int totalSize = 0;
-      for (List<Boolean> list : lists) {
-        totalSize += list.size();
-      }
+        public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
+            // 璁$畻鎵�鏈夊垪琛ㄤ腑鍏冪礌鐨勬�绘暟
+            int totalSize = 0;
+            for (List<Boolean> list : lists) {
+                totalSize += list.size();
+            }
 
-      // 鍒涘缓涓�涓冻澶熷ぇ鐨勬暟缁勬潵瀛樻斁鎵�鏈夌殑浜岃繘鍒跺��
-      short[] binaryShortArray = new short[totalSize];
+            // 鍒涘缓涓�涓冻澶熷ぇ鐨勬暟缁勬潵瀛樻斁鎵�鏈夌殑浜岃繘鍒跺��
+            short[] binaryShortArray = new short[totalSize];
 
-      // 褰撳墠鏁扮粍濉厖浣嶇疆鎸囬拡
-      int currentIndex = 0;
+            // 褰撳墠鏁扮粍濉厖浣嶇疆鎸囬拡
+            int currentIndex = 0;
 
-      // 閬嶅巻鎵�鏈夌殑鍒楄〃
-      for (List<Boolean> list : lists) {
-        // 灏嗘瘡涓竷灏斿�艰浆鎹负 0 鎴� 1 骞跺~鍏ユ暟缁�
-        for (Boolean value : list) {
-          binaryShortArray[currentIndex++] = (short) (value ? 1 : 0);
+            // 閬嶅巻鎵�鏈夌殑鍒楄〃
+            for (List<Boolean> list : lists) {
+                // 灏嗘瘡涓竷灏斿�艰浆鎹负 0 鎴� 1 骞跺~鍏ユ暟缁�
+                for (Boolean value : list) {
+                    binaryShortArray[currentIndex++] = (short) (value ? 1 : 0);
+                }
+            }
+
+            return binaryShortArray;
         }
-      }
-
-      return binaryShortArray;
     }
-  }
 
-//璇诲彇id
-  public StringBuilder queGlassid(String address,int count) {
-    StringBuilder writedstrIdOut = new StringBuilder();
-    byte[] writedglassidbytesOut = S7control.getinstance().ReadByte(address, count);
-    if (writedglassidbytesOut != null) {
-      // 鑾峰彇鐜荤拑id
-      for (byte iditem : writedglassidbytesOut) {
-        writedstrIdOut.append((char) iditem);
-      }
+    //璇诲彇id
+    public StringBuilder queGlassid(String address, int count) {
+        StringBuilder writedstrIdOut = new StringBuilder();
+        byte[] writedglassidbytesOut = S7control.getinstance().ReadByte(address, count);
+        if (writedglassidbytesOut != null) {
+            // 鑾峰彇鐜荤拑id
+            for (byte iditem : writedglassidbytesOut) {
+                writedstrIdOut.append((char) iditem);
+            }
+        }
+        return writedstrIdOut;
     }
-    return writedstrIdOut;
-  }
 
 
-  @Override
-  public void run() {
-    while (this != null) {
-      try {
-        Thread.sleep(1000);
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(1000);
 
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
 
 
 //A01缁勫悎涓湴鍧�琛ㄩ泦鍚�
-      List<String> addresses = Arrays.asList(config.getProperty("A01.addresses").split(","));
-      //System.out.println(addresses);
+            List<String> addresses = Arrays.asList(config.getProperty("A01.addresses").split(","));
+            //System.out.println(addresses);
 
-      List<Short> arraylist = S7control.getinstance().readWords(addresses);
+            List<Short> arraylist = S7control.getinstance().readWords(addresses);
 
 //A02缁勫悎涓湴鍧�琛ㄩ泦鍚�
-      List<String> addresses2 = Arrays.asList(config.getProperty("A02.addresses").split(","));
-      List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
+            List<String> addresses2 = Arrays.asList(config.getProperty("A02.addresses").split(","));
+            List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
 
-      //A01缈昏浆鍦板潃
-      List<String> addresses3 = Arrays.asList(config.getProperty("A01.flipAddress"));
-      List<Short> arraylist3 = S7control.getinstance().readWords(addresses3);
+            //A01缈昏浆鍦板潃
+            List<String> addresses3 = Arrays.asList(config.getProperty("A01.flipAddress"));
+            List<Short> arraylist3 = S7control.getinstance().readWords(addresses3);
 
-      //A02缈昏浆鍦板潃
-      List<String> addresses4 = Arrays.asList(config.getProperty("A02.flipAddress"));
+            //A02缈昏浆鍦板潃
+            List<String> addresses4 = Arrays.asList(config.getProperty("A02.flipAddress"));
 
-      List<Short> arraylist4 = S7control.getinstance().readWords(addresses4);
-     //B01缁勫悎涓湴鍧�
-      String b01Address = config.getProperty("B01.address");
-      List<Short> arraylist5 = S7control.getinstance().ReadWord(b01Address, 2);
-      //B02缁勫悎鍦板潃
-      String b02Address = config.getProperty("B02.address");
-      List<Short> arraylist6 = S7control.getinstance().ReadWord(b02Address, 2);
+            List<Short> arraylist4 = S7control.getinstance().readWords(addresses4);
+            //B01缁勫悎涓湴鍧�
+            String b01Address = config.getProperty("B01.address");
+            List<Short> arraylist5 = S7control.getinstance().ReadWord(b01Address, 2);
+            //B02缁勫悎鍦板潃
+            String b02Address = config.getProperty("B02.address");
+            List<Short> arraylist6 = S7control.getinstance().ReadWord(b02Address, 2);
 //      System.out.println(b02Address);
-     // 鎵�鏈夋晠闅滄寜閽湴鍧�
-      List<String> addresses7 = Arrays.asList(config.getProperty("faultButtonAddresses").split(","));
-      List<Boolean> arraylist7 = S7control.getinstance().readBits(addresses7);
+            // 鎵�鏈夋晠闅滄寜閽湴鍧�
+            List<String> addresses7 = Arrays.asList(config.getProperty("faultButtonAddresses").split(","));
+            List<Boolean> arraylist7 = S7control.getinstance().readBits(addresses7);
 
-      //A01鍚姩鍦板潃
-      List<String> A01start = Arrays.asList(config.getProperty("A01start"));
-      //A02鍚姩鍦板潃
-      List<String> A02start = Arrays.asList(config.getProperty("A02start"));
+            //A01鍚姩鍦板潃
+            List<String> A01start = Arrays.asList(config.getProperty("A01start"));
+            //A02鍚姩鍦板潃
+            List<String> A02start = Arrays.asList(config.getProperty("A02start"));
 //A01鍗婅嚜鍔ㄥ湴鍧�
-      List<String> A01Bstart = Arrays.asList(config.getProperty("A01Bstart"));
-      //A02鍗婅嚜鍔ㄥ湴鍧�
-      List<String> A02Bstart = Arrays.asList(config.getProperty("A02Bstart"));
-      //
-      List<String> abortresumeTasks = Arrays.asList(config.getProperty("abortresumeTasks"));
-      //鍥為浂鎸夐挳鍦板潃
-      List<String> waddresses4 = Arrays.asList(config.getProperty("HomedButtonAddresses").split(","));
-      // 鎵�鏈夊浣嶆寜閽湴鍧�
-      List<String> Reset = Arrays.asList(config.getProperty("resetButtonAddresses").split(","));
+            List<String> A01Bstart = Arrays.asList(config.getProperty("A01Bstart"));
+            //A02鍗婅嚜鍔ㄥ湴鍧�
+            List<String> A02Bstart = Arrays.asList(config.getProperty("A02Bstart"));
+            //
+            List<String> abortresumeTasks = Arrays.asList(config.getProperty("abortresumeTasks"));
+            //鍥為浂鎸夐挳鍦板潃
+            List<String> waddresses4 = Arrays.asList(config.getProperty("HomedButtonAddresses").split(","));
+            // 鎵�鏈夊浣嶆寜閽湴鍧�
+            List<String> Reset = Arrays.asList(config.getProperty("resetButtonAddresses").split(","));
 //      System.out.println(Reset);
-      // 鎵�鏈夋湭鍥為浂鎸夐挳鍦板潃
-      List<String> addresses8 = Arrays.asList(config.getProperty("notHomedButtonAddresses").split(","));
-      // 杩涚墖id鍦板潃
-      String inputGlassIdAddress = config.getProperty("inputGlassIdAddress");
-      String outputGlassIdAddress = config.getProperty("outputGlassIdAddress");
-      StringBuilder queueid1 = queGlassid(inputGlassIdAddress, 14);
-      // 瀛樼墖id鍦板潃
-      StringBuilder queueid2 = queGlassid(outputGlassIdAddress, 14);
+            // 鎵�鏈夋湭鍥為浂鎸夐挳鍦板潃
+            List<String> addresses8 = Arrays.asList(config.getProperty("notHomedButtonAddresses").split(","));
+            // 杩涚墖id鍦板潃
+            String inputGlassIdAddress = config.getProperty("inputGlassIdAddress");
+            String outputGlassIdAddress = config.getProperty("outputGlassIdAddress");
+            StringBuilder queueid1 = queGlassid(inputGlassIdAddress, 14);
+            // 瀛樼墖id鍦板潃
+            StringBuilder queueid2 = queGlassid(outputGlassIdAddress, 14);
 //A01 A02鍚姩   鍗婅嚜鍔ㄥ惎鍔�
-      List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
-      List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
-      List<Boolean> A01readBstart = S7control.getinstance().readBits(A01Bstart);
-      List<Boolean> A02readsBtart = S7control.getinstance().readBits(A02Bstart);
+            List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
+            List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
+            List<Boolean> A01readBstart = S7control.getinstance().readBits(A01Bstart);
+            List<Boolean> A02readsBtart = S7control.getinstance().readBits(A02Bstart);
 
-      List<Boolean> resumeTasks = S7control.getinstance().readBits(abortresumeTasks);
+            List<Boolean> resumeTasks = S7control.getinstance().readBits(abortresumeTasks);
 
-      short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
-              A01readBstart, A01readstart,   A02readsBtart,A02readstart
-      );
+            short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
+                    A01readBstart, A01readstart, A02readsBtart, A02readstart
+            );
 
 //      System.out.println(A01readBstart);
 
 // 鎵�鏈夋晠闅滄寜閽浆鎹负1鍜�0
-      short[] params2 = new short[arraylist7.size()];
-      for (int i = 0; i < arraylist7.size(); i++) {
-        boolean value = arraylist7.get(i);
-        params2[i] = value ? (short) 1 : (short) 0;
-      }
+            short[] params2 = new short[arraylist7.size()];
+            for (int i = 0; i < arraylist7.size(); i++) {
+                boolean value = arraylist7.get(i);
+                params2[i] = value ? (short) 1 : (short) 0;
+            }
 
 //鎬ュ仠涓鎸夐挳
-      short[] resumeTask = new short[resumeTasks.size()];
-      for (int i = 0; i < resumeTasks.size(); i++) {
-        boolean value = resumeTasks.get(i);
-        resumeTask[i] = value ? (short) 1 : (short) 0;
-      }
+            short[] resumeTask = new short[resumeTasks.size()];
+            for (int i = 0; i < resumeTasks.size(); i++) {
+                boolean value = resumeTasks.get(i);
+                resumeTask[i] = value ? (short) 1 : (short) 0;
+            }
 
-      List<Boolean> Reset1 = S7control.getinstance().readBits(Reset);
-    //  System.out.println(Reset1);
+            List<Boolean> Reset1 = S7control.getinstance().readBits(Reset);
+            //  System.out.println(Reset1);
 // 鎵�鏈夋晠闅滄寜閽浆鎹负1鍜�0
-      short[] rReset = new short[Reset1.size()];
-      for (int i = 0; i < Reset1.size(); i++) {
-        boolean value = Reset1.get(i);
-        rReset[i] = value ? (short) 1 : (short) 0;
-      }
+            short[] rReset = new short[Reset1.size()];
+            for (int i = 0; i < Reset1.size(); i++) {
+                boolean value = Reset1.get(i);
+                rReset[i] = value ? (short) 1 : (short) 0;
+            }
 
 
 //鎵�鏈夋湭鍥為浂鎸夐挳杞崲涓�1鍜�0
-      List<Boolean> arraylist8 = S7control.getinstance().readBits(addresses8);
-      short[] params = new short[arraylist8.size()];
-      for (int i = 0; i < arraylist8.size(); i++) {
-        boolean value = arraylist8.get(i);
-        params[i] = value ? (short) 1 : (short) 0;
-      }
-
-
-
+            List<Boolean> arraylist8 = S7control.getinstance().readBits(addresses8);
+            short[] params = new short[arraylist8.size()];
+            for (int i = 0; i < arraylist8.size(); i++) {
+                boolean value = arraylist8.get(i);
+                params[i] = value ? (short) 1 : (short) 0;
+            }
 
 
 //      Short[] values1 = { 1, 2, 3, 4, 5, 6, 7};
@@ -214,22 +210,21 @@
 //        params[i] = value ? (short) 1 : (short) 0;
 //      }
 
-      JSONObject jsonObject = new JSONObject();
+            JSONObject jsonObject = new JSONObject();
 
-      jsonObject.append("zuhe1", arraylist);
-      jsonObject.append("zuhe2", arraylist2);
-      jsonObject.append("zuhe3", arraylist3);
-      jsonObject.append("zuhe4", arraylist4);
-      jsonObject.append("zuhe5", arraylist5);
-      jsonObject.append("zuhe6", arraylist6);
-      jsonObject.append("guzhang", params2);
-   jsonObject.append("weihuiling", params);
-      jsonObject.append("jinpianid", queueid1);
-      jsonObject.append("qupianid", queueid2);
-      jsonObject.append("fuwei", rReset);
-      jsonObject.append("qidong", combinedBinaryShortArray);
-      jsonObject.append("resumeTasks", resumeTask);
-
+            jsonObject.append("zuhe1", arraylist);
+            jsonObject.append("zuhe2", arraylist2);
+            jsonObject.append("zuhe3", arraylist3);
+            jsonObject.append("zuhe4", arraylist4);
+            jsonObject.append("zuhe5", arraylist5);
+            jsonObject.append("zuhe6", arraylist6);
+            jsonObject.append("guzhang", params2);
+            jsonObject.append("weihuiling", params);
+            jsonObject.append("jinpianid", queueid1);
+            jsonObject.append("qupianid", queueid2);
+            jsonObject.append("fuwei", rReset);
+            jsonObject.append("qidong", combinedBinaryShortArray);
+            jsonObject.append("resumeTasks", resumeTask);
 
 
 //      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ServoManualone");
@@ -237,63 +232,59 @@
 //        sendwServer.sendMessage(jsonObject.toString());
 //      }
 
-      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ServoManualone");
-      if (sendwServer != null) {
-        for (WebSocketServer webserver : sendwServer) {
-          webserver.sendMessage(jsonObject.toString());
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ServoManualone");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
 
 
-          if (webserver != null) {
-            List<String> messages = webserver.getMessages();
+                    if (webserver != null) {
+                        List<String> messages = webserver.getMessages();
 
 
-            if (!messages.isEmpty()) {
-              // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
-              String lastMessage = messages.get(messages.size() - 1);
+                        if (!messages.isEmpty()) {
+                            // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
+                            String lastMessage = messages.get(messages.size() - 1);
 //        System.out.println("lastMessage锛�" + lastMessage);
-              JSONArray messageArray = new JSONArray(lastMessage);
+                            JSONArray messageArray = new JSONArray(lastMessage);
 
 
-              // 鍐欏叆AO1缁勫悎
-              customS7Control.WriteWordToPLC(messageArray, addresses,0);
-
-              //A01鍗婅嚜鍔ㄥ惎鍔�
-              customS7Control.writeBitToPLC( messageArray, A01start,8);
+                            // 鍐欏叆AO1缁勫悎
+                            customS7Control.WriteWordToPLC(messageArray, addresses, 0);
 
 
-              // 鍐欏叆AO2缁勫悎
-              customS7Control.WriteWordToPLC(messageArray, addresses2,1);
-              //A02鍗婅嚜鍔ㄥ惎鍔�
+                            // 鍐欏叆AO2缁勫悎
+                            customS7Control.WriteWordToPLC(messageArray, addresses2, 1);
 
-              customS7Control.writeBitToPLC( messageArray, A02start,9);
+
+                            // 澶嶄綅鎸夐挳鍐欏叆
+                            customS7Control.writeBitToPLC(messageArray, Reset, 2);
+
+                            //鍥為浂鎸夐挳鍐欏叆
+                            customS7Control.writeBitToPLC(messageArray, waddresses4, 3);
+
+                            // 杩涚墖ID鍐欏叆
+                            customS7Control.writeStringToPLC(messageArray, inputGlassIdAddress, 4);
+                            //鍙栫墖ID鍐欏叆
+                            customS7Control.writeStringToPLC(messageArray, outputGlassIdAddress, 5);
+
+                            //A01鍗婅嚜鍔�
+                            customS7Control.writeBitToPLC(messageArray, A01Bstart, 6);
+                            //A02鍗婅嚜鍔�
+                            customS7Control.writeBitToPLC(messageArray, A02Bstart, 7);
+                          //A01鍗婅嚜鍔ㄥ惎鍔�
+                          customS7Control.writeBitToPLC(messageArray, A01start, 8);
+                          //A02鍗婅嚜鍔ㄥ惎鍔�
+                          customS7Control.writeBitToPLC(messageArray, A02start, 9);
 
 
 
-              // 澶嶄綅鎸夐挳鍐欏叆
-              customS7Control.writeBitToPLC( messageArray, Reset,2);
-
-              //鍥為浂鎸夐挳鍐欏叆
-              customS7Control.writeBitToPLC( messageArray, waddresses4,3);
-
-              // 杩涚墖ID鍐欏叆
-              customS7Control.writeStringToPLC(  messageArray,inputGlassIdAddress,4);
-              //鍙栫墖ID鍐欏叆
-              customS7Control.writeStringToPLC(  messageArray,outputGlassIdAddress,5);
-
-              //A01鍗婅嚜鍔�
-              customS7Control.writeBitToPLC( messageArray, A01Bstart,6);
-
-            //A02鍗婅嚜鍔�
-              customS7Control.writeBitToPLC( messageArray, A02Bstart,7);
-
-
-
-              // 娓呯┖娑堟伅鍒楄〃
-              webserver.clearMessages();
+                          // 娓呯┖娑堟伅鍒楄〃
+                            webserver.clearMessages();
+                        }
+                    }
+                }
             }
-          }
         }
-      }
     }
-  }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
index a9045d0..2d0c98d 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -106,7 +106,9 @@
           for (WebSocketServer webserver : sendwServer) {
             webserver.sendMessage(jsonObject.toString());
 
+          }
 
+        }
             // 灏嗚幏鍙栫殑甯冨皵绫诲瀷杞崲涓烘暣鏁扮被鍨�
             List<Integer> Intlist = new ArrayList<>();
             for (Boolean value : plclist) {
@@ -128,7 +130,7 @@
               // 鏌ヨ瀵瑰簲鎶ヨ淇℃伅缁撴潫鏃堕棿涓簄ull鐨勬潯鏁�
               short result = alarmMapper.selectnullti(array1[i]);
               // 璇诲彇鍒癙LC鐨勫�间负1骞朵笖瀵瑰簲鎶ヨ淇℃伅缁撴潫鏃堕棿涓簄ull鐨勬潯鏁扮殑鏉℃暟涓�0
-              // System.out.println(result);
+    //System.out.println(result);
               if (shuzu1[i] == 1 && result == 0) {
                 // 濉姞涓�鏉℃姤璀︿俊鎭�,鏈夊紑濮嬫椂闂�
                 alarmMapper.Insertalarm(array1[i]);
@@ -141,5 +143,4 @@
         }
       }
     }
-  }
-}
\ No newline at end of file
+
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
index 2cf3a03..34a8ef2 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -1,187 +1,194 @@
-package com.example.springboot.component;
-
-import cn.hutool.json.JSONObject;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-
-import com.example.springboot.entity.Out_slice;
-import com.example.springboot.entity.Queue;
-import com.example.springboot.entity.StorageCage;
-import com.example.springboot.entity.alarmmg;
-import com.example.springboot.mapper.HomeMapper;
-import com.example.springboot.mapper.SpianMapper;
-import com.example.springboot.service.JdbcConnections;
-import com.example.springboot.service.North_Glass_Buffer1Service;
-import com.example.springboot.service.OutSliceServive;
-import com.example.springboot.service.SpianService;
-
-public class Plchome extends Thread {
-
-    @Autowired
-    private HomeMapper homeMapper;
-    private OutSliceServive outSliceServive;
-    private SpianMapper spianMapper;
-    private SpianService spianService;
-    private North_Glass_Buffer1Service north_Glass_Buffer1Service;
-    private JdbcConnections dbserve;
-    // 鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
-    public static Boolean isAllowQueue = true;
-    // 閾濇id
-    public static String FrameNo;
-    // 鏄惁闇�瑕佹墜鍔ㄧ‘璁ょ幓鐠�
-    public static Boolean isConfirm = false;
-
-    // public static Map b=new HashMap<>();
-    // b.put()
-    @Override
-    public void run() {
-        while (this != null) {
-            try {
-                Thread.sleep(1000);
-                
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-            JSONObject jsonObject = new JSONObject();
-
-            // 娉ㄥ叆mapper
-            homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
-            spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
-            spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
-            outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
-            north_Glass_Buffer1Service = WebSocketServer.applicationContext.getBean(North_Glass_Buffer1Service.class);
-            // 绗煎瓙浣跨敤鎯呭喌
-            List<StorageCage> tableData = homeMapper.selectAll();
-            jsonObject.append("tableData", tableData);
-            // 鏍肩悊鐗囩鏍煎瓙鐘舵��
-            List<StorageCage> cagelist1 = homeMapper.selectRack1();
-            List<StorageCage> cagelist2 = homeMapper.selectRack2();
-            List<StorageCage> cagelist3 = homeMapper.selectRack3();
-            List<StorageCage> cagelist4 = homeMapper.selectRack4();
-            jsonObject.append("cagelist1", cagelist1);
-            jsonObject.append("cagelist2", cagelist2);
-            jsonObject.append("cagelist3", cagelist3);
-            jsonObject.append("cagelist4", cagelist4);
-            // 杩涘嚭鐗囦换鍔�
-            List<StorageCage> tasklist1 = homeMapper.selectinout(3);
-            List<StorageCage> tasklist2 = homeMapper.selectinout(2);
-            jsonObject.append("tasklist1", tasklist1);
-            jsonObject.append("tasklist2", tasklist2);
-            // 鏌ヨ鎶ヨ淇℃伅
-            List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
-            jsonObject.append("alarmmg", alarmmg);
-            // 璇诲幓Plc杩涚墖杞︿笌鍑虹墖杞︿綅缃甒
-            List<String> addressList = new ArrayList<String>();
-            addressList.add("DB106.12");
-            addressList.add("DB106.0");
-            List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
-            if (paramlist != null) {
-                jsonObject.append("params", paramlist);
-            }
-            // 鑾峰彇杩涚墖杞︾姸鎬�
-            List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
-                    1);// 鑾峰彇杩涚墖杞︾姸鎬�
-            boolean exist1 = datas1ListState.contains((short) 0);
-            jsonObject.append("zhuangtai", exist1);
-            // 鑾峰彇杩涚墖鐜荤拑淇℃伅
-            List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
-            if (inglassInfo != null) {
-                if (inglassInfo.size() > 0)
-                    jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
-            }
-            // 浼� 鑾峰彇杩涙槸鍚︽湁寰呯‘璁ょ殑鐜荤拑id
-            String queid = spianMapper.Selectqueueid();
-            int state = spianMapper.Selectqueuestate();
-            jsonObject.append("queid", queid);
-            jsonObject.append("state", state);
-            // 鑾峰彇鎵爜浣嶄笌涓婄墖浣嶇幓鐠冧俊鎭�
-            Queue form2 = homeMapper.GetQueueInfo(2);
-            Queue form3 = homeMapper.GetQueueInfo(1);
-            if (form2.getglassId() != null && form2.getglassId() != "") {
-                jsonObject.append("form2", form2);
-            }
-            if (form3.getglassId() != null && form3.getglassId() != "") {
-                jsonObject.append("form3", form3);
-            }
-            // 鑾峰彇鍑虹墖闃熷垪淇℃伅
-            List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
-            jsonObject.append("listoutslice", listoutslice);
-            // 鑾峰彇褰撳墠鍑虹墖闃熷垪鐘舵��
-            jsonObject.append("isAllowQueue", Plchome.isAllowQueue);
-
-            // 鑾峰彇閾濇idDB106.DBW64
-            // String frameno=spianService.queGlassid("DB103.270",14).toString();
-            // if(frameno!=Plchome.FrameNo&&frameno!=""){
-            // Plchome.FrameNo=frameno;
-            // }
-            // try {
-            // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
-            // } catch (SQLException e) {
-            // // TODO Auto-generated catch block
-            // e.printStackTrace();
-            // }
-            // 鏄惁闇�瑕佷汉宸ョ‘璁や笂鐗囩幓鐠�
-            jsonObject.append("isConfirm", isConfirm);
-
-            //鑾峰彇杩涚墖璇锋眰鐘舵��
-            List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
-            boolean D01RequestState = D01Request.contains((short) 1);
-            // boolean D01RequestState =true;
-            jsonObject.append("D01RequestState", D01RequestState);
-
-            //澶嶄綅鍊掕鏃�
-            // 鍦板潃104.9.6
-            List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
-            for (Boolean countdowns : countdown) {
-                jsonObject.append("countdown", countdowns);
-            }
-            // jsonObject.append("countdown", true);
-            // 閾濇绾夸氦浜�
-
-            // //閾濇id璇锋眰瀛�
-            // List<Short> framerequest = S7control.getinstance().ReadWord("閾濇id璇锋眰瀛楀湴鍧�", 1);
-            // if(framerequest!=null){
-            // //閾濇id
-            // String franmeno= spianService.queGlassid("閾濇id鍦板潃", 14).toString();
-            // String position;
-            // try {
-            // position=dbserve.SelectPositionByFrameBarcode(franmeno);
-            // } catch (SQLException e) {
-            // // TODO Auto-generated catch block
-            // position="0";
-            // e.printStackTrace();
-            // }
-            // Short send;
-            // if(position=="0"){
-            // send=0;
-            // }else{
-            // send=1;
-            // }
-            // S7control.getinstance().WriteWord("閾濇缈昏浆鍙戦�佸湴鍧�", (short)send);
-            // }
-
-            dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
-            boolean dbconnected = false;
-            try {
-                dbserve.getConn();
-                dbconnected = true;
-            } catch (Exception e) {
-                // TODO: handle exception
-                dbconnected = false;
-            }
-            jsonObject.append("dbconnected", dbconnected);
-            // jsonObject.append("params", new short[] { 30, 40, });
-            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
-            if (sendwServer != null) {
-                for (WebSocketServer webserver : sendwServer) {
-                    webserver.sendMessage(jsonObject.toString());
-                }
-            }
-
-        }
-    }
-}
+package com.example.springboot.component;
+
+import cn.hutool.json.JSONObject;
+
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.example.springboot.entity.Out_slice;
+import com.example.springboot.entity.Queue;
+import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.alarmmg;
+import com.example.springboot.mapper.HomeMapper;
+import com.example.springboot.mapper.SpianMapper;
+import com.example.springboot.service.JdbcConnections;
+import com.example.springboot.service.North_Glass_Buffer1Service;
+import com.example.springboot.service.OutSliceServive;
+import com.example.springboot.service.SpianService;
+
+public class Plchome extends Thread {
+
+    @Autowired
+    private HomeMapper homeMapper;
+    private OutSliceServive outSliceServive;
+    private SpianMapper spianMapper;
+    private SpianService spianService;
+    private North_Glass_Buffer1Service north_Glass_Buffer1Service;
+    private JdbcConnections dbserve;
+    // 鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
+    public static Boolean isAllowQueue = true;
+    // 閾濇id
+    public static String FrameNo;
+    // 鏄惁闇�瑕佹墜鍔ㄧ‘璁ょ幓鐠�
+    public static Boolean isConfirm = false;
+
+    // public static Map b=new HashMap<>();
+    // b.put()
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(1000);
+                
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            JSONObject jsonObject = new JSONObject();
+
+            // 娉ㄥ叆mapper
+            homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
+            spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
+            spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
+            outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
+            north_Glass_Buffer1Service = WebSocketServer.applicationContext.getBean(North_Glass_Buffer1Service.class);
+            // 绗煎瓙浣跨敤鎯呭喌
+            List<StorageCage> tableData = homeMapper.selectAll();
+            jsonObject.append("tableData", tableData);
+            // 鏍肩悊鐗囩鏍煎瓙鐘舵��
+            List<StorageCage> cagelist1 = homeMapper.selectRack1();
+            List<StorageCage> cagelist2 = homeMapper.selectRack2();
+            List<StorageCage> cagelist3 = homeMapper.selectRack3();
+            List<StorageCage> cagelist4 = homeMapper.selectRack4();
+            jsonObject.append("cagelist1", cagelist1);
+            jsonObject.append("cagelist2", cagelist2);
+            jsonObject.append("cagelist3", cagelist3);
+            jsonObject.append("cagelist4", cagelist4);
+            // 杩涘嚭鐗囦换鍔�
+            List<StorageCage> tasklist1 = homeMapper.selectinout(3);
+            List<StorageCage> tasklist2 = homeMapper.selectinout(2);
+            jsonObject.append("tasklist1", tasklist1);
+            jsonObject.append("tasklist2", tasklist2);
+            // 鏌ヨ鎶ヨ淇℃伅
+            List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
+            jsonObject.append("alarmmg", alarmmg);
+            // 璇诲幓Plc杩涚墖杞︿笌鍑虹墖杞︿綅缃甒
+            List<String> addressList = new ArrayList<String>();
+            addressList.add("DB106.12");
+            addressList.add("DB106.0");
+            List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
+            if (paramlist != null) {
+                jsonObject.append("params", paramlist);
+            }
+            // 鑾峰彇杩涚墖杞︾姸鎬�
+            List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
+                    1);// 鑾峰彇杩涚墖杞︾姸鎬�
+            boolean exist1 = datas1ListState.contains((short) 0);
+            jsonObject.append("zhuangtai", exist1);
+            // 鑾峰彇杩涚墖鐜荤拑淇℃伅
+            List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
+            if (inglassInfo != null) {
+                if (inglassInfo.size() > 0)
+                    jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
+            }
+            // 浼� 鑾峰彇杩涙槸鍚︽湁寰呯‘璁ょ殑鐜荤拑id
+            String queid = spianMapper.Selectqueueid();
+            int state = spianMapper.Selectqueuestate();
+            jsonObject.append("queid", queid);
+            jsonObject.append("state", state);
+            // 鑾峰彇鎵爜浣嶄笌涓婄墖浣嶇幓鐠冧俊鎭�
+            Queue form2 = homeMapper.GetQueueInfo(2);
+            Queue form3 = homeMapper.GetQueueInfo(1);
+            if (form2.getglassId() != null && form2.getglassId() != "") {
+                jsonObject.append("form2", form2);
+            }
+            if (form3.getglassId() != null && form3.getglassId() != "") {
+                jsonObject.append("form3", form3);
+            }
+            // 鑾峰彇鍑虹墖闃熷垪淇℃伅
+            List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
+            jsonObject.append("listoutslice", listoutslice);
+            // 鑾峰彇褰撳墠鍑虹墖闃熷垪鐘舵��
+            jsonObject.append("isAllowQueue", Plchome.isAllowQueue);
+
+            // 鑾峰彇閾濇idDB106.DBW64
+            // String frameno=spianService.queGlassid("DB103.270",14).toString();
+            // if(frameno!=Plchome.FrameNo&&frameno!=""){
+            // Plchome.FrameNo=frameno;
+            // }
+            // try {
+            // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
+            // } catch (SQLException e) {
+            // // TODO Auto-generated catch block
+            // e.printStackTrace();
+            // }
+            // 鏄惁闇�瑕佷汉宸ョ‘璁や笂鐗囩幓鐠�
+            jsonObject.append("isConfirm", isConfirm);
+
+            //鑾峰彇杩涚墖璇锋眰鐘舵��
+            List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
+            boolean D01RequestState = D01Request.contains((short)1);
+            // boolean D01RequestState =true;
+            jsonObject.append("D01RequestState", D01RequestState);
+
+            //澶嶄綅鍊掕鏃�
+            // 鍦板潃104.9.6
+            List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
+            for (Boolean countdowns : countdown) {
+                jsonObject.append("countdown", countdowns);
+            }
+            // jsonObject.append("countdown", true);
+
+            //鏄惁鎬ュ仠
+            List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
+            for (Boolean emergencystop : emergencystops) {
+                jsonObject.append("emergencystop", emergencystop);
+            }
+
+            // 閾濇绾夸氦浜�
+
+            // //閾濇id璇锋眰瀛�
+            // List<Short> framerequest = S7control.getinstance().ReadWord("閾濇id璇锋眰瀛楀湴鍧�", 1);
+            // if(framerequest!=null){
+            // //閾濇id
+            // String franmeno= spianService.queGlassid("閾濇id鍦板潃", 14).toString();
+            // String position;
+            // try {
+            // position=dbserve.SelectPositionByFrameBarcode(franmeno);
+            // } catch (SQLException e) {
+            // // TODO Auto-generated catch block
+            // position="0";
+            // e.printStackTrace();
+            // }
+            // Short send;
+            // if(position=="0"){
+            // send=0;
+            // }else{
+            // send=1;
+            // }
+            // S7control.getinstance().WriteWord("閾濇缈昏浆鍙戦�佸湴鍧�", (short)send);
+            // }
+
+            dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
+            boolean dbconnected = false;
+            try {
+                dbserve.getConn();
+                dbconnected = true;
+            } catch (Exception e) {
+                // TODO: handle exception
+                dbconnected = false;
+            }
+            jsonObject.append("dbconnected", dbconnected);
+            // jsonObject.append("params", new short[] { 30, 40, });
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
+                }
+            }
+
+        }
+    }
+}
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 d0572b6..9fc310c 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
@@ -17,25 +17,25 @@
         //
         System.out.println("鍚姩瀹屾垚");
 
- new PlcHold().start();
+     new PlcHold().start();
 
         new Plchome().start();
 
-//         new Plcalarm().start();
+        //  new Plcalarm().start();
 
-//         new Plcsign().start();
+        //  new Plcsign().start();
 
-//         new Plcaction().start();
-//         new Plcstate().start();
-//         new PlcPositioning1().start();
+        
+        //  new Plcstate().start();
+        //  new PlcPositioning1().start();
 
-//         new PlcParameter2().start();
+        //  new PlcParameter2().start();
 
-//         new PLCAutomaticParameterSetting().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
diff --git a/springboot-vue3/src/main/resources/config.properties b/springboot-vue3/src/main/resources/config.properties
index 296a448..1037320 100644
--- a/springboot-vue3/src/main/resources/config.properties
+++ b/springboot-vue3/src/main/resources/config.properties
@@ -53,28 +53,54 @@
 
 
 
-#PLCManualJog--------------------------
-
-
 
 #Parameter2--------------------------
 
 #id
+#addressList1.add("DB103.44");//D01
+#addressList1.add("DB103.58");//D02
+#addressList1.add("DB103.72");//D03
+#addressList1.add("DB103.86");//D04
+#addressList1.add("DB103.100");//D05
+#addressList1.add("DB103.114");//D06
+#addressList1.add("DB103.128");//A01
+#addressList1.add("DB103.142");//A01 2
+#addressList1.add("DB103.156");//A02
+#addressList1.add("DB103.184");//B01
+#addressList1.add("DB103.212");//B02
 Parameter2.id=DB103.44,DB103.58,DB103.72,DB103.86,DB103.100,DB103.114,DB103.128,DB103.142,DB103.156,DB103.184,DB103.212
 
-#娓呴櫎id
+#state
+#addresses.add("DB103.0");
+#addresses.add("DB103.2");
+#addresses.add("DB103.12");
+#addresses.add("DB103.14");
+#addresses.add("DB103.16");
+#addresses.add("DB103.18");
+#addresses.add("DB103.8");
+#addresses.add("DB103.10");
+#addresses.add("DB103.4");
+#addresses.add("DB103.6");
 Parameter2.state=DB103.0,DB103.2,DB103.12,DB103.14,DB103.16,DB103.18,DB103.8,DB103.10,DB103.4,DB103.6
 
+#娓呴櫎id
 
-
-#鎵嬪姩鐘舵��
+#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");
 Parameter2.cleanid=DB101.9.2,DB101.9.3,DB101.9.4,DB101.9.5,DB101.9.6,DB101.9.7,DB101.10.0,DB101.10.1,DB101.10.2,DB101.10.3
 #鎵爜鏋�
 Parameter2.scanner=DB103.256,DB103.270
-
 #鎬ュ仠
 Parameter2.stop=DB101.10.4
-
 #褰撳墠鏍煎瓙
 Parameter2.Currentcell=DB103.32,DB103.34,DB103.36,DB103.40
 
@@ -109,4 +135,38 @@
 #addressList21.add("DB101.3.1");
 #addressList21.add("DB101.3.3");
 #鎸夐挳
-PLCManualJog.button=DB101.0.0,DB101.0.1,DB101.0.2,DB101.0.3,DB101.0.4,DB101.0.5,DB101.0.6,DB101.3.4,DB101.1.4,DB101.1.2,DB101.5.2,DB101.0.7,DB101.3.5,DB101.1.5,DB101.1.3,DB101.5.3,DB101.1.0,DB101.1.6,DB101.2.6,DB101.2.7,DB101.3.2,DB101.1.1,DB101.1.7,DB101.3.0,DB101.3.1,DB101.3.3
+PLCManualJog.button=DB101.0.0,DB101.0.1,DB101.0.2,DB101.0.3,DB101.0.4,DB101.0.5,DB101.0.6,DB101.3.4,DB101.1.4,DB101.1.2,DB101.5.2,DB101.0.7,DB101.3.5,DB101.1.5,DB101.1.3,DB101.5.3,DB101.1.0,DB101.1.6,DB101.2.6,DB101.2.7,DB101.3.2,DB101.1.1,DB101.1.7,DB101.3.0,DB101.3.1,DB101.3.3,DB101.10.5,DB101.10.6
+
+
+
+#AUto----------------------------------------------------------------
+#List<String> addresses = new ArrayList<>();
+#addresses.add("DB100.0");
+#addresses.add("DB100.2");
+#addresses.add("DB100.4");
+#addresses.add("DB100.6");
+#addresses.add("DB100.26");
+#addresses.add("DB100.28");
+#addresses.add("DB100.30");
+#addresses.add("DB100.32");
+#addresses.add("DB100.34");
+#addresses.add("DB100.36");
+#addresses.add("DB100.38");
+#addresses.add("DB100.40");
+Auto.addresses=DB100.0,DB100.2,DB100.4,DB100.6,DB100.26,DB100.28,DB100.30,DB100.32,DB100.36,DB100.38,DB100.40
+
+#List<String> waddresses1 = new ArrayList<>();
+#waddresses1.add("DB100.0");
+#waddresses1.add("DB100.2");
+#waddresses1.add("DB100.4");
+#waddresses1.add("DB100.6");
+#waddresses1.add("DB100.26");
+#waddresses1.add("DB100.28");
+#waddresses1.add("DB100.30");
+#waddresses1.add("DB100.32");
+#waddresses1.add("DB100.34");
+#waddresses1.add("DB100.36");
+#waddresses1.add("DB100.38");
+#waddresses1.add("DB100.40");
+
+Auto.shusong=DB100.0,DB100.2,DB100.4,DB100.6,DB100.26,DB100.28,DB100.30,DB100.32,DB100.34,DB100.36,DB100.38,DB100.40
\ No newline at end of file

--
Gitblit v1.8.0