From c3204d686fbf8a64dd7fa4dcbb48c0a075df06e0 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期二, 05 十二月 2023 08:06:19 +0800
Subject: [PATCH] 更新电气管理界面

---
 CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue                                  |   16 +
 springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java |   10 +
 CanadaMes-ui/src/views/Electrical/Positioning2.vue                                        |    2 
 CanadaMes-ui/src/views/home/index.vue                                                     |   19 +
 springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java         |   23 +
 CanadaMes-ui/src/views/Electrical/Sign.vue                                                |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java       |    5 
 springboot-vue3/src/main/java/com/example/springboot/component/S7control.java             |   12 +
 CanadaMes-ui/src/views/Electrical/ManualonePosition.vue                                   |   19 +
 CanadaMes-ui/src/views/Electrical/Parameter2.vue                                          |   48 ++++
 CanadaMes-ui/src/views/Electrical/State.vue                                               |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java       |    5 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java     |  165 +++++++++++++++-
 CanadaMes-ui/src/lang/locales/zh-CN.json                                                  |    1 
 CanadaMes-ui/src/views/Electrical/Positioning1.vue                                        |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java              |    1 
 CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue                           |    2 
 CanadaMes-ui/src/views/Electrical/alarm.vue                                               |    2 
 CanadaMes-ui/src/views/Electrical/Action.vue                                              |    2 
 CanadaMes-ui/src/lang/locales/en-US.json                                                  |    6 
 CanadaMes-ui/src/views/Electrical/ManualJog.vue                                           |    2 
 CanadaMes-ui/src/views/Electrical/Parameter1.vue                                          |    2 
 CanadaMes-ui/src/views/Electrical/ServoManualone.vue                                      |  181 +++++++++++++++--
 springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java  |   20 ++
 24 files changed, 465 insertions(+), 84 deletions(-)

diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index a7667ae..0030697 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -1,4 +1,6 @@
 {
+  
+  "ip": "192.168.10.21",
   "systemTitle": "Login System",
   "usernamePlaceholder": "Please enter username",
   "passwordPlaceholder": "Please enter password",
@@ -437,14 +439,14 @@
                 "B01鎵嬪姩鏍煎瓙": "B01 Target grid(Manual)",
                 "B01瀹氫綅閫熷害": "B01 TRAVEL POS Velocity manual",
                 "B01褰撳墠鏍煎瓙": "B01 Current Grid",
-                "B01鍚姩": "Start",
+                "B01鍚姩": "B01 Start",
                 "澶嶄綅": "Reset",
                 "鍥為浂": "Zero",
                 "鏈洖闆�": "NotZero",
                 "B02鎵嬪姩鏍煎瓙": "B02 Target grid(Manual)",
                 "B02瀹氫綅閫熷害": "B02 TRAVEL POS Velocity manual",
                 "B02褰撳墠鏍煎瓙": "B02 Current Grid",
-                "B02鍚姩": "Start",
+                "B02鍚姩": "B02 Start",
                 "澶嶄綅": "Reset",
                 "A01瀹炴椂浣嶇疆": "A01 tavel Actual Position",
                 "A02瀹炴椂浣嶇疆": "A02 tavel Actual Position",
diff --git a/CanadaMes-ui/src/lang/locales/zh-CN.json b/CanadaMes-ui/src/lang/locales/zh-CN.json
index 8bdbb90..28dcca4 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -1,4 +1,5 @@
 {
+  "ip": "192.168.10.21",
   "systemTitle": "鐧诲綍绯荤粺",
   "usernamePlaceholder": "璇疯緭鍏ョ敤鎴峰悕",
   "passwordPlaceholder": "璇疯緭鍏ュ瘑鐮�",
diff --git a/CanadaMes-ui/src/views/Electrical/Action.vue b/CanadaMes-ui/src/views/Electrical/Action.vue
index 6fbb39c..e3d2757 100644
--- a/CanadaMes-ui/src/views/Electrical/Action.vue
+++ b/CanadaMes-ui/src/views/Electrical/Action.vue
@@ -138,7 +138,7 @@
       } else {
         //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
 
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
         if (socket != null) {
           socket.close();
           socket = null;
diff --git a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
index 102ca3c..92aba7b 100644
--- a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
+++ b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -136,7 +136,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
diff --git a/CanadaMes-ui/src/views/Electrical/ManualJog.vue b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
index 8596ab7..11e6754 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualJog.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
@@ -139,7 +139,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
index c09e846..a99e44e 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -59,12 +59,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 }"
+                :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 }"
                 @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 }"
+                :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 }"
                 @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
                   item.button.name }}</el-button>
             </div>
@@ -112,7 +112,13 @@
     updateButtonValue (dataGroup, itemIndex) {
       // 灏嗗綋鍓嶆寜閽殑鍊艰涓�1
 
-      this.$set(dataGroup[itemIndex].button, 'value', 1);
+      if (dataGroup[itemIndex].button.value === 0) {
+    // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
+    this.$set(dataGroup[itemIndex].button, 'value', 1);
+  } else {
+    // 鍚﹀垯灏嗗叾璁句负 0
+    this.$set(dataGroup[itemIndex].button, 'value', 0);
+  }
 
 
 
@@ -305,8 +311,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
-
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
         if (socket != null) {
           socket.close();
           socket = null;
@@ -482,4 +487,8 @@
 .error-button2 {
   background-color: red;
 }
+.greenbutton{
+
+  background-color: green;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
index 50d9f61..076b1cb 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -58,11 +58,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 }"
+                :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 }"
                 @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 }"
