From a78422827afcedefd5a0ca1d893198d48ea8062f Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期四, 09 五月 2024 09:16:56 +0800
Subject: [PATCH] 修改翻译  界面按钮顺序 布局等

---
 CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue                                         |   16 
 springboot-vue3/src/main/resources/config.properties                                             |    4 
 CanadaMes-ui/src/views/Electrical/Positioning2.vue                                               |    2 
 CanadaMes-ui/src/configuration/ManualJog.json                                                    |  159 ++---
 CanadaMes-ui/src/configuration/Positioning1.json                                                 |   27 
 CanadaMes-ui/src/views/Electrical/Servomanual.vue                                                |   68 +
 CanadaMes-ui/src/views/Electrical/Sign.vue                                                       |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java              |   21 
 CanadaMes-ui/src/views/Electrical/ManualonePosition.vue                                          |   84 +-
 CanadaMes-ui/src/views/Electrical/Parameter2.vue                                                 |   38 -
 springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning2.java              |    1 
 CanadaMes-ui/src/views/Electrical/InteractionState.vue                                           |   48 -
 CanadaMes-ui/src/configuration/ServoManualone.json                                               |    4 
 CanadaMes-ui/src/lang/locales/zh-CN.json                                                         |    8 
 CanadaMes-ui/src/views/Electrical/Positioning1.vue                                               |  388 ++++++++----
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java                 |    6 
 CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue                                  |  165 ++++-
 CanadaMes-ui/src/views/Electrical/alarm.vue                                                      |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java |    5 
 CanadaMes-ui/src/lang/locales/en-US.json                                                         |   85 +-
 CanadaMes-ui/src/views/Electrical/ManualJog.vue                                                  |  112 +--
 CanadaMes-ui/src/views/Electrical/ServoManualone.vue                                             |   67 +-
 springboot-vue3/src/main/resources/JsonFile/PlcAlarm.json                                        |  372 ------------
 23 files changed, 754 insertions(+), 930 deletions(-)

