From b092806a662b99310cdb050292de2721ba06acd9 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 19 十一月 2024 14:43:18 +0800
Subject: [PATCH] 增加测量台直通模式,增加手动参数界面的JSON文件

---
 Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue                                 |  960 ++++++++++++++++++++++++++++++++++++++++++--------
 springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java         |   44 ++
 springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java       |    2 
 Albania_Mes-ui/src/lang/locales/en-US.json                                           |    2 
 Albania_Mes-ui/src/views/home/index.vue                                              |   14 
 springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java       |    4 
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java          |   13 
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java          |    4 
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java  |   23 +
 springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java |   59 +-
 Albania_Mes-ui/src/api/home.js                                                       |    8 
 Albania_Mes-ui/src/lang/locales/zh-CN.json                                           |    4 
 springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java     |    2 
 13 files changed, 942 insertions(+), 197 deletions(-)

diff --git a/Albania_Mes-ui/src/api/home.js b/Albania_Mes-ui/src/api/home.js
index 864031a..e448510 100644
--- a/Albania_Mes-ui/src/api/home.js
+++ b/Albania_Mes-ui/src/api/home.js
@@ -443,4 +443,12 @@
         data
         
     })
+}
+//鎵嬪姩鐣岄潰
+export function writeValue(address,value,type) {
+    return request({
+        url: '/home/writeValue?address='+address+'&value='+value+'&type='+type,
+        method: 'get',
+        data:""
+    })
 }
\ 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 ff66702..16e88e8 100644
--- a/Albania_Mes-ui/src/lang/locales/en-US.json
+++ b/Albania_Mes-ui/src/lang/locales/en-US.json
@@ -15,7 +15,7 @@
   "All Out":"All Out",
   "Operation failed":"Operation canceled",
   "Flowcard":"Flowcard",
-  "Mateid":"Mateid",
+  "Mateid":"Matching",
   "Glasstype":"Glasstype",
   "Mode Change":"Mode Change",
   "Start Task":"Start Task",
diff --git a/Albania_Mes-ui/src/lang/locales/zh-CN.json b/Albania_Mes-ui/src/lang/locales/zh-CN.json
index 5277603..1abad0d 100644
--- a/Albania_Mes-ui/src/lang/locales/zh-CN.json
+++ b/Albania_Mes-ui/src/lang/locales/zh-CN.json
@@ -55,8 +55,8 @@
   "Save":"淇濆瓨",
   "Select file":"閫夋嫨鏂囦欢",
 
-  "ip":"192.168.10.2",
-  "ip2":"localhost",
+  "ip2":"192.168.10.2",
+  "ip":"localhost",
   "systemTitle": "鐧诲綍绯荤粺",
   "usernamePlaceholder": "璇疯緭鍏ョ敤鎴峰悕",
   "passwordPlaceholder": "璇疯緭鍏ュ瘑鐮�",
diff --git a/Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue b/Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue
index 2bfad3f..9ac6c32 100644
--- a/Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue
+++ b/Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue
@@ -9,36 +9,8 @@
         $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-row :gutter="10">
       <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
         <div>{{ dataGroup[0] }}</div>
         <el-card class="json-block" style="width:670px;margin-bottom: 10px;">
@@ -85,18 +57,744 @@
                 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);">{{ language=='en-US'?item.button.USname:item.button.CNname}}</el-button>