+                :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 }"
                 @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{
                   item.button.name }}</el-button>
             </div>
@@ -110,12 +110,12 @@
     updateButtonValue (dataGroup, itemIndex) {
       // 灏嗗綋鍓嶆寜閽殑鍊艰涓�1
 
-      if (dataGroup[itemIndex].button.value === 1) {
+      if (dataGroup[itemIndex].button.value === 0) {
     // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
-    this.$set(dataGroup[itemIndex].button, 'value', 0);
+    this.$set(dataGroup[itemIndex].button, 'value', 1);
   } else {
     // 鍚﹀垯灏嗗叾璁句负 0
-    this.$set(dataGroup[itemIndex].button, 'value', 1);
+    this.$set(dataGroup[itemIndex].button, 'value', 0);
   }
 
 
@@ -249,7 +249,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
@@ -422,4 +422,8 @@
 .error-button2 {
   background-color: red;
 }
+.greenbutton{
+
+background-color: green;
+}
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter1.vue b/CanadaMes-ui/src/views/Electrical/Parameter1.vue
index 3cad049..27d8f9a 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter1.vue
@@ -133,7 +133,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter2.vue b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
index bfb3046..695107d 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
@@ -53,12 +53,12 @@
             <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"
   @click="updateButtonValue(dataGroup, itemIndex);submitDataToBackend(item.button.name)"
-  :class="{ 'green-button':  (item.button.value === 0  && item.button.name !==  'Clear ID' ) ,'red-button': item.button.value === 2 && (item.button.name !==  'Clear ID' ) ,'yellow-button': item.button.value === 1 && (item.button.name !==  'Clear ID' ) }">{{ item.button.name }}</el-button>
+  :class="{ 'green-button':  (item.button.value === 0  && item.button.name !==  'Clear ID' ) ,'red-button': 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' ) }">{{ 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"
   @click="updateButtonValue(dataGroup, itemIndex);submitDataToBackend(item.button.name)"
-  :class="{ 'green-button':  (item.button.value === 0  && item.button.name !==  '娓呴櫎ID' ) ,'red-button': item.button.value === 2 && (item.button.name !==  '娓呴櫎ID' ) ,'yellow-button': item.button.value === 1 && (item.button.name !==  '娓呴櫎ID' ) }">{{ item.button.name }}</el-button>
+  :class="{ 'green-button':  (item.button.value === 0  && item.button.name !==  '娓呴櫎ID' ) ,'red-button': 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' ) }">{{ item.button.name }}</el-button>
 
 </div>
           </div>
@@ -85,6 +85,7 @@
   <script>
   import LanguageMixin from '../../lang/LanguageMixin'
   import data from '../../configuration/parameter2'
+  import { throttle } from 'lodash';
   let socket;
 
   // window.onload=function(){
@@ -142,12 +143,12 @@
   },
   
   updateButtonValue(dataGroup, itemIndex) {
-  if (dataGroup[itemIndex].button.value === 1) {
+  if (dataGroup[itemIndex].button.value === 0) {
     // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
-    this.$set(dataGroup[itemIndex].button, 'value', 0);
+    this.$set(dataGroup[itemIndex].button, 'value', 1);
   } else {
     // 鍚﹀垯灏嗗叾璁句负 0
-    this.$set(dataGroup[itemIndex].button, 'value', 1);
+    this.$set(dataGroup[itemIndex].button, 'value', 0);
   }
 },
     submitDataToBackend(currentButtonName) {
@@ -187,7 +188,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
@@ -218,6 +219,14 @@
       // const xiaoche = obj.params[3];
    
   //  console.log(obj);
+
+
+
+  const handleMouseMove = throttle(function(event) {
+  const inputBox = document.querySelectorAll('.action-button');
+  const target = event.target;
+
+  if (inputBox && Array.from(inputBox).every(box => !box.contains(target))) {
 //娓呴櫎id
       for (let i = 0; i < jsonData2.length; i++) {
   let arr = jsonData2[i];
@@ -276,6 +285,23 @@
 
      
 }
+//鏀瑰彉鐘舵�佹枃瀛�
+for (let i = 0; i < jsonData2.length; i++) {
+  let arr = jsonData2[i];
+  for (let j = 0; j < arr.length; j++) {
+    let obj = arr[j];
+    if (obj.type === '4' && obj.button.value===1) {
+      if ( obj.button.name.includes("鐘舵��")&& this.language==="zh-CN") {
+      obj.button.name =obj.button.name.replace("鎵嬪姩","鑷姩") ;
+    }
+    if ( obj.button.name.includes("Status")) {
+      obj.button.name =obj.button.name.replace("Manual","Auto") ;
+    }
+  }
+
+     
+}
+}
 //鎵弿鏋壂鐮佺殑ID
 
 jsonData2.forEach((item) => {
@@ -316,9 +342,11 @@
 
 
 
-
+  }
 //  console.log(jsonData2);
-
+}, 50);
+        
+document.addEventListener('mouseover', handleMouseMove);
   
 };
 
@@ -399,5 +427,9 @@
 .yellow-button{
   background-color: blue;
 }
+.id{
+
+  background-color: green;
+}
 
   </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning1.vue b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
index 7b0840d..68caa1e 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -135,7 +135,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning2.vue b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
index c5bcfb8..889be3b 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
@@ -131,7 +131,7 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
diff --git a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
index 9d37abe..4512f87 100644
--- a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
+++ b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -56,8 +56,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}" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
-          <el-button v-if="item.button && language === 'zh-CN' " :name="item.button.name" v-model="item.button.value" :class="{'action-button': true, 'error-button': item.button.name === '鏁呴殰' && item.button.value === 1,'error-button2': item.button.name === '鏈洖闆�' && item.button.value === 0}" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
+          <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,'fuwei': item.button.name === 'Reset' && 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}" @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,'fuwei': 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 }" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend(item.button.name);">{{ item.button.name }}</el-button>
         </div>
       </div>
     </el-card>
@@ -77,11 +77,13 @@
   export default {
   name: "ServoManualone",
   mixins: [LanguageMixin],
- 
+  
   data() {
     return {
       jsonData: data ,
 language:this.$i18n.locale,
+zhi:"1",
+zhi2:"1"
       // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
     }
   },
@@ -110,15 +112,13 @@
   
     
     updateButtonValue(dataGroup, itemIndex) {
-  // 灏嗗綋鍓嶆寜閽殑鍊艰涓�1
-  this.$set(dataGroup[itemIndex].button, 'value', 1);
-  
-  // 灏嗗叾浠栨寜閽殑鍊艰涓�0
-  // dataGroup.forEach((item, index) => {
-  //   if (index !== itemIndex && item.button) {
-  //     this.$set(item.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 === 'A01鍗婅嚜鍔ㄥ惎鍔�' ||currentButtonName === 'A01 Semi-Auto Start') {
@@ -148,7 +148,8 @@
   data.push(values);
  
 }
-data.push([]);
+data.push([],[], [],);
+
 
 const jsonObject = { data };
 
@@ -174,7 +175,7 @@
 }
 data2.unshift([]);
 
-data2.push([], [], []);
+data2.push([], []);
 
 for (let i = 1; i < 2; i++) {
   const inputData = this.jsonData[i].filter(item => item.type === '0' && item.read == 8888).map(item => {
@@ -184,9 +185,9 @@
   const values2 = inputData.map(item => item.value);
 
   data2.push(values2);
+  data2.push([], [],[], []);
  
 }
-
 
 
 const jsonObject = { data:data2 };
@@ -212,6 +213,7 @@
 
   // 鍦� data2 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
   data2.unshift([], []);
+  data2.push([], [], [], [], []);
 
   // 鍒涘缓 jsonObject2 瀵硅薄锛屽苟娣诲姞 data2 灞炴��
   const jsonObject2 = { data: data2 };
@@ -220,9 +222,9 @@
   const jsonString2 = JSON.stringify(jsonObject2);
   console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString2);
   socket?.send(jsonString2);
-  setTimeout(()=>
-    window.location.reload(),2000
-  )
+  // setTimeout(()=>
+  //   window.location.reload(),2000
+  // )
  
 }
 
@@ -239,17 +241,18 @@
 
   // 鍦� data3 鏁扮粍鍓嶉潰娣诲姞涓や釜绌烘暟缁�
   data3.unshift([], [], []);
+  data3.push([], [], [], []);
 
-  // 鍒涘缓 jsonObject2 瀵硅薄锛屽苟娣诲姞 data3 灞炴��
+  // 鍒涘缓 jsonObject3 瀵硅薄锛屽苟娣诲姞 data3 灞炴��
   const jsonObject3 = { data: data3 };
 
   // 鎻愪氦鏁版嵁鍒板悗绔�
   const jsonString3 = JSON.stringify(jsonObject3);
   console.log('鍥為浂:', jsonString3);
   socket?.send(jsonString3);
-  setTimeout(()=>
-    window.location.reload(),2000
-  )
+  // setTimeout(()=>
+  //   window.location.reload(),2000
+  // )
 }
 
 
@@ -257,19 +260,123 @@
 
   if (currentButtonName === 'A01鍗婅嚜鍔�' || currentButtonName === 'A01 Semi-Auto' ) {
     const elements = document.getElementsByClassName('special-class');
+    const data = [];
+   
     for (let i = 0; i < elements.length; i++) {
       if (elements[i].style.display === 'none') {
         elements[i].style.display = ''; // 鏄剧ず鍏冪礌
+        this.zhi=1;
+        // if(this.jsonData[0].button.name==='A01鍗婅嚜鍔�' || this.jsonData[0].button.name === 'A01 Semi-Auto'){
+        //   this.jsonData[0].button.value=1
+        // }
+
+
+        for (let i = 0; i < this.jsonData.length; i++) {
+                let arr = this.jsonData[i];
+                for (let j = 0; j < arr.length; j++) {
+                  let obj2 = arr[j];
+                  if (obj2.button && (obj2.button.name === "A01鍗婅嚜鍔�" || obj2.button.name === "A01 Semi-Auto")) {
+                    obj2.button.value = 1;
+                    // console.log(obj2.button.value)
+                  }
+                }
+
+
+              }
+      }else{
+        elements[i].style.display = 'none';
+       this.zhi=0;
+      //  if(this.jsonData[0].button.name==='A01鍗婅嚜鍔�' || this.jsonData[0].button.name === 'A01 Semi-Auto'){
+      //     this.jsonData[0].button.value=0
+      //   }
+
+      for (let i = 0; i < this.jsonData.length; i++) {
+                let arr = this.jsonData[i];
+                for (let j = 0; j < arr.length; j++) {
+                  let obj2 = arr[j];
+                  if (obj2.button && (obj2.button.name === "A01鍗婅嚜鍔�" || obj2.button.name === "A01 Semi-Auto")) {
+                    obj2.button.value = 0;
+                  //  console.log(obj2.button.value)
+                  }
+                }
+
+
+              }
       } 
     }
+
+    
+
+     data.push([this.zhi]);
+
+    data.unshift([],[],[],[],[],[]);
+data.push([]);
+
+
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
   }
+
+
+
   if (currentButtonName === 'A02鍗婅嚜鍔�' || currentButtonName === 'A02 Semi-Auto' ) {
     const elements = document.getElementsByClassName('special-class2');
+  
+    const data = [];
     for (let i = 0; i < elements.length; i++) {
       if (elements[i].style.display === 'none') {
         elements[i].style.display = ''; // 鏄剧ず鍏冪礌
+         this.zhi2=1;
+         for (let i = 0; i < this.jsonData.length; i++) {
+                let arr = this.jsonData[i];
+                for (let j = 0; j < arr.length; j++) {
+                  let obj2 = arr[j];
+                  if (obj2.button && (obj2.button.name === "A02鍗婅嚜鍔�" || obj2.button.name === "A02 Semi-Auto")) {
+                    obj2.button.value = 1;
+                    // console.log(obj2.button.value)
+                  }
+                }
+
+
+              }
+
+      }else{
+        elements[i].style.display = 'none';
+        this.zhi2=0;
+        for (let i = 0; i < this.jsonData.length; i++) {
+                let arr = this.jsonData[i];
+                for (let j = 0; j < arr.length; j++) {
+                  let obj2 = arr[j];
+                  if (obj2.button && (obj2.button.name === "A02鍗婅嚜鍔�" || obj2.button.name === "A02 Semi-Auto")) {
+                    obj2.button.value = 0;
+                    // console.log(obj2.button.value)
+                  }
+                }
+
+
+              }
       } 
     }
+
+     data.push([this.zhi2]);
+
+    data.unshift([],[],[],[],[],[],[]);
+
+
+const jsonObject = { data };
+
+// 鎻愪氦鏁版嵁鍒板悗绔�
+const jsonString = JSON.stringify(jsonObject);
+console.log('鎵�鏈塗ype涓�0鐨剉alue:', jsonString);
+socket?.send(jsonString);
+
   }
 
  
@@ -285,7 +392,8 @@
       if (typeof WebSocket === "undefined") {
         console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
       } else {
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+      
+        let socketUrl = "ws://" +this.$t('ip')+ ":8888" + "/springboot-vue3/api/talk/" + viewname;
 
         if (socket != null) {
           socket.close();
@@ -333,7 +441,21 @@
     let obj2 = arr[j];
     if (obj2.button && (obj2.button.name === "鏁呴殰" || obj2.button.name === "Fault")) {
       obj2.button.value = obj.guzhang[0][i];
-      // console.log(obj2.button.value)
+      //  console.log(obj2.button.value)
+    }
+  }
+
+     
+}
+
+
+for (let i = 0; i < jsonData2.length; i++) {
+  let arr = jsonData2[i];
+  for (let j = 0; j < arr.length; j++) {
+    let obj2 = arr[j];
+    if (obj2.button && (obj2.button.name === "澶嶄綅" || obj2.button.name === "Reset")) {
+      obj2.button.value = obj.fuwei[0][i];
+      //  console.log(obj2.button.value)
     }
   }
 
@@ -459,6 +581,17 @@
 .error-button2 {
   background-color: red;
 }
+.fuwei {
+  background-color: green;
+}
+
+.qidong {
+  background-color: green;
+}
+
+.qidong2 {
+  background-color: green;
+}
 
 
 </style>
\ No newline at end of file
diff --git a/CanadaMes-ui/src/views/Electrical/Sign.vue b/CanadaMes-ui/src/views/Electrical/Sign.vue
index 4ee28d3..21c22be 100644
--- a/CanadaMes-ui/src/views/Electrical/Sign.vue
+++ b/CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -99,7 +99,7 @@
       } else {
         //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
 
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
         if (socket != null) {
           socket.close();
           socket = null;
diff --git a/CanadaMes-ui/src/views/Electrical/State.vue b/CanadaMes-ui/src/views/Electrical/State.vue
index fa4dd52..1e25515 100644
--- a/CanadaMes-ui/src/views/Electrical/State.vue
+++ b/CanadaMes-ui/src/views/Electrical/State.vue
@@ -97,7 +97,7 @@
       } else {
         //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
 
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
         if (socket != null) {
           socket.close();
           socket = null;
diff --git a/CanadaMes-ui/src/views/Electrical/alarm.vue b/CanadaMes-ui/src/views/Electrical/alarm.vue
index 93d48b6..4800d63 100644
--- a/CanadaMes-ui/src/views/Electrical/alarm.vue
+++ b/CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -178,7 +178,7 @@
       } else {
         //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
 
-        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+        let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
         if (socket != null) {
           socket.close();
           socket = null;
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index 77116c1..4005110 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -795,7 +795,7 @@
                 console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
             } else {
                 //console.log("鎮ㄧ殑娴忚鍣ㄦ敮鎸乄ebSocket");
-                let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
+                let socketUrl = "ws://" + this.$t('ip')+":8888" + "/springboot-vue3/api/talk/" + viewname;
                 if (socket != null) {
                     socket.close();
                     socket = null;
@@ -853,7 +853,6 @@
                     }
                     if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 1) {
                         this.form3 = obj.form3[0];
-
                     } else {
                         this.form3 = {};
                     }
@@ -1561,19 +1560,22 @@
         //鍒ゆ柇鐜荤拑鏄惁瓒呭嚭鑼冨洿
         Sizerange(Glass) {
             if ((Glass.glassheight < 380 || Glass.glasswidth < 390 || Glass.glassheight > 1810 || Glass.glasswidth > 2760) || (Glass.glassheight < 390 || Glass.glasswidth < 380 || Glass.glassheight > 2760 || Glass.glasswidth > 1810)) {
-                if (this.disabled == false) {
+                // if (this.disabled == false) {
                     this.disabled = true;
-                    this.$message.error(this.$t('The glass size is not within the range'));
+                    // this.$message.error(this.$t('The glass size is not within the range'));
                     this.$alert(this.$t('The glass size is not within the range'), this.$t('confirm'), {
                         confirmButtonText: this.$t('Yes'),
+                        type:'info',
                         callback: action => {
                             this.$message({
                                 type: 'info',
-                                message: `action: ${action}`
-                            });
+                                action: action
+                            }).then(
+                                this.DeleteBarcodeGlass()
+                            );
                         }
                     });
-                }
+                // }
                 // this.$message(this.$t('The glass size is not within the range'), this.$t('confirm'), {
                 //     // confirmwidth: 7000,
                 //     // height: 8000,
@@ -1592,6 +1594,9 @@
         } else {
             this.disabled1 = false;
         }
+    },
+    DeleteBarcodeGlass(){
+        this.form5={};
     }
 }
 }
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 87a5c68..0f643e0 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
@@ -234,6 +234,11 @@
             }
             if (!sValue.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses1, sValue);
+              List<String> A01start = new ArrayList<>();
+              A01start.add("DB101.2.2");
+              Boolean[] a01values7 = { true};
+              List<Boolean> a01startval = new ArrayList<>(Arrays.asList(a01values7));
+              S7control.getinstance().WriteBit(A01start, a01startval);
               System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
             }
           }