diff --git a/CanadaMes-ui/src/configuration/ManualJog.json b/CanadaMes-ui/src/configuration/ManualJog.json
index 07ee2fa..da0da0b 100644
--- a/CanadaMes-ui/src/configuration/ManualJog.json
+++ b/CanadaMes-ui/src/configuration/ManualJog.json
@@ -1,20 +1,26 @@
 [
+
+ 
   [
-    {
+    
+    {   
       "button": {
         "name": "D01杈撻��",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
+     
+        
       },
       "type": "3"
+      
     },
     {
       "button": {
         "name": "D02杈撻��",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -24,7 +30,7 @@
       "button": {
         "name": "D03杈撻��",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -34,7 +40,7 @@
       "button": {
         "name": "D04杈撻��",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -44,7 +50,7 @@
       "button": {
         "name": "D05杈撻��",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -54,38 +60,20 @@
       "button": {
         "name": "D06杈撻��",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
       "type": "3"
-    },
-    {
-      "button": {
-        "name": "A01杈撻�佹鍚�",
-        "value": 0,
- "value2": 0,
-        "address": "DB10.0",
-        "state": 0
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A01杈撻�佸弽鍚�",
-        "value": 0,
- "value2": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    },
-    
+    }],
+    [
+   
+   
     {
       "button": {
         "name": "A01琛岃蛋鐐瑰姩",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -95,9 +83,19 @@
       "button": {
         "name": "A01缈昏浆",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
+      },
+      "type": "3"
+    },
+    {
+      "button": {
+        "name": "A01杈撻�佹鍚�",
+        "value": 0,
+        "value2": 0,
+        "address": "DB10.0",
+        "state": 0
       },
       "type": "3"
     },
@@ -105,37 +103,20 @@
       "button": {
         "name": "A01娉ㄧ數娉�",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
       "type": "3"
-    },
-    {
-      "button": {
-        "name": "A02杈撻�佹鍚�",
-        "value": 0,
- "value2": 0,
-        "address": "DB10.0",
-        "state": 0
-      },
-      "type": "3"
-    },
-    {
-      "button": {
-        "name": "A02杈撻�佸弽鍚�",
-        "value": 0,
- "value2": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    },
+    }],
+    [
+    
+    
     {
       "button": {
         "name": "A02琛岃蛋鐐瑰姩",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -145,20 +126,17 @@
       "button": {
         "name": "A02缈昏浆",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
       "type": "3"
     },
- 
-   
-
     {
       "button": {
-        "name": "A02娉ㄧ數娉�",
+        "name": "A02杈撻�佹鍚�",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -166,30 +144,31 @@
     },
     {
       "button": {
-        "name": "B01杈撻��",
+        "name": "A02娉ㄧ數娉�",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
-        "state": 1
+        "state": 0
       },
       "type": "3"
-    },
+    }],
+    [
+   
     {
       "button": {
         "name": "B01琛岃蛋鐐瑰姩",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
       "type": "3"
     },
-    
     {
       "button": {
         "name": "B01缈昏浆姘旂几",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -199,16 +178,17 @@
       "button": {
         "name": "B01鍗囬檷姘旂几",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
       "type": "3"
-    }, {
+    },
+    {
       "button": {
-        "name": "B01鍚规皵",
+        "name": "B01杈撻��",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -216,23 +196,21 @@
     },
     {
       "button": {
-        "name": "B02杈撻��",
+        "name": "B01鍚规皵",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
       "type": "3"
-    },
-    
+    }],
+    [
    
-   
-    
     {
       "button": {
         "name": "B02琛岃蛋鐐瑰姩",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 1
       },
@@ -242,7 +220,7 @@
       "button": {
         "name": "B02缈昏浆姘旂几",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -252,7 +230,7 @@
       "button": {
         "name": "B02鍗囬檷姘旂几",
         "value": 0,
- "value2": 0,
+        "value2": 0,
         "address": "DB10.0",
         "state": 0
       },
@@ -260,21 +238,7 @@
     },
     {
       "button": {
-        "name": "B02鍚规皵",
-        "value": 0,
- "value2": 0,
-        "address": "DB10.0",
-        "state": 1
-      },
-      "type": "3"
-    }
-   
-   
-  ],
-  [
-    {
-      "button": {
-        "name": "A01鍘熺偣璁板繂",
+        "name": "B02杈撻��",
         "value": 0,
         "value2": 0,
         "address": "DB10.0",
@@ -284,7 +248,7 @@
     },
     {
       "button": {
-        "name": "A02鍘熺偣璁板繂",
+        "name": "B02鍚规皵",
         "value": 0,
         "value2": 0,
         "address": "DB10.0",
@@ -292,7 +256,6 @@
       },
       "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 1313571..f9345d6 100644
--- a/CanadaMes-ui/src/configuration/Positioning1.json
+++ b/CanadaMes-ui/src/configuration/Positioning1.json
@@ -389,6 +389,33 @@
     
    
   ]
+  
+  ,
+  [
+    {
+      "button": {
+        "name": "A01鍘熺偣璁板繂",
+        "value": 0,
+        "value2": 0,
+        "address": "DB10.0",
+        "state": 1
+      
+      },"type": "1"
+     
+    },
+    {
+      "button": {
+        "name": "A02鍘熺偣璁板繂",
+        "value": 0,
+        "value2": 0,
+        "address": "DB10.0",
+        "state": 1
+      
+      },
+      "type": "1"
+     
+    }
+  ]
 
    
     
diff --git a/CanadaMes-ui/src/configuration/ServoManualone.json b/CanadaMes-ui/src/configuration/ServoManualone.json
index 4771acb..aaf51b8 100644
--- a/CanadaMes-ui/src/configuration/ServoManualone.json
+++ b/CanadaMes-ui/src/configuration/ServoManualone.json
@@ -260,7 +260,7 @@
       {
         "button": {
           "name": "鏈洖闆�",
-          "value":0,
+          "value":1,
           "address":"DB10.0",
           "type":"66"
         }
@@ -307,7 +307,7 @@
       "button": {
         "name": "鏈洖闆�",
         
-        "value":0,
+        "value":1,
         "address":"DB10.0",
         "type":"66"
       }
diff --git a/CanadaMes-ui/src/lang/locales/en-US.json b/CanadaMes-ui/src/lang/locales/en-US.json
index e17d9b9..2ef6fd2 100644
--- a/CanadaMes-ui/src/lang/locales/en-US.json
+++ b/CanadaMes-ui/src/lang/locales/en-US.json
@@ -172,7 +172,7 @@
     "B02 OUT pos error": "B02 OUT pos error"
   },
   "Electrical": "Electrical",
-  "Parameter": "Parameter",
+  "Parameter": "Manual/Automatic",
   "Action": "Action",
   "Sign": "Sign",
   "State": "State",
@@ -374,7 +374,7 @@
       "A02缈昏浆瀹炴椂浣嶇疆": "A02FlipPosition",
       "鏁呴殰": "Fault",
       "澶嶄綅": "Reset",
-      "鏈洖闆�": "NotZero",
+      "鏈洖闆�": "Homing Failure",
       "鍥為浂": "Home",
       "鐩爣鏍煎瓙": "Target Grid",
       "A02 鎵�鍦ㄦ牸瀛�": "A02 Current Grid",
@@ -447,7 +447,7 @@
             "缈昏浆瀹炴椂浣嶇疆": "FlipPosition",
             "鏁呴殰": "Fault",
             "澶嶄綅": "Reset",
-            "鏈洖闆�": "NotZero",
+            "鏈洖闆�": "Homing Failure",
             "鍥為浂": "Zero",
             "鐩爣鏍煎瓙": "Target Grid",
             "鏍煎瓙闂磋窛": "GridSpacing",
@@ -466,7 +466,9 @@
             "190#鏍煎湴鍧�": "grid address190#",
             "鍑虹墖鏍间綅缃瀹�": "OutgoingGridPositionSetting",
             "B01鏍间綅缃瀹�":"B01PositionSetting",
-            "B02浣嶇疆璁惧畾":"B02PositionSetting"
+            "B02浣嶇疆璁惧畾":"B02PositionSetting",
+            "A01鍘熺偣璁板繂":"A01 Calibration Pos",
+            "A02鍘熺偣璁板繂":"A02 Calibration Pos"
             },
             "langPositioning2": {
              
@@ -488,30 +490,30 @@
                 "B01鍚姩": "B01 Start",
                 "澶嶄綅": "Reset",
                 "鍥為浂": "Home",
-                "鏈洖闆�": "NotZero",
+                "鏈洖闆�": "Homing Failure",
                 "B02鎵嬪姩鏍煎瓙": "B02 Target grid(Manual)",
                 "B02瀹氫綅閫熷害": "B02 TRAVEL POS Velocity manual",
                 "B02褰撳墠鏍煎瓙": "B02 Current Grid",
                 "B02鍚姩": "B02 Start",
                 "澶嶄綅": "Reset",
-                "A01瀹炴椂浣嶇疆": "A01 tavel Actual Position",
-                "A02瀹炴椂浣嶇疆": "A02 tavel Actual Position",
-                "B01瀹炴椂浣嶇疆": "B02 tavel Actual Position",
-                "B02瀹炴椂浣嶇疆": "B02 tavel Actual Position"
+                "A01瀹炴椂浣嶇疆": "A01 Actual Position",
+                "A02瀹炴椂浣嶇疆": "A02 Actual Position",
+                "B01瀹炴椂浣嶇疆": "B02 Actual Position",
+                "B02瀹炴椂浣嶇疆": "B02 Actual Position"
               },
               "Manualoneposition2lang": {
                 "A01鎵嬪姩浣嶇疆": "A01 turn Target Angle(Manual)",
                 "A01瀹氫綅閫熷害": "A01 TURN POS Velocity manual",
                 "A01缈昏浆瀹炴椂浣嶇疆": "A01 turn Actual angle",
-                "A01缈昏浆鍚姩": "A01 SERVE TURN",
+                "A01缈昏浆鍚姩": "A01 Tilt",
                 "鏁呴殰": "Fault",
                 "澶嶄綅": "Reset",
-                "鏈洖闆�": "NotZero",
+                "鏈洖闆�": "Homing Failure",
                 "鍥為浂": "Home",
                 "A02鎵嬪姩浣嶇疆": "A02 turn Target Angle(Manual)",
                 "A02瀹氫綅閫熷害": "A02 TURN POS Velocity manual",
                 "A02缈昏浆瀹炴椂浣嶇疆": "A02 turn Actual angle",
-                "A02缈昏浆鍚姩": "A02 SERVE TURN",
+                "A02缈昏浆鍚姩": "A02 Tilt",
                 "A02澶嶄綅": "Reset"
             
                
@@ -539,37 +541,36 @@
                 "鎵嬪姩閫熷害": "Manual Speed"
               },
               "ManualJoglang": {
-                "D01杈撻��": "D01 VFD conveyor",
-                "D02杈撻��": "D02 VFD conveyor",
-                "D03杈撻��": "D03 VFD conveyor",
-                "D04杈撻��": "D04 VFD conveyor",
-                "D05杈撻��": "D05 VFD conveyor",
-                "D06杈撻��": "D06 VFD conveyor",
-                "A01杈撻�佹鍚�": "A01 VFD conveyor",
-                "A02杈撻�佹鍚�": "A02 VFD conveyor",
-                "B01杈撻��": "B01 VFD conveyor",
-                "B02杈撻��": "B02 VFD conveyor",
-                "A01缈昏浆": "A01 SERVE TURN",
-                "A02缈昏浆": "A02 SERVE TURN",
-                "A01琛岃蛋鐐瑰姩": "A01 SERVE TRAVEL",
-                "A02琛岃蛋鐐瑰姩": "A02 SERVE TRAVEL",
-                "B01琛岃蛋鐐瑰姩": "B01 SERVE TRAVEL",
-                "B02琛岃蛋鐐瑰姩": "B02 SERVE TRAVEL",
-                "B02缈昏浆姘旂几": "B02 Solenoid TURN",
-                "B02鍗囬檷姘旂几": "B02 Solenoid UP DOWN",
-                "B02鍚规皵": "B02 Solenoid Gassing",
-                "B01缈昏浆姘旂几": "B01 Solenoid TURN",
-                "B01鍗囬檷姘旂几": "B01 Solenoid UP DOWN",
-                "B01鍚规皵": "B01 Solenoid Gassing",
-                "A01杈撻�佸弽鍚�": "A01 VFD conveyor reverse",
-                "A02杈撻�佸弽鍚�": "A02 VFD conveyor reverse",
-                "A01娉ㄧ數娉�": "A01 oil pump",
-                "A02娉ㄧ數娉�": "A02 oil pump",
-                "A01琛岃蛋浼烘湇鍥為浂":"A01 SERVE TRAVEL Home",
-                "A02琛岃蛋浼烘湇鍥為浂":"A02 SERVE TRAVEL Home"
+                "D01杈撻��": "D01",
+                "D02杈撻��": "D02",
+                "D03杈撻��": "D03",
+                "D04杈撻��": "D04",
+                "D05杈撻��": "D05",
+                "D06杈撻��": "D06",
+                "A01杈撻�佹鍚�": "ConvCyor",
+                "A02杈撻�佹鍚�": "ConvCyor",
+                "B01杈撻��": "ConvCyor",
+                "B02杈撻��": "ConvCyor",
+                "A01缈昏浆": "Tilt",
+                "A02缈昏浆": "Tilt",
+                "A01琛岃蛋鐐瑰姩": "Drive",
+                "A02琛岃蛋鐐瑰姩": "Drive",
+                "B01琛岃蛋鐐瑰姩": "Drive",
+                "B02琛岃蛋鐐瑰姩": "Drive",
+                "B02缈昏浆姘旂几": "Tilt Cyl",
+                "B02鍗囬檷姘旂几": "V Cylinder",
+                "B02鍚规皵": "Air blow",
+                "B01缈昏浆姘旂几": "Tilt Cyl",
+                "B01鍗囬檷姘旂几": "V Cylinder",
+                "B01鍚规皵": "Air blow",
+                "A01杈撻�佸弽鍚�": "ConvCyor",
+                "A02杈撻�佸弽鍚�": "ConvCyor",
+                "A01娉ㄧ數娉�": "Oil Pump",
+                "A02娉ㄧ數娉�": "Oil Pump",
+                "A01鍘熺偣璁板繂":"A01 Calibration Pos",
+                "A02鍘熺偣璁板繂":"A02 Calibration Pos"
               },
-              "A01琛岃蛋浼烘湇鍥為浂":"A01 SERVE TRAVEL Home",
-                "A02琛岃蛋浼烘湇鍥為浂":"A02 SERVE TRAVEL Home",
+              
                 "Set":"Set"
 
   
diff --git a/CanadaMes-ui/src/lang/locales/zh-CN.json b/CanadaMes-ui/src/lang/locales/zh-CN.json
index d222752..5cf1fcc 100644
--- a/CanadaMes-ui/src/lang/locales/zh-CN.json
+++ b/CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -175,6 +175,10 @@
   "Sign": "IO鐘舵��",
   "State": "鐘舵��",
   "Alarm": "鎶ヨ淇℃伅",
+
+  "Cage Positions":"绗煎瓙瀹氫綅",
+  "PLC-MES Info":"PLC浜や簰",
+  
   "Distribute": "涓嬪彂",
   "Search": "鎼滅储",
   "dvstate": {
@@ -509,9 +513,9 @@
     "D05.State": "D05.鐘舵��",
     "D06.State": "D06.鐘舵��"
   },
-  "Automatic State":"鑷姩鐘舵��",
+  "Glass Data":"鑷姩鐘舵��",
   "ManualJog":"寮�鍏虫帶鍒�",
-  "ManualonePosition":"鎵嬪姩瀹氫綅",
+  "Manual Control":"鎵嬪姩瀹氫綅",
   "Servomanualone":"鍗婅嚜鍔�",
   "Address parameter settings":"鍦板潃鍙傛暟璁剧疆",
   "Speed parameter settings":"閫熷害鍙傛暟璁剧疆",
diff --git a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
index ca7eb8f..2bd23c0 100644
--- a/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
+++ b/CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -1,60 +1,103 @@
 <template>
   <div class="app">
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
-      }}</router-link>
-      <!-- <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
-      }}</router-link> -->
+      <router-link
+        to="/Electrical/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> -->
       <!-- <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')
-      }}</router-link>
+        }}</router-link> -->
+      <router-link
+        to="/Electrical/Sign"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("I/O") }}</router-link
+      >
+      <router-link
+        to="/Electrical/Servomanual"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Parameter") }}</router-link
+      >
     </el-breadcrumb>
 
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State')
-      }}</router-link>
-      <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualJog')
-      }}</router-link> -->
-      
-       <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualonePosition')
-      }}</router-link>
+      <router-link
+        to="/Electrical/Parameter2"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Glass Data") }}</router-link
+      >
+      <!-- <router-link
+        to="/Electrical/ManualJog"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("ManualJog") }}</router-link
+      > -->
 
-<router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Servomanualone')
-      }}</router-link>
+      <router-link
+        to="/Electrical/ManualonePosition"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Manual Control") }}</router-link
+      >
+
+      <router-link
+        to="/Electrical/Servomanualone"
+        tag="el-button"
+        type="text"
+        active-class="blue-button" v-show="false"
+        >{{ $t("Servomanualone") }}</router-link
+      >
       <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
       }}</router-link> -->
-     
-      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Address parameter settings')
-      }}</router-link>
+
+      <router-link
+        to="/Electrical/Positioning1"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Cage Positions") }}</router-link
+      >
       <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
       }}</router-link> -->
-     
+
       <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
         $t('ManualonePosition2')
       }}</router-link> -->
-      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Speed parameter settings')
-      }}</router-link>
+      <router-link
+        to="/Electrical/AutomaticParameterSetting"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Speed parameter settings") }}</router-link
+      >
 