-            </div>
+            </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> -->
+    </el-row> -->
+    <div style="display: flex;">
+      <div class="demo-input-suffix">
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>A01</span>
+          </div>
+          <div style="display: flex;">
+            <div>
+              <div>
+                A01杈撻�侀珮閫�<el-input style="width: 30%;" v-model="plcSigns[0].value" @focus="refresh()" @blur="writeValue(plcSigns[0])"
+                  @keyup.enter.native="writeValue(plcSigns[0])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                A01杈撻�佷綆閫�<el-input style="width: 30%;" v-model="plcSigns[1].value" @focus="refresh()" @blur="writeValue(plcSigns[1])"
+                  @keyup.enter.native="writeValue(plcSigns[1])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                A01杈撻�佹墜鍔�<el-input style="width: 30%;" v-model="plcSigns[2].value" @focus="refresh()" @blur="writeValue(plcSigns[2])"
+                  @keyup.enter.native="writeValue(plcSigns[2])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                A01鏈�澶ч�熷害<el-input style="width: 30%;" v-model="plcSigns[3].value" @focus="refresh()" @blur="writeValue(plcSigns[3])"
+                  @keyup.enter.native="writeValue(plcSigns[3])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+            </div>
+            <div>
+              <div>
+                涓婄墖杈撻�佸惎鍔ㄥ欢杩�<el-input type="text" style="width: 30%;" v-model="plcSigns[4].value"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`" @focus="refresh()" @blur="writeValue(plcSigns[4])"
+                  @keyup.enter.native="writeValue(plcSigns[4])"></el-input>ms
+              </div>
+              <div>
+                LOW-E妫�娴嬩笂鍗囨护娉�<el-input style="width: 30%;" v-model="plcSigns[5].value"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`" @focus="refresh()" @blur="writeValue(plcSigns[5])"
+                  @keyup.enter.native="writeValue(plcSigns[5])"></el-input>ms
+              </div>
+              <div>
+                鍑哄彛鍑忛�熶俊鍙蜂笂鍗囨护娉�<el-input style="width: 30%;" v-model="plcSigns[6].value"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`" @focus="refresh()" @blur="writeValue(plcSigns[6])"
+                  @keyup.enter.native="writeValue(plcSigns[6])"></el-input>ms
+              </div>
+              <div>
+                鍑哄彛鍒颁綅淇″彿涓婂崌婊ゆ尝<el-input style="width: 30%;" v-model="plcSigns[7].value"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`" @focus="refresh()" @blur="writeValue(plcSigns[7])"
+                  @keyup.enter.native="writeValue(plcSigns[7])"></el-input>ms
+              </div>
+              <div>
+                鍑哄彛鍒颁綅淇″彿涓嬮檷婊ゆ尝<el-input style="width: 30%;" v-model="plcSigns[8].value"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`" @focus="refresh()" @blur="writeValue(plcSigns[8])"
+                  @keyup.enter.native="writeValue(plcSigns[8])"></el-input>ms
+              </div>
+              <div>
+                鍑哄彛杈撻�佽秴鏃舵椂闂�<el-input style="width: 30%;" v-model="plcSigns[9].value"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`" @focus="refresh()" @blur="writeValue(plcSigns[9])"
+                  @keyup.enter.native="writeValue(plcSigns[9])"></el-input>ms
+              </div>
+              <div>
+                鍑虹墖杈撻�佸惎鍔ㄥ欢杩�<el-input style="width: 30%;" v-model="plcSigns[10].value"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`" @focus="refresh()" @blur="writeValue(plcSigns[10])"
+                  @keyup.enter.native="writeValue(plcSigns[10])"></el-input>ms
+              </div>
+            </div>
+          </div>
+        </el-card>
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>A02</span>
+            <span style="float: right; padding: 3px 0"> Y杞村綋鍓嶄綅缃�<el-input style="width: 30%;" v-model="plcSigns[11].value"
+                oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                @keyup.enter.native="writeValue(plcSigns[11])" @focus="refresh()" @blur="writeValue(plcSigns[11])"></el-input>mm</span>
+            <!-- <el-button style="float: right; padding: 3px 0" type="text">鎿嶄綔鎸夐挳</el-button> -->
+          </div>
+          <div style="display: flex;">
+            <div>
+              <div>
+                X杞磋緭閫侀珮閫�<el-input style="width: 30%;" v-model="plcSigns[12].value"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                  @keyup.enter.native="writeValue(plcSigns[12])" @focus="refresh()" @blur="writeValue(plcSigns[12])"></el-input>m/min
+              </div>
+              <div>
+                X杞磋緭閫佷綆閫�<el-input style="width: 30%;" v-model="plcSigns[13].value"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                  @keyup.enter.native="writeValue(plcSigns[13])" @focus="refresh()" @blur="writeValue(plcSigns[13])"></el-input>m/min
+              </div>
+              <div>
+                X杞磋緭閫佹墜鍔�<el-input style="width: 30%;" v-model="plcSigns[14].value"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                  @keyup.enter.native="writeValue(plcSigns[14])" @focus="refresh()" @blur="writeValue(plcSigns[14])"></el-input>m/min
+              </div>
+              <div>
+                X杞村洖閫�閫熷害<el-input style="width: 30%;" v-model="plcSigns[15].value"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                  @keyup.enter.native="writeValue(plcSigns[15])" @focus="refresh()" @blur="writeValue(plcSigns[15])"></el-input>m/min
+              </div>
+              <div>
+                Y杞磋緭閫侀珮閫�<el-input style="width: 30%;" v-model="plcSigns[16].value"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                  @keyup.enter.native="writeValue(plcSigns[16])" @focus="refresh()" @blur="writeValue(plcSigns[16])"></el-input>m/min
+              </div>
+              <div>
+                Y杞磋緭閫佷綆閫�<el-input style="width: 30%;" v-model="plcSigns[17].value"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                  @keyup.enter.native="writeValue(plcSigns[17])" @focus="refresh()" @blur="writeValue(plcSigns[17])"></el-input>m/min
+              </div>
+              <div>
+                Y杞磋緭閫佹墜鍔�<el-input style="width: 30%;" v-model="plcSigns[18].value"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                  @keyup.enter.native="writeValue(plcSigns[18])" @focus="refresh()" @blur="writeValue(plcSigns[18])"></el-input>m/min
+              </div>
+              <div>
+                Y杞村洖閫�閫熷害<el-input style="width: 30%;" v-model="plcSigns[19].value"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"
+                  @keyup.enter.native="writeValue(plcSigns[19])" @focus="refresh()" @blur="writeValue(plcSigns[19])"></el-input>m/min
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[20])">Y杞村畾浣嶈缃�1</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[21].value" @focus="refresh()" @blur="writeValue(plcSigns[21])"
+                  @keyup.enter.native="writeValue(plcSigns[21])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[22])">Y杞村畾浣嶈缃�2</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[23].value" @focus="refresh()" @blur="writeValue(plcSigns[23])"
+                  @keyup.enter.native="writeValue(plcSigns[23])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+            </div>
+            <div>
+              <div>
+                鍏ョ墖杈撻�佸惎鍔ㄥ欢杩�<el-input type="text" style="width: 30%;" v-model="plcSigns[24].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[24])" @keyup.enter.native="writeValue(plcSigns[24])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍏ョ墖淇″彿涓婂崌娌挎护娉�<el-input style="width: 30%;" v-model="plcSigns[25].value" @focus="refresh()" @blur="writeValue(plcSigns[25])"
+                  @keyup.enter.native="writeValue(plcSigns[25])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍏ョ墖淇″彿涓嬮檷娌挎护娉�<el-input style="width: 30%;" v-model="plcSigns[26].value" @focus="refresh()" @blur="writeValue(plcSigns[26])"
+                  @keyup.enter.native="writeValue(plcSigns[26])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                Y杞寸矖瀹氫綅涓婂崌娌挎护娉�<el-input style="width: 30%;" v-model="plcSigns[27].value" @focus="refresh()" @blur="writeValue(plcSigns[27])"
+                  @keyup.enter.native="writeValue(plcSigns[27])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                X杞存祴閲忔�婚暱搴�<el-input style="width: 30%;" v-model="plcSigns[28].value" @focus="refresh()" @blur="writeValue(plcSigns[28])"
+                  @keyup.enter.native="writeValue(plcSigns[28])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>mm
+              </div>
+              <div>
+                Y杞存祴閲忔�婚暱搴�<el-input style="width: 30%;" v-model="plcSigns[29].value" @focus="refresh()" @blur="writeValue(plcSigns[29])"
+                  @keyup.enter.native="writeValue(plcSigns[29])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>mm
+              </div>
+              <div>
+                鍑哄彛杈撻�佽秴鏃舵椂闂�<el-input style="width: 30%;" v-model="plcSigns[30].value" @focus="refresh()" @blur="writeValue(plcSigns[30])"
+                  @keyup.enter.native="writeValue(plcSigns[30])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍑虹墖杈撻�佸惎鍔ㄥ欢鏃�<el-input style="width: 30%;" v-model="plcSigns[31].value" @focus="refresh()" @blur="writeValue(plcSigns[31])"
+                  @keyup.enter.native="writeValue(plcSigns[31])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[32])">Y杞村畾浣嶈缃�3</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[33].value" @focus="refresh()" @blur="writeValue(plcSigns[33])"
+                  @keyup.enter.native="writeValue(plcSigns[33])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[34])">Y杞村畾浣嶈缃�4</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[35].value" @focus="refresh()" @blur="writeValue(plcSigns[35])"
+                @keyup.enter.native="writeValue(plcSigns[35])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+            </div>
+          </div>
+        </el-card>
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>绯荤粺鍙傛暟</span>
+          </div>
+          <div style="display: flex;">
+            <div>
+              <div>
+                娴嬮噺鍙版爣璇嗗彿<el-input style="width: 30%;" v-model="plcSigns[36].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[36])"
+                  @keyup.enter.native="writeValue(plcSigns[36])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>
+              </div>
+              <div>
+                1#鍑哄彛鏍囪瘑鍙�<el-input style="width: 30%;" v-model="plcSigns[37].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[37])"
+                  @keyup.enter.native="writeValue(plcSigns[37])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>
+              </div>
+            </div>
+            <div>
+              <div>
+                鐗囧彴鏈�澶х幓鐠冩暟<el-input style="width: 30%;" v-model="plcSigns[38].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[38])"
+                  @keyup.enter.native="writeValue(plcSigns[38])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>
+              </div>
+              <div>
+                2#鍑哄彛鏍囪瘑鍙�<el-input style="width: 30%;" v-model="plcSigns[39].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[39])"
+                  @keyup.enter.native="writeValue(plcSigns[39])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>
+              </div>
+            </div>
+          </div>
+        </el-card>
+      </div>
+      <div class="demo-input-suffix">
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>B01</span>
+          </div>
+          <div style="display: flex;">
+            <div>
+              <div>
+                B01杈撻�侀珮閫�<el-input style="width: 30%;" v-model="plcSigns[40].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[40])"
+                  @keyup.enter.native="writeValue(plcSigns[40])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                b01杈撻�佷綆閫�<el-input style="width: 30%;" v-model="plcSigns[41].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[41])"
+                  @keyup.enter.native="writeValue(plcSigns[41])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                b01杈撻�佹墜鍔�<el-input style="width: 30%;" v-model="plcSigns[42].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[42])"
+                  @keyup.enter.native="writeValue(plcSigns[42])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                B01鏈�澶ч�熷害<el-input style="width: 30%;" v-model="plcSigns[43].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[43])"
+                  @keyup.enter.native="writeValue(plcSigns[43])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+            </div>
+            <div>
+              <div>
+                B01琛岃蛋楂橀��<el-input type="text" style="width: 30%;" v-model="plcSigns[44].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[44])"
+                  @keyup.enter.native="writeValue(plcSigns[44])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>ms
+              </div>
+              <div>
+                B01琛岃蛋浣庨��<el-input style="width: 30%;" v-model="plcSigns[45].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[45])"
+                  @keyup.enter.native="writeValue(plcSigns[45])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>ms
+              </div>
+              <div>
+                B01琛岃蛋鍔犻�熷害<el-input style="width: 30%;" v-model="plcSigns[46].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[46])"
+                  @keyup.enter.native="writeValue(plcSigns[46])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>ms
+              </div>
+              <div>
+                B01琛岃蛋鍑忛�熷害<el-input style="width: 30%;" v-model="plcSigns[47].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[47])"
+                  @keyup.enter.native="writeValue(plcSigns[47])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>ms
+              </div>
+              <div>
+                B01琛岃蛋鍔犲姞閫�<el-input style="width: 30%;" v-model="plcSigns[48].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[48])"
+                  @keyup.enter.native="writeValue(plcSigns[48])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>ms
+              </div>
+            </div>
+            <div>
+              <div>
+                B01缈昏浆鑷姩<el-input type="text" style="width: 30%;" v-model="plcSigns[49].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[49])"
+                  @keyup.enter.native="writeValue(plcSigns[49])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>*/s
+              </div>
+              <div>
+                B01缈昏浆鎵嬪姩<el-input style="width: 30%;" v-model="plcSigns[50].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[50])"
+                  @keyup.enter.native="writeValue(plcSigns[50])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>*/s
+              </div>
+              <div>
+                楂樹綆閫熻窛绂荤晫闄�<el-input style="width: 30%;" v-model="plcSigns[51].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[51])"
+                  @keyup.enter.native="writeValue(plcSigns[51])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+            </div>
+          </div>
+          <div style="display: flex;">
+            <div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[52])">1#绗煎瓙瑙掑害</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[53].value" @focus="refresh()" @blur="writeValue(plcSigns[53])"
+                  @keyup.enter.native="writeValue(plcSigns[53])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[54])">2#绗煎瓙瑙掑害</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[55].value" @focus="refresh()" @blur="writeValue(plcSigns[55])"
+                  @keyup.enter.native="writeValue(plcSigns[55])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[56])">3#绗煎瓙瑙掑害</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[57].value" @focus="refresh()" @blur="writeValue(plcSigns[57])"
+                  @keyup.enter.native="writeValue(plcSigns[57])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[58])">4#绗煎瓙瑙掑害</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[59].value" @focus="refresh()" @blur="writeValue(plcSigns[59])"
+                  @keyup.enter.native="writeValue(plcSigns[59])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[60])">娴嬮噺鍙拌搴�</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[61].value" @focus="refresh()" @blur="writeValue(plcSigns[61])"
+                  @keyup.enter.native="writeValue(plcSigns[61])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[62])">1#鍑哄彛瑙掑害</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[63].value" @focus="refresh()" @blur="writeValue(plcSigns[63])"
+                  @keyup.enter.native="writeValue(plcSigns[63])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[64])">2#鍑哄彛瑙掑害</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[65].value" @focus="refresh()" @blur="writeValue(plcSigns[65])"
+                  @keyup.enter.native="writeValue(plcSigns[65])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                鍏ョ墖杈撻�佸惎鍔ㄥ欢杩�
+                <el-input style="width: 30%;" v-model="plcSigns[66].value" @focus="refresh()" @blur="writeValue(plcSigns[66])"
+                  @keyup.enter.native="writeValue(plcSigns[66])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍑虹墖杈撻�佸惎鍔ㄥ欢杩�
+                <el-input style="width: 30%;" v-model="plcSigns[67].value" @focus="refresh()" @blur="writeValue(plcSigns[67])"
+                  @keyup.enter.native="writeValue(plcSigns[67])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍏夌數婊ゆ尝寤舵椂
+                <el-input style="width: 30%;" v-model="plcSigns[68].value" @focus="refresh()" @blur="writeValue(plcSigns[68])"
+                  @keyup.enter.native="writeValue(plcSigns[68])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+            </div>
+            <div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[69])">1#绗煎瓙璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[70].value" @focus="refresh()" @blur="writeValue(plcSigns[70])"
+                  @keyup.enter.native="writeValue(plcSigns[70])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[71])">2#绗煎瓙璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[72].value" @focus="refresh()" @blur="writeValue(plcSigns[72])"
+                  @keyup.enter.native="writeValue(plcSigns[72])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[73])">3#绗煎瓙璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[74].value" @focus="refresh()" @blur="writeValue(plcSigns[74])"
+                  @keyup.enter.native="writeValue(plcSigns[74])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[75])">4#绗煎瓙璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[76].value" @focus="refresh()" @blur="writeValue(plcSigns[76])"
+                  @keyup.enter.native="writeValue(plcSigns[76])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[77])">娴嬮噺鍙拌窛绂�</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[78].value" @focus="refresh()" @blur="writeValue(plcSigns[78])"
+                  @keyup.enter.native="writeValue(plcSigns[78])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[79])">1#鍑哄彛璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[80].value" @focus="refresh()" @blur="writeValue(plcSigns[80])"
+                  @keyup.enter.native="writeValue(plcSigns[80])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[81])">2#鍑哄彛璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[82].value" @focus="refresh()" @blur="writeValue(plcSigns[82])"
+                  @keyup.enter.native="writeValue(plcSigns[82])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                鍏ョ墖杈撻�佽秴鏃舵椂闂�
+                <el-input style="width: 30%;" v-model="plcSigns[83].value" @focus="refresh()" @blur="writeValue(plcSigns[83])"
+                  @keyup.enter.native="writeValue(plcSigns[83])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍑虹墖杈撻�佽秴鏃舵椂闂�
+                <el-input style="width: 30%;" v-model="plcSigns[84].value" @focus="refresh()" @blur="writeValue(plcSigns[84])"
+                  @keyup.enter.native="writeValue(plcSigns[84])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+            </div>
+            <div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[85])">杩滆窛绂昏搴�</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[86].value" @focus="refresh()" @blur="writeValue(plcSigns[86])"
+                  @keyup.enter.native="writeValue(plcSigns[86])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[87])">杩戣窛绂昏搴�</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[88].value" @focus="refresh()" @blur="writeValue(plcSigns[88])"
+                  @keyup.enter.native="writeValue(plcSigns[88])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>掳
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[89])">澶ц溅鍘熺偣璁惧畾</el-button>
+                <el-button type="primary" @click="writeValue(plcSigns[90])">娌规车鑷姩缁存姢</el-button>
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[91])">缈昏浆鍘熺偣璁惧畾</el-button>
+              </div>
+              <div>
+                娌规车缁存姢鍛ㄦ湡
+                <el-input style="width: 30%;" v-model="plcSigns[92].value" @focus="refresh()" @blur="writeValue(plcSigns[92])"
+                  @keyup.enter.native="writeValue(plcSigns[92])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>澶�
+              </div>
+              <div>
+                娌规车寮�鍚椂闀�
+                <el-input style="width: 30%;" v-model="plcSigns[93].value" @focus="refresh()" @blur="writeValue(plcSigns[93])"
+                  @keyup.enter.native="writeValue(plcSigns[93])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>澶�
+              </div>
+              <div>
+                鏈�澶у彇鐗囨牸瀛�
+                <el-input style="width: 30%;" v-model="plcSigns[94].value" @focus="refresh()" @blur="writeValue(plcSigns[94])"
+                  @keyup.enter.native="writeValue(plcSigns[94])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>鏍�
+              </div>
+              <div>
+                鏈�灏忓彇鐗囨牸瀛�
+                <el-input style="width: 30%;" v-model="plcSigns[95].value" @focus="refresh()" @blur="writeValue(plcSigns[95])"
+                  @keyup.enter.native="writeValue(plcSigns[95])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>鏍�
+              </div>
+            </div>
+          </div>
+        </el-card>
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>绗煎瓙鍙傛暟</span>
+          </div>
+          <div style="display: flex;">
+            <div>
+              <div>
+                1#绗煎瓙鏍呮牸鏁�<el-input style="width: 30%;" v-model="plcSigns[96].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[96])"
+                  @keyup.enter.native="writeValue(plcSigns[96])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>鏍�
+              </div>
+              <div>
+                1#绗煎瓙闂磋窛<el-input style="width: 30%;" v-model="plcSigns[97].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[97])"
+                  @keyup.enter.native="writeValue(plcSigns[97])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>mm
+              </div>
+              <div>
+                2#绗煎瓙鏍呮牸鏁�<el-input style="width: 30%;" v-model="plcSigns[98].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[98])"
+                  @keyup.enter.native="writeValue(plcSigns[98])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>鏍�
+              </div>
+              <div>
+                2#绗煎瓙闂磋窛<el-input style="width: 30%;" v-model="plcSigns[99].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[99])"
+                  @keyup.enter.native="writeValue(plcSigns[99])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>mm
+              </div>
+            </div>
+            <div>
+              <div>
+                3#绗煎瓙鏍呮牸鏁�<el-input style="width: 30%;" v-model="plcSigns[100].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[100])"
+                  @keyup.enter.native="writeValue(plcSigns[100])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>鏍�
+              </div>
+              <div>
+                3#绗煎瓙闂磋窛<el-input style="width: 30%;" v-model="plcSigns[101].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[101])"
+                  @keyup.enter.native="writeValue(plcSigns[101])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>mm
+              </div>
+              <div>
+                4#绗煎瓙鏍呮牸鏁�<el-input style="width: 30%;" v-model="plcSigns[102].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[102])"
+                  @keyup.enter.native="writeValue(plcSigns[102])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>鏍�
+              </div>
+              <div>
+                4#绗煎瓙闂磋窛<el-input style="width: 30%;" v-model="plcSigns[103].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[103])"
+                  @keyup.enter.native="writeValue(plcSigns[103])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>mm
+              </div>
+              <div>
+                绗煎瓙鏁伴噺<el-input style="width: 30%;" v-model="plcSigns[104].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[104])"
+                  @keyup.enter.native="writeValue(plcSigns[104])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>涓�
+              </div>
+            </div>
+          </div>
+        </el-card>
+      </div>
+      <div class="demo-input-suffix">
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>C01</span>
+          </div>
+          <div style="display: flex;">
+            <div>
+              <div>
+                C01杈撻�侀珮閫�<el-input style="width: 30%;" v-model="plcSigns[105].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[105])"
+                  @keyup.enter.native="writeValue(plcSigns[105])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                C01杈撻�佷綆閫�<el-input style="width: 30%;" v-model="plcSigns[106].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[106])"
+                  @keyup.enter.native="writeValue(plcSigns[106])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                C01杈撻�佹墜鍔�<el-input style="width: 30%;" v-model="plcSigns[107].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[107])"
+                  @keyup.enter.native="writeValue(plcSigns[107])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                C01鏈�澶ч�熷害<el-input style="width: 30%;" v-model="plcSigns[108].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[108])"
+                  @keyup.enter.native="writeValue(plcSigns[108])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[109])">1#绗煎瓙璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[109].value" @focus="refresh()" @blur="writeValue(plcSigns[109])"
+                  @keyup.enter.native="writeValue(plcSigns[109])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[109])">2#绗煎瓙璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[1].value" @focus="refresh()" @blur="writeValue(plcSigns[18])"
+                  @keyup.enter.native="writeValue(plcSigns[104])"                  
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                鍏ョ墖杈撻�佸惎鍔ㄥ欢鏃�<el-input style="width: 30%;" v-model="plcSigns[1].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[110])"
+                  @keyup.enter.native="writeValue(plcSigns[110])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍑虹墖杈撻�佸惎鍔ㄥ欢鏃�<el-input style="width: 30%;" v-model="plcSigns[1].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[111])"
+                  @keyup.enter.native="writeValue(plcSigns[111])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+            </div>
+            <div>
+              <div>
+                C01琛岃蛋楂橀��<el-input type="text" style="width: 30%;" v-model="plcSigns[112].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[112])"
+                  @keyup.enter.native="writeValue(plcSigns[112])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>ms
+              </div>
+              <div>
+                C01琛岃蛋鎵嬪姩<el-input style="width: 30%;" v-model="plcSigns[113].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[113])"
+                  @keyup.enter.native="writeValue(plcSigns[113])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>ms
+              </div>
+              <div>
+                鏈�澶у彇鐗囨牸瀛�<el-input style="width: 30%;" v-model="plcSigns[114].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[114])"
+                  @keyup.enter.native="writeValue(plcSigns[114])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鏈�灏忓彇鐗囨牸瀛�<el-input style="width: 30%;" v-model="plcSigns[115].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[115])"
+                  @keyup.enter.native="writeValue(plcSigns[115])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[116])" >3#绗煎瓙璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[117].value" @focus="refresh()" @blur="writeValue(plcSigns[117])"
+                  @keyup.enter.native="writeValue(plcSigns[117])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                鍏ョ墖杈撻�佽秴鏃舵椂闂�<el-input style="width: 30%;" v-model="plcSigns[118].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[118])"
+                  @keyup.enter.native="writeValue(plcSigns[118])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍑虹墖杈撻�佽秴鏃舵椂闂�<el-input style="width: 30%;" v-model="plcSigns[119].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[119])"
+                  @keyup.enter.native="writeValue(plcSigns[119])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+            </div>
+          </div>
+        </el-card>
+        <el-card class="box-card">
+          <div slot="header" class="clearfix">
+            <span>C02</span>
+          </div>
+          <div style="display: flex;">
+            <div>
+              <div>
+                C02杈撻�侀珮閫�<el-input style="width: 30%;" v-model="plcSigns[120].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[120])"
+                  @keyup.enter.native="writeValue(plcSigns[120])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                C02杈撻�佷綆閫�<el-input style="width: 30%;" v-model="plcSigns[121].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[121])"
+                  @keyup.enter.native="writeValue(plcSigns[121])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
+              </div>
+              <div>
+                C02杈撻�佹墜鍔�<el-input style="width: 30%;" v-model="plcSigns[122].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[122])"
+                  @keyup.enter.native="writeValue(plcSigns[122])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>m/min
+              </div>
+              <div>
+                C02鏈�澶ч�熷害<el-input style="width: 30%;" v-model="plcSigns[123].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[123])"
+                  @keyup.enter.native="writeValue(plcSigns[123])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>m/min
+              </div>
+              <div>
+                <el-button type="primary" @click="writeValue(plcSigns[124])">4#绗煎瓙璺濈</el-button>
+                <el-input style="width: 30%;" v-model="plcSigns[125].value" @focus="refresh()" @blur="writeValue(plcSigns[125])"
+                  @keyup.enter.native="writeValue(plcSigns[125])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
+              </div>
+              <div>
+                鍏ョ墖杈撻�佸惎鍔ㄥ欢鏃�<el-input style="width: 30%;" v-model="plcSigns[126].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[126])"
+                  @keyup.enter.native="writeValue(plcSigns[126])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍑虹墖杈撻�佸惎鍔ㄥ欢鏃�<el-input style="width: 30%;" v-model="plcSigns[1].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[126])"
+                  @keyup.enter.native="writeValue(plcSigns[126])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+            </div>
+            <div>
+              <div>
+                C02琛岃蛋楂橀��<el-input type="text" style="width: 30%;" v-model="plcSigns[127].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[127])"
+                  @keyup.enter.native="writeValue(plcSigns[127])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/s
+              </div>
+              <div>
+                C02琛岃蛋鎵嬪姩<el-input style="width: 30%;" v-model="plcSigns[128].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[128])"
+                  @keyup.enter.native="writeValue(plcSigns[128])"
+                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/s
+              </div>
+              <div>
+                鏈�澶у彇鐗囨牸瀛�<el-input style="width: 30%;" v-model="plcSigns[129].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[129])"
+                  @keyup.enter.native="writeValue(plcSigns[129])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>鏍�
+              </div>
+              <div>
+                鏈�灏忓彇鐗囨牸瀛�<el-input style="width: 30%;" v-model="plcSigns[130].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[130])"
+                  @keyup.enter.native="writeValue(plcSigns[130])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>鏍�
+              </div>
+              <div>
+                鍏ョ墖杈撻�佽秴鏃舵椂闂�<el-input style="width: 30%;" v-model="plcSigns[131].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[131])"
+                  @keyup.enter.native="writeValue(plcSigns[131])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+              <div>
+                鍑虹墖杈撻�佽秴鏃舵椂闂�<el-input style="width: 30%;" v-model="plcSigns[132].value"
+                  @focus="refresh()" @blur="writeValue(plcSigns[132])"
+                  @keyup.enter.native="writeValue(plcSigns[132])"
+                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
+              </div>
+            </div>
+          </div>
+        </el-card>
+      </div>
+    </div>
   </div>
 
 </template>
@@ -109,7 +807,7 @@
 // import ManualonePosition2 from './ManualonePosition2.vue';
 // import ManualJog from './ManualJog.vue';
 import {
-  SelectPermissionByUserName, currentUsername, WriteWord, WriteBit
+   writeValue
 } from "../../api/home";
 // import { createWebSocket } from '../../api/websocket.js';
 let socket;
@@ -117,9 +815,12 @@
   name: "AlbaniaServo",
   mixins: [LanguageMixin],
   data() {
-    return {
+    return { // 瀛樺偍涓存椂杈撳叆鍊�
+      updates: false,
+      isEditing: false,
       jsonData: data,
       language: this.$i18n.locale,
+      plcSigns: [],
       // embeddedComponent: ManualonePosition2,
       // embeddedComponent2: ManualJog,
       hasPermission: false // 榛樿娌℃湁鏉冮檺
@@ -135,59 +836,81 @@
     //   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;
-          }
+    // 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;
-
+    refresh(){
+      this.updates = true;
+    },
+    // handleInput(groupIndex, itemIndex) {
+    //   this.jsonData[groupIndex][itemIndex].value2 = 1;
+    // },
+    onFocus() {
+      this.isEditing = true;
+    },
+    onBlur() {
+      this.isEditing = false;
+      this.plcSigns[0].value = this.inputValue; // 鍦ㄥけ鍘荤劍鐐规椂鏇存柊瀹為檯鍊�
+    },
+    onInput(value) {
+      if (this.isEditing) {
+        this.inputValue = value; // 浠呭湪缂栬緫鏃舵洿鏂颁复鏃跺��
+      }
     },
     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 => {
+    writeValue(plcSign) {
+      writeValue(plcSign.addressIndex, plcSign.value, plcSign.ratio).then(res => {
         if (res.data.message == 200) {
           this.$message.success(this.$t('Operation successful'));
         }
       });
-
+      this.updates = false;
     },
-    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, dataGroup[itemIndex].type).then(res => {
-          if (res.data.message == 200) {
-            this.$message.success(this.$t('Operation successful'));
-          }
-        });
-      }
-      if (index == 1) {
-        this.$set(dataGroup[itemIndex], 'value2', 0);
-      }
+    // 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, dataGroup[itemIndex].type).then(res => {
+    //       if (res.data.message == 200) {
+    //         this.$message.success(this.$t('Operation successful'));
+    //       }
+    //     });
+    //   }
+    //   if (index == 1) {
+    //     this.$set(dataGroup[itemIndex], 'value2', 0);
+    //   }
+
+    // },
 
 
     initWebSocket() {
@@ -235,81 +958,9 @@
           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.listPlcSysparam[0][index2];
-                    break;
-                  case 1:
-                    item2.button.value = obj.listPlcCountparam[0][index2];
-                    break;
-                  case 2:
-                    item2.button.value = obj.listPlcTimerparam[0][index2];
-                    break;
-                  case 3:
-                    item2.button.value = obj.listHollowparam[0][index2];
-                    break;
-                  case 4:
-                    item2.button.value = obj.listA01param[0][index2];
-                    break;
-                  case 5:
-                    item2.button.value = obj.listA02param[0][index2];
-                    break;
-                  case 6:
-                    item2.button.value = obj.listB01param[0][index2];
-                    break;
-                  case 7:
-                    item2.button.value = obj.listC01param[0][index2];
-                    break;
-                  case 8:
-                    item2.button.value = obj.listC02param[0][index2];
-                    break;
-                  default:
-                    break;
-                }
-              } else {
-                if (item2.value2 !== 1) {
-                  switch (index) {
-                    case 0:
-                    item2.value = obj.listPlcSysparam[0][index2];
-                    break;
-                  case 1:
-                    item2.value = obj.listPlcCountparam[0][index2];
-                    break;
-                  case 2:
-                    item2.value = obj.listPlcTimerparam[0][index2];
-                    break;
-                  case 3:
-                    item2.value = obj.listHollowparam[0][index2];
-                    break;
-                  case 4:
-                    item2.value = obj.listA01param[0][index2];
-                    break;
-                  case 5:
-                    item2.value = obj.listA02param[0][index2];
-                    break;
-                  case 6:
-                    item2.value = obj.listB01param[0][index2];
-                    break;
-                  case 7:
-                    item2.value = obj.listC01param[0][index2];
-                    break;
-                  case 8:
-                    item2.value = obj.listC02param[0][index2];
-                    break;
-                  default:
-                    break;
-                  }
-                }
-
-              }
-
-            });
-          });
-
+          if (obj.plcSigns != null&&this.updates==false) {
+            this.plcSigns = obj.plcSigns[0];
+          }
           // if (obj.zuhe1) {
           //   console.log(obj);
 
@@ -358,7 +1009,6 @@
   display: flex;
   align-items: center;
   margin-bottom: 2px;
-  /* 璋冩暣姣忎釜椤圭洰涔嬮棿鐨勯棿璺� */
 }
 
 .action-button {
@@ -392,4 +1042,8 @@
   background-color: green;
 
 }
+
+div {
+  padding: 2px;
+}
 </style>
\ No newline at end of file
diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index 5f748db..20501a8 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -609,7 +609,7 @@
                     <br> -->
                     <el-table :data="this.tasklist3" :height="700" :row-class-name="rowClassName"
                         style="width: 100%;padding:0;">
-                        <el-table-column prop="flowcard" :label="$t('Flowcard')"></el-table-column>
+                        <el-table-column prop="flowcard" :label="$t('Order')"></el-table-column>
                         <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column>
                         <el-table-column prop="films" :label="$t('Films')"></el-table-column>
                         <el-table-column prop="width" :label="$t('Width')"></el-table-column>
@@ -628,14 +628,14 @@
                 :span-method="spanMethod" class="bold-center">
                 <el-table-column :min-width="80" prop="cage" :label="$t('Cage No')"></el-table-column>
                 <el-table-column :min-width="80" prop="cell" :label="$t('Slot No')"></el-table-column>
-                <el-table-column :min-width="80" prop="flowcard" :label="$t('Flowcard')"></el-table-column>
+                <el-table-column :min-width="80" prop="flowcard" :label="$t('Order')"></el-table-column>
                 <el-table-column :min-width="80" prop="customer" :label="$t('Customer')"></el-table-column>
-                <el-table-column :min-width="80" prop="mateid" :label="$t('Mateid')"></el-table-column>
                 <el-table-column :min-width="80" prop="glassWidth" :label="$t('Width')"></el-table-column>
                 <el-table-column :min-width="80" prop="glassHeight" :label="$t('Height')"></el-table-column>
                 <el-table-column :min-width="80" prop="thickness" :label="$t('Thickness')"></el-table-column>
                 <el-table-column :min-width="80" prop="films" :label="$t('Films')"></el-table-column>
                 <el-table-column :min-width="80" prop="number" :label="$t('number')"></el-table-column>
+                <el-table-column :min-width="80" prop="mateid" :label="$t('Mateid')"></el-table-column>
                 <!-- <el-table-column :min-width="80" prop="width" :label="$t('Width')"></el-table-column> -->
                 <el-table-column :min-width="250" :label="$t('Operate')">
                     <template slot-scope='scope'>
@@ -770,7 +770,7 @@
                         </div>
                     </template>
                 </el-table-column>
-                <el-table-column prop="flowcard" :label="$t('Flowcard')" align="center">
+                <el-table-column prop="flowcard" :label="$t('Order')" align="center">
                     <template slot-scope="scope">
                         <div :style="{width: '105%', height: '100%', lineHeight: '38px' }">
                             {{ scope.row.flowcard }}
@@ -816,7 +816,7 @@
                 </el-table-column>
                 <el-table-column prop="cell" :label="$t('Slot No')" align="center">
                     <template slot-scope="scope">
-                        <div :style="{width: '105%', height: '100%', lineHeight: '38px' }">
+                        <div :style="{backgroundColor: scope.row.state === 0 ? '#00FFFF' : '', width: '105%', height: '100%', lineHeight: '38px' }">
                             {{ scope.row.cell }}
                         </div>
                     </template>
@@ -848,7 +848,7 @@
                         </div>
                     </template>
                 </el-table-column>
-                <el-table-column prop="flowcard" :label="$t('Flowcard')" align="center">
+                <el-table-column prop="flowcard" :label="$t('Order')" align="center">
                     <template slot-scope="scope">
                         <div :style="{width: '105%', height: '100%', lineHeight: '38px' }">
                             {{ scope.row.flowcard }}
@@ -943,7 +943,7 @@
                     {{ $t('Select') }}</el-button>
             </div>
             <el-table :data="this.StorageCageAddInfo" :height="700" border style="width: 100%;overflow: auto;">
-                <el-table-column prop="flowcard" :label="$t('Flowcard')"></el-table-column>
+                <el-table-column prop="flowcard" :label="$t('Order')"></el-table-column>
                 <el-table-column prop="tier" :label="$t('Tier')"></el-table-column>
                 <el-table-column prop="width" :label="$t('Width')"></el-table-column>
                 <el-table-column prop="height" :label="$t('Height')"></el-table-column>
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java b/springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
index 95a670a..afd257a 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
@@ -129,5 +129,49 @@
     }
 
 
+    public static PlcParameterObject initwords(String jsonFilePath) {
+        // File file=new File(jsonFilePath);
+        // if (!file.exists()) {
+        //     System.out.println(jsonFilePath);
+        //     return null;
+        // }
+        try {
+            FileReader fileReader = new FileReader(jsonFilePath);
+            BufferedReader bufferedReader = new BufferedReader(fileReader);
 
+            StringBuilder content = new StringBuilder();
+            String line;
+
+            while ((line = bufferedReader.readLine()) != null) {
+                content.append(line);
+            }
+
+            bufferedReader.close();
+            fileReader.close();
+
+            JSONObject jsonfileobj = new JSONObject(content.toString());
+            JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+            PlcParameterObject plcParameterObject = new PlcParameterObject();
+
+            for (int i = 0; i < jsonArray.size(); i++) {
+                JSONObject parameterObj = jsonArray.getJSONObject(i);
+                PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+                String codeid = parameterObj.getStr("codeId");
+                plcParameterInfo.setCodeId(codeid);
+                // plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+                plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
+                // plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
+                // plcParameterInfo.setUnit(parameterObj.getStr("unit"));
+                plcParameterObject.addPlcParameter(plcParameterInfo);
+            }
+           // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+           // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+           // plcParameterObject.setPlcParameterList(getplcvlues);
+
+            return plcParameterObject;
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
index dbf369f..4b1844c 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
@@ -81,7 +81,7 @@
             //     .println("鍑虹墖鐘舵��:MESToPLC:" + MESToPLC + "PLCToMES:" + PLCToMES + "MESToPLCStatus1:" + MESToPLCStatus1);
             spianService.selectout(1);
             try {
-              Thread.sleep(200); // 姣�100姣妫�鏌ヤ竴娆�
+              Thread.sleep(100); // 姣�100姣妫�鏌ヤ竴娆�
             } catch (InterruptedException e) {
               Thread.currentThread().interrupt(); // 澶勭悊绾跨▼涓柇
             }
@@ -94,7 +94,7 @@
         MESToPLC = plcmes.getPlcParameter("MESToPLC").getValue();// 鍙戦�佷换鍔″瓧
         // 杩愰�佽溅璇锋眰鍜屾祴閲忓畬鎴愯姹�
         GlassInfo glass = albaniaMapper.SelectGlass();
-        if (PLCToMES != null && glass != null && MESToPLC != null && taskcont == 0) {
+        if (PLCToMES != null && glass != null && MESToPLC != null) {
           if (PLCToMES.equals("1") == true && MESToPLC.equals("0") == true && MESToPLCStatus1.equals("0") == true&&outtask == 0) {
             try {
               Thread.sleep(100); // 姣�100姣妫�鏌ヤ竴娆�
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 d53aae7..0970d32 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
@@ -145,10 +145,17 @@
                     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 ("0".equals(PlcRequest) && "1".equals(MesSend)|| "0".equals(PlcRequest) && "4".equals(MesSend)) {
+                    //     S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 0);
+                    // }
+                    // if ("2".equals(PlcRequest) && "1".equals(MesSend)) {
+                    //     S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 0);
+                    // }
+                     if ("4".equals(PlcRequest)) {
+                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 0);
+                        System.out.println("鏀跺洓褰掗浂");
                     }
+                    
                     // System.out.println("PlcRequest:" + PlcRequest+"MesSend:" + MesSend+"width:" +
                     // width+"height:" + height);
 
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 7c30d77..ae094c4 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
@@ -24,6 +24,8 @@
         // new PlcAlbaniaServo().start();
         // new Plcsign().start();
 
+        new PlcSigns().start();
+
        
     }
 }
\ No newline at end of file
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 848f87b..de59f75 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
@@ -592,4 +592,27 @@
     return storageCageService.SaveMeasure(films,thickness);
   }
 
+  @GetMapping("/writeValue")
+  public Result writeValue(String address, float value, String type) {
+    if ("0".equals(type)) {
+      System.err.println("鍐欏叆word" + address + "+" + value);
+      // S7control.getinstance().WriteWord(address, (short) value);
+    } else if("1".equals(type)) {
+
+      System.err.println("鍐欏叆float" + address + "+" + value);
+      // S7control.getinstance().writeFloat32(address, value);
+    }else{
+      System.err.println("鍐欏叆bit" + address + "+" + value);
+      // S7control.getinstance().WriteBit(address, true);
+      try {
+        TimeUnit.MILLISECONDS.sleep(300);
+      } catch (InterruptedException e) {
+        e.printStackTrace();
+      }
+      // S7control.getinstance().WriteBit(address, false);
+    }
+    Map<String, Object> map = new HashMap<>();
+    map.put("message", "200");
+    return Result.success(map);
+  }
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
index 68a6fb8..b5faca2 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
@@ -74,7 +74,7 @@
     @Select("select method,flowcard from flowcard where state=1 and line=#{line} ORDER BY starttime LIMIT 1;")
     GlassInfo SelectMethod(int line);
     //鐩村嚭妯″紡浠诲姟鏌ヨ
-    @Select("select  b.flowcard,b.glassid,b.glasstype,b.mateid,b.width,b.tier,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=1 and a.state=1 and c.number>0 and b.finishnumber<b.number  ORDER BY b.finishnumber,b.tier asc limit 1")
+    @Select("select  b.flowcard,b.glassid,b.glasstype,b.mateid,b.width,b.tier,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=1 and a.state=1 and c.number>0  ORDER BY b.mateid,b.tier asc limit 1")
     GlassInfo SelectOutGlass2(int line);
     //鏌ヨ鐩撮�氭ā寮忎笅鏈�鍚庝竴鍧�
     @Select("select IFNULL(b.tier, 0) from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=#{line} and c.number>0 ORDER BY b.tier desc LIMIT 1")
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 148c234..feda6e1 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
@@ -344,7 +344,7 @@
     Integer SelectMaxTypes(String key);
 
     //鏌ヨ鎵�鏈夌幓鐠冭啘绯诲拰鍘氬害
-  @Select("select films,thickness from glassinfo GROUP BY films,thickness")
+  @Select("select films,thickness from flowcard a left join glassinfo b on a.flowcard=b.flowcard where orderstate=1 GROUP BY films,thickness")
   List<GlassInfo> SelectMeasure();
   @Select("select*from measuresetting")
   MeasureSetting SelectMeasureSetting();
@@ -381,6 +381,6 @@
     @Select("SELECT a.id,a.flowcard,customer,a.mateid,a.tier,b.films,b.thickness,b.width,b.height,a.task_state as state FROM `out_task` a left join glassinfo b on a.glasstype=b.glasstype where task_state!=1 ORDER BY task_state")
     List<Map>SelectOutTask();
      //鏌ヨ鍑虹墖璁板綍鏁版嵁
-     @Select(" select a.id,a.flowcard,customer,a.mateid,a.tier,b.films,b.thickness,b.width,b.height,a.task_state,a.shelf_rack as cell from storage_task a left join glassinfo b on a.glasstype=b.glasstype where task_state=1 and task_type=1 ORDER BY a.id desc LIMIT 6;")
+     @Select(" select a.id,a.flowcard,customer,a.mateid,a.tier,b.films,b.thickness,b.width,b.height,a.task_state as state,a.shelf_rack as cell from storage_task a left join glassinfo b on a.glasstype=b.glasstype where task_type=1 ORDER BY a.id desc LIMIT 6;")
      List<Map>SelectOutLog();
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
index 47c8255..fcadaaf 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -239,18 +239,18 @@
     }
 
     // 鎸囧畾鏍煎瓙鍑虹墖
-    public Result AddOutGlass(Integer cell,Integer glasstype) {
+    public Result AddOutGlass(Integer cell, Integer glasstype) {
         GlassInfo glass = albaniaMapper.SelectGlassInfo(glasstype);
         Map<String, Object> map = new HashMap<>();
-        if(glass!=null){
-        albaniaMapper.AddFinishNumber(glass.getFlowcard(),glass.getMateid(), glass.getTier());
-        UpdateStroageCageByCell(cell, -1);// 鐜荤拑鏁伴噺-1
-        // 澧炲姞鍑虹墖闃熷垪鐨勪换鍔�
-        albaniaMapper.InsertOutTask(1, 0, cell, 2001,glass.getGlassid(),
-        glass.getGlasstype(), glass.getFlowcard(),glass.getMateid(),glass.getTier());
-        map.put("message", "200");
-        }else{
-        map.put("message", "300");
+        if (glass != null) {
+            albaniaMapper.AddFinishNumber(glass.getFlowcard(), glass.getMateid(), glass.getTier());
+            UpdateStroageCageByCell(cell, -1);// 鐜荤拑鏁伴噺-1
+            // 澧炲姞鍑虹墖闃熷垪鐨勪换鍔�
+            albaniaMapper.InsertOutTask(1, 0, cell, 2001, glass.getGlassid(),
+                    glass.getGlasstype(), glass.getFlowcard(), glass.getMateid(), glass.getTier());
+            map.put("message", "200");
+        } else {
+            map.put("message", "300");
         }
         return Result.success(map);
     }
@@ -276,13 +276,14 @@
         }
         return storageTasks;
     }
-    
-    //鏌ヨ鍑虹墖闃熷垪
+
+    // 鏌ヨ鍑虹墖闃熷垪
     public List<Map> SelectOutTask() {
         return homeMapper.SelectOutTask();
     }
-     //鏌ヨ鍑虹墖闃熷垪
-     public List<Map> SelectOutLog() {
+
+    // 鏌ヨ鍑虹墖闃熷垪
+    public List<Map> SelectOutLog() {
         return homeMapper.SelectOutLog();
     }
 
@@ -449,18 +450,20 @@
     public Result UpdateQueue(GlassInfo glassInfo) {
         // 鍒犻櫎鏁版嵁
         Map<String, Object> map = new HashMap<>();
-        // QueueMapper.DeleteQueue();
-        System.out.println("浜哄伐鍖归厤ID锛�"+glassInfo.getMateid()+"鑶滅郴:"+glassInfo.getFilms());
-        int count = homeMapper.SelectQueue();
-        if (count > 0) {
-            homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
+        QueueMapper.DeleteQueue();
+        System.out.println("浜哄伐鍖归厤ID:" + glassInfo.getMateid() + "鑶滅郴:" + glassInfo.getFilms());
+        // int count = homeMapper.SelectQueue();
+        // if (count > 0) {
+            // homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
+            //         glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(), glassInfo.getMateid());
+            homeMapper.AddQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
                     glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(), glassInfo.getMateid());
             PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
             S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
             map.put("message", "200");
-        } else {
-            map.put("message", "300");
-        }
+        // } else {
+        //     map.put("message", "300");
+        // }
         return Result.success(map);
     }
 
@@ -491,6 +494,7 @@
         map.put("message", "200");
         return Result.success(map);
     }
+
     // 寮�濮�/鏆傚仠鍑虹墖闃熷垪
     public Result UpdateOutTask(Integer id, Integer state) {
         homeMapper.UpdateOutTask(id, state);
@@ -498,7 +502,8 @@
         map.put("message", "200");
         return Result.success(map);
     }
-    //鍒犻櫎鍑虹墖闃熷垪
+
+    // 鍒犻櫎鍑虹墖闃熷垪
     public Result DeleteOutTask(Integer id) {
         homeMapper.DeleteOutTask(id);
         Map<String, Object> map = new HashMap<>();
@@ -553,7 +558,7 @@
                         &&
                         item.get("films") != null && item.get("base") != null && item.get("height") != null
                         && item.get("thickness") != null && item.get("quantity") != null
-                        && item.get("matching") != null)&& item.get("Customer") != null)
+                        && item.get("matching") != null))
                 .collect(Collectors.toList());
 
         TypeDatas.forEach(item -> {
@@ -615,9 +620,11 @@
                     , Integer.parseInt(map.get("tier").toString()), map.get("films").toString(),
                     Double.parseDouble(map.get("base").toString()), Double.parseDouble(map.get("height").toString()),
                     Double.parseDouble(map.get("thickness").toString()),
-                    Integer.parseInt(map.get("quantity").toString()), groupby.get(tierkey),map.get("Customer").toString());// 闇�瑕佽绠楁�诲眰鏁�
+                    Integer.parseInt(map.get("quantity").toString()), groupby.get(tierkey),
+                    map.get("Customer").toString());// 闇�瑕佽绠楁�诲眰鏁�
             // 璁㈠崟鍐呮�诲眰鏁�
-            homeMapper.InsertFlowcard(map.get("order").toString(), OrderFinishedProduct.get(tierkey + "_Sum"), map.get("Customer").toString());
+            homeMapper.InsertFlowcard(map.get("order").toString(), OrderFinishedProduct.get(tierkey + "_Sum"),
+                    map.get("Customer").toString());
             count++;
         }
         Map<String, Object> ResultCode = new HashMap<>();

--
Gitblit v1.8.0