wu
2024-11-19 b092806a662b99310cdb050292de2721ba06acd9
增加测量台直通模式,增加手动参数界面的JSON文件
13个文件已修改
1139 ■■■■ 已修改文件
Albania_Mes-ui/src/api/home.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/en-US.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/zh-CN.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue 960 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/home/index.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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:""
    })
}
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",
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": "请输入密码",
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>
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>
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;
    }
}
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毫秒检查一次
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);
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -24,6 +24,8 @@
        // new PlcAlbaniaServo().start();
        // new Plcsign().start();
        new PlcSigns().start();
       
    }
}
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);
  }
}
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")
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();
}
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<>();