-<router-link 
+      <router-link 
         to="/Electrical/InteractionState"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("InteractionState") }}</router-link
+        >{{ $t("PLC-MES Info") }}</router-link
       >
-      
     </el-breadcrumb>
 
     <el-row :gutter="18" class="card">
@@ -99,6 +142,7 @@
 <script>
 import LanguageMixin from '../../lang/LanguageMixin'
 import data from '../../configuration/AutomaticParameterSetting'
+import {SelectPassword} from "../../api/home";
 
 let socket;
 
@@ -107,11 +151,12 @@
   mixins: [LanguageMixin],
   data () {
     return {
-      jsonData: data // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
+      jsonData: data ,
+      password: 1// 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
     }
   },
   activated () {
-
+    document.body.style.zoom = "90%";
     this.initWebSocket();
     const language = this.$i18n.locale;
     console.log(language);
@@ -120,10 +165,27 @@
     }
     this.$forceUpdate();
 
+    this.load();
 
   },
  
   methods: {
+    load(){
+
+SelectPassword().then(res => {
+          this.password = res.data.password;
+          console.log(this.password)
+      });
+
+
+
+
+
+// console.log(this.jsonData)
+
+      
+
+},
     closeSocket () {
       // 鍏抽棴 WebSocket 杩炴帴
       socket.close();
@@ -162,8 +224,37 @@
 
       // 鎻愪氦鏁版嵁鍒板悗绔�
       const jsonString = JSON.stringify(jsonObject);
-      console.log('鎻愪氦浠ヤ笅鏁版嵁鍒板悗绔�:', jsonString);
+      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',
+    }
+  ).then(({ value }) => {
+    // 楠岃瘉瀵嗙爜鏄惁姝g‘
+    if (value !== this.password) {
+      this.$message.error(this.$t('Incorrect password'));
+      return ;
+    }else{
+      
+      console.log("鎻愪氦浠ヤ笅鏁版嵁鍒板悗绔�:", jsonString);
       socket?.send(jsonString);
+    }
+
+   
+   
+
+  }).catch(() => {
+    // 鍙栨秷鎿嶄綔
+    console.log('鍙栨秷1');
+  });
+
+ // console.log("鎻愪氦浠ヤ笅鏁版嵁鍒板悗绔�:", jsonString);
+      // socket?.send(jsonString);
       event.target.blur(); // 鍙栨秷杈撳叆妗嗙劍鐐�
 
     },
diff --git a/CanadaMes-ui/src/views/Electrical/InteractionState.vue b/CanadaMes-ui/src/views/Electrical/InteractionState.vue
index a773eb9..26ad2ff 100644
--- a/CanadaMes-ui/src/views/Electrical/InteractionState.vue
+++ b/CanadaMes-ui/src/views/Electrical/InteractionState.vue
@@ -15,21 +15,16 @@
         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> -->
       <router-link
         to="/Electrical/Sign"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Sign") }}</router-link
+        >{{ $t("I/O") }}</router-link
       >
       <router-link
         to="/Electrical/Servomanual"
@@ -46,7 +41,7 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Automatic State") }}</router-link
+        >{{ $t("Glass Data") }}</router-link
       >
       <!-- <router-link
         to="/Electrical/ManualJog"
@@ -61,42 +56,33 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("ManualonePosition") }}</router-link
+        >{{ $t("Manual Control") }}</router-link
       >
 
       <router-link
         to="/Electrical/Servomanualone"
         tag="el-button"
         type="text"
-        active-class="blue-button"
+        active-class="blue-button" v-show="false"
         >{{ $t("Servomanualone") }}</router-link
       >
-      <!-- <router-link
-        to="/Electrical/Parameter1"
-        tag="el-button"
-        type="text"
-        active-class="blue-button"
-        >{{ $t("Parameter1") }}</router-link
-      > -->
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
 
       <router-link
         to="/Electrical/Positioning1"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Address parameter settings") }}</router-link
+        >{{ $t("Cage Positions") }}</router-link
       >
       <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
       }}</router-link> -->
 
-      <!-- <router-link
-        to="/Electrical/ManualonePosition2"
-        tag="el-button"
-        type="text"
-        active-class="blue-button"
-        >{{ $t("ManualonePosition2") }}</router-link
-      > -->
+      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+        $t('ManualonePosition2')
+      }}</router-link> -->
       <router-link
         to="/Electrical/AutomaticParameterSetting"
         tag="el-button"
@@ -104,15 +90,14 @@
         active-class="blue-button"
         >{{ $t("Speed parameter settings") }}</router-link
       >
-      <router-link
+
+      <router-link 
         to="/Electrical/InteractionState"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("InteractionState") }}</router-link
+        >{{ $t("PLC-MES Info") }}</router-link
       >
-
-      
     </el-breadcrumb>
 
     <el-row :gutter="30" class="card">
@@ -176,6 +161,7 @@
     };
   },
   activated() {
+    document.body.style.zoom = "90%";
     this.initWebSocket();
     const language = this.$i18n.locale;
     console.log(language);
diff --git a/CanadaMes-ui/src/views/Electrical/ManualJog.vue b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
index e23ebb1..824adbf 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualJog.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualJog.vue
@@ -39,22 +39,33 @@
       
     </el-breadcrumb> -->
 
-    <el-row :gutter="40" >
-      <el-col :span="26" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
-        <el-card class="json-block" style="width:100%;">
+    <el-row :gutter="40">
+  <el-col :span="26" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
+    <el-card class="json-block" style="width:100%;">
+      <!-- 浣跨敤瀹瑰櫒鏄剧ず鏂囧瓧 -->
+      <div style="position: relative;">
+        <div class="extra-data" style="margin-top: 2px; display: flex;">
+  <div v-for="(extraItem, extraIndex) in extraData[groupIndex]" :key="extraIndex" >
+    {{ extraItem }}
+  </div>
+</div>
 
-          <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"   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>
+
+
+        <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" v-model="item.button.value" :name="item.button.name" style='width:160px;'
+              :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>
-        </el-card>
-      </el-col>
-    </el-row>
+        </div>
+      </div>
+    </el-card>
+  </el-col>
+</el-row>
+
     <!-- <el-button @click="submitDataToBackend">鎻愪氦鏁版嵁鍒板悗绔�</el-button> -->
   </div>
 </template>
@@ -71,6 +82,14 @@
     return {
       jsonData: data, // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
       password: 1,
+      extraData: [
+      "Infeed/Outfeed Conveyos",
+      "A01",
+      "A02",
+      "B01",
+      "B02",
+    
+    ]
     }
   },
   activated () {
@@ -117,70 +136,7 @@
             
 
     },
-    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',
-          }
-        ).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 jsonObject = { data: values };
-
-        // 鎻愪氦鏁版嵁鍒板悗绔�
-        const jsonString = JSON.stringify(jsonObject);
-        console.log('Type涓�3鐨剉alue:', jsonString);
-        socket?.send(jsonString);
-      }
-    },
+ 
 
     initWebSocket () {
       let viewname = "ManualJog";
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
index df6f4bb..927ab6a 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -1,38 +1,55 @@
 <template>
   <div class="app">
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
-      }}</router-link>
-      <!-- <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
-      }}</router-link> -->
-      <!-- <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
-      }}</router-link> -->
-      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link> -->
-      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
-      }}</router-link>
-      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Parameter')
-      }}</router-link>
+      <router-link
+        to="/Electrical/alarm"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Alarm") }}</router-link
+      >
+     
+      <router-link
+        to="/Electrical/Sign"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("I/O") }}</router-link
+      >
+      <router-link 
+        to="/Electrical/Servomanual"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Parameter") }}</router-link
+      >
     </el-breadcrumb>
-    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State')
-      }}</router-link>
-      <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualJog')
-      }}</router-link> -->
-      
-       <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualonePosition')
-      }}</router-link>
 
-<router-link v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">
+    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
+      <router-link
+        to="/Electrical/Parameter2"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Glass Data") }}</router-link
+      >
+
+
+      <router-link
+        to="/Electrical/ManualonePosition"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Manual Control") }}</router-link
+      >
+
+      <router-link v-show="false" v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">
     {{ $t('Servomanualone') }}
   </router-link>
       
      
       <router-link   v-if="hasPermission" to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Address parameter settings')
+        $t('Cage Positions')
       }}</router-link>
   
       <router-link   v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
@@ -44,9 +61,8 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("InteractionState") }}</router-link
+        >{{ $t("PLC-MES Info") }}</router-link
       >
-      
     </el-breadcrumb>
 
     <el-row :gutter="10">
@@ -78,7 +94,7 @@
             <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 === 1,'error-button3': item.button.name === 'Zero' && 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 === 'Homing Failure' && item.button.value === 1,'error-button3': item.button.name === 'Homing Complete' && item.button.value === 0,'greenbutton': item.button.name !== 'Homing Failure' && 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"
@@ -129,7 +145,7 @@
     }
   },
   activated () {
-
+    document.body.style.zoom = "90%";
     this.initWebSocket();
     const language = this.$i18n.locale;
     //console.log(language);
@@ -689,7 +705,7 @@
                 for (let j = 2; j < arr2.length; j++) {
                   let obj3 = arr2[j];
                   if (obj3.button) {
-                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "NotZero" || obj3.button.name === "宸插洖闆�" || obj3.button.name === "Zero")) {
+                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "Homing Failure" || obj3.button.name === "宸插洖闆�" || obj3.button.name === "Homing Complete")) {
                       obj3.button.value = weihuiling[0][i];
                       //  console.log(obj3.button.value)
                     }
@@ -711,16 +727,16 @@
       if ( obj.button.name==="鏈洖闆�" && this.language==="zh-CN") {
       obj.button.name =obj.button.name.replace("鏈洖闆�","宸插洖闆�") ;
     }