@@ -259,6 +264,11 @@
             }
             if (!sValue2.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses2, sValue2);
+              List<String> A02start = new ArrayList<>();
+              A02start.add("DB101.2.3");
+              Boolean[] a02values7 = { true};
+              List<Boolean> a01startval = new ArrayList<>(Arrays.asList(a02values7));
+              S7control.getinstance().WriteBit(A02start, a01startval);
               System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
             }
           }
@@ -283,6 +293,11 @@
             }
             if (!sValue2.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses3, sValue2);
+              List<String> B01start = new ArrayList<>();
+              B01start.add("DB101.2.4");
+              Boolean[]B01values7 = { true};
+              List<Boolean> B01startval = new ArrayList<>(Arrays.asList(B01values7));
+              S7control.getinstance().WriteBit(B01start, B01startval);
               System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses3);
             }
           }
@@ -307,6 +322,11 @@
             }
             if (!sValue2.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses4, sValue2);
+              List<String> B02start = new ArrayList<>();
+              B02start.add("DB101.2.5");
+              Boolean[] B02values7 = { true};
+              List<Boolean> B02startval = new ArrayList<>(Arrays.asList(B02values7));
+              S7control.getinstance().WriteBit(B02start, B02startval);
               System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses4);
             }
           }
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 5d8051d..61e8c6f 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
@@ -186,6 +186,11 @@
             }
             if (!sValue.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses1, sValue);
