From e1921a8bf98c9bd612f7093628c3a4bc7bef6e5a Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期二, 09 四月 2024 13:56:38 +0800
Subject: [PATCH] 添加手动界面,IO界面

---
 Albania_Mes-ui/src/configuration/parameter2.json                                         |  250 ++--
 Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue                                     |  392 +++++++
 springboot-vue3/src/main/resources/config.properties                                     |   35 
 springboot-vue3/src/main/java/com/example/springboot/component/S7control.java            |   42 
 Albania_Mes-ui/src/lang/locales/en-US.json                                               |   13 
 Albania_Mes-ui/src/views/home/index.vue                                                  |   77 -
 springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java      |  146 ++
 Albania_Mes-ui/src/views/Electrical/alarm.vue                                            |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java              |   11 
 Albania_Mes-ui/src/configuration/AlbaniaServo.json                                       | 1207 ++++++++++++++++++++++++
 springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json                              |    2 
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java              |  111 +-
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java              |    2 
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java      |   33 
 Albania_Mes-ui/src/router/index.js                                                       |    6 
 Albania_Mes-ui/src/api/home.js                                                           |   16 
 Albania_Mes-ui/src/lang/locales/zh-CN.json                                               |   38 
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java         |    9 
 Albania_Mes-ui/src/configuration/Sign.json                                               |  517 +--------
 springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java           |   43 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java |   19 
 Albania_Mes-ui/src/views/Electrical/ManualonePosition.vue                                |    2 
 Albania_Mes-ui/src/views/Electrical/Sign.vue                                             |    7 
 23 files changed, 2,205 insertions(+), 775 deletions(-)

diff --git a/Albania_Mes-ui/src/api/home.js b/Albania_Mes-ui/src/api/home.js
index 4857c3e..935e79a 100644
--- a/Albania_Mes-ui/src/api/home.js
+++ b/Albania_Mes-ui/src/api/home.js
@@ -1,6 +1,22 @@
 import request from "../utils/request";
 
 