-    if ( obj.button.name==="NotZero") {
-      obj.button.name =obj.button.name.replace("NotZero","Zero") ;
+    if ( obj.button.name==="Homing Failure") {
+      obj.button.name =obj.button.name.replace("Homing Failure","Homing Complete") ;
     }
   }
   if (obj.button && obj.button.value===1) {
       if ( obj.button.name==="宸插洖闆�"&& this.language==="zh-CN") {
       obj.button.name =obj.button.name.replace("宸插洖闆�","鏈洖闆�") ;
     }
-    if ( obj.button.name==="Zero") {
-      obj.button.name =obj.button.name.replace("Zero","NotZero") ;
+    if ( obj.button.name==="Homing Complete") {
+      obj.button.name =obj.button.name.replace("Homing Complete","Homing Failure") ;
     }
   }
 
diff --git a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
index 002579e..76b4fd6 100644
--- a/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
+++ b/CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
@@ -68,7 +68,7 @@
           <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 === 1,'error-button3': item.button.name === 'Zero' && 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 === 'Homing Failure' && item.button.value === 1,'error-button3': item.button.name === 'Homing Complete' && item.button.value ===0,'greenbutton': item.button.name !== 'Homing Failure' && 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"
@@ -184,7 +184,7 @@
     },
     //鎻愪氦鏂规硶
     submitDataToBackend (currentButtonName) {
-      if (currentButtonName === 'A01缈昏浆鍚姩' || currentButtonName === 'A01 SERVE TURN') {
+      if (currentButtonName === 'A01缈昏浆鍚姩' || currentButtonName === 'A01 Tilt') {
         const data = [];
 
 const values = [this.jsonData[0][3].button.value]
@@ -216,7 +216,7 @@
 
       }
 
-      if (currentButtonName === 'A02缈昏浆鍚姩' || currentButtonName === 'A02 SERVE TURN') {
+      if (currentButtonName === 'A02缈昏浆鍚姩' || currentButtonName === 'A02 Tilt') {
         const data = [];
 
 const values = [this.jsonData[0][3].button.value]
@@ -463,7 +463,7 @@
                 for (let j = 0; j < arr2.length; j++) {
                   let obj3 = arr2[j];
                   if (obj3.button) {
-                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "NotZero" || obj3.button.name === "宸插洖闆�" || obj3.button.name === "Zero")) {
+                    if (obj3.button && (obj3.button.name === "鏈洖闆�" || obj3.button.name === "Homing Failure" || obj3.button.name === "宸插洖闆�" || obj3.button.name === "Homing Complete")) {
                       obj3.button.value = weihuiling[0][i];
                       //  console.log(obj3.button.value)
                     }
@@ -542,16 +542,16 @@
       if ( obj.button.name==="鏈洖闆�" && this.language==="zh-CN") {
       obj.button.name =obj.button.name.replace("鏈洖闆�","宸插洖闆�") ;
     }
-    if ( obj.button.name==="NotZero") {
-      obj.button.name =obj.button.name.replace("NotZero","Zero") ;
+    if ( obj.button.name==="Homing Failure") {
+      obj.button.name =obj.button.name.replace("Homing Failure","Homing Complete") ;
     }
   }
   if (obj.button && obj.button.value===1) {
       if ( obj.button.name==="宸插洖闆�"&& this.language==="zh-CN") {
       obj.button.name =obj.button.name.replace("宸插洖闆�","鏈洖闆�") ;
     }
-    if ( obj.button.name==="Zero") {
-      obj.button.name =obj.button.name.replace("Zero","NotZero") ;
+    if ( obj.button.name==="Homing Complete") {
+      obj.button.name =obj.button.name.replace("Homing Complete","Homing Failure") ;
     }
   }
 
diff --git a/CanadaMes-ui/src/views/Electrical/Parameter2.vue b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
index da4a5b6..737cfc9 100644
--- a/CanadaMes-ui/src/views/Electrical/Parameter2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Parameter2.vue
@@ -8,28 +8,13 @@
         active-class="blue-button"
         >{{ $t("Alarm") }}</router-link
       >
-      <!-- <router-link
-        to="/Electrical/State"
-        tag="el-button"
-        type="text"
-        active-class="blue-button"
-        >{{ $t("State") }}</router-link
-      > -->
-      <!-- <router-link
-        to="/Electrical/Action"
-        tag="el-button"
-        type="text"
-        active-class="blue-button"
-        >{{ $t("Action") }}</router-link -->
-
-      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-        }}</router-link> -->
+     
       <router-link
         to="/Electrical/Sign"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Sign") }}</router-link
+        >{{ $t("I/O") }}</router-link
       >
       <router-link
         to="/Electrical/Servomanual"
@@ -46,31 +31,25 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Automatic State") }}</router-link
+        >{{ $t("Glass Data") }}</router-link
       >
-      <!-- <router-link
-        to="/Electrical/ManualJog"
-        tag="el-button"
-        type="text"
-        active-class="blue-button"
-        >{{ $t("ManualJog") }}</router-link
-      > -->
+
 
       <router-link
         to="/Electrical/ManualonePosition"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("ManualonePosition") }}</router-link
+        >{{ $t("Manual Control") }}</router-link
       >
 
-      <router-link v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">
+      <router-link v-show="false" v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">
     {{ $t('Servomanualone') }}
   </router-link>
       
      
       <router-link   v-if="hasPermission" to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Address parameter settings')
+        $t('Cage Positions')
       }}</router-link>
   
       <router-link   v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
@@ -82,7 +61,7 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("InteractionState") }}</router-link
+        >{{ $t("PLC-MES Info") }}</router-link
       >
     </el-breadcrumb>
 
@@ -241,6 +220,7 @@
   },
 
   activated() {
+    document.body.style.zoom = "90%";
     this.initWebSocket();
     this.filteredData();
     const language = this.$i18n.locale;
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning1.vue b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
index 7d1bfa0..168a6f4 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning1.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -15,21 +15,16 @@
         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> -->
       <router-link
         to="/Electrical/Sign"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Sign") }}</router-link
+        >{{ $t("I/O") }}</router-link
       >
       <router-link
         to="/Electrical/Servomanual"
@@ -46,7 +41,7 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Automatic State") }}</router-link
+        >{{ $t("Glass Data") }}</router-link
       >
       <!-- <router-link
         to="/Electrical/ManualJog"
@@ -61,42 +56,33 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("ManualonePosition") }}</router-link
+        >{{ $t("Manual Control") }}</router-link
       >
 
       <router-link
         to="/Electrical/Servomanualone"
         tag="el-button"
         type="text"
-        active-class="blue-button"
+        active-class="blue-button" v-show="false"
         >{{ $t("Servomanualone") }}</router-link
       >
-      <!-- <router-link
-        to="/Electrical/Parameter1"
-        tag="el-button"
-        type="text"
-        active-class="blue-button"
-        >{{ $t("Parameter1") }}</router-link
-      > -->
+      <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
+      }}</router-link> -->
 
       <router-link
         to="/Electrical/Positioning1"
         tag="el-button"
         type="text"
-        active-class="blue-button"
-        >{{ $t("Address parameter settings") }}</router-link
+        active-class="blue-button" 
+        >{{ $t("Cage Positions") }}</router-link
       >
       <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
       }}</router-link> -->
 
-      <!-- <router-link
-        to="/Electrical/ManualonePosition2"
-        tag="el-button"
-        type="text"
-        active-class="blue-button"
-        >{{ $t("ManualonePosition2") }}</router-link
-      > -->
+      <!-- <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
+        $t('ManualonePosition2')
+      }}</router-link> -->
       <router-link
         to="/Electrical/AutomaticParameterSetting"
         tag="el-button"
@@ -105,22 +91,22 @@
         >{{ $t("Speed parameter settings") }}</router-link
       >
 
-      <router-link 
+      <router-link
         to="/Electrical/InteractionState"
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("InteractionState") }}</router-link
+        >{{ $t("PLC-MES Info") }}</router-link
       >
     </el-breadcrumb>
 
-    <el-row :gutter="18" class="card"  style="width: 1400px">
+    <el-row :gutter="18" class="card" style="width: 1400px">
       <el-col
         :span="7"
         v-for="(dataGroup, groupIndex) in jsonData"
         :key="groupIndex"
       >
-        <el-card class="json-block"   style="width: 400px">
+        <el-card class="json-block" style="width: 400px">
           <div
             class="button-row"
             style="display: flex; justify-content: space-between"
@@ -145,15 +131,59 @@
                 v-if="item.type === '0'"
                 style="width: 120px"
                 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+`}`"
+                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($event)"
               ></el-input>
               <span v-if="item.unit" :name="item.unit">{{ item.unit }}</span>
 
-              <el-button 
-                v-if="item.type === '0'  && item.name !== '鏍煎瓙闂磋窛'  && item.name !== 'GridSpacing' "  
+              <el-button
+                v-if="
+                  item.type === '0' &&
+                  item.name !== '鏍煎瓙闂磋窛' &&
+                  item.name !== 'GridSpacing'
+                "
+                class="input-box"
+                @click="updateButtonValue(dataGroup, itemIndex, groupIndex)"
+                >{{ $t("Set") }}</el-button
+              >
 
-                class="input-box" @click="updateButtonValue(dataGroup, itemIndex,groupIndex);">{{ $t("Set") }}</el-button>
+              <div
+                class="button-row"
+                style="
+                  display: flex;
+                  justify-content: flex-start;
+                  flex-wrap: wrap;
+                "
+              >
+                <el-button
+                  v-if="item.button"
+                  v-model="item.button.value"
+                  :name="item.button.name"
+                  style="width: 160px"
+                  :class="{
+                    dow: item.button.value === 0,
+                    op: item.button.value === 1,
+                  }"
+                  class="action-button"
+                  @click="
+                    updateButtonValue2(dataGroup, itemIndex);
+                    submitDataToBackend2(item.button.name);
+                  "
+                >
+                  {{ item.button.name }}
+                </el-button>
+              </div>
             </div>
           </div>
         </el-card>
@@ -167,6 +197,7 @@
 let socket;
 import LanguageMixin from "../../lang/LanguageMixin";
 import data from "../../configuration/Positioning1";