+              List<String> A01start = new ArrayList<>();
+              A01start.add("DB101.2.0");
+              Boolean[] a01values7 = { true};
+              List<Boolean> a01startval = new ArrayList<>(Arrays.asList(a01values7));
+              S7control.getinstance().WriteBit(A01start, a01startval);
               System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
             }
           }
@@ -210,6 +215,11 @@
             }
             if (!sValue2.isEmpty()) {
               S7control.getinstance().WriteWord(waddresses2, sValue2);
+              List<String> A02start = new ArrayList<>();
+              A02start.add("DB101.2.1");
+              Boolean[] a02values7 = { true};
+              List<Boolean> a01startval = new ArrayList<>(Arrays.asList(a02values7));
+              S7control.getinstance().WriteBit(A02start, a01startval);
               System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
             }
           }
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 6f18c01..81522f1 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
@@ -7,6 +7,7 @@
 import java.io.*;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 public class PlcParameter2 extends Thread {
@@ -61,13 +62,13 @@
   public void run() {
     while (this != null) {
       try {
-        Thread.sleep(500);
+        Thread.sleep(1000);
 
       } catch (InterruptedException e) {
         e.printStackTrace();
       }
 
-
+     //  鎵嬪姩鐘舵�佸湴鍧�
       List<String> addressList1 = new ArrayList<>();
 
       addressList1.add("DB103.44");//D01
@@ -86,7 +87,7 @@
       List<String> paramlist = S7control.getinstance().readStrings(addressList1);
 
 
-
+   //娓呴櫎ID鍦板潃
       List<String> addresses = new ArrayList<>();
       addresses.add("DB103.0");
       addresses.add("DB103.2");
@@ -100,6 +101,8 @@
       addresses.add("DB103.6");
       List<Short> data = S7control.getinstance().readWords(addresses);
 
+
+      //id
       List<String> addressList0 = new ArrayList<>();
 
       addressList0.add("DB101.9.2");
@@ -127,9 +130,17 @@
       addresses4.add("DB103.56");
       addresses4.add("DB103.60");
 
-      List<Short> data4 = S7control.getinstance().readWords(addresses4);
+    List<Short> data4 = S7control.getinstance().readWords(addresses4);
 
-//
+//      List<Long> TIME2 = Collections.singletonList(S7control.getinstance().readtime("DB100.194"));
+//      System.out.println("addressList锛�" + TIME2);
+
+
+      //
+
+
+
+
 //      String[] values6 = { ".x1 ","x2 ","x3",";;x4","x5","x6","x7","x8","x9","x10","x11"};
 //      List<String> paramlist = new ArrayList<>(Arrays.asList(values6));
 //      Short[] values1 = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
@@ -206,7 +217,7 @@
           }
 
           // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
-       S7control.getinstance().WriteBit(addressList, messageBooleans);
+//       S7control.getinstance().WriteBit(addressList, messageBooleans);
           System.out.println("messageValues锛�" + messageBooleans);
           System.out.println("addressList锛�" + addressList);
           // 娓呯┖娑堟伅鍒楄〃
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
index 8c2ef38..4af6e13 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
@@ -79,6 +79,7 @@
 //            Integer Plccount = this.count;
 
             // System.out.println(stt);
+            //瀛樼墖鏍�  鍑虹墖鏍艰鍙�
   List<Short> arraylist = S7control.getinstance().ReadWord("DB100.42", 23);
 //            System.out.println(arraylist);
 //            Short[] 瀛樼墖 = { 1 };
@@ -105,7 +106,7 @@
             WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Positioning1");
             if (webSocketServer != null) {
                 List<String> messages = webSocketServer.getMessages();
-
+                //瀛樼墖鏍�  鍑虹墖鏍煎湴鍧�
                 String addressList3 = "DB100.42";
 
                 if (!messages.isEmpty()) {
@@ -134,7 +135,7 @@
                     }
 
 
-                    // 鍐欏叆绗瑈i涓湴鍧�
+                    // 鍐欏叆瀛樼墖鏍�  鍑虹墖鏍间綅缃瀹氭暟鎹�
                     if (!mergedList.isEmpty()) {
           S7control.getinstance().WriteWord(addressList3, mergedList);
                         System.out.println("messageValue锛�" + mergedList + " written to PLC at address " + addressList3);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java
index 9b72c6f..9eb5e92 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
@@ -72,6 +72,7 @@
 //            Integer Plccount = this.count;
 
             // System.out.println(stt);
+            //B01鏍间綅缃� 鍦板潃璇诲彇
             List<Short> arraylist = S7control.getinstance().ReadWord("DB100.88", 10);
 
 //            Short[] values1 = { 1,2, 3, 4, 5 , 11, 12,13,14,15};
@@ -93,7 +94,7 @@
             WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("Positioning2");
             if (webSocketServer != null) {
                 List<String> messages = webSocketServer.getMessages();
-
+               //B01  B02 鍦板潃
                 String addressList3 = "DB100.88";
 
                 if (!messages.isEmpty()) {
@@ -122,7 +123,7 @@
                     }
 
 
-                    // 鍐欏叆绗瑈i涓湴鍧�
+                    // 鍐欏叆b01  b02鍦板潃
                     if (!mergedList.isEmpty()) {
             S7control.getinstance().WriteWord(addressList3, mergedList);
                         System.out.println("messageValue锛�" + mergedList + " written to PLC at address " + addressList3);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
index 465dfe3..21ab755 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
@@ -79,7 +79,7 @@
         e.printStackTrace();
       }
 
-
+//A01缁勫悎涓湴鍧�琛ㄩ泦鍚�
       List<String> addresses = new ArrayList<>();
       addresses.add("DB103.32");
       addresses.add("DB100.144");
@@ -95,7 +95,7 @@
 //      int insertIndex = 2;
 //      insertDataToList(arraylist, rangeAddress, insertIndex);
 
-
+//A02缁勫悎涓湴鍧�琛ㄩ泦鍚�
       List<String> addresses2 = new ArrayList<>();
       addresses2.add("DB103.26");
       addresses2.add("DB100.188");
@@ -108,16 +108,23 @@
 //      int insertIndex2 = 4;
 //      insertDataToList(arraylist2, rangeAddress2, insertIndex2);
 //      System.out.println(arraylist2);
+
+      //A01缈昏浆鍦板潃
       List<String> addresses3 = new ArrayList<>();
       addresses3.add("DB103.42");
       List<Short> arraylist3 = S7control.getinstance().readWords(addresses3);
 
+
+      //A02缈昏浆鍦板潃
       List<String> addresses4 = new ArrayList<>();
       addresses4.add("DB103.46");
       List<Short> arraylist4 = S7control.getinstance().readWords(addresses4);
-
+     //B01缁勫悎涓湴鍧�
       List<Short> arraylist5 = S7control.getinstance().ReadWord("DB103.27", 2);
+      //B02缁勫悎鍦板潃
       List<Short> arraylist6 = S7control.getinstance().ReadWord("DB103.29", 2);
+
+     // 鎵�鏈夋晠闅滄寜閽湴鍧�
       List<String> addresses7 = new ArrayList<>();
       addresses7.add("DB104.1.4");
       addresses7.add("DB104.1.5");
@@ -127,13 +134,32 @@
       addresses7.add("DB104.1.7");
       List<Boolean> arraylist7 = S7control.getinstance().readBits(addresses7);
 
-
+// 鎵�鏈夋晠闅滄寜閽浆鎹负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;
       }
 
+
+      // 鎵�鏈夊浣嶆寜閽湴鍧�
+      List<String> Reset = new ArrayList<>();
+      Reset.add("DB101.4.0");
+      Reset.add("DB101.4.3");
+      Reset.add("DB101.3.6");
+      Reset.add("DB101.4.1");
+      Reset.add("DB101.4.4");
+      Reset.add("DB101.4.6");
+      List<Boolean> Reset1 = S7control.getinstance().readBits(Reset);
+
+// 鎵�鏈夋晠闅滄寜閽浆鎹负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;
+      }
+
+      // 鎵�鏈夋湭鍥為浂鎸夐挳鍦板潃
       List<String> addresses8 = new ArrayList<>();
       addresses8.add("DB104.9.0");
       addresses8.add("DB104.9.1");
@@ -148,8 +174,9 @@
         params[i] = value ? (short) 1 : (short) 0;
       }
 
-
+    // 杩涚墖id鍦板潃
       StringBuilder queueid1 = queGlassid("DB100.148", 14);
+      // 瀛樼墖id鍦板潃
       StringBuilder queueid2 = queGlassid("DB100.162", 14);
 
 
@@ -200,6 +227,7 @@
    jsonObject.append("weihuiling", params);
       jsonObject.append("jinpianid", queueid1);
       jsonObject.append("qupianid", queueid2);
+      jsonObject.append("fuwei", rReset);
 
 
 
@@ -211,6 +239,7 @@
       WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ServoManualone");
       if (webSocketServer != null) {
         List<String> messages = webSocketServer.getMessages();
+        // A01缁勫悎鍦板潃
         List<String> waddresses1 = new ArrayList<>();
         waddresses1.add("DB103.32");
         waddresses1.add("DB100.144");
@@ -220,6 +249,7 @@
         waddresses1.add("DB100.180");
         waddresses1.add("DB100.182");
 
+        // A02缁勫悎鍦板潃
         List<String> waddresses2 = new ArrayList<>();
         waddresses2.add("DB103.26");
         waddresses2.add("DB100.188");
@@ -227,6 +257,8 @@
         waddresses2.add("DB100.146");
 //        waddresses2.add("DB100.162-175");
 
+
+        // 澶嶄綅鎸夐挳鍦板潃
         List<String> waddresses3 = new ArrayList<>();
         waddresses3.add("DB101.4.0");
         waddresses3.add("DB101.4.3");
@@ -235,14 +267,12 @@
         waddresses3.add("DB101.4.4");
         waddresses3.add("DB101.4.6");
 
-
+      //鍥為浂鎸夐挳鍦板潃
         List<String> waddresses4 = new ArrayList<>();
         waddresses4.add("DB101.3.7");
         waddresses4.add("DB101.4.2");
         waddresses4.add("DB101.4.5");
         waddresses4.add("DB101.4.7");
-
-
 
 
 String  waddresses5="DB100.148";
@@ -262,8 +292,8 @@
 
 
 
-          // 鍐欏叆绗竴涓湴鍧�
-          if (messageArray.getJSONArray(0).size() > 0) {
+          // 鍐欏叆AO1缁勫悎
+          if (messageArray.getJSONArray(0).size() > 0 ) {
             JSONArray jsonArray = messageArray.getJSONArray(0);
             List<Short> sValue = new ArrayList<>();
             for (int i = 0; i < jsonArray.size(); i++) {
@@ -281,11 +311,21 @@
               }
             }
             if (!sValue.isEmpty()) {
+
+
+
           S7control.getinstance().WriteWord(waddresses1, sValue);
+              List<String> A01start = new ArrayList<>();
+              A01start.add("DB101.5.0");
+              Boolean[] a01values7 = { true};
+              List<Boolean> a01startval = new ArrayList<>(Arrays.asList(a01values7));
+              S7control.getinstance().WriteBit(A01start, a01startval);
               System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
             }
           }
 
+
+          //// 鍐欏叆AO2缁勫悎
           if (messageArray.getJSONArray(1).size() > 0) {
             JSONArray jsonArray2 = messageArray.getJSONArray(1);
             List<Short> sValue2 = new ArrayList<>();
@@ -305,12 +345,17 @@
             }
             if (!sValue2.isEmpty()) {
             S7control.getinstance().WriteWord(waddresses2, sValue2);
+              List<String> A02start = new ArrayList<>();
+              A02start.add("DB101.5.1");
+              Boolean[] a02values7 = {true};
+              List<Boolean> a02startval = new ArrayList<>(Arrays.asList(a02values7));
+              S7control.getinstance().WriteBit(A02start, a02startval);
               System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
             }
           }
 
 
-
+         // 澶嶄綅鎸夐挳鍐欏叆
           if (messageArray.getJSONArray(2).size() > 0) {
             JSONArray jsonArray3 = messageArray.getJSONArray(2);
             List<Boolean> sValue3 = new ArrayList<>();
@@ -334,7 +379,7 @@
             }
           }
 
-
+        //鍥為浂鎸夐挳鍐欏叆
           if (messageArray.getJSONArray(3).size() > 0) {
             JSONArray jsonArray4 = messageArray.getJSONArray(3);
             List<Boolean> sValue4 = new ArrayList<>();
@@ -358,6 +403,9 @@
             }
           }
 