+export function WriteWord(address,value) {
+    return request({
+        url: '/home/WriteWord?address='+address+'&value='+value,
+        method: 'get',
+        data:""
+    })
+}
+
+export function WriteBit(address,value) {
+    return request({
+        url: '/home/WriteBit?address='+address+'&value='+value,
+        method: 'get',
+        data:""
+    })
+}
+
 export function SelectPermissionByUserName(username) {
     return request({
         url: '/home/SelectPermissionByUserName?username='+username,
diff --git a/Albania_Mes-ui/src/configuration/AlbaniaServo.json b/Albania_Mes-ui/src/configuration/AlbaniaServo.json
new file mode 100644
index 0000000..1d644cc
--- /dev/null
+++ b/Albania_Mes-ui/src/configuration/AlbaniaServo.json
@@ -0,0 +1,1207 @@
+[
+  [
+    {
+      "USname": "",
+      "CNname": "B01缈昏浆褰撳墠浣嶇疆",
+      "address": "DB10.1988",
+      "min": 0,
+      "max": 99999,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "B01琛岃蛋鐢垫満褰撳墠浣嶇疆",
+      "address": "DB10.1992",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "C01褰撳墠浣嶇疆",
+      "address": "DB10.1996",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "A02X杞村綋鍓嶄綅缃�",
+      "address": "DB10.2000",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "A02Y鍛ㄥ綋鍓嶄綅缃�",
+      "address": "DB10.2008",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "C02褰撳墠浣嶇疆",
+      "address": "DB10.2016",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    }
+  ],
+  [
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎楂橀�熼�熷害",
+      "address": "DB10.1664",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎涓�熼�熷害",
+      "address": "DB10.1668",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎浣庨�熼�熷害",
+      "address": "DB10.1672",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎鎵嬪姩閫熷害",
+      "address": "DB10.1676",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "鐢垫満鏈�澶ч�熷害",
+      "address": "DB10.1680",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "鏁呴殰澶嶄綅",
+        "value": 0,
+        "address": "DB10.42.2",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "JOG浣胯兘",
+        "value": 0,
+        "address": "DB10.44.0",
+        "state": 1
+      }
+    }
+  ],
+  [
+    {
+      "USname": "",
+      "CNname": "X杞村厜鐢垫�婚暱搴�",
+      "address": "DB10.248",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞村厜鐢垫�婚暱搴�",
+      "address": "DB10.252",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞寸矖瀹氫綅1(鏈�浣庝綅锛�",
+      "address": "DB10.256",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞寸矖瀹氫綅2",
+      "address": "DB10.260",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞寸矖瀹氫綅3",
+      "address": "DB10.264",
+      "min": 0,
+      "max": 9999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞寸矖瀹氫綅4锛堟渶楂樹綅锛�",
+      "address": "DB10.268",
+      "min": 0,
+      "max": 9999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "娴嬮噺鍙板畾浣嶄綅缃�",
+      "address": "DB10.448",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "X杞存墜鍔ㄩ�熷害",
+      "address": "DB10.1744",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "X杞磋嚜鍔ㄩ珮閫�",
+      "address": "DB10.1748",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "X杞磋嚜鍔ㄤ綆閫�",
+      "address": "DB10.1752",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "X杞磋嚜鍔ㄨ繑鍥為�熷害",
+      "address": "DB10.1756",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞存墜鍔ㄩ�熷害",
+      "address": "DB10.1760",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞磋嚜鍔ㄩ珮閫�",
+      "address": "DB10.1764",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞磋嚜鍔ㄤ綆閫�",
+      "address": "DB10.1768",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "Y杞磋嚜鍔ㄨ繑鍥為�熷害",
+      "address": "DB10.1772",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "浜哄伐绉婚櫎鐜荤拑",
+        "value": 0,
+        "address": "DB10.60.2",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "X杞存晠闅滃浣�",
+        "value": 0,
+        "address": "DB10.68.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "Y杞存晠闅滃浣�",
+        "value": 0,
+        "address": "DB10.68.1",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "X杞碕OG浣胯兘",
+        "value": 0,
+        "address": "DB10.70.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "Y杞碕OG浣胯兘",
+        "value": 0,
+        "address": "DB10.70.1",
+        "state": 1
+      }
+    }
+  ],
+  [
+    {
+      "USname": "",
+      "CNname": "澶ц溅鍒�1#绗煎瓙绗竴鏍艰窛绂�",
+      "address": "DB10.448",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "澶ц溅鍒�2#绗煎瓙绗竴鏍艰窛绂�",
+      "address": "DB10.452",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "澶ц溅鍒�3#绗煎瓙绗竴鏍艰窛绂�",
+      "address": "DB10.456",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "澶ц溅鍒�4#绗煎瓙绗竴鏍艰窛绂�",
+      "address": "DB10.460",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎楂橀�熼�熷害",
+      "address": "DB10.1684",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎涓�熼�熷害",
+      "address": "DB10.1688",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎浣庨�熼�熷害",
+      "address": "DB10.1692",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎鎵嬪姩閫熷害",
+      "address": "DB10.1696",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "鐢垫満鏈�澶ч�熷害",
+      "address": "DB10.1700",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "缈昏浆鎵嬪姩閫熷害",
+      "address": "DB10.1776",
+      "min": 0,
+      "max": 100,
+      "unit": "掳/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "缈昏浆鑷姩閫熷害",
+      "address": "DB10.1780",
+      "min": 0,
+      "max": 100,
+      "unit": "掳/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "琛岃蛋鐢垫満鎵嬪姩閫熷害",
+      "address": "DB10.1792",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "琛岃蛋鐢垫満杩滆窛绂婚�熷害",
+      "address": "DB10.1796",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "琛岃蛋鐢垫満杩戣窛绂婚�熷害",
+      "address": "DB10.1800",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "楂橀�熻璧扮炕杞搴�",
+      "address": "DB10.1632",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "浣庨�熻璧扮炕杞搴�",
+      "address": "DB10.1636",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佸彴瑙掑害",
+      "address": "DB10.1640",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "绗煎瓙瑙掑害",
+      "address": "DB10.1644",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "杈撻�佹墜鍔↗OG浣胯兘",
+        "value": 0,
+        "address": "DB10.80.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "缈昏浆鎵嬪姩JOG浣胯兘",
+        "value": 0,
+        "address": "DB10.88.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "琛岃蛋鎵嬪姩JOG浣胯兘",
+        "value": 0,
+        "address": "DB10.88.1",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "杈撻�佹晠闅滃浣�",
+        "value": 0,
+        "address": "DB10.78.2",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "缈昏浆鏁呴殰澶嶄綅",
+        "value": 0,
+        "address": "DB10.86.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "琛岃蛋鏁呴殰澶嶄綅",
+        "value": 0,
+        "address": "DB10.86.1",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "B01鍒�1#绗煎瓙璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2050.4",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "B01鍒�2#绗煎瓙璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2050.5",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "B01鍒�3#绗煎瓙璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2050.6",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "B01鍒�4#绗煎瓙璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2050.7",
+        "state": 1
+      }
+    }
+  ],
+  [
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎楂橀�熼�熷害",
+      "address": "DB10.1704",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎涓�熼�熷害",
+      "address": "DB10.1708",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎浣庨�熼�熷害",
+      "address": "DB10.1712",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎鎵嬪姩閫熷害",
+      "address": "DB10.1716",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "鐢垫満鏈�澶ч�熷害",
+      "address": "DB10.1720",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "瀹氫綅鐢垫満鎵嬪姩閫熷害",
+      "address": "DB10.1808",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "瀹氫綅鐢垫満鑷姩閫熷害",
+      "address": "DB10.1812",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "C01鍒�1#绗煎瓙绗竴鏍艰窛绂�",
+      "address": "DB10.192",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "C01鍒�2#绗煎瓙绗竴鏍艰窛绂�",
+      "address": "DB10.196",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "C01鍒�3#绗煎瓙绗竴鏍艰窛绂�",
+      "address": "DB10.200",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "1#绗煎瓙鏍呮牸闂磋窛",
+      "address": "DB10.208",
+      "min": 0,
+      "max": 100,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "2#绗煎瓙鏍呮牸闂磋窛",
+      "address": "DB10.212",
+      "min": 0,
+      "max": 100,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "3#绗煎瓙鏍呮牸闂磋窛",
+      "address": "DB10.216",
+      "min": 0,
+      "max": 100,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "1#绗煎瓙瑙掑害",
+      "address": "DB10.232",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "2#绗煎瓙瑙掑害",
+      "address": "DB10.236",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "3#绗煎瓙瑙掑害",
+      "address": "DB10.240",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "1#绗煎瓙鏍呮牸鏁伴噺",
+      "address": "DB10.224",
+      "min": 0,
+      "max": 100,
+      "unit": "鏍�",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "2#绗煎瓙鏍呮牸鏁伴噺",
+      "address": "DB10.226",
+      "min": 0,
+      "max": 100,
+      "unit": "鏍�",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "3#绗煎瓙鏍呮牸鏁伴噺",
+      "address": "DB10.228",
+      "min": 0,
+      "max": 100,
+      "unit": "鏍�",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "杈撻�佹墜鍔↗OG浣胯兘",
+        "value": 0,
+        "address": "DB10.98.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "瀹氫綅鎵嬪姩JOG浣胯兘",
+        "value": 0,
+        "address": "DB10.106.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "杈撻�佹晠闅滃浣�",
+        "value": 0,
+        "address": "DB10.96.2",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "瀹氫綅鏁呴殰澶嶄綅",
+        "value": 0,
+        "address": "DB10.104.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "1#绗煎瓙璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2050.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "2#绗煎瓙璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2050.1",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "3#绗煎瓙璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2050.2",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "1#绗煎瓙瑙掑害瀹氫綅",
+        "value": 0,
+        "address": "DB10.2048.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "2#绗煎瓙瑙掑害瀹氫綅",
+        "value": 0,
+        "address": "DB10.2048.1",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "3#绗煎瓙瑙掑害瀹氫綅",
+        "value": 0,
+        "address": "DB10.2048.2",
+        "state": 1
+      }
+    }
+  ],
+  [
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎楂橀�熼�熷害",
+      "address": "DB10.1724",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎涓�熼�熷害",
+      "address": "DB10.1728",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎浣庨�熼�熷害",
+      "address": "DB10.1732",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "杈撻�佺嚎鎵嬪姩閫熷害",
+      "address": "DB10.1736",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "鐢垫満鏈�澶ч�熷害",
+      "address": "DB10.1740",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "瀹氫綅鐢垫満鎵嬪姩閫熷害",
+      "address": "DB10.1824",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "瀹氫綅鐢垫満鑷姩閫熷害",
+      "address": "DB10.1828",
+      "min": 0,
+      "max": 100,
+      "unit": "m/min",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "C02鍒�4#绗煎瓙绗竴鏍艰窛绂�",
+      "address": "DB10.204",
+      "min": 0,
+      "max": 99999,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "4#绗煎瓙鏍呮牸闂磋窛",
+      "address": "DB10.220",
+      "min": 0,
+      "max": 100,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "4#绗煎瓙瑙掑害",
+      "address": "DB10.244",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "4#绗煎瓙鏍呮牸鏁伴噺",
+      "address": "DB10.230",
+      "min": 0,
+      "max": 100,
+      "unit": "鏍�",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "杈撻�佹墜鍔↗OG浣胯兘",
+        "value": 0,
+        "address": "DB10.116.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "瀹氫綅鎵嬪姩JOG浣胯兘",
+        "value": 0,
+        "address": "DB10.124.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "杈撻�佹晠闅滃浣�",
+        "value": 0,
+        "address": "DB10.114.2",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "瀹氫綅鏁呴殰澶嶄綅",
+        "value": 0,
+        "address": "DB10.122.0",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "4#绗煎瓙璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2050.3",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "4#绗煎瓙瑙掑害瀹氫綅",
+        "value": 0,
+        "address": "DB10.2048.3",
+        "state": 1
+      }
+    }
+  ],
+  [
+    {
+      "USname": "",
+      "CNname": "澶ц溅鍒颁腑绌虹嚎1璺濈",
+      "address": "DB10.2052.0",
+      "min": 0,
+      "max": 100,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "澶ц溅鍒颁腑绌虹嚎2璺濈",
+      "address": "DB10.2056.0",
+      "min": 0,
+      "max": 100,
+      "unit": "mm",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "涓┖绾�1缈昏浆瑙掑害",
+      "address": "DB10.1648.0",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "USname": "",
+      "CNname": "涓┖绾�2缈昏浆瑙掑害",
+      "address": "DB10.1652.0",
+      "min": 0,
+      "max": 100,
+      "unit": "掳",
+      "type": "0",
+      "value": "0",
+      "value2": "0"
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "涓┖绾�1璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2048.6",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "涓┖绾�2璺濈瀹氫綅",
+        "value": 0,
+        "address": "DB10.2048.7",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "涓┖绾�1瑙掑害瀹氫綅",
+        "value": 0,
+        "address": "DB10.2048.4",
+        "state": 1
+      }
+    },
+    {
+      "button": {
+        "USname": "",
+        "CNname": "涓┖绾�2瑙掑害瀹氫綅",
+        "value": 0,
+        "address": "DB10.2048.5",
+        "state": 1
+      }
+    }
+  ]
+]
\ No newline at end of file
diff --git a/Albania_Mes-ui/src/configuration/Sign.json b/Albania_Mes-ui/src/configuration/Sign.json
index f6857fd..88bac50 100644
--- a/Albania_Mes-ui/src/configuration/Sign.json
+++ b/Albania_Mes-ui/src/configuration/Sign.json
@@ -1,7 +1,7 @@
 {
   "sign": [
     {
-      "name": "D01.SR dec",
+      "name": "A01Sr.Low-E",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -9,7 +9,7 @@
       "unit":"I10.0"
     },
     {
-      "name": "D01.SR in pos",
+      "name": "A01Sr.dec",
       "value": "0",
       "state": "1",
       "type": "1",
@@ -17,7 +17,7 @@
       "unit":"I10.1"
     },
     {
-      "name": "D02.SR dec",
+      "name": "A01Sr.Pos",
       "value": "0",
       "state": "1",
       "type": "1",
@@ -26,7 +26,7 @@
       
     },
     {
-      "name": "D02.SR in pos",
+      "name": "A02Sr.YZero",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -34,7 +34,7 @@
       "unit":"I10.3"
     },
     {
-      "name": "D03.SR into",
+      "name": "A02Sr.YH1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -42,7 +42,7 @@
       "unit":"I10.4"
     },
     {
-      "name": "D03.SR dec",
+      "name": "A02Sr.YH2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -50,7 +50,7 @@
       "unit":"I10.5"
     },
     {
-      "name": "D03.SR in pos",
+      "name": "A02Sr.YH3",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -58,7 +58,7 @@
       "unit":"I10.6"
     },
     {
-      "name": "D04.SR dec",
+      "name": "A02Sr.YH4",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -66,7 +66,7 @@
       "unit":"I10.7"
     },
     {
-      "name": "D04.SR in pos",
+      "name": "A02Sr.LimitTop",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -75,7 +75,7 @@
 
     },
     {
-      "name": "D05.SR dec",
+      "name": "A02Sr.LimiBottom",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -83,7 +83,7 @@
       "unit":"I11.1"
     },
     {
-      "name": "D05.SR in pos",
+      "name": "A02Sr.Check",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -91,7 +91,7 @@
       "unit":"I11.2"
     },
     {
-      "name": "D06.SR dec",
+      "name": "A02Sr.YDec",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -99,7 +99,7 @@
       "unit":"I11.3"
     },
     {
-      "name": "D06.SR in pos",
+      "name": "A02Sr.Xin",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -107,7 +107,7 @@
       "unit":"I11.4"
     },
     {
-      "name": "B01.SR in dec",
+      "name": "A02Sr.XCheck",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -115,7 +115,7 @@
       "unit":"I11.5"
     },
     {
-      "name": "B01.SR in in pos",
+      "name": "A02Sr.XDec",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -123,7 +123,7 @@
       "unit":"I11.6"
     },
     {
-      "name": "B01.SR out dec",
+      "name": "A02Sr.XPos",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -131,7 +131,7 @@
       "unit":"I11.7"
     },
     {
-      "name": "B01.SR out in pos",
+      "name": "C01Sr.Zero",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -140,7 +140,7 @@
    
     },
     {
-      "name": "B01.SR turn on",
+      "name": "C01YV1.Bas1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -148,7 +148,7 @@
       "unit":"I124.1"
     },
     {
-      "name": "B01.SR turn off",
+      "name": "C01YV1.Work1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -156,7 +156,7 @@
       "unit":"I124.2"
     },
     {
-      "name": "B01.SR up",
+      "name": "C01.YV1.Bas2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -164,7 +164,7 @@
       "unit":"I124.3"
     },
     {
-      "name": "B01.SR down",
+      "name": "C01.YV1.Work2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -172,7 +172,7 @@
       "unit":"I124.4"
     },
     {
-      "name": "B02.SR out dec",
+      "name": "C01.YV2.Bas1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -180,7 +180,7 @@
       "unit":"I124.5"
     },
     {
-      "name": "B02.SR out in pos",
+      "name": "C01.YV2.Bas2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -188,7 +188,7 @@
       "unit":"I124.6"
     },
     {
-      "name": "B02.SR in dec",
+      "name": "C01.YV2.Bas3",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -196,7 +196,7 @@
       "unit":"I124.7"
     },
     {
-      "name": "B02.SR in in pos",
+      "name": "C01.YV2.Bas4",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -204,7 +204,7 @@
       "unit":"I125.0"
     },
     {
-      "name": "B02.SR turn on",
+      "name": "C01.YV2.Work1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -212,7 +212,7 @@
       "unit":"I125.1"
     },
     {
-      "name": "B02.SR turn off",
+      "name": "C01.YV2.Work2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -220,7 +220,7 @@
       "unit":"I125.2"
     },
     {
-      "name": "B02.SR up",
+      "name": "C01.YV2.Work3",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -228,7 +228,7 @@
       "unit":"I125.3"
     },
     {
-      "name": "B02.SR down",
+      "name": "C01.YV2.Work4",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -236,7 +236,7 @@
       "unit":"I125.4"
     },
     {
-      "name": "B01.SR in safety",
+      "name": "C01.YV.Blow1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -244,7 +244,7 @@
       "unit":"I125.5"
     },
     {
-      "name": "B01.SR out safety",
+      "name": "C01.YV.Blow2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -252,7 +252,7 @@
       "unit":"I125.6"
     },
     {
-      "name": "B02.SR in safety",
+      "name": "C01.YV.Blow3",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -260,7 +260,7 @@
       "unit":"I125.7"
     },
     {
-      "name": "SB.start(+)",
+      "name": "C01.YV.Blow4",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -268,7 +268,7 @@
       "unit":"I126.0"
     },
     {
-      "name": "SB.stop(1)",
+      "name": "C01.SR.Limit1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -276,7 +276,7 @@
       "unit":"I126.1"
     },
     {
-      "name": "SB.reset",
+      "name": "C02.Sr.Zero",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -284,7 +284,7 @@
       "unit":"I126.2"
     },
     {
-      "name": "SB.auto/manul",
+      "name": "C02.YV1.Bas1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -292,7 +292,7 @@
       "unit":"I126.3"
     },
     {
-      "name": "space",
+      "name": "C02.YV1.Work1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -300,7 +300,7 @@
       "unit":"I126.4"
     },
     {
-      "name": "SB.emg",
+      "name": "C02.YV1.Bas2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -308,7 +308,7 @@
       "unit":"I126.5"
     },
     {
-      "name": "D01.SB.start",
+      "name": "C02.YV1.Work2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -316,7 +316,7 @@
       "unit":"I126.6"
     },
     {
-      "name": "D06.SB.start",
+      "name": "C02.Sr.limit1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -324,7 +324,7 @@
       "unit":"I126.7"
     },
     {
-      "name": "B02.SR out safety",
+      "name": "C02.YV2.Bas1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -332,7 +332,7 @@
       "unit":"I127.0"
     },
     {
-      "name": "SafetyDoor.requset",
+      "name": "C02.YV2.Bas2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -340,7 +340,7 @@
       "unit":"I127.1"
     },
     {
-      "name": "SafetyDoor.confirm",
+      "name": "C02.YV2.Bas3",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -348,7 +348,7 @@
       "unit":"I127.2"
     },
     {
-      "name": "SafetyDoor.reset",
+      "name": "C02.YV2.Bas4",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -356,7 +356,7 @@
       "unit":"I127.3"
     },
     {
-      "name": "space",
+      "name": "C02.YV2.Work1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -364,7 +364,7 @@
       "unit":"I127.4"
     },
     {
-      "name": "space",
+      "name": "C02.YV2.Work2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -372,7 +372,7 @@
       "unit":"I127.5"
     },
     {
-      "name": "space",
+      "name": "C02.YV2.Work3",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -380,7 +380,7 @@
       "unit":"I127.6"
     },
     {
-      "name": "space",
+      "name": "C02.YV2.Work4",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -388,7 +388,7 @@
       "unit":"I127.7"
     },
     {
-      "name": "A01.SR left dec",
+      "name": "C02.YV.Blow1",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -396,7 +396,7 @@
       "unit":"I128.0"
     },
     {
-      "name": "A01.SR left in pos",
+      "name": "C02.YV.Blow2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -404,7 +404,7 @@
       "unit":"I128.1"
     },
     {
-      "name": "A01.SR left safety",
+      "name": "C02.YV.Blow3",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -412,7 +412,7 @@
       "unit":"I128.2"
     },
     {
-      "name": "A01.SR right dec",
+      "name": "C02.YV.Blow4",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -420,7 +420,7 @@
       "unit":"I128.3"
     },
     {
-      "name": "A01.SR right in pos",
+      "name": "bStart",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -428,7 +428,7 @@
       "unit":"I128.4"
     },
     {
-      "name": "A01.SR right safety",
+      "name": "bStop",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -436,7 +436,7 @@
       "unit":"I128.5"
     },
     {
-      "name": "A01.SR turn home",
+      "name": "bEstop",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -444,7 +444,7 @@
       "unit":"I128.6"
     },
     {
-      "name": "A01.SR turn up",
+      "name": "bReset",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -452,7 +452,7 @@
       "unit":"I128.7"
     },
     {
-      "name": "A01.SR turn down",
+      "name": "bAuto/Manual",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -460,7 +460,7 @@
       "unit":"I129.0"
     },
     {
-      "name": "A01.SR travel home",
+      "name": "bPause",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -468,7 +468,7 @@
       "unit":"I129.1"
     },
     {
-      "name": "A01.SR travel left dec",
+      "name": "C01.Sr.Limit2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -476,7 +476,7 @@
       "unit":"I129.2"
     },
     {
-      "name": "A01.SR travel left limit",
+      "name": "C02.Sr.Limit2",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -484,7 +484,7 @@
       "unit":"I129.3"
     },
     {
-      "name": "A01.SR travel right dec",
+      "name": "A01.FootControl",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -492,7 +492,7 @@
       "unit":"I129.4"
     },
     {
-      "name": "A01.SR travel right limit",
+      "name": "B01.Sr.DecLeft",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -500,7 +500,7 @@
       "unit":"I129.5"
     },
     {
-      "name": "space",
+      "name": "B01.Sr.PosLeft",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -508,7 +508,7 @@
       "unit":"I129.6"
     },
     {
-      "name": "space",
+      "name": "B01.Sr.SafetyLeft",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -517,7 +517,7 @@
     }
     ,
     {
-      "name": "A02.SR left dec",
+      "name": "B01.Sr.DecRight",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -526,7 +526,7 @@
     }
     ,
     {
-      "name": "A02.SR left in pos",
+      "name": "B01.Sr.PosRight",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -535,7 +535,7 @@
     }
     ,
     {
-      "name": "A02.SR left safety",
+      "name": "B01.Sr.SafetyRight",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -544,7 +544,7 @@
     }
     ,
     {
-      "name": "A02.SR right dec",
+      "name": "B01.Sr.TurnZero",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -553,7 +553,7 @@
     }
     ,
     {
-      "name": "A02.SR right in pos",
+      "name": "B01.Sr.TurnLimitTop",
       "value": "1",
       "state": "1",
       "type": "1",
@@ -562,389 +562,14 @@
     }
     ,
     {
-      "name": "A02.SR right safety",
+      "name": "B01.Sr.TurnLimitBottom",
       "value": "1",
       "state": "1",
       "type": "1",
       "page": "1",
       "unit":"I130.5"
     }
-    ,
-    {
-      "name": "A02.SR turn home",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I130.6"
-    }
-    ,
-    {
-      "name": "A02.SR turn up",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I130.7"
-    }
-    ,
-    {
-      "name": "A02.SR turn down",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I131.0"
-    }
-    ,
-    {
-      "name": "A02.SR travel home",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I131.1"
-    }
-    ,
-    {
-      "name": "A02.SR travel left dec",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I131.2"
-    }
-    ,
-    {
-      "name": "A02.SR travel left limit",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I131.3"
-    }
-    ,
-    {
-      "name": "A02.SR travel right dec",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I131.4"
-    }
-    ,
-    {
-      "name": "A02.SR travel right limit",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I131.5"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I131.6"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I131.7"
-    }
-    ,
-    {
-      "name": "B01.SR origin",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I132.0"
-    }
-    ,
-    {
-      "name": "B01.SR left limit",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I132.1"
-    }
-    ,
-    {
-      "name": "B01.SR right limit",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I132.2"
-    }
-    ,
-    {
-      "name": "B02.SR origin",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I132.3"
-    }
-    ,
-    {
-      "name": "B02.SR left limit",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I132.4"
-    }
-    ,
-    {
-      "name": "B02.SR right limit",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I132.5"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I132.6"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"I132.7"
-    }
-    ,
-    {
-      "name": "LED.red",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q4.0"
-    }
-    ,
-    {
-      "name": "LED.green",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q4.1"
-    }
-    ,
-    {
-      "name": "LED.yellow",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q4.2"
-    }
-    ,
-    {
-      "name": "D01.LED.green",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q4.3"
-    }
-    ,
-    {
-      "name": "D06.LED.green",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q4.4"
-    },
-    {
-      "name": "B01.YV.turn",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q4.5"
-    }
-    ,
-    {
-      "name": "B01.YV.up down",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q4.6"
-    }
-    ,
-    {
-      "name": "B01.YV.gassing",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q4.7"
-    }
-    ,
-    {
-      "name": "B02.YV.turn",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q5.0"
-    }
-    ,
-    {
-      "name": "B02.YV.up down",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q5.1"
-    }
-    ,
-    {
-      "name": "B02.YV.gassing",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q5.2"
-    }
-    ,
-    {
-      "name": "SafetyDoor.Led",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q5.3"
-    }
-    ,
-    {
-      "name": "SafetyDoor.open",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q5.4"
-    }
-    ,
-    {
-      "name": "D01 SB.confirm",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q5.5"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q5.6"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q5.7"
-    }
-    ,
-    {
-      "name": "A01 oilPump",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q126.0"
-    }
-    ,
-    {
-      "name": "A01 motorCtr",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q126.1"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q126.2"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q126.3"
-    }
-    ,
-    {
-      "name": "A02 oilPump",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q127.0"
-    }
-    ,
-    {
-      "name": "A02 motorCtr",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q127.1"
-    }
-    ,
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q127.2"
-    },
-    {
-      "name": "space",
-      "value": "1",
-      "state": "1",
-      "type": "1",
-      "page": "1",
-      "unit":"Q127.3"
-    }
+    
     
 
   ],