+import {SelectPassword} from "../../api/home";
 
 export default {
   name: "Positioning1",
@@ -174,15 +205,16 @@
   data() {
     return {
       jsonData: data, // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
-      A01:"",
-      A02:"",
-      B01:"",
-      B02:"",
-      jianju:""
-
+      A01: "",
+      A02: "",
+      B01: "",
+      B02: "",
+      password: 1,
+      jianju: "",
     };
   },
   activated() {
+    document.body.style.zoom = "90%";
     this.initWebSocket();
     const language = this.$i18n.locale;
     console.log(language);
@@ -190,47 +222,73 @@
       this.replaceChineseWithEnglish();
     }
     this.$forceUpdate();
+    this.load();
+    
   },
   methods: {
-    updateButtonValue(dataGroup, itemIndex,groupIndex) {
+    load(){
 
-      if(groupIndex==1){
-  const value = parseFloat(this.A01);
+SelectPassword().then(res => {
+          this.password = res.data.password;
+          console.log(this.password)
+      });
 
-  this.$set(dataGroup[itemIndex], "value", value); 
-  console.log(value)
-}
-if(groupIndex==2){
-  const value = parseFloat(this.A02) ;
 
-  this.$set(dataGroup[itemIndex], "value", value); 
-  console.log(value)
-}
 
-if(groupIndex==3){
-  const value = parseFloat(this.A01) + parseFloat(this.jianju);
 
-  this.$set(dataGroup[itemIndex], "value", value); 
-  console.log(value)
-}
-if(groupIndex==4){
-  const value=parseFloat(this.A02)+parseFloat(this.jianju)
 
-this.$set(dataGroup[itemIndex], "value", value); 
-}
-if(groupIndex==5){
-  const value=parseFloat(this.B01)-parseFloat(this.jianju)
+console.log(this.jsonData)
 
-this.$set(dataGroup[itemIndex], "value", value); 
-}
-if(groupIndex==6){
-  const value=parseFloat(this.B02)+parseFloat(this.jianju)
-
-this.$set(dataGroup[itemIndex], "value", value); 
-}
       
-     this.submitDataToBackend(event);
-    
+
+},
+
+    updateButtonValue2 (dataGroup, itemIndex) {
+      if (dataGroup[itemIndex].button.value2 === 0) {
+    // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
+    this.$set(dataGroup[itemIndex].button, 'value2', 1);
+  } else {
+    // 鍚﹀垯灏嗗叾璁句负 0
+    this.$set(dataGroup[itemIndex].button, 'value2', 0);
+  }
+    },
+    updateButtonValue(dataGroup, itemIndex, groupIndex) {
+      if (groupIndex == 1) {
+        const value = parseFloat(this.A01);
+
+        this.$set(dataGroup[itemIndex], "value", value);
+        console.log(value);
+      }
+      if (groupIndex == 2) {
+        const value = parseFloat(this.A02);
+
+        this.$set(dataGroup[itemIndex], "value", value);
+        console.log(value);
+      }
+
+      if (groupIndex == 3) {
+        const value = parseFloat(this.A01) + parseFloat(this.jianju);
+
+        this.$set(dataGroup[itemIndex], "value", value);
+        console.log(value);
+      }
+      if (groupIndex == 4) {
+        const value = parseFloat(this.A02) + parseFloat(this.jianju);
+
+        this.$set(dataGroup[itemIndex], "value", value);
+      }
+      if (groupIndex == 5) {
+        const value = parseFloat(this.B01) - parseFloat(this.jianju);
+
+        this.$set(dataGroup[itemIndex], "value", value);
+      }
+      if (groupIndex == 6) {
+        const value = parseFloat(this.B02) + parseFloat(this.jianju);
+
+        this.$set(dataGroup[itemIndex], "value", value);
+      }
+
+      this.submitDataToBackend(event);
     },
     //鎻愪氦鏁版嵁鍒板悗绔�
     submitDataToBackend(event) {
@@ -238,8 +296,6 @@
         return dataGroup.map((item) => {
           if (item.type === "0") {
             return { value: parseInt(item.value) };
-          } else if (item.button) {
-            return { value: parseInt(item.title.value) };
           }
           return null;
         });
@@ -259,10 +315,92 @@
 
       // 鎻愪氦鏁版嵁鍒板悗绔�
       const jsonString = JSON.stringify(jsonObject);
-       console.log('鎻愪氦浠ヤ笅鏁版嵁鍒板悗绔�:', jsonString);
+
+      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',
+    }
+  ).then(({ value }) => {
+    // 楠岃瘉瀵嗙爜鏄惁姝g‘
+    if (value !== this.password) {
+      this.$message.error(this.$t('Incorrect password'));
+      return ;
+    }else{
+      console.log("鎻愪氦浠ヤ笅鏁版嵁鍒板悗绔�:", jsonString);
       socket?.send(jsonString);
+      
+    }
+
+   
+   
+
+  }).catch(() => {
+    // 鍙栨秷鎿嶄綔
+    console.log('鍙栨秷1');
+  });
+
+      
+      
       event.target.blur(); // 鍙栨秷杈撳叆妗嗙劍鐐�
     },
+
+    submitDataToBackend2 (currentButtonName) {
+
+if (currentButtonName ===   'A01 Calibration Pos' || currentButtonName === 'A02 Calibration Pos' || 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',
+    }
+  ).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 === '1'&& item.button) {
+       
+          return { value: item.button.value2 };
+        }
+        return null;
+      });
+    });
+
+    const values = inputData.flat().filter(item => item !== null).map(item => item.value);
+    const data = [];
+    data.push(values);
+     
+     data.unshift([], [], [],[],[],[],[]);
+    const jsonObject = { data };
+
+    // 鎻愪氦鏁版嵁鍒板悗绔�
+    const jsonString = JSON.stringify(jsonObject);
+    console.log('Type涓�3鐨剉alue:', jsonString);
+    socket?.send(jsonString);
+
+  }).catch(() => {
+    // 鍙栨秷鎿嶄綔
+    console.log('鍙栨秷1');
+  });
+} else {
+  console.log('鍙栨秷2');
+}
+},
     initWebSocket() {
       let viewname = "Positioning1";
 
@@ -290,69 +428,63 @@
         };
 
         // 鏀跺埌娑堟伅
-//         let isMouseInInputBox = false; // 鏍囪榧犳爣鏄惁鍦ㄨ緭鍏ユ鍐�
+        //         let isMouseInInputBox = false; // 鏍囪榧犳爣鏄惁鍦ㄨ緭鍏ユ鍐�
 
-// const inputBox = document.querySelectorAll('.input-box');
-// inputBox.forEach(box => {
-//   box.addEventListener('mouseenter', () => {
-//     isMouseInInputBox = true;
-//   });
-//   box.addEventListener('mouseleave', () => {
-//     isMouseInInputBox = false;
-//   });
-// });
+        // const inputBox = document.querySelectorAll('.input-box');
+        // inputBox.forEach(box => {
+        //   box.addEventListener('mouseenter', () => {
+        //     isMouseInInputBox = true;
+        //   });
+        //   box.addEventListener('mouseleave', () => {
+        //     isMouseInInputBox = false;
+        //   });
+        // });
 
-socket.onmessage = (msg) => {
-  if (!msg.data) {
-    return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
-  }
-  if (document.activeElement.tagName.toLowerCase() === 'input') {
-    return;
-  }
+        socket.onmessage = (msg) => {
+          if (!msg.data) {
+            return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+          }
+          if (document.activeElement.tagName.toLowerCase() === "input") {
+            return;
+          }
 
-  let obj = JSON.parse(msg.data);
-  const jsonData2 = this.jsonData;
+          let obj = JSON.parse(msg.data);
+          const jsonData2 = this.jsonData;
 
-  const parms = obj.params;
+          const parms = obj.params;
 
-  if(parms ){ // 鍙湁鍦ㄩ紶鏍囦笉鍦ㄨ緭鍏ユ鍐呮椂鎵嶆洿鏂版暟鎹�
-  //  console.log(parms)
-   
-    let index = 0;
-    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 === "0" &&
-          Object.prototype.hasOwnProperty.call(obj, "value")
-        ) {
-          obj.value = parms[0][index];
-          index++;
-        }
-      }
-    }
+          if (parms) {
+            // 鍙湁鍦ㄩ紶鏍囦笉鍦ㄨ緭鍏ユ鍐呮椂鎵嶆洿鏂版暟鎹�
+            //  console.log(parms)
 
+            let index = 0;
+            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 === "0" &&
+                  Object.prototype.hasOwnProperty.call(obj, "value")
+                ) {
+                  obj.value = parms[0][index];
+                  index++;
+                }
+              }
+            }
 
-    
-                
-                    this.A01 = obj.shishi1[0][0];
+            this.A01 = obj.shishi1[0][0];
 
-                    this.A02 = obj.shishi1[0][1];
-              
-                    this.B01= obj.shishi1[0][2];
+            this.A02 = obj.shishi1[0][1];
 
-                    this.B02 = obj.shishi1[0][3];
-                    this.jianju = obj.params[0][0];
-            
+            this.B01 = obj.shishi1[0][2];
 
+            this.B02 = obj.shishi1[0][3];
+            this.jianju = obj.params[0][0];
 
-
-
-
-  }
-};
-
+            jsonData2[7][0].button.value = obj.PLCOriginmarkingarraylist[0][0]; 
+          jsonData2[7][1].button.value = obj.PLCOriginmarkingarraylist[0][1]; 
+          }
+        };
 
         // 鍏抽棴浜嬩欢
         socket.onclose = function () {
diff --git a/CanadaMes-ui/src/views/Electrical/Positioning2.vue b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
index c8f65f9..321c770 100644
--- a/CanadaMes-ui/src/views/Electrical/Positioning2.vue
+++ b/CanadaMes-ui/src/views/Electrical/Positioning2.vue
@@ -27,7 +27,7 @@
         $t('ManualonePosition')
       }}</router-link>
 