+
+
+          //杩涚墖ID鍐欏叆
           if (messageArray.getJSONArray(4).size() > 0) {
 //            JSONArray jsonArray5 = messageArray.getJSONArray(4);
             String jsonArray5 = String.valueOf(messageArray.getJSONArray(4));
@@ -368,7 +416,7 @@
               System.out.println("Values " + jsonArray5 + " written to PLC at address " + waddresses5);
             }
           }
-
+         // 瀛樼墖ID鍐欏叆
           if (messageArray.getJSONArray(5).size() > 0) {
             JSONArray jsonArray6 = messageArray.getJSONArray(5);
 
@@ -378,6 +426,97 @@
               System.out.println("Values " + value2 + " written to PLC at address " + waddresses6);
             }
           }
+          if (messageArray.getJSONArray(6).size() > 0) {
+            JSONArray jsonArray4 = messageArray.getJSONArray(6);
+            List<Boolean> sValueb4 = new ArrayList<>();
+            for (int i = 0; i < jsonArray4.size(); i++) {
+              Object value = jsonArray4.get(i);
+              if (value != null && !value.toString().equals("null")) {
+                try {
+                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                  boolean val = "1".equals(cleanedValue.trim());
+                  sValueb4.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 (!sValueb4.isEmpty()) {
+
+              List<String> A01Bstart = new ArrayList<>();
+              A01Bstart.add("DB101.11.0");
+//              Boolean[] a01values7 = {true};
+//              List<Boolean> a01Bstartval = new ArrayList<>(Arrays.asList(a01values7));
+              S7control.getinstance().WriteBit(A01Bstart, sValueb4);
+              System.out.println("Values " + sValueb4 + " written to PLC at address " + A01Bstart);
+            }
+          }
+
+
+
+
+
+          if (messageArray.getJSONArray(7).size() > 0) {
+            JSONArray jsonArray4 = messageArray.getJSONArray(7);
+            List<Boolean> sValueb5 = new ArrayList<>();
+            for (int i = 0; i < jsonArray4.size(); i++) {
+              Object value = jsonArray4.get(i);
+              if (value != null && !value.toString().equals("null")) {
+                try {
+                  String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
+                  boolean val = "1".equals(cleanedValue.trim());
+                  sValueb5.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 (!sValueb5.isEmpty()) {
+
+              List<String> A02Bstart = new ArrayList<>();
+              A02Bstart.add("DB101.11.1");
+//              Boolean[] a01values7 = {true};
+//              List<Boolean> a01Bstartval = new ArrayList<>(Arrays.asList(a01values7));
+              S7control.getinstance().WriteBit(A02Bstart, sValueb5);
+              System.out.println("Values " + sValueb5 + " written to PLC at address " + A02Bstart);
+            }
+          }
+
+
+
+
+
+//          if (messageArray.getJSONArray(6).size() > 0) {
+//            JSONArray jsonArray6 = messageArray.getJSONArray(6);
+//
+//            if (!jsonArray6.isEmpty()) {
+//              String value2 = (String) jsonArray6.get(0);
+//              List<String> A01Bstart = new ArrayList<>();
+//              A01Bstart.add("DB101.11.0");
+//              Boolean[] a01values7 = {true};
+//              List<Boolean> a01Bstartval = new ArrayList<>(Arrays.asList(a01values7));
+//              S7control.getinstance().WriteBit(A01Bstart, a01Bstartval);
+//              System.out.println("Values " + value2 + " written to PLC at address " + waddresses6);
+//            }
+//          }
+
+//          if (messageArray.getJSONArray(7).size() > 0) {
+//            JSONArray jsonArray6 = messageArray.getJSONArray(7);
+//
+//            if (!jsonArray6.isEmpty()) {
+//              String value2 = (String) jsonArray6.get(0);
+//              List<String> A02Bstart = new ArrayList<>();
+//              A02Bstart.add("DB101.11.1");
+//              Boolean[] a02values7 = {true};
+//              List<Boolean> a02Bstartval = new ArrayList<>(Arrays.asList(a02values7));
+//              S7control.getinstance().WriteBit(A02Bstart, a02Bstartval);
+//              System.out.println("Values " + value2 + " written to PLC at address " + waddresses6);
+//            }
+//          }
 
           // 娓呯┖娑堟伅鍒楄〃
           webSocketServer.clearMessages();
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
index f644903..c62f94f 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
@@ -70,6 +70,7 @@
 //      Integer Plccount = this.count;
       // System.out.println(PlcAddress);
 
+      //璇诲彇鐘舵�佹暟鎹�
 List<Short> plclist = S7control.getinstance().ReadWord("DB103.0", 44);
 //      Short[] values = { 0, 1, 1, 0, 1, 0, 1, 0,
 //          1, 0, };
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
index 0b6b94b..226f0b0 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -3,6 +3,7 @@
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.nio.charset.StandardCharsets;
+import java.sql.Time;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -279,6 +280,9 @@
             }
         }
     }
+    
+    
+    
 
     public void outmesid(String data, String addr) {
 //        System.out.println("outmesid: " + data);
@@ -313,6 +317,12 @@
         return data;
     }
 
+    public Long readtime(String address) {
+        if (s7PLC==null)
+            return null;
+        return s7PLC.readTime(address);
+    }
+
     private int extractAddressNumber(String address) {
         String numberStr = address.replaceAll("\\D+", ""); // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒�
         return Integer.parseInt(numberStr);
@@ -332,6 +342,8 @@
         List<String> addresslist = GetAddressList(address, count, 1);
         return s7PLC.readBoolean(addresslist);
     }
+    
+    
 
     private List<String> GetAddressList(String address, int count, int addedbit) {
         List<String> addresslist = new ArrayList<String>();

--
Gitblit v1.8.0