diff --git a/Albania_Mes-ui/src/configuration/parameter2.json b/Albania_Mes-ui/src/configuration/parameter2.json
index 79f5ef3..025652d 100644
--- a/Albania_Mes-ui/src/configuration/parameter2.json
+++ b/Albania_Mes-ui/src/configuration/parameter2.json
@@ -3,8 +3,8 @@
     {
       "button": {
         "name": "D01鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -12,8 +12,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "3"
@@ -23,16 +23,16 @@
       "read": 33,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
     {
       "button": {
         "name": "D02鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -40,8 +40,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "3"
@@ -51,16 +51,16 @@
       "read": 33,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
     {
       "button": {
         "name": "D03鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -68,8 +68,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "3"
@@ -79,16 +79,16 @@
       "read": 33,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
     {
       "button": {
         "name": "D04鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -96,8 +96,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "3"
@@ -107,16 +107,16 @@
       "read": 33,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
     {
       "button": {
         "name": "D05鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -124,8 +124,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "3"
@@ -135,16 +135,16 @@
       "read": 33,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
     {
       "button": {
         "name": "D06鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -152,8 +152,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "3"
@@ -163,16 +163,16 @@
       "read": 33,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
     {
       "button": {
         "name": "A01鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -180,8 +180,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "3"
@@ -191,26 +191,24 @@
       "read": 33,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     },
     {
       "name": "ID2",
       "read": 33,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
-    
   ],
- 
   [
     {
       "button": {
         "name": "A02鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -218,8 +216,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "3"
@@ -229,26 +227,24 @@
       "read": "ID28",
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
     {
       "button": {
         "name": "B01鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0
-      
+        "value": 0,
+        "value2": 0
       },
       "type": "4"
     },
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0
-        
+        "value": 0,
+        "value2": 0
       },
       "type": "3"
     },
@@ -257,16 +253,16 @@
       "read": "ID29",
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
     {
       "button": {
         "name": "B02鎵嬪姩鐘舵��",
-        "value": 0, 
-"value2": 0,
+        "value": 0,
+        "value2": 0,
         "address": "DB10.0"
       },
       "type": "4"
@@ -274,9 +270,8 @@
     {
       "button": {
         "name": "娓呴櫎ID",
-        "value": 0, 
-"value2": 0
-    
+        "value": 0,
+        "value2": 0
       },
       "type": "3"
     },
@@ -285,8 +280,8 @@
       "read": "ID210",
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
@@ -294,17 +289,16 @@
       "name": "鎵弿鏋壂鐮佺殑ID",
       "read": 0,
       "sending": 0,
-      
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     },
     {
       "name": "ID1",
       "read": 66,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
@@ -312,17 +306,16 @@
       "name": "鎵弿鏋壂鐮佺殑ID",
       "read": 0,
       "sending": 0,
-      
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     },
     {
       "name": "ID2",
       "read": 666,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     }
   ],
   [
@@ -331,79 +324,72 @@
       "read": 333,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     },
     {
       "name": "A02鎵�鍦ㄦ牸瀛�",
       "read": 333,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     },
     {
       "name": "B01鎵�鍦ㄦ牸瀛�",
       "read": 333,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
     },
     {
       "name": "B02鎵�鍦ㄦ牸瀛�",
       "read": 333,
       "sending": 0,
       "type": "0",
-      "value": 0, 
-"value2": 0
+      "value": 0,
+      "value2": 0
+    }
+  ],
+  [
+    {
+      "button": {
+        "name": "A01缁堟/缁х画",
+        "value": 0,
+        "address": "DB10.0",
+        "type": "66"
+      }
+    }
+  ],
+  [
+    {
+      "button": {
+        "name": "A02缁堟/缁х画",
+        "value": 0,
+        "address": "DB10.0",
+        "type": "66"
+      }
+    }
+  ],
+  [
+    {
+      "name": "瀛樼墖绛夊緟寤舵椂",
+      "read": 666,
+      "sending": 0,
+      "type": "0",
+      "value": 0,
+      "value2": 0
+    }
+  ],
+  [
+    {
+      "button": {
+        "name": "杞�ュ仠",
+        "value": 0,
+        "address": "DB10.0",
+        "type": "66"
+      }
     }
   ]
-  ,
-      [
-
-      {
-        "button": {
-          "name": "A01缁堟/缁х画",
-          "value":0,
-          "address":"DB10.0",
-          "type":"66"
-        }
-      }],
-     
-      
-      [
-      {
-        "button": {
-          "name": "A02缁堟/缁х画",
-          "value":0,
-          "address":"DB10.0",
-          "type":"66"
-        }
-      }],
-      [
-       
-      
-       
-        {
-          "name": "瀛樼墖绛夊緟寤舵椂",
-          "read": 666,
-          "sending": 0,
-          "type": "0",
-          "value": 0, 
-"value2": 0
-        }
-      
-      
-      ],
-      [
-        {
-          "button": {
-            "name": "杞�ュ仠",
-            "value":0,
-            "address":"DB10.0",
-            "type":"66"
-          }
-        }]
-     
 ]
\ No newline at end of file
diff --git a/Albania_Mes-ui/src/lang/locales/en-US.json b/Albania_Mes-ui/src/lang/locales/en-US.json
index c15415c..8ca0508 100644
--- a/Albania_Mes-ui/src/lang/locales/en-US.json
+++ b/Albania_Mes-ui/src/lang/locales/en-US.json
@@ -1,4 +1,13 @@
 {
+  "Manual matching":"Manual matching",
+  "Manual removal":"Manual removal",
+  "Remeasure":"Remeasure",
+  "Measure Width":"Measure Width",
+  "Measure Height":"Measure Height",
+  "Matching results":"Matching results",
+  "Matching successful":"Matching successful",
+  "Multiple data matching":"Multiple data matching",
+  "Matching failed":"Matching failed",
   "Customer":"Customer",
   "Tier":"Tier",
   "Matching":"Matching",
@@ -24,13 +33,15 @@
   "StorageCageAdd":"StorageCageAdd",
   "Reduce":"Reduce",
   "number":"number",
-  "Import order":"Importorder",
+  "Import order":"Import order",
   "Measure":"Measure",
   "StorageCage":"StorageCage",
   "Task queue":"Task queue",
   "Height":"Height",
   "Thickness":"Thickness",
   "Clear":"Clear",
+
+
   "ip":"localhost",
   "systemTitle": "Login System",
   "usernamePlaceholder": "Please enter username",
diff --git a/Albania_Mes-ui/src/lang/locales/zh-CN.json b/Albania_Mes-ui/src/lang/locales/zh-CN.json
index ac993a0..1e709c4 100644
--- a/Albania_Mes-ui/src/lang/locales/zh-CN.json
+++ b/Albania_Mes-ui/src/lang/locales/zh-CN.json
@@ -1,13 +1,45 @@
 {
+  "Manual matching":"浜哄伐鍖归厤",
+  "Manual removal":"浜哄伐鎷胯蛋",
+  "Remeasure":"閲嶆柊娴嬮噺",
+  "Measure Width":"娴嬮噺瀹�",
+  "Measure Height":"娴嬮噺楂�",
+  "Matching results":"鍖归厤缁撴灉",
+  "Matching successful":"鍖归厤鎴愬姛",
+  "Multiple data matching":"澶氭暟鎹尮閰�",
+  "Matching failed":"鍖归厤澶辫触",
+  "Customer":"瀹㈡埛",
+  "Tier":"灞�",
+  "Matching":"鍖归厤缂栧彿",
+  "Productname":"椤圭洰鍚嶇О",
+  "All Out":"鍏ㄩ儴鍑哄畬",
+  "Operation failed":"鎿嶄綔澶辫触",
+  "Flowcard":"娴佺▼鍗�",
+  "Glasstype":"鐜荤拑绫诲瀷",
+  "Mode Change":"妯″紡鏇存敼",
+  "Start Task":"寮�濮嬩换鍔�",
+  "Stop Task":"鍋滄浠诲姟",
+  "No Of Cage":"绗煎瓙鍙�",
+  "Task State":"浠诲姟鐘舵��",
+  "Task Method":"浠诲姟妯″紡",
+  "Task Line":"浠诲姟绾胯矾",
+  "Finish No":"瀹屾垚鏁伴噺",
+  "Mate No":"閰嶅缂栧彿",
+  "Order":"璁㈠崟",
+  "Select":"鏌ヨ",
+  "GlassType":"鐜荤拑绫诲瀷",
+  "Films":"鑶滅郴",
+  "StorageCageAdd":"绗煎瓙鐜荤拑娣诲姞",
+  "Reduce":"鍑忓皯",
+  "number":"鏁伴噺",
   "Import order":"瀵煎叆璁㈠崟",
   "Measure":"娴嬮噺",
-  "StorageCage":"鐞嗙墖绗�",
+  "StorageCage":"绗煎瓙",
   "Task queue":"浠诲姟闃熷垪",
   "Height":"楂�",
   "Thickness":"鍘氬害",
-
-
   "Clear":"娓呴櫎",
+
   "ip":"localhost",
   "systemTitle": "鐧诲綍绯荤粺",
   "usernamePlaceholder": "璇疯緭鍏ョ敤鎴峰悕",
diff --git a/Albania_Mes-ui/src/router/index.js b/Albania_Mes-ui/src/router/index.js
index d65b7da..326c468 100644
--- a/Albania_Mes-ui/src/router/index.js
+++ b/Albania_Mes-ui/src/router/index.js
@@ -127,7 +127,11 @@
         path: '/Electrical/InteractionState',
         component: () => import('../views/Electrical/InteractionState')
       }
-
+      ,
+      {
+        path: '/Electrical/AlbaniaServo',
+        component: () => import('../views/Electrical/AlbaniaServo')
+      }
  
 
     ]
diff --git a/Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue b/Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue
new file mode 100644
index 0000000..e2402c7
--- /dev/null
+++ b/Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue
@@ -0,0 +1,392 @@
+<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/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
+        }}</router-link>
+      <router-link to="/Electrical/AlbaniaServo" 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/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">
+        {{ $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')
+      }}</router-link>
+
+      <router-link v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text"
+        active-class="blue-button">{{
+        $t('Speed parameter settings')
+      }}</router-link>
+
+      <router-link v-if="hasPermission" to="/Electrical/InteractionState" tag="el-button" type="text"
+        active-class="blue-button">{{ $t("InteractionState") }}</router-link>
+
+    </el-breadcrumb> -->
+
+    <el-row :gutter="10">
+      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
+        <el-card class="json-block" style="width:670px;margin-bottom: 10px;">
+          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
+            <div class="item-row">
+              <span class="name" style="width:300px;">{{ item.CNname }}</span>
+
+              <el-input style="width:300px;"
+                v-if="item.state != 0 && item.type === '0' && groupIndex === 0 && (itemIndex === 2)" 
+                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value" class="input-box"
+                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
+
+              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 0"
+                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value"
+                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
+                class="input-box"
+                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
+
+              <!-- <el-input style="width: 300px;" v-else-if="(item.state !== 0) && (item.type === '0') && (itemIndex === 2)"
+                v-model="item.value" readonly class="input-box"></el-input> -->
+
+              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1"
+                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value"
+                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
+                class="input-box"
+                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
+              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 2"
+                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value"
+                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
+                class="input-box"
+                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
+              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 3"
+                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value"
+                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
+                class="input-box"
+                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
+              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0'" v-model="item.value"
+                @focus="handleInput(groupIndex, itemIndex)" class="input-box"
+                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
+                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
+              <span class="name" style="width:30px;">{{ item.unit }}</span>
+            </div>
+          </div>
+          <div class="button-row" style="display: flex; justify-content: center;flex-wrap: wrap;">
+            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
+              <el-button v-if="item.button && language === 'en-US' && item.state != 0" :name="item.button.CNname"
+                v-model="item.button.value"
+                :class="{ 'action-button': true, 'error-button': item.button.CNname === 'Fault' && item.button.value === 1, 'error-button2': item.button.CNname === 'NotZero' && item.button.value === 0, 'error-button3': item.button.CNname === 'Zero' && item.button.value === 1, 'greenbutton': item.button.CNname !== 'NotZero' && item.button.CNname !== 'Fault' && item.button.value === 1 }"
+                @click="updateButtonValue(dataGroup, itemIndex);">{{
+        item.button.CNname }}</el-button>
+              <el-button v-if="item.button && language === 'zh-CN' && item.state != 0" :name="item.button.CNname"
+                v-model="item.button.value"
+                :class="{ 'action-button': true, 'error-button': item.button.CNname === '鏁呴殰' && item.button.value === 1, 'error-button2': item.button.CNname === '鏈洖闆�' && item.button.value === 0, 'error-button3': item.button.CNname === '宸插洖闆�' && item.button.value === 1, 'greenbutton': item.button.CNname !== '鏈洖闆�' && item.button.CNname !== '鏁呴殰' && item.button.value === 1 }"
+                @click="updateButtonValue(dataGroup, itemIndex);">{{
+        item.button.CNname }}</el-button>
+            </div>
+          </div>
+        </el-card>
+      </el-col>
+    </el-row>
+    <!-- <div class="container">
+ 
+    <component :is="embeddedComponent"></component>
+    <component :is="embeddedComponent2"></component>
+  </div>  -->
+
+    <!-- <el-button @click="submitDataToBackend">鎻愪氦鏁版嵁鍒板悗绔�</el-button> -->
+  </div>
+
+</template>
+
+
+<script>
+import LanguageMixin from '../../lang/LanguageMixin'
+import data from '../../configuration/AlbaniaServo'
+
+// import ManualonePosition2 from './ManualonePosition2.vue';
+// import ManualJog from './ManualJog.vue';
+import {
+  SelectPermissionByUserName, currentUsername, WriteWord, WriteBit
+} from "../../api/home";
+// import { createWebSocket } from '../../api/websocket.js';
+let socket;
+export default {
+  name: "AlbaniaServo",
+  mixins: [LanguageMixin],
+  data() {
+    return {
+      jsonData: data,
+      language: this.$i18n.locale,
+      // embeddedComponent: ManualonePosition2,
+      // embeddedComponent2: ManualJog,
+      hasPermission: false // 榛樿娌℃湁鏉冮檺
+
+      // 鍔犺浇鏁翠釜data.json鏂囦欢浣滀负jsonData
+    }
+  },
+  activated() {
+    this.initWebSocket();
+    // const language = this.$i18n.locale;
+    //console.log(language);
+    // if (language === 'en-US') {
+    //   this.replaceChineseWithEnglish();
+    // }
+    this.$forceUpdate();
+    currentUsername().then(res => {
+      SelectPermissionByUserName(res.data).then(res => {
+        res.data.permission.forEach(item => {
+          if (item.permissionId == "36" && item.state == 1) {
+            this.hasPermission = true;
+          }
+
+        });
+      });
+
+    });
+
+  },
+  methods: {
+    handleInput(groupIndex, itemIndex) {
+      this.jsonData[groupIndex][itemIndex].value2 = 1;
+
+    },
+    closeSocket() {
+      // 鍏抽棴 WebSocket 杩炴帴
+      socket.close();
+    },
+    updateButtonValue(dataGroup, itemIndex) {
+      // 灏嗗綋鍓嶆寜閽殑鍊艰涓�1
+      if (dataGroup[itemIndex].button.value === 0) {
+        // 濡傛灉褰撳墠鎸夐挳鐨勫�兼槸 0锛屽皢鍏惰涓� 1
+        this.$set(dataGroup[itemIndex].button, 'value', 1);
+      } else {
+        // 鍚﹀垯灏嗗叾璁句负 0
+        this.$set(dataGroup[itemIndex].button, 'value', 0);
+      }
+      WriteBit(dataGroup[itemIndex].button.address, dataGroup[itemIndex].button.value).then(res => {
+        if (res.data.message == 200) {
+          this.$message.success(this.$t('Operation successful'));
+        }
+      });
+
+    },
+    WriteWord(dataGroup, itemIndex, index) {
+      if (isNaN(dataGroup[itemIndex].value)) {
+        this.$message.success(this.$t('Operation Please enter number'));
+      } else {
+        WriteWord(dataGroup[itemIndex].address, dataGroup[itemIndex].value).then(res => {
+          if (res.data.message == 200) {
+            this.$message.success(this.$t('Operation successful'));
+          }
+        });
+      }
+      if (index == 1) {
+        this.$set(dataGroup[itemIndex], 'value2', 0);
+      }
+
+    },
+
+
+    initWebSocket() {
+      let viewname = "AlbaniaServo";
+
+      if (typeof WebSocket === "undefined") {
+        console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
+      } else {
+        let socketUrl = "ws://" + this.$t('ip') + ":8888" + "/springboot-vue3/api/talk/" + viewname;
+        if (socket != null) {
+          socket.close();
+          socket = null;
+        }
+
+        // 寮�鍚竴涓獁ebsocket鏈嶅姟
+        socket = new WebSocket(socketUrl);
+
+        // 鎵撳紑浜嬩欢
+        socket.onopen = function () {
+          console.log("websocket宸叉墦寮�");
+        };
+
+        // 鏀跺埌娑堟伅
+        //         let 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;
+          // }
+          // console.log(this.jsonData);
+          let obj = JSON.parse(msg.data);
+          // const weihuiling = obj.weihuiling;
+
+          this.jsonData.forEach((item, index) => {
+            item.forEach((item2, index2) => {
+
+              if (item2.button !== undefined) {
+                switch (index) {
+                  case 0:
+                    item2.button.value = obj.listpositionparam[0][index2];
+                    break;
+                  case 1:
+                    item2.button.value = obj.listA01param[0][index2];
+                    break;
+                  case 2:
+                    item2.button.value = obj.listA02param[0][index2];
+                    break;
+                  case 3:
+                    item2.button.value = obj.listB01param[0][index2];
+                    break;
+                  case 4:
+                    item2.button.value = obj.listC01param[0][index2];
+                    break;
+                  case 5:
+                    item2.button.value = obj.listC02param[0][index2];
+                    break;
+                  case 6:
+                    item2.button.value = obj.listHollowparam[0][index2];
+                    break;
+                  default:
+                    break;
+                }
+
+              } else {
+                if (item2.value2 !== 1) {
+                  switch (index) {
+                    case 0:
+                      item2.value = obj.listpositionparam[0][index2];
+                      break;
+                    case 1:
+                      item2.value = obj.listA01param[0][index2];
+                      break;
+                    case 2:
+                      item2.value = obj.listA02param[0][index2];
+                      break;
+                    case 3:
+                      item2.value = obj.listB01param[0][index2];
+                      break;
+                    case 4:
+                      item2.value = obj.listC01param[0][index2];
+                      break;
+                    case 5:
+                      item2.value = obj.listC02param[0][index2];
+                      break;
+                    case 6:
+                      item2.value = obj.listHollowparam[0][index2];
+                      break;
+                    default:
+                      break;
+                  }
+                }
+
+              }
+
+            });
+          });
+
+          // if (obj.zuhe1) {
+          //   console.log(obj);
+
+          //   // 鎵ц鏇存柊閫昏緫
+          //   for (let i = 0; i < 4; i++) {
+          //     jsonData2[i].forEach((item, index) => {
+          //       if (typeof item.value !== 'undefined' && typeof obj[`zuhe${i + 1}`][0][index] !== 'undefined') {
+          //         item.value = obj[`zuhe${i + 1}`][0][index];
+          //       }
+          //     });
+          //   }
+          // }
+
+        };
+
+
+
+
+        // 鍏抽棴浜嬩欢
+        socket.onclose = function () {
+          console.log("websocket宸插叧闂�");
+        };
+
+        // 鍙戠敓閿欒浜嬩欢
+        socket.onerror = function () {
+          console.log("websocket鍙戠敓浜嗛敊璇�");
+        };
+        this.$router.afterEach(function () {
+          socket.close();
+        })
+
+      }
+    },
+    send() {
+
+
+      socket?.send(JSON.stringify(this.messagepack));
+    }
+
+  }
+}
+</script>
+
+<style scoped>
+.item-row {
+  display: flex;
+  align-items: center;
+  margin-bottom: 2px;
+  /* 璋冩暣姣忎釜椤圭洰涔嬮棿鐨勯棿璺� */
+}
+
+.action-button {
+  margin-right: 10px;
+  background: #66b1ff;
+  color: #FFF;
+}
+
+.blue-button {
+  background-color: skyblue;
+}
+
+.el-card ::v-deep .el-card__body {
+  padding: 13px;
+}
+
+.error-button {
+  background-color: red;
+}
+
+.error-button2 {
+  background-color: red;
+}
+
+.greenbutton {
+
+  background-color: green;
+}
+
+.error-button3 {
+  background-color: green;
+
+}
+</style>
\ No newline at end of file
diff --git a/Albania_Mes-ui/src/views/Electrical/ManualonePosition.vue b/Albania_Mes-ui/src/views/Electrical/ManualonePosition.vue
index 141937f..20044f5 100644
--- a/Albania_Mes-ui/src/views/Electrical/ManualonePosition.vue
+++ b/Albania_Mes-ui/src/views/Electrical/ManualonePosition.vue
@@ -607,8 +607,6 @@
 
 
 if(obj.zuhe1){
-
-
            //鏇存柊瀹炴椂浣嶇疆
            jsonData2.forEach((item) => {
                 item.forEach((subItem) => {
diff --git a/Albania_Mes-ui/src/views/Electrical/Sign.vue b/Albania_Mes-ui/src/views/Electrical/Sign.vue
index a24e599..24f4640 100644
--- a/Albania_Mes-ui/src/views/Electrical/Sign.vue
+++ b/Albania_Mes-ui/src/views/Electrical/Sign.vue
@@ -13,7 +13,7 @@
       }}</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 to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
         }}</router-link>
 
     </el-breadcrumb>
@@ -21,13 +21,12 @@
     <div style="padding-right: 30px;display: flex;flex-wrap: wrap;" class="neir">
       <div class="kuai_sb" v-for="item in record.xyData" :key="item.name">
         <el-col class="deng" :class="getStatusClass(item.value)"></el-col>
-        <span  style="width: 100%;" class="in_mc">{{
+        <!-- <span  style="width: 100%;" class="in_mc">{{
                 item.unit
-              }}</span>
+              }}</span> -->
         <span  style="width: 100%;" class="in_mc">{{
                 item.name
               }}</span>
-
       </div>
 
     </div>
diff --git a/Albania_Mes-ui/src/views/Electrical/alarm.vue b/Albania_Mes-ui/src/views/Electrical/alarm.vue
index b5cc575..e7ace7a 100644
--- a/Albania_Mes-ui/src/views/Electrical/alarm.vue
+++ b/Albania_Mes-ui/src/views/Electrical/alarm.vue
@@ -8,7 +8,7 @@
       <!-- <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 to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
         }}</router-link>
     </el-breadcrumb>
     <div>{{ $t('Alarm') }}</div>
diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index 1fa1da7..aef672e 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -346,14 +346,14 @@
             </div>
             <div style="display: flex;align-items: center;overflow: hidden;">
                 <div class="blocks" style="position: relative;width: 100%;">
-                    <div class="blocks-img" :style="'z-index:999;left:150px;top:555px;'">
+                    <div class="blocks-img" :style="'z-index:999;left:150px;top:'+carposition+'px;'">
 
                     </div>
                     <div
                         :style="'position: absolute;z-index:99;left:271px;top:987px;width:210px;height:38px;background-color:' + ShowDeviceList(0) + ';'">
                     </div>
                     <div
-                        :style="'position: absolute;z-index:1000;left:553px;top:956px;width:110px;height:74px;background-color:' + ShowDeviceList(0) + ';'">
+                        :style="'position: absolute;z-index:1000;left:553px;top:'+(400+carposition)+'px;width:110px;height:88px;background-color:' + ShowDeviceList(0) + ';'">
                     </div>
                     <div
                         :style="'position: absolute;z-index:99;left:800px;top:450px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';'">
@@ -421,7 +421,7 @@
                         <el-table-column :min-width="100" :label="$t('Terminate Task')">
                             <template slot-scope='scope'>
                                 <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                                    @click="FinishTask(0, scope.row.id)">{{ $t('Complete') }}</el-button>
+                                    @click="FinishTask(scope.row.id)">{{ $t('Complete') }}</el-button>
                             </template>
                         </el-table-column>
                     </el-table>
@@ -437,7 +437,7 @@
                         <el-table-column :min-width="100" :label="$t('Terminate Task')">
                             <template slot-scope='scope'>
                                 <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
-                                    @click="FinishTask(1, scope.row.id)">{{ $t('Complete') }}</el-button>
+                                    @click="FinishTask(scope.row.id)">{{ $t('Complete') }}</el-button>
                             </template>
                         </el-table-column>
                     </el-table>
@@ -469,38 +469,6 @@
                     <el-table-column prop="glasstype" :label="$t('Glasstype')"></el-table-column>
                     <el-table-column prop="productname" :label="$t('Productname')"></el-table-column>
                 </el-table>
-                <!-- <table id="table">
-                    <thead>
-                        <tr>
-                            <th>Customer</th>
-                            <th>order</th>
-                            <th>base</th>
-                            <th>height</th>
-                            <th>thickness</th>
-                            <th>films</th>
-                            <th>quantity</th>
-                            <th>tier</th>
-                            <th>matching</th>
-                            <th>glasstype</th>
-                            <th>productname</th>
-                        </tr>
-                    </thead>
-                    <tbody style="text-align: center">
-                        <tr v-for="item in dataList" :key="item.id">
-                            <td>{{ item.Customer }}</td>
-                            <td>{{ item.order }}</td>
-                            <td>{{ item.base }}</td>
-                            <td>{{ item.height }}</td>
-                            <td>{{ item.thickness }}</td>
-                            <td>{{ item.films }}</td>
-                            <td>{{ item.quantity }}</td>
-                            <td>{{ item.tier }}</td>
-                            <td>{{ item.matching }}</td>
-                            <td>{{ item.glasstype }}</td>
-                            <td>{{ item.productname }}</td>
-                        </tr>
-                    </tbody>
-                </table> -->
             </div>
         </el-dialog>
 
@@ -510,11 +478,11 @@
                 <!--鍔熻兘-->
                 <div>
                     <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState"
-                        style="z-index: 999;">浜哄伐鍖归厤</el-button>
+                        style="z-index: 999;">{{ $t('Manual matching') }}</el-button>
                     <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState"
-                        style="z-index: 999;">浜哄伐鎷胯蛋</el-button>
+                        style="z-index: 999;">{{ $t('Manual removal') }}</el-button>
                     <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState"
-                        style="z-index: 999;">閲嶆柊娴嬮噺</el-button>
+                        style="z-index: 999;">{{ $t('Remeasure') }}</el-button>
                 </div>
                 <br>
                 <!--鏄剧ず-->
@@ -537,17 +505,17 @@
                 <div style="width:20px;height: 720px;float: left;"></div>
                 <div style="width:500px;height: 620px;border: 2px solid #d1d1d1;float: left;padding: 50px 50px;">
                     <!--鐜荤拑鍥�  #81b337-->
-                    <span class="measuretitle">闀匡細</span> <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> <span class="measureUnit">mm</span>
+                    <span class="measuretitle">{{ $t('Width') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> <span class="measureUnit">mm</span>
                     <br>
-                    <span class="measuretitle">瀹斤細</span> <span class="measureValue">{{ this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
+                    <span class="measuretitle">{{ $t('Height') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
                     <br>
-                    <span class="measuretitle">鍘氾細</span> <span class="measureValue">{{ this.LastQueue.thickness }}</span> <span class="measureUnit">mm</span>
+                    <span class="measuretitle">{{ $t('Thickness') }}锛�</span> <span class="measureValue">{{ this.LastQueue.thickness }}</span> <span class="measureUnit">mm</span>
                     <br>
-                    <span class="measuretitle">娴嬮噺闀匡細</span> <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
+                    <span class="measuretitle">{{ $t('Measure Width') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
                     <br>    
-                    <span class="measuretitle">娴嬮噺瀹斤細</span> <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
+                    <span class="measuretitle">{{ $t('Measure Height') }}锛�</span> <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
                     <br>
-                    <span class="measuretitle">鍖归厤缁撴灉锛�</span> <span class="measureValue">{{ this.LastQueue.state>0?"鍖归厤鎴愬姛":(this.LastQueue.state==0?"澶氭暟鎹尮閰�":"鍖归厤澶辫触") }}</span>
+                    <span class="measuretitle">{{ $t('Matching results') }}锛�</span> <span class="measureValue">{{ this.LastQueue.state>0?$t('Matching successful'):(this.LastQueue.state==0?$t('Multiple data matching'):$t('Matching failed')) }}</span>
                     <br>
                 </div>
             </div>
@@ -696,6 +664,7 @@
     name: "Home",
     data() {
         return {
+            carposition:0,
             selected: [],
             options: [{
                 value: '1',
@@ -844,13 +813,8 @@
                 socket.onmessage = function (msg) {
                     //console.log("鏀跺埌鏁版嵁====" + msg.data);
                     let obj = JSON.parse(msg.data);
-                    if (obj.params != null) {
-                        var zhi1 = obj.params[0][0];
-                        var zhi2 = obj.params[0][1];
-                        this.car1 = 145 + 8.15 * Math.abs(zhi1 - this.carlist[0]['start']) / Math.abs(this.carlist[0]['end'] - this.carlist[0]['start']) * 100;
-                        this.car2 = 210 + 8.15 * Math.abs(zhi2 - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100;
-                        // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
-                        // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
+                    if(obj.carposition != null){
+                        this.carposition = obj.carposition[0];
                     }
                     // 鑾峰彇璁惧鐘舵��
                     if (obj.DeviceList != null) {
@@ -951,6 +915,7 @@
                 StorageCageAddGlass(this.cell, this.StorageCageAddInfo[index]).then(res => {
                     if (res.data.message == 200) {
                         this.$message.success(this.$t('Operation successful'));
+                        this.StorageCageAdd=false;
                     }
                 })
             } else {
@@ -987,9 +952,9 @@
             })
         },
         //瀹屾垚杩�/鍑虹墖浠诲姟
-        FinishTask(tasktype, id) {
-            FinishTask(tasktype, id).then(res => {
-                if (res.data.message3 == 200) {
+        FinishTask(id) {
+            FinishTask(id).then(res => {
+                if (res.data.message == 200) {
                     this.$message.success(this.$t('Operation successful'));
                 }
             });
@@ -998,6 +963,7 @@
         UpdateStroageCageByCell(cell, nownum, num) {
             if (nownum == null && num == 1) {
                 this.StorageCageAdd = true;
+                this.Measuermode=true;
                 this.cell = cell;
             } else {
                 if (nownum + num == 0) {
@@ -1085,6 +1051,7 @@
         //浜哄伐鍖归厤
         ManualMatching() {
             this.StorageCageAdd = true;
+            this.Measuermode=false;
         },
         //浜哄伐鎷胯蛋
         ManualTake() {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
index 67add15..912d171 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -24,29 +24,8 @@
 
     // 鍗曚緥瀹炰緥
     private static PLCAutoMes instance;
-    // private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
     private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
-    // private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
-    // private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
-    // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
-            
-    // private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
-            
-    // private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
-            
-    // private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
-    // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
-
-    // 璋冪敤initword鏂规硶
-
-    // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
-    // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
-    // public static PlcBitObject  plcBitObject = initUtil.initbit(PlcSign);
-    // public static PlcParameterObject  plcStateObject= initUtil.initword(PlcState);
-    // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
     public static PlcParameterObject PlcMesObject = initUtil.initword(PlcAlbania);
-    // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
-    // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
   
     // 绉佹湁鏋勯�犲嚱鏁�
     public PLCAutoMes() throws IOException {
@@ -71,30 +50,8 @@
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
-
-            // System.out.println(jsonFilePath);
-
-            //readAndUpdateWordValues(PlcReadObject);
             List<Short> ss=S7control.getinstance().ReadWord("DB14.0", 1);
             readAndUpdateWordValues(PlcMesObject);
-            //readAndUpdateWordValues(PlcframeObject);
-            // readAndUpdateWordValues(PlcframeObject);
-            
-            // readAndUpdateWordValues(plcStateObject);
-            // int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
-            // // System.out.println(index);
-            // PlcMesObject.getPlcParameter("AddStart").getAddress(index);
-            // // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
-            // List<String> addresses = new ArrayList<>();
-            // addresses.add("FeedID");
-            // addresses.add("AddStart");
-            // // System.out.println(addresses);
-            // // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
-            // List<String> addresses2 = new ArrayList<>();
-            // addresses2.add("FeedID");
-            // addresses2.add("FeedCarStatus");
-
-            //System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
 
         }
     }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java
new file mode 100644
index 0000000..13ae0ee
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java
@@ -0,0 +1,146 @@
+package com.example.springboot.component;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import org.apache.commons.io.FileUtils;
+
+import java.io.*;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class PlcAlbaniaServo extends Thread {
+    private Configuration config;
+
+    public PlcAlbaniaServo() throws IOException {
+        config = new Configuration("config.properties");
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(500);
+
+
+                
+
+                // List<Short> listA01param=new ArrayList<>();
+                // listA01param.add((short)100);
+                // listA01param.add((short)100);
+                // listA01param.add((short)100);
+                // listA01param.add((short)100);
+                // listA01param.add((short)100);
+                // List<Boolean> listA01button=new ArrayList<>();
+                // listA01button.add(true);
+                // listA01button.add(false);
+                // for (Boolean boolean1 : listA01button) {
+                //     listA01param.add((short) (boolean1 ? 1 : 0));
+                // }
+                JSONObject jsonObject = new JSONObject();
+                // jsonObject.append("listA01param", listA01param);
+
+                //A01
+                List<String> A01input = Arrays.asList(config.getProperty("PlcA01.param").split(","));
+                List<Float> listA01param = S7control.getinstance().readFloat32(A01input);
+                List<String> A01button = Arrays.asList(config.getProperty("PlcA01.button").split(","));
+                List<Boolean> listA01button = S7control.getinstance().readBits(A01button);
+                for (Boolean boolean1 : listA01button) {
+                    listA01param.add((float) (boolean1 ? 1 : 0));
+                }
+                jsonObject.append("listA01param", listA01param);
+
+                //A02
+                List<String> A02input = Arrays.asList(config.getProperty("PlcA02.param").split(","));
+                List<Float> listA02param = S7control.getinstance().readFloat32(A02input);
+                List<String> A02button = Arrays.asList(config.getProperty("PlcA02.button").split(","));
+                List<Boolean> listA02button = S7control.getinstance().readBits(A02button);
+                for (Boolean boolean1 : listA02button) {
+                    listA02param.add((float) (boolean1 ? 1 : 0));
+                }
+                jsonObject.append("listA02param", listA02param);
+
+                //B01
+                List<String> B01input = Arrays.asList(config.getProperty("PlcB01.param").split(","));
+                // List<Float> listB01param = S7control.getinstance().readFloat32(B01input);
+                
+                List<Float> listB01param = S7control.getinstance().readFloat32(B01input);
+
+                List<String> B01button = Arrays.asList(config.getProperty("PlcB01.button").split(","));
+                List<Boolean> listB01button = S7control.getinstance().readBits(B01button);
+                for (Boolean boolean1 : listB01button) {
+                    listB01param.add((float) (boolean1 ? 1 : 0));
+                }
+                jsonObject.append("listB01param", listB01param);
+
+                //C01
+                List<String> C01input = Arrays.asList(config.getProperty("PlcC01.param").split(","));
+                List<Float> listC01param = S7control.getinstance().readFloat32(C01input);
+                List<String> C01button = Arrays.asList(config.getProperty("PlcC01.button").split(","));
+                List<Boolean> listC01button = S7control.getinstance().readBits(C01button);
+                for (Boolean boolean1 : listC01button) {
+                    listC01param.add((float) (boolean1 ? 1 : 0));
+                }
+                jsonObject.append("listC01param", listC01param);
+
+                //C02
+                List<String> C02input = Arrays.asList(config.getProperty("PlcC02.param").split(","));
+                List<Float> listC02param = S7control.getinstance().readFloat32(C02input);
+                List<String> C02button = Arrays.asList(config.getProperty("PlcC02.button").split(","));
+                List<Boolean> listC02button = S7control.getinstance().readBits(C02button);
+                for (Boolean boolean1 : listC02button) {
+                    listC02param.add((float) (boolean1 ? 1 : 0));
+                }
+                jsonObject.append("listC02param", listC02param);
+
+                //涓┖鍙�
+                List<String> Hollowinput = Arrays.asList(config.getProperty("PlcHollow.param").split(","));
+                List<Float> listHollowparam = S7control.getinstance().readFloat32(Hollowinput);
+                List<String> Hollowbutton = Arrays.asList(config.getProperty("PlcHollow.button").split(","));
+                List<Boolean> listHollowbutton = S7control.getinstance().readBits(Hollowbutton);
+                for (Boolean boolean1 : listHollowbutton) {
+                    listHollowparam.add((float) (boolean1 ? 1 : 0));
+                }
+                jsonObject.append("listHollowparam", listHollowparam);
+
+                //褰撳墠浣嶇疆
+                List<String> positioninput = Arrays.asList(config.getProperty("Plc.position").split(","));
+                List<Float> listpositionparam = S7control.getinstance().readFloat32(positioninput);
+                jsonObject.append("listpositionparam", listpositionparam);
+                // System.out.println(listpositionparam);
+                
+                // System.out.println(S7control.getinstance().readFloat32("DB10.1758"));
+                // System.out.println(new BigDecimal(S7control.getinstance().readFloat32("DB10.1758")).setScale(2, BigDecimal.ROUND_HALF_UP));
+                // System.out.println(S7control.getinstance().readFloat32("DB10.1440"));
+                // System.out.println(S7control.getinstance().readFloat64("DB10.1444"));
+
+                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AlbaniaServo");
+                if (sendwServer != null) {
+                    for (WebSocketServer webserver : sendwServer) {
+                        webserver.sendMessage(jsonObject.toString());
+
+                        if (webserver != null) {
+                            List<String> messages = webserver.getMessages();
+
+                            // System.out.println(messages.isEmpty());
+                            if (!messages.isEmpty()) {
+                                // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
+                                String lastMessage = messages.get(messages.size() - 1);
+                                // System.out.println("lastMessage锛�" + lastMessage);
+                                JSONArray messageArray = new JSONArray(lastMessage);
+
+                                // 娓呯┖娑堟伅鍒楄〃
+                                webserver.clearMessages();
+                            }
+                        }
+                    }
+                }
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+        }
+    }
+}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
index fa3faf1..1d60e2d 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
@@ -130,25 +130,6 @@
             short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
                     A01readstart, A02readstart, B01readstart, B02readstart
             );
-
-            // Short[] values1 = { 1, 2, 3 };
-            // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
-            // Short[] values2 = { 1, 2, 3 };
-            // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
-            // Short[] values3 = { 1, 2, 3 };
-            // List<Short> arraylist3 = new ArrayList<>(Arrays.asList(values3));
-            // Short[] values4 = { 1, 2, 3 };
-            // List<Short> arraylist4 = new ArrayList<>(Arrays.asList(values4));
-            // Short[] values5 = { 5 };
-            // List<Short> arraylist5 = new ArrayList<>(Arrays.asList(values5));
-            // Short[] values6 = { 6 };
-            // List<Short> arraylist6 = new ArrayList<>(Arrays.asList(values6));
-            // Short[] values7 = { 7 };
-            // List<Short> arraylist7 = new ArrayList<>(Arrays.asList(values7));
-            // Short[] values8 = { 8 };
-            // List<Short> arraylist8 = new ArrayList<>(Arrays.asList(values8));
-            // Boolean[] values9 = { false, false, true, true };
-            // List<Boolean> arraylist9 = new ArrayList<>(Arrays.asList(values9));
             short[] params2 = new short[arraylist9.size()];
             for (int i = 0; i < arraylist9.size(); i++) {
                 boolean value = arraylist9.get(i);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
index f663b3c..727b9cb 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -1,4 +1,5 @@
 package com.example.springboot.component;
+
 import cn.hutool.json.JSONObject;
 import java.util.ArrayList;
 import java.util.List;
@@ -31,12 +32,8 @@
     @Autowired
     private HomeService HomeService;
     private QueueMapper QueueMapper;
-    private GlassInfoMapper GlassInfoMapper;
-    private MeasureSettingMapper MeasureSettingMapper;
     private OutSliceServive outSliceServive;
-    private SpianMapper spianMapper;
-    private SpianService spianService;
-    
+
     // 鍑虹墖闃熷垪鏄惁鍏佽鍑虹墖
     public static Boolean isAllowQueue = true;
     public static Boolean isAllowReordering = true;
@@ -61,6 +58,9 @@
 
     // public static Map b=new HashMap<>();
     // b.put()
+    public double carstart = 200;
+    public double carend = 20000;
+
     @Override
     public void run() {
         while (this != null) {
@@ -68,22 +68,28 @@
             try {
                 Thread.sleep(1000);
                 // 娉ㄥ叆mapper
-                HomeService  = WebSocketServer.applicationContext.getBean(HomeService.class);
-                QueueMapper  = WebSocketServer.applicationContext.getBean(QueueMapper.class);
+                HomeService = WebSocketServer.applicationContext.getBean(HomeService.class);
+                QueueMapper = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                 homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
-                spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
-                spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
                 outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
                 storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
 
+                // 鑾峰彇鍏惰溅鐨勪綅缃�
+                if (S7control.getinstance().CheckConnected() == true) {
+                    double carposition = 0;
+                    float car = S7control.getinstance().readFloat32("DB10.1992");
+                    carposition = (-40 + (car / (carend - carstart) * 595));
+                    jsonObject.append("carposition", carposition);
+                }
                 // 绗煎瓙浣跨敤鎯呭喌
                 List<StorageCage> tableData = homeMapper.selectAlls();
                 jsonObject.append("tableData", tableData);
+
                 // 鏍肩悊鐗囩鏍煎瓙鐘舵��
-                List<StorageCage> cagelist1=storageCageService.SelectStorageCageByCage(1);
-                List<StorageCage> cagelist2=storageCageService.SelectStorageCageByCage(2);
-                List<StorageCage> cagelist3=storageCageService.SelectStorageCageByCage(3);
-                List<StorageCage> cagelist4=storageCageService.SelectStorageCageByCage(4);
+                List<StorageCage> cagelist1 = storageCageService.SelectStorageCageByCage(1);
+                List<StorageCage> cagelist2 = storageCageService.SelectStorageCageByCage(2);
+                List<StorageCage> cagelist3 = storageCageService.SelectStorageCageByCage(3);
+                List<StorageCage> cagelist4 = storageCageService.SelectStorageCageByCage(4);
                 jsonObject.append("cagelist1", cagelist1);
                 jsonObject.append("cagelist2", cagelist2);
                 jsonObject.append("cagelist3", cagelist3);
@@ -97,7 +103,6 @@
                 List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
                 jsonObject.append("alarmmg", alarmmg);
 
-                
                 // 鑾峰彇鍑虹墖闃熷垪淇℃伅
                 List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
                 jsonObject.append("listoutslice", listoutslice);
@@ -112,56 +117,57 @@
                 // 鏌ヨ褰撳墠閾濇淇℃伅
                 Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame();
                 jsonObject.append("CurrentFrame", CurrentFrame);
-              
-                //璇诲彇DB105鍖烘枃浠�
-                PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-      
-                String PlcRequest=plcmes.getPlcParameter("GaToMES").getValue();//璇锋眰
-                String MesSend=plcmes.getPlcParameter("MESToGaStatus").getValue();//鍙戦��
-                double width=Double.valueOf(plcmes.getPlcParameter("width").getValue());//瀹�
-                double height=Double.valueOf(plcmes.getPlcParameter("Height").getValue());//楂�
 
-                // String PlcRequest=S7control.getinstance().ReadWord("DB14.26", 1).get(0)+"";
-                // double width=Double.parseDouble(S7control.getinstance().ReadWord("DB14.28", 1).get(0)+"");
-                // double height=Double.parseDouble(S7control.getinstance().ReadWord("DB14.30", 1).get(0)+"");
-                // String MesSend=S7control.getinstance().ReadWord("DB14.170", 1).get(0)+"";
+                // 璇诲彇DB105鍖烘枃浠�
+                PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+                // if(plcmes.==null){
 
-                //鑾峰彇娴嬮噺鐨勯暱锛屽
-                 boolean istest = true;
+                // }
+                
+
+                
+                // 鑾峰彇娴嬮噺鐨勯暱锛屽
+                boolean istest = true;
                 // String PlcRequest = "1";
                 // String MesSend = "0";
-                // double width = 516;
-                // double height = 507;
-                
-                //鍖归厤
-                //System.err.println(PlcRequest+","+MesSend+","+width+","+height);
-                if ("0".equals(PlcRequest)&&istest) {
-                    S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 0);
-                }
-                if ("1".equals(PlcRequest)&&"0".equals(MesSend)) {
-                    boolean is=HomeService.Normal(width, height, "1");
-                    if (is&&istest) {
-                        // 娴嬮噺鎴愬姛
-                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+                // double width = 0;
+                // double height = 0;
 
-                    }else if(istest){
+                // 鍖归厤
+                // System.err.println(PlcRequest+","+MesSend+","+width+","+height);
+                String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// 璇锋眰
+                String MesSend = plcmes.getPlcParameter("MESToGaStatus").getValue();// 鍙戦��
+                double width = Double.valueOf(plcmes.getPlcParameter("width").getValue());// 瀹�
+                double height = Double.valueOf(plcmes.getPlcParameter("Height").getValue());// 楂�
+                if ("0".equals(PlcRequest) && istest) {
+                    S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 0);
+                }
+                if ("1".equals(PlcRequest) && "0".equals(MesSend)) {
+                    boolean is = HomeService.Normal(width, height, "1");
+                    if (is && istest) {
+                        // 娴嬮噺鎴愬姛
+                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
+                                (short) 1);
+
+                    } else if (istest) {
                         // 閲嶆柊娴嬮噺
-                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 4);
+                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
+                                (short) 4);
                     }
 
                 }
-                 //S7control.getinstance().WriteWord("DB14.170", (short)0);
-                Queue LastQueue= QueueMapper.selectLastQueue();
-                if(LastQueue==null){
-                    Queue nullQueue=new Queue();
+                // S7control.getinstance().WriteWord("DB14.170", (short)0);
+                Queue LastQueue = QueueMapper.selectLastQueue();
+                if (LastQueue == null) {
+                    Queue nullQueue = new Queue();
                     nullQueue.setglassId("");
                     nullQueue.setglassheight(0);
                     nullQueue.setglasswidth(0);
                     nullQueue.setglassheightmm(0);
                     nullQueue.setglasswidthmm(0);
                     jsonObject.append("LastQueue", nullQueue);
-                }else{
-                    if (LastQueue.getstate()<1) {
+                } else {
+                    if (LastQueue.getstate() < 1) {
                         LastQueue.setglasswidth(0);
                         LastQueue.setglassheight(0);
                     }
@@ -170,16 +176,15 @@
                 // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                 // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
 
-                
-                //鏌ヨ鐞嗙墖绗间俊鎭�
+                // 鏌ヨ鐞嗙墖绗间俊鎭�
                 List<StorageCage> StorageCageInfo = storageCageService.SelectStorageCageInfo();
                 jsonObject.append("StorageCageInfo", StorageCageInfo);
 
-                //鏌ヨ褰撳墠杩涚墖浠诲姟
+                // 鏌ヨ褰撳墠杩涚墖浠诲姟
                 List<StorageTask> StoragTaskeTaskFeed = storageCageService.SelectStorageTask(0);
                 jsonObject.append("StoragTaskeTaskFeed", StoragTaskeTaskFeed);
 
-                //鏌ヨ褰撳墠鍑虹墖浠诲姟
+                // 鏌ヨ褰撳墠鍑虹墖浠诲姟
                 List<StorageTask> StoragTaskeTaskOut = storageCageService.SelectStorageTask(1);
                 jsonObject.append("StoragTaskeTaskOut", StoragTaskeTaskOut);
 
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
index 8329678..e1120ea 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -14,6 +14,9 @@
 import java.util.Arrays;
 
 public class Plcsign extends Thread {
+
+  // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+  private Configuration config;
   String name = "";
   Integer count = 0;
 
@@ -71,8 +74,11 @@
       // System.out.println(PlcAddress);
 
 //      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
-       List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112);
-
+      //  List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112);
+       List<String> addressList21 = Arrays.asList(config.getProperty("PlcIO.State").split(","));
+       List<Boolean> plclist = S7control.getinstance().readBits(addressList21);
+       List<String> addressListName = Arrays.asList(config.getProperty("PlcIO.Name").split(","));
+      
 //       Boolean[] values = { true, true, true, true, true, false, true, false,
 //       true, false, true, false, true, false,
 //       true, false, true, false, true, false, true, false, true, false, true, false,
@@ -95,6 +101,7 @@
         }
         JSONObject jsonObject = new JSONObject();
         jsonObject.append("sig", Intlist);
+        jsonObject.append("addressListName", addressListName);
 //        WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
 //        if (sendwServer3 != null) {
 //          sendwServer3.sendMessage(jsonObject.toString());
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
index 9ad8e83..69e66f5 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -10,6 +10,7 @@
 import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
 import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
 import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
+import com.github.xingshuangs.iot.utils.FloatUtil;
 import com.google.common.primitives.Bytes;
 import org.apache.ibatis.jdbc.Null;
 
@@ -477,4 +478,45 @@
     public String readStrings(String addr) {
         return s7PLC.readString(addr);
     }
+
+    public float readFloat32(String addr) {
+        return s7PLC.readFloat32(addr);
+    }
+
+    public double readFloat64(String addr) {
+        return s7PLC.readFloat64(addr);
+    }
+    // public float[] readfloat32(List<String> addr) {
+    //     float[] result=new float[addr.size()];
+    //     for (int i=0;i<addr.size();i++) {
+    //         String address=addr.get(i);
+    //         result[i]=readFloat32(address);
+    //     }
+    //     return result;
+    // }
+
+    public List<Float> readFloat32(List<String> addr) {
+        List<Float> result=new ArrayList<>();
+        for (String string : addr) {
+            if(string.equals("DB10.2000")||string.equals("DB10.2008")){
+                result.add((float)s7PLC.readFloat64(string));
+            }else if (string.equals("DB10.224")||string.equals("DB10.226")||string.equals("DB10.228")||string.equals("DB10.230")) {
+                List<Short> word=ReadWord(string,1);
+                for (Short short1 : word) {
+                    result.add((float)short1);
+                }
+            }
+            else{
+                result.add(s7PLC.readFloat32(string));
+            }
+            
+        }
+        return result;
+    }
+
+    public void writeFloat32(String addr, float data) {
+      s7PLC.writeFloat32(addr,data);
+   }
+
+    
 }
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 c4f8480..9089c4a 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,13 +17,12 @@
         //
         System.out.println("鍚姩瀹屾垚");
 
-        new Plcalarm().start();
+        // new Plcalarm().start();
         // new PLCAutoMes().start();
-        
         //  new PlcHoldNew().start();
-
-        //  new Plchome().start();
-
+         new Plchome().start();
+        // new PlcAlbaniaServo().start();
+        // new Plcsign().start();
 
        
     }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
index 22af7d8..b2fa075 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -61,6 +61,39 @@
   @Autowired
   private JdbcConnections jdbcConnections;
 
+  // 鍐欏叆word
+  @GetMapping("/WriteWord")
+  public Result WriteWord(String address,float value)  {
+    System.err.println("鍐欏叆word"+address+"+"+value);
+    if(address.equals("DB10.224")||address.equals("DB10.226")||address.equals("DB10.228")||address.equals("DB10.230")){
+      
+      S7control.getinstance().WriteWord(address, (short)value);
+    }else{
+      S7control.getinstance().writeFloat32(address, value);
+    }
+    
+    Map<String, Object> map = new HashMap<>();
+    map.put("message", "200");
+    return Result.success(map);
+  }
+
+  // 鍐欏叆bit
+  @GetMapping("/WriteBit")
+  public Result WriteBit(String address,short value)  {
+    
+    boolean values;
+    if (value == 0) {
+      values=false;
+    }else{
+      values=true;
+    }
+    S7control.getinstance().WriteBit(address, values);
+    System.err.println("鍐欏叆bit"+address+"+"+values);
+    Map<String, Object> map = new HashMap<>();
+    map.put("message", "200");
+    return Result.success(map);
+  }
+
   // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鏉冮檺
   @GetMapping("/SelectPermissionByUserName")
   public Result SelectPermissionByUserName(String username) throws SQLException {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
index 4013e45..8b86aa7 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -246,7 +246,7 @@
   void updateStroageCageByCell(Integer cell, Integer num);
 
   // 璁$畻鏍煎瓙鍐呭墿浣欏搴�
-  @Update("update storage_cage set width=5000-ifnull(glasswidth,0,glasswidth+50)*number where cell=#{cell}")
+  @Update("update storage_cage set width=5000-if(glasswidth is null,0,glasswidth+50)*number where cell=#{cell}")
   void UpdateStroageCageWidthByCell(Integer cell);
 
   // 鏍规嵁浠诲姟绫诲瀷鑾峰彇浠诲姟
diff --git a/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json b/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
index ab65b19..eed5688 100644
--- a/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
+++ b/springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
@@ -22,7 +22,7 @@
           "addressIndex":"4",
           "addressLenght":"2",
           "ratio":"1",
-          "unit":"m/min"       
+          "unit":"m/min"
        },
        {
           "codeId": "IDStatus3",
diff --git a/springboot-vue3/src/main/resources/config.properties b/springboot-vue3/src/main/resources/config.properties
index c8bb606..614d072 100644
--- a/springboot-vue3/src/main/resources/config.properties
+++ b/springboot-vue3/src/main/resources/config.properties
@@ -223,19 +223,42 @@
 #浠诲姟淇℃伅2
 PlcInteractionState.MEStaskinformation2=DB106.52,DB106.58,DB103.128-141,DB103.142-155,DB103.156-169,DB103.184-197,DB103.212-225
 
+#IO鐘舵��
+PlcIO.State=DB10.2.1,DB10.2.2,DB10.2.5,DB10.10.6,DB10.11.1,DB10.11.2,DB10.11.3,DB10.11.4,DB10.11.5,DB10.11.6,DB10.12.1,DB10.12.3,DB10.10.0,DB10.10.2,DB10.10.3,DB10.10.5,DB10.26.6,DB10.30.4,DB10.33.0,DB10.30.5,DB10.33.1,DB10.30.0,DB10.30.1,DB10.30.2,DB10.30.3,DB10.32.4,DB10.32.5,DB10.32.6,DB10.32.7,DB10.32.0,DB10.32.1,DB10.32.2,DB10.32.3,DB10.27.7,DB10.24.6,DB10.38.4,DB10.41.0,DB10.38.5,DB10.41.1,DB10.35.7,DB10.38.0,DB10.38.1,DB10.38.2,DB10.38.3,DB10.40.4,DB10.40.5,DB10.40.6,DB10.40.7,DB10.40.0,DB10.40.1,DB10.40.2,DB10.40.3,DB10.0.0,DB10.0.1,DB10.0.5,DB10.0.2,DB10.0.7,DB10.0.3,DB10.28.0,DB10.36.0,DB10.1.0,DB10.18.2,DB10.18.4,DB10.19.7,DB10.18.3,DB10.18.5,DB10.20.0,DB10.18.6,DB10.19.5,DB10.19.6
+PLCIO.Name=A01Sr.Low-E,A01Sr.dec,A01Sr.Pos,A02Sr.YZero,A02Sr.YH1,A02Sr.YH2,A02Sr.YH3,A02Sr.YH4,A02Sr.LimitTop,A02Sr.LimiBottom,A02Sr.Check,A02Sr.YDec,A02Sr.Xin,A02Sr.XCheck,A02Sr.XDec,A02Sr.XPos,C01Sr.Zero,C01YV1.Bas1,C01YV1.Work1,C01.YV1.Bas2,C01.YV1.Work2,C01.YV2.Bas1,C01.YV2.Bas2,C01.YV2.Bas3,C01.YV2.Bas4,C01.YV2.Work1,C01.YV2.Work2,C01.YV2.Work3,C01.YV2.Work4,C01.YV.Blow1,C01.YV.Blow2,C01.YV.Blow3,C01.YV.Blow4,C01.SR.Limit1,C02.Sr.Zero,C02.YV1.Bas1,C02.YV1.Work1,C02.YV1.Bas2,C02.YV1.Work2,C02.Sr.limit1,C02.YV2.Bas1,C02.YV2.Bas2,C02.YV2.Bas3,C02.YV2.Bas4,C02.YV2.Work1,C02.YV2.Work2,C02.YV2.Work3,C02.YV2.Work4,C02.YV.Blow1,C02.YV.Blow2,C02.YV.Blow3,C02.YV.Blow4,bStart,bStop,bEstop,bReset,bAuto/Manual,bPause,C01.Sr.Limit2,C02.Sr.Limit2,A01.FootControl,B01.Sr.DecLeft,B01.Sr.PosLeft,B01.Sr.SafetyLeft,B01.Sr.DecRight,B01.Sr.PosRight,B01.Sr.SafetyRight,B01.Sr.TurnZero,B01.Sr.TurnLimitTop,B01.Sr.TurnLimitBottom
 
+#A01鍙傛暟
+PlcA01.param=DB10.1664,DB10.1668,DB10.1672,DB10.1676,DB10.1680
+#A01鎸夐挳
+PlcA01.button=DB10.42.2,DB10.44.0
 
+#A02鍙傛暟
+PlcA02.param=DB10.248,DB10.252,DB10.256,DB10.260,DB10.264,DB10.268,DB10.448,DB10.1744,DB10.1748,DB10.1752,DB10.1756,DB10.1760,DB10.1764,DB10.1768,DB10.1772
+#A02鎸夐挳
+PlcA02.button=DB10.60.2,DB10.68.0,DB10.68.1,DB10.70.0,DB10.70.1
 
+#A02鍙傛暟
+PlcB01.param=DB10.448,DB10.452,DB10.456,DB10.460,DB10.1684,DB10.1688,DB10.1692,DB10.1696,DB10.1700,DB10.1776,DB10.1780,DB10.1792,DB10.1796,DB10.1800,DB10.1632,DB10.1636,DB10.1640,DB10.1644
+#A02鎸夐挳
+PlcB01.button=DB10.80.0,DB10.88.0,DB10.88.1,DB10.78.2,DB10.86.0,DB10.86.1,DB10.2050.4,DB10.2050.5,DB10.2050.6,DB10.2050.7
 
+#C01鍙傛暟
+PlcC01.param=DB10.1704,DB10.1708,DB10.1712,DB10.1716,DB10.1720,DB10.1808,DB10.1812,DB10.192,DB10.196,DB10.200,DB10.208,DB10.212,DB10.216,DB10.232,DB10.236,DB10.240,DB10.224,DB10.226,DB10.228
+#C01鎸夐挳
+PlcC01.button=DB10.98.0,DB10.106.0,DB10.96.2,DB10.104.0,DB10.2050.0,DB10.2050.1,DB10.2050.2,DB10.2048.0,DB10.2048.1,DB10.2048.2
 
+#C02鍙傛暟
+PlcC02.param=DB10.1724,DB10.1728,DB10.1732,DB10.1736,DB10.1740,DB10.1824,DB10.1828,DB10.204,DB10.220,DB10.244,DB10.230
+#C03鎸夐挳
+PlcC02.button=DB10.116.0,DB10.124.0,DB10.114.2,DB10.122.0,DB10.2050.3,DB10.2048.3
 
+#涓┖鍙板弬鏁�
+PlcHollow.param=DB10.2052.0,DB10.2056.0,DB10.1648.0,DB10.1652.0
+#涓┖鍙版寜閽�
+PlcHollow.button=DB10.2048.6,DB10.2048.7,DB10.2048.4,DB10.2048.5
 
-
-
-
-
-
-
+#褰撳墠浣嶇疆鏄剧ず
+Plc.position=DB10.1988,DB10.1992,DB10.1996,DB10.2000,DB10.2008,DB10.2016
 
 
 

--
Gitblit v1.8.0