-<router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
+<router-link to="/Electrical/Servomanualone" tag="el-button" type="text" v-show="false" active-class="blue-button">{{
         $t('Servomanualone')
       }}</router-link>
       <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
diff --git a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
index 0c6c68e..7287154 100644
--- a/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
+++ b/CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -24,7 +24,7 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Sign") }}</router-link
+        >{{ $t("I/O") }}</router-link
       >
       <router-link
         to="/Electrical/Servomanual"
@@ -41,7 +41,7 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Automatic State") }}</router-link
+        >{{ $t("Glass Data") }}</router-link
       >
       <!-- <router-link
         to="/Electrical/ManualJog"
@@ -56,14 +56,14 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("ManualonePosition") }}</router-link
+        >{{ $t("Manual Control") }}</router-link
       >
 
       <router-link
         to="/Electrical/Servomanualone"
         tag="el-button"
         type="text"
-        active-class="blue-button"
+        active-class="blue-button" v-show="false"
         >{{ $t("Servomanualone") }}</router-link
       >
       <!-- <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
@@ -74,7 +74,7 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("Address parameter settings") }}</router-link
+        >{{ $t("Cage Positions") }}</router-link
       >
       <!-- <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
         $t('Positioning2')
@@ -96,7 +96,7 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("InteractionState") }}</router-link
+        >{{ $t("PLC-MES Info") }}</router-link
       >
     </el-breadcrumb>
 
@@ -195,9 +195,9 @@
                   'error-button':
                     item.button.name === 'Fault' && item.button.value === 1,
                   'error-button2':
-                    item.button.name === 'NotZero' && item.button.value === 1,
+                    item.button.name === 'Homing Failure' && item.button.value === 1,
                   'error-button3':
-                    item.button.name === 'Zero' && item.button.value === 0,
+                    item.button.name === 'Homing Complete' && item.button.value === 0,
                   fuwei:
                     item.button.name === 'Reset' && item.button.value === 1,
                   huiling:
@@ -221,7 +221,7 @@
                     item.button.name === 'Abort/ResumeTasks' &&
                     item.button.value === 1,
                   yihuiling:
-                    item.button.name === 'Zero' && item.button.value === 1,
+                    item.button.name === 'Homing Complete' && item.button.value === 1,
                 }"
                 @click="
                   updateButtonValue(dataGroup, itemIndex);
@@ -298,6 +298,7 @@
   },
 
   activated() {
+    document.body.style.zoom = "90%";
     this.initWebSocket();
     const language = this.$i18n.locale;
     // console.log(language);
@@ -833,7 +834,7 @@
             // console.log(jsonData2[5][4].button.value)
             if (
               jsonData2[2][3].button.value === 0 &&
-              (jsonData2[2][3].button.name === "NotZero" ||
+              (jsonData2[2][3].button.name === "Homing Failure" ||
                 jsonData2[2][3].button.name === "鏈洖闆�")
             ) {
               jsonData2[2][3].button.name = jsonData2[2][3].button.name.replace(
@@ -841,13 +842,13 @@
                 "宸插洖闆�"
               );
               jsonData2[2][3].button.name = jsonData2[2][3].button.name.replace(
-                "NotZero",
-                "Zero"
+                "Homing Failure",
+                "Homing Complete"
               );
             }
             if (
               jsonData2[3][3].button.value === 0 &&
-              (jsonData2[3][3].button.name === "NotZero" ||
+              (jsonData2[3][3].button.name === "Homing Failure" ||
                 jsonData2[3][3].button.name === "鏈洖闆�")
             ) {
               jsonData2[3][3].button.name = jsonData2[3][3].button.name.replace(
@@ -855,13 +856,13 @@
                 "宸插洖闆�"
               );
               jsonData2[3][3].button.name = jsonData2[3][3].button.name.replace(
-                "NotZero",
-                "Zero"
+                "Homing Failure",
+                "Homing Complete"
               );
             }
             if (
               jsonData2[4][4].button.value === 0 &&
-              (jsonData2[4][4].button.name === "NotZero" ||
+              (jsonData2[4][4].button.name === "Homing Failure" ||
                 jsonData2[4][4].button.name === "鏈洖闆�")
             ) {
               jsonData2[4][4].button.name = jsonData2[4][4].button.name.replace(
@@ -869,13 +870,13 @@
                 "宸插洖闆�"
               );
               jsonData2[4][4].button.name = jsonData2[4][4].button.name.replace(
-                "NotZero",
-                "Zero"
+                "Homing Failure",
+                "Homing Complete"
               );
             }
             if (
               jsonData2[5][4].button.value === 0 &&
-              (jsonData2[5][4].button.name === "NotZero" ||
+              (jsonData2[5][4].button.name === "Homing Failure" ||
                 jsonData2[5][4].button.name === "鏈洖闆�")
             ) {
               jsonData2[5][4].button.name = jsonData2[5][4].button.name.replace(
@@ -883,14 +884,14 @@
                 "宸插洖闆�"
               );
               jsonData2[5][4].button.name = jsonData2[5][4].button.name.replace(
-                "NotZero",
-                "Zero"
+                "Homing Failure",
+                "Homing Complete"
               );
             }
 
             if (
               jsonData2[2][3].button.value === 1 &&
-              (jsonData2[2][3].button.name === "Zero" ||
+              (jsonData2[2][3].button.name === "Homing Complete" ||
                 jsonData2[2][3].button.name === "宸插洖闆�")
             ) {
               jsonData2[2][3].button.name = jsonData2[2][3].button.name.replace(
@@ -898,13 +899,13 @@
                 "鏈洖闆�"
               );
               jsonData2[2][3].button.name = jsonData2[2][3].button.name.replace(
-                "Zero",
-                "NotZero"
+                "Homing Complete",
+                "Homing Failure"
               );
             }
             if (
               jsonData2[3][3].button.value === 1 &&
-              (jsonData2[3][3].button.name === "Zero" ||
+              (jsonData2[3][3].button.name === "Homing Complete" ||
                 jsonData2[3][3].button.name === "宸插洖闆�")
             ) {
               jsonData2[3][3].button.name = jsonData2[3][3].button.name.replace(
@@ -912,13 +913,13 @@
                 "鏈洖闆�"
               );
               jsonData2[3][3].button.name = jsonData2[3][3].button.name.replace(
-                "Zero",
-                "NotZero"
+                "Homing Complete",
+                "Homing Failure"
               );
             }
             if (
               jsonData2[4][4].button.value === 1 &&
-              (jsonData2[4][4].button.name === "Zero" ||
+              (jsonData2[4][4].button.name === "Homing Complete" ||
                 jsonData2[4][4].button.name === "宸插洖闆�")
             ) {
               jsonData2[4][4].button.name = jsonData2[4][4].button.name.replace(
@@ -926,13 +927,13 @@
                 "鏈洖闆�"
               );
               jsonData2[4][4].button.name = jsonData2[4][4].button.name.replace(
-                "Zero",
-                "NotZero"
+                "Homing Complete",
+                "Homing Failure"
               );
             }
             if (
               jsonData2[5][4].button.value === 1 &&
-              (jsonData2[5][4].button.name === "Zero" ||
+              (jsonData2[5][4].button.name === "Homing Complete" ||
                 jsonData2[5][4].button.name === "宸插洖闆�")
             ) {
               jsonData2[5][4].button.name = jsonData2[5][4].button.name.replace(
@@ -940,8 +941,8 @@
                 "鏈洖闆�"
               );
               jsonData2[5][4].button.name = jsonData2[5][4].button.name.replace(
-                "Zero",
-                "NotZero"
+                "Homing Complete",
+                "Homing Failure"
               );
             }
           }
diff --git a/CanadaMes-ui/src/views/Electrical/Servomanual.vue b/CanadaMes-ui/src/views/Electrical/Servomanual.vue
index 45eab45..6c31ae8 100644
--- a/CanadaMes-ui/src/views/Electrical/Servomanual.vue
+++ b/CanadaMes-ui/src/views/Electrical/Servomanual.vue
@@ -1,40 +1,55 @@
 <template>
   <div class="app">
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
-      }}</router-link>
-      <!-- <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
-      }}</router-link> -->
-      <!-- <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action')
-      }}</router-link> -->
-      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
-      }}</router-link> -->
-      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
-      }}</router-link>
-      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Parameter')
-      }}</router-link>
-
+      <router-link
+        to="/Electrical/alarm"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Alarm") }}</router-link
+      >
+     
+      <router-link
+        to="/Electrical/Sign"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("I/O") }}</router-link
+      >
+      <router-link
+        to="/Electrical/Servomanual"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Parameter") }}</router-link
+      >
     </el-breadcrumb>
 
     <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
-      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Automatic State')
-      }}</router-link>
-      <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualJog')
-      }}</router-link> -->
-      
-       <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
-        $t('ManualonePosition')
-      }}</router-link>
+      <router-link
+        to="/Electrical/Parameter2"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Glass Data") }}</router-link
+      >
 
-<router-link v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">
+
+      <router-link
+        to="/Electrical/ManualonePosition"
+        tag="el-button"
+        type="text"
+        active-class="blue-button"
+        >{{ $t("Manual Control") }}</router-link
+      >
+
+      <router-link v-show="false" v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">
     {{ $t('Servomanualone') }}
   </router-link>
       
      
       <router-link   v-if="hasPermission" to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
-        $t('Address parameter settings')
+        $t('Cage Positions')
       }}</router-link>
   
       <router-link   v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
@@ -46,9 +61,8 @@
         tag="el-button"
         type="text"
         active-class="blue-button"
-        >{{ $t("InteractionState") }}</router-link
+        >{{ $t("PLC-MES Info") }}</router-link
       >
-      
     </el-breadcrumb>
 
 
diff --git a/CanadaMes-ui/src/views/Electrical/Sign.vue b/CanadaMes-ui/src/views/Electrical/Sign.vue
index ed8284f..60e4c90 100644
--- a/CanadaMes-ui/src/views/Electrical/Sign.vue
+++ b/CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -11,7 +11,7 @@
       }}</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 to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('I/O')
       }}</router-link>
  <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
         }}</router-link>
diff --git a/CanadaMes-ui/src/views/Electrical/alarm.vue b/CanadaMes-ui/src/views/Electrical/alarm.vue
index b5cc575..f0b3053 100644
--- a/CanadaMes-ui/src/views/Electrical/alarm.vue
+++ b/CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -7,7 +7,7 @@
       <!-- <router-link to="/Electrical/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State') }}</router-link> -->
       <!-- <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link> -->
       <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link> -->
-    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
+    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('I/O') }}</router-link>
     <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
         }}</router-link>
     </el-breadcrumb>
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 b01cc8a..2a6f672 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
@@ -39,6 +39,8 @@
         List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1);
         List<Short> xiaoche2 = S7control.getinstance().ReadWord("DB100.12", 1);
 
+        //  System.out.println("messageValue锛�"+ arraylist  );
+
         // Short[] values1 = { 1, 2, 3, 4, 5, 6, 7, 8 };
         // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
         // Short[] fanzhuan = { 4 };
@@ -151,6 +153,9 @@
                     S7control.getinstance().WriteWord(waddresses1, mergedList2);
                     System.out.println("messageValue锛�" + mergedList2 + " written to PLC at address " + waddresses1);
                   }
+                //鍘熺偣璁板繂
+
+
                   // 娓呯┖娑堟伅鍒楄〃
                   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 82a5217..782a638 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
@@ -4,8 +4,8 @@
 import cn.hutool.json.JSONObject;
 
 import java.util.ArrayList;
-import java.util.List;
 import java.util.Arrays;
+import java.util.List;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
@@ -28,6 +28,11 @@
         config = new Configuration("config.properties");
     }
 
+
+
+
+
+
     @Override
     public void run() {
         while (this != null) {
@@ -35,6 +40,16 @@
                 Thread.sleep(1000);
                 // System.out.println(stt);
             // 瀛樼墖鏍� 鍑虹墖鏍艰鍙�
+                List<String> PLCOriginmarking = Arrays.asList(config.getProperty("PLCOriginmarking").split(","));
+
+
+                List<Boolean> PLCOriginmarkingarraylist = S7control.getinstance().readBits(PLCOriginmarking);
+
+                short[] params = new short[PLCOriginmarkingarraylist.size()];
+                for (int i = 0; i < PLCOriginmarkingarraylist.size(); i++) {
+                    boolean value = PLCOriginmarkingarraylist.get(i);
+                    params[i] = value ? (short) 1 : (short) 0;
+                }
 
             String address = config.getProperty("PlcPositioning1.address");
             List<Short> arraylist = S7control.getinstance().ReadWord(address, 33);
@@ -54,7 +69,7 @@
 
             jsonObject.append("params", arraylist);
             jsonObject.append("shishi1", arraylist5);
-
+                jsonObject.append("PLCOriginmarkingarraylist", params);
             // WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Positioning1");
             // if (sendwServer != null) {
             // sendwServer.sendMessage(jsonObject.toString());
@@ -103,6 +118,8 @@
                                         "messageValue锛�" + mergedList + " written to PLC at address " + address);
                             }
 
+                            customS7Control.writeBitToPLC(messageArray, PLCOriginmarking, 7);
+
                             // 娓呯┖娑堟伅鍒楄〃
                             webserver.clearMessages();
                         }
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 fbc5c1c..93d2696 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
@@ -27,6 +27,7 @@
 
             // 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};
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 d15d033..ec0e242 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,9 +17,9 @@
         //
         System.out.println("鍚姩瀹屾垚");
 
-         new PlcHold().start();
-         new Plchome().start(); 
-         new PlcLayout().start();
+         //new PlcHold().start();
+        // new Plchome().start();
+         //new PlcLayout().start();
          new Plcalarm().start();
          new Plcsign().start();
          new Plcstate().start();
diff --git a/springboot-vue3/src/main/resources/JsonFile/PlcAlarm.json b/springboot-vue3/src/main/resources/JsonFile/PlcAlarm.json
index a840092..07c2f7c 100644
--- a/springboot-vue3/src/main/resources/JsonFile/PlcAlarm.json
+++ b/springboot-vue3/src/main/resources/JsonFile/PlcAlarm.json
@@ -1,371 +1 @@
-{
-  "plcAddressBegin": "DB104.0.0",
-  "plcAddressLenght": "91",
-  "dataType": "bit",
-  "parameteInfor": [
-    {
-      "codeId": "D01VFDerror",
-      "addressIndex": 0
-    },
-    {
-      "codeId": "D02VFDerror",
-      "addressIndex": 1
-    },
-    {
-      "codeId": "D03VFDerror",
-      "addressIndex": 2
-    },
-    {
-      "codeId": "D04VFDerror",
-      "addressIndex": 3
-    },
-    {
-      "codeId": "D05VFDerror",
-      "addressIndex": 4
-    },
-    {
-      "codeId": "D06VFDerror",
-      "addressIndex": 5
-    },
-    {
-      "codeId": "B01VFDerror",
-      "addressIndex": 6
-    },
-    {
-      "codeId": "B02VFDerror",
-      "addressIndex": 7
-    },
-    {
-      "codeId": "A01VFDerror",
-      "addressIndex": 8
-    },
-    {
-      "codeId": "A02VFDerror",
-      "addressIndex": 9
-    },
-    {
-      "codeId": "A01servoturnerror",
-      "addressIndex": 10
-    },
-    {
-      "codeId": "A02servoturnerror",
-      "addressIndex": 11
-    },
-    {
-      "codeId": "A01servotravelerror",
-      "addressIndex": 12
-    },
-    {
-      "codeId": "A02servotravelerror",
-      "addressIndex": 13
-    },
-    {
-      "codeId": "B01servotravelerror",
-      "addressIndex": 14
-    },
-    {
-      "codeId": "B02servotravelerror",
-      "addressIndex": 15
-    },
-    {
-      "codeId": "D01DECerror",
-      "addressIndex": 16
-    },
-    {
-      "codeId": "D01poserror",
-      "addressIndex": 17
-    },
-    {
-      "codeId": "D02DECerror",
-      "addressIndex": 18
-    },
-    {
-      "codeId": "D02poserror",
-      "addressIndex": 19
-    },
-    {
-      "codeId": "D03DECerror",
-      "addressIndex": 20
-    },
-    {
-      "codeId": "D03poserror",
-      "addressIndex": 21
-    },
-    {
-      "codeId": "D04DECerror",
-      "addressIndex": 22
-    },
-    {
-      "codeId": "D04poserror",
-      "addressIndex": 23
-    },
-    {
-      "codeId": "D05DECerror",
-      "addressIndex": 24
-    },
-    {
-      "codeId": "D05poserror",
-      "addressIndex": 25
-    },
-    {
-      "codeId": "D06DECerror",
-      "addressIndex": 26
-    },
-    {
-      "codeId": "D06poserror",
-      "addressIndex": 27
-    },
-    {
-      "codeId": "A01DECerror",
-      "addressIndex": 28
-    },
-    {
-      "codeId": "A01poserror",
-      "addressIndex": 29
-    },
-    {
-      "codeId": "A02DECerror",
-      "addressIndex": 30
-    },
-    {
-      "codeId": "A02poserror",
-      "addressIndex": 31
-    },
-    {
-      "codeId": "B01INDECerror",
-      "addressIndex": 32
-    },
-    {
-      "codeId": "B01INposerror",
-      "addressIndex": 33
-    },
-    {
-      "codeId": "B01OUTDECerror",
-      "addressIndex": 34
-    },
-    {
-      "codeId": "B01OUTposerror",
-      "addressIndex": 35
-    },
-    {
-      "codeId": "B02INDECerror",
-      "addressIndex": 36
-    },
-    {
-      "codeId": "B02INposerror",
-      "addressIndex": 37
-    },
-    {
-      "codeId": "B02OUTDECerror",
-      "addressIndex": 38
-    },
-    {
-      "codeId": "B02OUTposerror",
-      "addressIndex": 39
-    },
-    {
-      "codeId": "D01Scanglassexceedinglimit",
-      "addressIndex": 40
-    },
-    {
-      "codeId": "emergencystopalarm",
-      "addressIndex": 41
-    },
-    {
-      "codeId": "Moreglassthanknown",
-      "addressIndex": 42
-    },
-    {
-      "codeId": "lessglassthanknown",
-      "addressIndex": 43
-    },
-    {
-      "codeId": "D01conveyortimeoutalarm",
-      "addressIndex": 44
-    },
-    {
-      "codeId": "D02conveyortimeoutalarm",
-      "addressIndex": 45
-    },
-    {
-      "codeId": "D03conveyortimeoutalarm",
-      "addressIndex": 46
-    },
-    {
-      "codeId": "D04conveyortimeoutalarm",
-      "addressIndex": 47
-    },
-    {
-      "codeId": "D05conveyortimeoutalarm",
-      "addressIndex": 48
-    },
-    {
-      "codeId": "D06conveyortimeoutalarm",
-      "addressIndex": 49
-    },
-    {
-      "codeId": "A01conveyortimeoutalarm",
-      "addressIndex": 50
-    },
-    {
-      "codeId": "A02conveyortimeoutalarm",
-      "addressIndex": 51
-    },
-    {
-      "codeId": "B01conveyortimeoutalarm",
-      "addressIndex": 52
-    },
-    {
-      "codeId": "B02conveyortimeoutalarm",
-      "addressIndex": 53
-    },
-    {
-      "codeId": "A01conveyorLeftsafetyalarm",
-      "addressIndex": 54
-    },
-    {
-      "codeId": "A01conveyorrightsafetyalarm",
-      "addressIndex": 55
-    },
-    {
-      "codeId": "A02conveyorLeftsafetyalarm",
-      "addressIndex": 56
-    },
-    {
-      "codeId": "A02conveyorrightsafetyalarm",
-      "addressIndex": 57
-    },
-    {
-      "codeId": "1#buffersafetyalarm",
-      "addressIndex": 58
-    },
-    {
-      "codeId": "2#buffersafetyalarm",
-      "addressIndex": 59
-    },
-    {
-      "codeId": "3#buffersafetyalarm",
-      "addressIndex": 60
-    },
-    {
-      "codeId": "4#buffersafetyalarm",
-      "addressIndex": 61
-    },
-    {
-      "codeId": "A01.SRrightinposerror",
-      "addressIndex": 62
-    },
-    {
-      "codeId": "A02.SRleftinposerror",
-      "addressIndex": 63
-    },
-    {
-      "codeId": "B01.SRleftinposerror",
-      "addressIndex": 64
-    },
-    {
-      "codeId": "B01.SRleftdecerror",
-      "addressIndex": 65
-    },
-    {
-      "codeId": "B01.SRrightdecerror",
-      "addressIndex": 66
-    },
-    {
-      "codeId": "B01.SRrightinposerror",
-      "addressIndex": 67
-    },
-    {
-      "codeId": "B02.SRleftinposerror",
-      "addressIndex": 68
-    },
-    {
-      "codeId": "B02.SRleftdecerror",
-      "addressIndex": 69
-    },
-    {
-      "codeId": "B02.SRrightdecerror",
-      "addressIndex": 70
-    },
-    {
-      "codeId": "B02.SRrightinposerror",
-      "addressIndex": 71
-    },
-    {
-      "codeId": "A01servoturnhomed",
-      "addressIndex": 72
-    },
-    {
-      "codeId": "A02servoturnhomed",
-      "addressIndex": 73
-    },
-    {
-      "codeId": "A01servotravelhomed",
-      "addressIndex": 74
-    },
-    {
-      "codeId": "A02servotravelhomed",
-      "addressIndex": 75
-    },
-    {
-      "codeId": "B01servotravelhomed",
-      "addressIndex": 76
-    },
-    {
-      "codeId": "B02servotravelhomed",
-      "addressIndex": 77
-    },
-    {
-      "codeId": "resetDelay",
-      "addressIndex": 78
-    },
-    {
-      "codeId": "A01travelNegativelimit",
-      "addressIndex": 79
-    },
-    {
-      "codeId": "A01travelPositivelimit",
-      "addressIndex": 80
-    },
-    {
-      "codeId": "A01turnuplimit",
-      "addressIndex": 81
-    },
-    {
-      "codeId": "A01turndownlimit",
-      "addressIndex": 82
-    },
-    {
-      "codeId": "A02travelNegativelimit",
-      "addressIndex": 83
-    },
-    {
-      "codeId": "A02travelPositivelimit",
-      "addressIndex": 84
-    },
-    {
-      "codeId": "A02turnuplimit",
-      "addressIndex": 85
-    },
-    {
-      "codeId": "A02turndownlimit",
-      "addressIndex": 86
-    },
-    {
-      "codeId": "B01travelNegativelimit",
-      "addressIndex": 87
-    },
-    {
-      "codeId": "B01travelPositivelimit",
-      "addressIndex": 88
-    },
-    {
-      "codeId": "B02travelNegativelimit",
-      "addressIndex": 89
-    },
-    {
-      "codeId": "B02travelPositivelimit",
-      "addressIndex": 90
-    }
-  ]
-}
\ No newline at end of file
+{"plcAddressBegin":"DB100.0","plcAddressLenght":"182","dataType":"bit","parameteInfor":[{"codeId":"D01VFDerror","addressIndex":0},{"codeId":"D02VFDerror","addressIndex":1},{"codeId":"D03VFDerror","addressIndex":2},{"codeId":"D04VFDerror","addressIndex":3},{"codeId":"D05VFDerror","addressIndex":4},{"codeId":"D06VFDerror","addressIndex":5},{"codeId":"B01VFDerror","addressIndex":6},{"codeId":"B02VFDerror","addressIndex":7},{"codeId":"A01VFDerror","addressIndex":8},{"codeId":"A02VFDerror","addressIndex":9},{"codeId":"A01servoturnerror","addressIndex":10},{"codeId":"A02servoturnerror","addressIndex":11},{"codeId":"A01servotravelerror","addressIndex":12},{"codeId":"A02servotravelerror","addressIndex":13},{"codeId":"B01servotravelerror","addressIndex":14},{"codeId":"B02servotravelerror","addressIndex":15},{"codeId":"D01DECerror","addressIndex":16},{"codeId":"D01poserror","addressIndex":17},{"codeId":"D02DECerror","addressIndex":18},{"codeId":"D02poserror","addressIndex":19},{"codeId":"D03DECerror","addressIndex":20},{"codeId":"D03poserror","addressIndex":21},{"codeId":"D04DECerror","addressIndex":22},{"codeId":"D04poserror","addressIndex":23},{"codeId":"D05DECerror","addressIndex":24},{"codeId":"D05poserror","addressIndex":25},{"codeId":"D06DECerror","addressIndex":26},{"codeId":"D06poserror","addressIndex":27},{"codeId":"A01DECerror","addressIndex":28},{"codeId":"A01poserror","addressIndex":29},{"codeId":"A02DECerror","addressIndex":30},{"codeId":"A02poserror","addressIndex":31},{"codeId":"B01INDECerror","addressIndex":32},{"codeId":"B01INposerror","addressIndex":33},{"codeId":"B01OUTDECerror","addressIndex":34},{"codeId":"B01OUTposerror","addressIndex":35},{"codeId":"B02INDECerror","addressIndex":36},{"codeId":"B02INposerror","addressIndex":37},{"codeId":"B02OUTDECerror","addressIndex":38},{"codeId":"B02OUTposerror","addressIndex":39},{"codeId":"D01Scanglassexceedinglimit","addressIndex":40},{"codeId":"emergencystopalarm","addressIndex":41},{"codeId":"Moreglassthanknown","addressIndex":42},{"codeId":"lessglassthanknown","addressIndex":43},{"codeId":"D01conveyortimeoutalarm","addressIndex":44},{"codeId":"D02conveyortimeoutalarm","addressIndex":45},{"codeId":"D03conveyortimeoutalarm","addressIndex":46},{"codeId":"D04conveyortimeoutalarm","addressIndex":47},{"codeId":"D05conveyortimeoutalarm","addressIndex":48},{"codeId":"D06conveyortimeoutalarm","addressIndex":49},{"codeId":"A01conveyortimeoutalarm","addressIndex":50},{"codeId":"A02conveyortimeoutalarm","addressIndex":51},{"codeId":"B01conveyortimeoutalarm","addressIndex":52},{"codeId":"B02conveyortimeoutalarm","addressIndex":53},{"codeId":"A01conveyorLeftsafetyalarm","addressIndex":54},{"codeId":"A01conveyorrightsafetyalarm","addressIndex":55},{"codeId":"A02conveyorLeftsafetyalarm","addressIndex":56},{"codeId":"A02conveyorrightsafetyalarm","addressIndex":57},{"codeId":"1#buffersafetyalarm","addressIndex":58},{"codeId":"2#buffersafetyalarm","addressIndex":59},{"codeId":"3#buffersafetyalarm","addressIndex":60},{"codeId":"4#buffersafetyalarm","addressIndex":61},{"codeId":"A01.SRrightinposerror","addressIndex":62},{"codeId":"A02.SRleftinposerror","addressIndex":63},{"codeId":"B01.SRleftinposerror","addressIndex":64},{"codeId":"B01.SRleftdecerror","addressIndex":65},{"codeId":"B01.SRrightdecerror","addressIndex":66},{"codeId":"B01.SRrightinposerror","addressIndex":67},{"codeId":"B02.SRleftinposerror","addressIndex":68},{"codeId":"B02.SRleftdecerror","addressIndex":69},{"codeId":"B02.SRrightdecerror","addressIndex":70},{"codeId":"B02.SRrightinposerror","addressIndex":71},{"codeId":"A01servoturnhomed","addressIndex":72},{"codeId":"A02servoturnhomed","addressIndex":73},{"codeId":"A01servotravelhomed","addressIndex":74},{"codeId":"A02servotravelhomed","addressIndex":75},{"codeId":"B01servotravelhomed","addressIndex":76},{"codeId":"B02servotravelhomed","addressIndex":77},{"codeId":"resetDelay","addressIndex":78},{"codeId":"A01travelNegativelimit","addressIndex":79},{"codeId":"A01travelPositivelimit","addressIndex":80},{"codeId":"A01turnuplimit","addressIndex":81},{"codeId":"A01turndownlimit","addressIndex":82},{"codeId":"A02travelNegativelimit","addressIndex":83},{"codeId":"A02travelPositivelimit","addressIndex":84},{"codeId":"A02turnuplimit","addressIndex":85},{"codeId":"A02turndownlimit","addressIndex":86},{"codeId":"B01travelNegativelimit","addressIndex":87},{"codeId":"B01travelPositivelimit","addressIndex":88},{"codeId":"B02travelNegativelimit","addressIndex":89},{"codeId":"B02travelPositivelimit","addressIndex":90}]}
\ 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 244c343..bccbf5f 100644
--- a/springboot-vue3/src/main/resources/config.properties
+++ b/springboot-vue3/src/main/resources/config.properties
@@ -137,10 +137,10 @@
 #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,DB101.10.5,DB101.10.6
+PLCManualJog.button=DB101.0.0,DB101.0.1,DB101.0.2,DB101.0.3,DB101.0.4,DB101.0.5,DB101.1.4,DB101.1.2,DB101.5.2,DB101.0.6,DB101.1.5,DB101.1.3,DB101.5.3,DB101.0.7,DB101.1.6,DB101.2.6,DB101.2.7,DB101.1.0,DB101.3.2,DB101.1.7,DB101.3.0,DB101.3.1,DB101.1.1,DB101.3.3
 
 
-
+PLCOriginmarking=DB101.10.5,DB101.10.6
 #AUto----------------------------------------------------------------
 #List<String> addresses = new ArrayList<>();
 #addresses.add("DB100.0");

--
Gitblit v1.8.0