wu
2024-11-28 cfc2855d2fe063e26947bad7277a1091efbb3bbb
协议地址更新,手动页面更新
18个文件已修改
1987 ■■■■ 已修改文件
Albania_Mes-ui/src/api/home.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/configuration/Sign.json 1268 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/en-US.json 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/zh-CN.json 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/router/index.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue 488 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/Sign.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/alarm.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/home/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/config.properties 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/api/home.js
@@ -452,4 +452,14 @@
        method: 'get',
        data:""
    })
}
//手动界面
export function writeButton(address,value,type) {
    return request({
        url: '/home/writeButton?address='+address+'&value='+value+'&type='+type,
        method: 'get',
        data:""
    })
}
Albania_Mes-ui/src/configuration/Sign.json
@@ -1,652 +1,666 @@
{
  "sign": [
    {
      "name": "Sr.Low",
      "name": "LOW-E Photoelectric",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"LOW-E检测光电"
    },
    {
      "name": "Sr.OutDec",
      "unit": "I10.0",
      "name1": "LOW-E检测光电"
  },
  {
      "name": "Exit Decel Photoelectric",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"出口减速光电"
    },
    {
      "name": "Sr.OutPos",
      "unit": "I10.0",
      "name1": "出口减速光电"
  },
  {
      "name": "Exit Position Photoelectric",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"出口到位光电"
    },
      "unit": "I10.0",
      "name1": "出口到位光电"
  },
  {
      "name": "X-axis Edge",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "X轴寻边"
  },
  {
      "name": "X-axis Decel",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "X轴出口减速"
  },
  {
      "name": "X-axis Position",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "X轴出口到位"
  },
  {
      "name": "Y-axis Height 1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "Y轴高度感应1"
  },
  {
      "name": "Y-axis Height 2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "Y轴高度感应2"
  },
  {
      "name": "Y-axis Height 3",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "Y轴高度感应3"
  },
  {
      "name": "Y-axis Height 4",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "Y轴高度感应4"
  },
  {
      "name": "Y-axis Edge",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "Y轴寻边"
  },
  {
      "name": "Y-axis Decel",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "Y轴高度减速"
  },
  {
      "name": "Top Limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "上极限"
  },
  {
      "name": "Bottom Limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit": "I10.0",
      "name1": "下极限"
  },
  {
    "name": "Y Zero",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "Y轴原点"
},
    {
      "name": "Sr.XCheck",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"X轴寻边"
    },
    {
      "name": "Sr.XDec",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"X轴出口减速"
    },
    {
      "name": "Sr.XPos",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"X轴出口到位"
    },
    {
      "name": "Sr.H1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"Y轴高度感应1"
    },
    {
      "name": "Sr.H2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"Y轴高度感应2"
    },
    {
      "name": "Sr.H3",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"Y轴高度感应3"
    },
    {
      "name": "Sr.H4",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"Y轴高度感应4"
    },
    {
      "name": "Sr.YChecK",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"Y轴寻边"
    },
    {
      "name": "Sr.YDec",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"Y轴高度减速"
    },
    {
      "name": "Sr.travellimitTop",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"上极限"
    },
    {
      "name": "Sr.travellimitBottom",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"下极限"
    },
    {
      "name": "SQ.YZero",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"Y轴原点"
    },
    {
      "name": "SQ.Travellimitleft",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"左极限"
    },
    {
      "name": "Sr.PosToLeft",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"左到位"
    },
    {
      "name": "Sr.DecToLeft",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"左减速"
    },
    {
      "name": "Sr.DecToRight",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"右减速"
    },
    {
      "name": "Sr.PosToRight",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"右到位"
    },
    {
      "name": "Sr.TravellimitRight",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"右极限"
    },
    {
      "name": "SQ.LimitSwitch+",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"大车正极限"
    },
    {
      "name": "SQ.LimitSwitch-",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"大车负极限"
    },
    {
      "name": "Sr.HomeToTurn",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"翻转原点"
    },
    {
      "name": "SQ.LimitSwitchToTurnTop",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"翻转上极限"
    },
    {
      "name": "SQ.LimitSwitchToTurnBottom",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"翻转下极限"
    },
    {
      "name": "oilPump",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"油泵输出"
    },
    {
      "name": "Sr.InOrigin",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"小车原点"
    },
    {
      "name": "Sr.LimitSwitch+",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"小车正极限"
    },
    {
      "name": "Sr.LimitSwitch-",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"小车负极限"
    },
    {
      "name": "biBasPosBlowUp1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸原点1"
    },
    {
      "name": "biBasPosBlowUp2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸原点2"
    },
    {
      "name": "biBasPosBlowUp3",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸原点3"
    },
    {
      "name": "biBasPosBlowUp4",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸原点4"
    },
    {
      "name": "biBasPosGlassUp1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"玻璃抬起气缸原点1"
    },
    {
      "name": "biBasPosGlassUp2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"玻璃抬起气缸原点2"
    },
    {
      "name": "biWorkBlowSr1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气感应1"
    },
    {
      "name": "biWorkBlowSr2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气感应2"
    },
    {
      "name": "biWorkBlowSr3",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气感应3"
    },
    {
      "name": "biWorkBlowSr4",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气感应4"
    },
    {
      "name": "biWorkPosBlowUp1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点1"
    },
    {
      "name": "biWorkBlowSr2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点2"
    },
    {
      "name": "biWorkBlowSr3",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点3"
    },
    {
      "name": "biWorkBlowSr4",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点4"
    },
    {
      "name": "biWorkPosBlowUp1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点1"
    },
    {
      "name": "biWorkPosBlowUp2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点2"
    },
    {
      "name": "boWorkPosBlow",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气输出"
    },
    {
      "name": "boWorkPosBlowUp",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起输出"
    },
    {
      "name": "boWorkPosGlassUp",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"玻璃抬起输出"
    },
    {
      "name": "Sr.InOrigin",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"小车原点"
    },
    {
      "name": "SQ.LimitSwitch+",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"小车正极限"
    },
    {
      "name": "SQ.LimitSwitch-",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"小车负极限"
    },
    {
      "name": "biBasPosGlassUp1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸原点1"
    },
    {
      "name": "biBasPosBlowUp2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸原点2"
    },
    {
      "name": "biBasPosBlowUp3",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸原点3"
    },
    {
      "name": "biBasPosBlowUp4",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸原点4"
    },
    {
      "name": "biBasPosGlassUp1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"玻璃抬起气缸原点1"
    },
    {
      "name": "biBasPosGlassUp2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"玻璃抬起气缸原点2"
    },
    {
      "name": "biWorkBlowSr1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气感应1"
    },
    {
      "name": "biWorkBlowSr2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气感应2"
    },
    {
      "name": "biWorkBlowSr3",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气感应3"
    },
    {
      "name": "biWorkBlowSr4",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气感应4"
    },
    {
      "name": "biWorkPosBlowUp1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点1"
    },
    {
      "name": "biWorkPosBlowUp2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点2"
    },
    {
      "name": "biWorkPosBlowUp3",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点3"
    },
    {
      "name": "biWorkPosBlowUp4",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起气缸动点4"
    },
    {
      "name": "biWorkPosGlassUp1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"玻璃抬起气缸动点1"
    },
    {
      "name": "biWorkPosGlassUp2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"玻璃抬起气缸动点2"
    },
    {
      "name": "boWorkPosBlow",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气输出"
    },
    {
      "name": "boWorkPosBlowUp",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"吹气抬起输出"
    },
    {
      "name": "boWorkPosGlassUp",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0",
      "name1":"玻璃抬起输出"
    }
{
  "name": "Left-side limit protection",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "笼子左侧极限保护"
},
{
    "name": "Left Travel Limit",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "左极限"
},
{
    "name": "Left Position",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "左到位"
},
{
    "name": "Left Decel",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "左减速"
},
{
    "name": "Right Decel",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "右减速"
},
{
    "name": "Right Position",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "右到位"
},
{
    "name": "Right Travel Limit",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "右极限"
},
{
    "name": "Big Car Positive Limit",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "大车正极限"
},
{
    "name": "Big Car Negative Limit",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "大车负极限"
},
{
    "name": "Home to Turn",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "翻转原点"
},
{
    "name": "Turn Top Limit",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "翻转上极限"
},
{
    "name": "Turn Bottom Limit",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "翻转下极限"
},
{
    "name": "Oil Pump Output",
    "value": "1",
    "state": "1",
    "type": "1",
    "page": "1",
    "unit": "I10.0",
    "name1": "油泵输出"
},
{
  "name": "C01.In Origin",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01小车原点"
},
{
  "name": "C01.Limit Switch +",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01小车正极限"
},
{
  "name": "C01.Limit Switch -",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01小车负极限"
},
{
  "name": "C01.Blow Up Pos 1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起气缸原点1"
},
{
  "name": "C01.Blow Up Pos 2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起气缸原点2"
},
{
  "name": "C01.Blow Up Pos 3",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起气缸原点3"
},
{
  "name": "C01.Blow Up Pos 4",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起气缸原点4"
},
{
  "name": "C01.Glass Up Pos 1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01玻璃抬起气缸原点1"
},
{
  "name": "C01.Glass Up Pos 2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01玻璃抬起气缸原点2"
},
{
  "name": "C01.Blow Work Sensor 1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气感应1"
},
{
  "name": "C01.Blow Work Sensor 2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气感应2"
},
{
  "name": "C01.Blow Work Sensor 3",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气感应3"
},
{
  "name": "C01.Blow Work Sensor 4",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气感应4"
},
{
  "name": "C01.Blow Up Pos Work 1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起气缸动点1"
},
{
  "name": "C01.Blow Up Pos Work 2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起气缸动点2"
},
{
  "name": "C01.Blow Up Pos Work 3",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起气缸动点3"
},
{
  "name": "C01.Blow Up Pos Work 4",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起气缸动点4"
},
{
  "name": "C01.GlassUpPosWork1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01玻璃抬起气缸动点1"
},
{
  "name": "C01.GlassUpPosWork2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02玻璃抬起气缸动点2"
},
{
  "name": "C01.Blow Output",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气输出"
},
{
  "name": "C01.Blow Up Output",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01吹气抬起输出"
},
{
  "name": "C01.Glass Up Output",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C01玻璃抬起输出"
},
{
  "name": "C02.InOrigin",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02小车原点"
},
{
  "name": "C02.LimitSwitch+",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02小车正极限"
},
{
  "name": "C02.LimitSwitch-",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02小车负极限"
},
{
  "name": "C02.BlowUpPos1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起气缸原点1"
},
{
  "name": "C02.BlowUpPos2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起气缸原点2"
},
{
  "name": "C02.BlowUpPos3",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起气缸原点3"
},
{
  "name": "C02.BlowUpPos4",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起气缸原点4"
},
{
  "name": "C02.GlassUpPos1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02玻璃抬起气缸原点1"
},
{
  "name": "C02.GlassUpPos2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02玻璃抬起气缸原点2"
},
{
  "name": "C02.BlowWorkSr1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气感应1"
},
{
  "name": "C02.BlowWorkSr2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气感应2"
},
{
  "name": "C02.BlowWorkSr3",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气感应3"
},
{
  "name": "C02.BlowWorkSr4",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气感应4"
},
{
  "name": "C02.BlowUpPosWork1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起气缸动点1"
},
{
  "name": "C02.BlowUpPosWork2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起气缸动点2"
},
{
  "name": "C02.BlowUpPosWork3",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起气缸动点3"
},
{
  "name": "C02.BlowUpPosWork4",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起气缸动点4"
},
{
  "name": "C02.GlassUpPosWork1",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02玻璃抬起气缸动点1"
},
{
  "name": "C02.GlassUpPosWork2",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02玻璃抬起气缸动点2"
},
{
  "name": "C02.BlowOutput",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气输出"
},
{
  "name": "C02.BlowUpOutput",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02吹气抬起输出"
},
{
  "name": "C02.GlassUpOutput",
  "value": "1",
  "state": "1",
  "type": "1",
  "page": "1",
  "unit": "I10.0",
  "name1": "C02玻璃抬起输出"
}
  ],
  "address": [
    {
      "name": "DB12.0.0",
      "count": 71
      "count": 72
    }
  ]
}
Albania_Mes-ui/src/lang/locales/en-US.json
@@ -1,4 +1,14 @@
{
  "Manual":"Manual",
  "Starting position":"Starting position",
  "Target position":"End position",
  "Status":"Status",
  "B01 film processing vehicle":"B01 film processing vehicle",
  "A01 Conveyor Platform":"A01 Conveyor Platform",
  "A02 measuring table":"A02 measuring table",
  "C02 film cage":"C02 film cage",
  "C01 film cage":"C01 film cage",
  "Manual matching":"Manual matching",
  "Manual removal":"Manual removal",
  "Remeasure":"Remeasure",
@@ -332,6 +342,8 @@
  "Operation canceled":"Operation canceled",
  "There is no glass for this order":"There is no glass for this order",
  "There are currently tasks":"There are currently tasks",
  "The current data on the measuring console has been cleared":"The current data on the measuring console has been cleared",
  "The measuring table has glass":"The measuring table has glass",
  "There is no such glass":"There is no such glass",
  "There is no such grid":"There is no such grid",
  "No delete allowed":"No delete allowed",
Albania_Mes-ui/src/lang/locales/zh-CN.json
@@ -1,4 +1,13 @@
{
  "Manual":"手动",
  "Starting position":"开始位置",
  "Target position":"目标位置",
  "Status":"状态",
  "B01 film processing vehicle":"B01理片车",
  "A01 Conveyor Platform":"A01输送台",
  "A02 measuring table":"A02测量台",
  "C02 film cage":"C02理片笼",
  "C01 film cage":"C01理片笼",
  "Manual matching":"人工匹配",
  "Manual removal":"人工拿走",
  "Remeasure":"重新测量",
@@ -56,8 +65,8 @@
  "Save":"保存",
  "Select file":"选择文件",
  "ip":"192.168.10.2",
  "ip2":"localhost",
  "ip2":"192.168.10.2",
  "ip":"localhost",
  "systemTitle": "登录系统",
  "usernamePlaceholder": "请输入用户名",
  "passwordPlaceholder": "请输入密码",
@@ -313,6 +322,8 @@
  "Operation canceled": "操作取消",
  "There is no such order": "没有此订单的玻璃",
  "There are currently tasks": "当前有任务",
  "The current data on the measuring console has been cleared": "当前测量台数据已清空",
  "The measuring table has glass": "测量台已有玻璃",
  "There is no such glass": "没有此玻璃",
  "There is no such slot": "没有空闲格子",
  "No delete allowed": "不能删除",
Albania_Mes-ui/src/router/index.js
@@ -132,7 +132,11 @@
        path: '/Electrical/AlbaniaServo',
        component: () => import('../views/Electrical/AlbaniaServo')
      }
      ,
      {
        path: '/Electrical/Manual',
        component: () => import('../views/Electrical/Manual')
      }
    ]
  }
Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue
@@ -8,6 +8,9 @@
      <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
      }}</router-link>
      <router-link to="/Electrical/Manual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manual')
      }}</router-link>
    </el-breadcrumb>
    <!-- <el-row :gutter="10">
@@ -70,60 +73,60 @@
          </div>
          <div style="display: flex;">
            <div>
              <div>
                A01输送高速<el-input style="width: 30%;" v-model="plcSigns[0].value" @focus="refresh()" @blur="writeValue(plcSigns[0])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[0].name:plcSigns[0].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[1].name:plcSigns[1].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[2].name:plcSigns[2].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[3].name:plcSigns[3].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[4].name:plcSigns[4].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[5].name:plcSigns[5].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[6].name:plcSigns[6].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[7].name:plcSigns[7].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[8].name:plcSigns[8].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[9].name:plcSigns[9].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[10].name:plcSigns[10].usname }}<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>
@@ -131,117 +134,117 @@
          </div>
        </el-card>
        <el-card class="box-card">
          <div slot="header" class="clearfix">
          <div slot="header" class="clearfix" v-if="plcSigns.length > 0">
            <span>A02</span>
            <span style="float: right; padding: 3px 0"> Y轴当前位置<el-input style="width: 30%;" v-model="plcSigns[11].value"
            <span style="float: right; padding: 3px 0"> {{ language=="zh-CN"?plcSigns[11].name:plcSigns[11].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[12].name:plcSigns[12].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[13].name:plcSigns[13].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[14].name:plcSigns[14].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[15].name:plcSigns[15].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[16].name:plcSigns[16].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[17].name:plcSigns[17].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[18].name:plcSigns[18].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[19].name:plcSigns[19].usname }}<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 style="width: 50%;" type="primary" @click="writeValue(plcSigns[20])">Y轴定位设置1</el-button>
              <div v-if="plcSigns.length > 0">
                <el-button style="width: 50%;" type="primary" @click="writeValue(plcSigns[20])">{{ language=="zh-CN"?plcSigns[20].name:plcSigns[20].usname }}</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 style="width: 50%;" type="primary" @click="writeValue(plcSigns[22])">Y轴定位设置2</el-button>
              <div v-if="plcSigns.length > 0">
                <el-button style="width: 50%;" type="primary" @click="writeValue(plcSigns[22])">{{ language=="zh-CN"?plcSigns[22].name:plcSigns[22].usname }}</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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[24].name:plcSigns[24].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[25].name:plcSigns[25].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[26].name:plcSigns[26].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[27].name:plcSigns[27].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[28].name:plcSigns[28].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[29].name:plcSigns[29].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[30].name:plcSigns[30].usname }}<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])"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[31].name:plcSigns[31].usname }}<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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[32])">{{ language=="zh-CN"?plcSigns[32].name:plcSigns[32].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[34])">{{ language=="zh-CN"?plcSigns[34].name:plcSigns[34].usname }}</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
@@ -251,32 +254,32 @@
        </el-card>
        <el-card class="box-card">
          <div slot="header" class="clearfix">
            <span>系统参数</span>
            <span>{{ language=="zh-CN"?"系统参数":"System parameter"}}</span>
          </div>
          <div style="display: flex;">
            <div>
              <div>
                测量台标识号<el-input style="width: 30%;" v-model="plcSigns[36].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[36].name:plcSigns[36].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[37].name:plcSigns[37].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[38].name:plcSigns[38].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[39].name:plcSigns[39].usname }}<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>
@@ -292,78 +295,78 @@
          </div>
          <div style="display: flex;">
            <div>
              <div>
                B01输送高速<el-input style="width: 30%;" v-model="plcSigns[40].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[40].name:plcSigns[40].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[41].name:plcSigns[41].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[42].name:plcSigns[42].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[43].name:plcSigns[43].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[44].name:plcSigns[44].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[45].name:plcSigns[45].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[46].name:plcSigns[46].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[47].name:plcSigns[47].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[48].name:plcSigns[48].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[49].name:plcSigns[49].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[50].name:plcSigns[50].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[51].name:plcSigns[51].usname }}<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
@@ -372,168 +375,168 @@
          </div>
          <div style="display: flex;">
            <div>
              <div>
                <el-button type="primary" @click="writeValue(plcSigns[52])">1#笼子角度</el-button>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[52])">{{ language=="zh-CN"?plcSigns[52].name:plcSigns[52].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[54])">{{ language=="zh-CN"?plcSigns[54].name:plcSigns[54].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[56])">{{ language=="zh-CN"?plcSigns[56].name:plcSigns[56].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[58])">{{ language=="zh-CN"?plcSigns[58].name:plcSigns[58].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[60])">{{ language=="zh-CN"?plcSigns[60].name:plcSigns[60].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[62])">{{ language=="zh-CN"?plcSigns[62].name:plcSigns[62].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[64])">{{ language=="zh-CN"?plcSigns[64].name:plcSigns[64].usname }}</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>
                入片输送启动延迟
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[66].name:plcSigns[66].usname }}
                <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>
                出片输送启动延迟
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[67].name:plcSigns[67].usname }}
                <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>
                光电滤波延时
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[68].name:plcSigns[68].usname }}
                <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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[69])">{{ language=="zh-CN"?plcSigns[69].name:plcSigns[69].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[71])">{{ language=="zh-CN"?plcSigns[71].name:plcSigns[71].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[73])">{{ language=="zh-CN"?plcSigns[73].name:plcSigns[73].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[75])">{{ language=="zh-CN"?plcSigns[75].name:plcSigns[75].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[77])">{{ language=="zh-CN"?plcSigns[77].name:plcSigns[77].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[79])">{{ language=="zh-CN"?plcSigns[79].name:plcSigns[79].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[81])">{{ language=="zh-CN"?plcSigns[81].name:plcSigns[81].usname }}</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>
                入片输送超时时间
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[83].name:plcSigns[83].usname }}
                <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>
                出片输送超时时间
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[84].name:plcSigns[84].usname }}
                <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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[85])">{{ language=="zh-CN"?plcSigns[85].name:plcSigns[85].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[87])">{{ language=="zh-CN"?plcSigns[87].name:plcSigns[87].usname }}</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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[89])">{{ language=="zh-CN"?plcSigns[89].name:plcSigns[89].usname }}</el-button>
              </div>
              <div>
                <el-button type="primary" @click="writeValue(plcSigns[90])">油泵自动维护</el-button>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[90])">{{ language=="zh-CN"?plcSigns[90].name:plcSigns[90].usname }}</el-button>
              </div>
              <div>
                <el-button type="primary" @click="writeValue(plcSigns[91])">翻转原点设定</el-button>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[91])">{{ language=="zh-CN"?plcSigns[91].name:plcSigns[91].usname }}</el-button>
              </div>
              <div>
                油泵维护周期
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[92].name:plcSigns[92].usname }}
                <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>天
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>
              </div>
              <div>
                油泵开启时长
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[93].name:plcSigns[93].usname }}
                <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>天
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>
              </div>
              <div>
                最大取片格子
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[94].name:plcSigns[94].usname }}
                <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>格
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>
              </div>
              <div>
                最小取片格子
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[95].name:plcSigns[95].usname }}
                <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>格
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>
              </div>
            </div>
          </div>
@@ -544,61 +547,61 @@
          </div>
          <div style="display: flex;">
            <div>
              <div>
                1#笼子栅格数<el-input style="width: 30%;" v-model="plcSigns[96].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[96].name:plcSigns[96].usname }}<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>格
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input> {{ language=="zh-CN"?"格":"cell"}}
              </div>
              <div>
                1#笼子间距<el-input style="width: 30%;" v-model="plcSigns[97].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[97].name:plcSigns[97].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[98].name:plcSigns[98].usname }}<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>格
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>{{ language=="zh-CN"?"格":"cell"}}
              </div>
              <div>
                2#笼子间距<el-input style="width: 30%;" v-model="plcSigns[99].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[99].name:plcSigns[99].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[100].name:plcSigns[100].usname }}<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>格
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>{{ language=="zh-CN"?"格":"cell"}}
              </div>
              <div>
                3#笼子间距<el-input style="width: 30%;" v-model="plcSigns[101].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[101].name:plcSigns[101].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[102].name:plcSigns[102].usname }}<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>格
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>{{ language=="zh-CN"?"格":"cell"}}
              </div>
              <div>
                4#笼子间距<el-input style="width: 30%;" v-model="plcSigns[103].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[103].name:plcSigns[103].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[104].name:plcSigns[104].usname }}<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>个
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>{{ language=="zh-CN"?"个":"a"}}
              </div>
            </div>
          </div>
@@ -611,94 +614,94 @@
          </div>
          <div style="display: flex;">
            <div>
              <div>
                C01输送高速<el-input style="width: 30%;" v-model="plcSigns[105].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[105].name:plcSigns[105].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[106].name:plcSigns[106].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[107].name:plcSigns[107].usname }}<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"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[108].name:plcSigns[108].usname }}<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>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[109])">{{ language=="zh-CN"?plcSigns[109].name:plcSigns[109].usname }}</el-button>
                <el-input style="width: 30%;" v-model="plcSigns[110].value" @focus="refresh()" @blur="writeValue(plcSigns[110])"
                  @keyup.enter.native="writeValue(plcSigns[110])"
                  oninput="value=value.replace(/^(-?)(\D*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>mm
              </div>
              <div>
                <el-button type="primary" @click="writeValue(plcSigns[111])">2#笼子距离</el-button>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[111])">{{ language=="zh-CN"?plcSigns[111].name:plcSigns[111].usname }}</el-button>
                <el-input style="width: 30%;" v-model="plcSigns[112].value" @focus="refresh()" @blur="writeValue(plcSigns[112])"
                  @keyup.enter.native="writeValue(plcSigns[1112])"                  
                  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[113].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[113].name:plcSigns[113].usname }}<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]/g, '')`"></el-input>ms
              </div>
              <div>
                出片输送启动延时<el-input style="width: 30%;" v-model="plcSigns[114].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[114].name:plcSigns[114].usname }}<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>
            <div>
              <div>
                C01行走高速<el-input type="text" style="width: 30%;" v-model="plcSigns[115].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[115].name:plcSigns[115].usname }}<el-input type="text" 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*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>ms
              </div>
              <div>
                C01行走手动<el-input style="width: 30%;" v-model="plcSigns[116].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[116].name:plcSigns[116].usname }}<el-input style="width: 30%;" v-model="plcSigns[116].value"
                  @focus="refresh()" @blur="writeValue(plcSigns[116])"
                  @keyup.enter.native="writeValue(plcSigns[116])"
                  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[117].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[117].name:plcSigns[117].usname }}<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]/g, '')`"></el-input>ms
              </div>
              <div>
                最小取片格子<el-input style="width: 30%;" v-model="plcSigns[118].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[118].name:plcSigns[118].usname }}<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-button type="primary" @click="writeValue(plcSigns[119])" >3#笼子距离</el-button>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[119])" >{{ language=="zh-CN"?plcSigns[119].name:plcSigns[119].usname }}</el-button>
                <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>mm
              </div>
              <div>
                入片输送超时时间<el-input style="width: 30%;" v-model="plcSigns[121].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[121].name:plcSigns[121].usname }}<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]/g, '')`"></el-input>ms
              </div>
              <div>
                出片输送超时时间<el-input style="width: 30%;" v-model="plcSigns[122].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[122].name:plcSigns[122].usname }}<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>ms
@@ -712,82 +715,82 @@
          </div>
          <div style="display: flex;">
            <div>
              <div>
                C02输送高速<el-input style="width: 30%;" v-model="plcSigns[123].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[123].name:plcSigns[123].usname }}<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*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/min
              </div>
              <div>
                C02输送低速<el-input style="width: 30%;" v-model="plcSigns[124].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[124].name:plcSigns[124].usname }}<el-input style="width: 30%;" v-model="plcSigns[124].value"
                  @focus="refresh()" @blur="writeValue(plcSigns[124])"
                  @keyup.enter.native="writeValue(plcSigns[124])"
                  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[125].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[125].name:plcSigns[125].usname }}<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]/g, '')`"></el-input>m/min
              </div>
              <div>
                C02最大速度<el-input style="width: 30%;" v-model="plcSigns[126].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[126].name:plcSigns[126].usname }}<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>m/min
              </div>
              <div>
                <el-button type="primary" @click="writeValue(plcSigns[127])">4#笼子距离</el-button>
              <div v-if="plcSigns.length > 0">
                <el-button type="primary" @click="writeValue(plcSigns[127])">{{ language=="zh-CN"?plcSigns[127].name:plcSigns[127].usname }}</el-button>
                <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>mm
              </div>
              <div>
                入片输送启动延时<el-input style="width: 30%;" v-model="plcSigns[129].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[129].name:plcSigns[129].usname }}<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>ms
              </div>
              <div>
                出片输送启动延时<el-input style="width: 30%;" v-model="plcSigns[130].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[130].name:plcSigns[130].usname }}<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>ms
              </div>
            </div>
            <div>
              <div>
                C02行走高速<el-input type="text" style="width: 30%;" v-model="plcSigns[131].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[131].name:plcSigns[131].usname }}<el-input type="text" 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*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/s
              </div>
              <div>
                C02行走手动<el-input style="width: 30%;" v-model="plcSigns[132].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[132].name:plcSigns[132].usname }}<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*)(\d*(?:\.\d{0,2})?).*$/g, '$1$3')"></el-input>m/s
              </div>
              <div>
                最大取片格子<el-input style="width: 30%;" v-model="plcSigns[133].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[133].name:plcSigns[133].usname }}<el-input style="width: 30%;" v-model="plcSigns[133].value"
                  @focus="refresh()" @blur="writeValue(plcSigns[133])"
                  @keyup.enter.native="writeValue(plcSigns[133])"
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>格
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>{{ language=="zh-CN"?"格":"cell"}}
              </div>
              <div>
                最小取片格子<el-input style="width: 30%;" v-model="plcSigns[134].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[134].name:plcSigns[134].usname }}<el-input style="width: 30%;" v-model="plcSigns[134].value"
                  @focus="refresh()" @blur="writeValue(plcSigns[134])"
                  @keyup.enter.native="writeValue(plcSigns[134])"
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>格
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>{{ language=="zh-CN"?"格":"cell"}}
              </div>
              <div>
                入片输送超时时间<el-input style="width: 30%;" v-model="plcSigns[135].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[135].name:plcSigns[135].usname }}<el-input style="width: 30%;" v-model="plcSigns[135].value"
                  @focus="refresh()" @blur="writeValue(plcSigns[135])"
                  @keyup.enter.native="writeValue(plcSigns[135])"
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
              </div>
              <div>
                出片输送超时时间<el-input style="width: 30%;" v-model="plcSigns[136].value"
              <div v-if="plcSigns.length > 0">
                {{ language=="zh-CN"?plcSigns[136].name:plcSigns[136].usname }}<el-input style="width: 30%;" v-model="plcSigns[136].value"
                  @focus="refresh()" @blur="writeValue(plcSigns[136])"
                  @keyup.enter.native="writeValue(plcSigns[136])"
                  :oninput="`value=value.replace(/[^-\\d]/g, '')`"></el-input>ms
@@ -827,10 +830,11 @@
      // embeddedComponent2: ManualJog,
      hasPermission: false // 默认没有权限
      // 加载整个data.json文件作为jsonData
      // 加载整{{ language=="zh-CN"?"个":"a"}}data.json文件作为jsonData
    }
  },
  activated() {
    this.initWebSocket();
    // const language = this.$i18n.locale;
    //console.log(language);
@@ -851,6 +855,7 @@
    // });
  },
  methods: {
    refresh(){
      this.updates = true;
@@ -928,7 +933,7 @@
          socket = null;
        }
        // 开启一个websocket服务
        // 开启一{{ language=="zh-CN"?"个":"a"}}websocket服务
        socket = new WebSocket(socketUrl);
        // 打开事件
@@ -1008,6 +1013,9 @@
</script>
<style scoped>
* {
  font-size: 13px; /* 设置字体大小 */
}
.item-row {
  display: flex;
  align-items: center;
Albania_Mes-ui/src/views/Electrical/Sign.vue
@@ -15,6 +15,9 @@
      }}</router-link>
 <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
        }}</router-link>
        <router-link to="/Electrical/Manual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manual')
      }}</router-link>
    </el-breadcrumb>
    <div>{{ $t('Sign') }}</div>
Albania_Mes-ui/src/views/Electrical/alarm.vue
@@ -10,6 +10,9 @@
    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
    <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
        }}</router-link>
        <router-link to="/Electrical/Manual" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manual')
      }}</router-link>
    </el-breadcrumb>
    <div>{{ $t('Alarm') }}</div>
    <div class="block">
Albania_Mes-ui/src/views/home/index.vue
@@ -533,7 +533,7 @@
                <div>
                    <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state > 3)"
                        style="z-index: 999;">{{ $t('Manual matching') }}</el-button>
                    <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state > 0)"
                    <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state > 3)"
                        style="z-index: 999;">{{
                            $t('Manual removal') }}</el-button>
                    <el-button type="primary" @click="AnewMeasure()" style="z-index: 999;">{{
@@ -1323,7 +1323,7 @@
                        this.$message.success(this.$t('Operation successful'));
                        // this.StorageCageAdd = false;
                    } else {
                        this.$message.error(this.$t('Operation failed'));
                        this.$message.error(this.$t('The measuring table has glass'));
                    }
                });
            }
@@ -1581,7 +1581,9 @@
            let s = "123";
            ManualTake(s).then(res => {
                if (res.data.message == 200) {
                    console.log(res.data.message);
                    this.$message.success(this.$t('The current data on the measuring console has been cleared'));
                }else{
                    this.$message.success(this.$t('Operation successful'));
                }
            })
        },
springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
@@ -8,8 +8,11 @@
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -130,14 +133,12 @@
    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);
            // FileReader fileReader = new FileReader(jsonFilePath);
            // BufferedReader bufferedReader = new BufferedReader(fileReader);
            InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(jsonFilePath), StandardCharsets.UTF_8);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuilder content = new StringBuilder();
            String line;
@@ -147,7 +148,7 @@
            }
            bufferedReader.close();
            fileReader.close();
            // fileReader.close();
            JSONObject jsonfileobj = new JSONObject(content.toString());
            JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
@@ -158,6 +159,8 @@
                PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //参数实例
                String codeid = parameterObj.getStr("codeId");
                plcParameterInfo.setCodeId(codeid);
                plcParameterInfo.setName(parameterObj.getStr("name"));
                plcParameterInfo.setusName(parameterObj.getStr("usname"));
                // plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
                plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
                plcParameterInfo.setUnit(parameterObj.getStr("unit"));
@@ -165,9 +168,6 @@
                // 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) {
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -21,9 +21,8 @@
        new PLCAutoMes().start();
        new PlcHoldNew().start();
        new Plchome().start();
        // new PlcAlbaniaServo().start();
        // // new PlcAlbaniaServo().start();
        new Plcsign().start();
        new PlcSigns().start();
       
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -621,4 +621,20 @@
    map.put("message", "200");
    return Result.success(map);
  }
  @GetMapping("/writeButton")
  public Result writeButton(String address, float value, String type) {
    if(value==0){
      System.err.println("写入bit" + address + "+" + value);
      S7control.getinstance().WriteBit(address, false);
    }else{
      System.err.println("写入bit" + address + "+" + value);
      S7control.getinstance().WriteBit(address, true);
    }
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
}
springboot-vue3/src/main/java/com/example/springboot/entity/device/PlcParameterInfo.java
@@ -13,6 +13,9 @@
        // 参数名称
        private String name;
        // 英文名称
        private String usname;
        // 读取 参数值
        private String value;
@@ -47,6 +50,14 @@
            this.name = name;
        }
        public String getusName() {
            return this.usname;
        }
        public void setusName(String usname) {
            this.usname = usname;
        }
        public String getValue() {
            return this.value;
        }
springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
@@ -13,7 +13,7 @@
@Repository
public interface GlassInfoMapper extends BaseMapper<GlassInfo> {
    @Select("select gi.* from flowcard as fd LEFT JOIN glassinfo as gi on fd.flowcard=gi.flowcard where fd.orderstate=1 and gi.flowcard is not null and  gi.width<=#{maxwidth} and gi.width>=#{minwidth} and gi.height<=#{maxheight} and gi.height>=#{minheight} and gi.films=#{Films} and gi.thickness>=#{Thickness}  and gi.measurenumber<gi.number")
    @Select("select gi.* from flowcard as fd LEFT JOIN glassinfo as gi on fd.flowcard=gi.flowcard where fd.orderstate=1 and gi.flowcard is not null and  gi.width<=#{maxwidth} and gi.width>=#{minwidth} and gi.height<=#{maxheight} and gi.height>=#{minheight} and gi.films=#{Films} and gi.thickness>=#{Thickness}")
    List<GlassInfo> selectGlassInfos(@Param("maxwidth") double maxwidth, @Param("minwidth") double minwidth, @Param("maxheight") double maxheight, @Param("minheight") double minheight,Integer Thickness,String Films);
    // @Select("SELECT COUNT(*) FROM role_permission WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java
@@ -23,6 +23,9 @@
    @Select("SELECT * FROM queue where state<2 order by time desc limit 1")
    Queue selectLastQueue2();
    @Select("SELECT * FROM queue where state=1 order by time desc limit 1")
    Queue selectLastQueue3();
    @Select("SELECT * FROM queue where state<=0")
    List<Queue> selectErrorQueues();
@@ -44,7 +47,8 @@
    @Delete("delete from queue where state<=0")
    void DeleteErrorQueue();
    @Delete("delete from queue where state<2")
    void DeletefromQueue();
    @Delete("delete from queue where state<1")
    void DeleteQueue();
    @Insert("INSERT into queue  (flowcard,glassId,mateid,glasstype,glasswidth,glassheight,thickness,state,time) VALUES (#{flowcard},#{glassId},#{mateid},#{glasstype},#{glasswidth},#{glassheight},#{thickness},1,NOW())")
springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
@@ -166,7 +166,7 @@
                                peipianid.get(j).getMateid());
                        // System.out.println("peipiancage:"+peipiancage+peipianid.get(j).getMateid());
                        // System.out.println("peipiancage2:"+peipiancage2);
                        if (!peipiancage.contains("不足") && !peipiancage2.contains("不足")) {
                        if (!peipiancage.contains("不足")) {
                            List<GlassInfo> chupian = albaniaMapper.SelectOutGlass7(peipianid.get(j).getFlowcard(),
                                    peipianid.get(j).getMateid());
                            for (int k = 0; k < chupian.size(); k++) {
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -395,8 +395,8 @@
    }
    // 查询玻璃信息
    public Result SelectGlassInfo(String width, String height, String thickness, String films,String tier) {
        List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width, height, thickness, films,tier);
    public Result SelectGlassInfo(String width, String height, String thickness, String films, String tier) {
        List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width, height, thickness, films, tier);
        Map<String, Object> map = new HashMap<>();
        map.put("StorageCageAddInfo", glassInfoList);
        return Result.success(map);
@@ -449,19 +449,21 @@
        map.put("message", "200");
        return Result.success(map);
    }
    //扫码匹配成功
    public int ScanMatch(String Order, Integer Mateid,Integer tier) {
        GlassInfo glass=homeMapper.SelectCodeGlass(Order,Mateid,tier);
        System.out.println("glass:"+glass);
        System.out.println("order"+Order+"mateid"+Mateid+"tier"+tier);
        if(glass==null){
    // 扫码匹配成功
    public int ScanMatch(String Order, Integer Mateid, Integer tier) {
        GlassInfo glass = homeMapper.SelectCodeGlass(Order, Mateid, tier);
        System.out.println("glass:" + glass);
        System.out.println("order" + Order + "mateid" + Mateid + "tier" + tier);
        if (glass == null) {
            return 0;
        }else{
        int cont= QueueMapper.insertQueueCode(glass.getFlowcard(),glass.getGlassid(),glass.getMateid(),glass.getGlasstype(),glass.getWidth(),glass.getHeight(),glass.getThickness());
        glassInfoMapper.updatemeasurenumber(glass.getId());
        return cont;
     }
        } else {
            int cont = QueueMapper.insertQueueCode(glass.getFlowcard(), glass.getGlassid(), glass.getMateid(),
                    glass.getGlasstype(), glass.getWidth(), glass.getHeight(), glass.getThickness());
            glassInfoMapper.updatemeasurenumber(glass.getId());
            return cont;
        }
    }
    // 人工匹配修改测量信息
@@ -470,24 +472,26 @@
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        Map<String, Object> map = new HashMap<>();
        QueueMapper.DeleteQueue();
        String mestoplc=plcmes.getPlcParameter("MESToGaStatus").getValue();
        String A02Plc=plcmes.getPlcParameter("GaToMES").getValue();
        System.out.println("人工匹配mestoplc:"+mestoplc);
        String mestoplc = plcmes.getPlcParameter("MESToGaStatus").getValue();
        String A02Plc = plcmes.getPlcParameter("GaToMES").getValue();
        System.out.println("人工匹配mestoplc:" + mestoplc);
        // int count = homeMapper.SelectQueue();
        if (("0".equals(mestoplc)&&"0".equals(A02Plc))||("1".equals(A02Plc)&&"4".equals(mestoplc))) {
            // homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
            //         glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(), glassInfo.getMateid());
        if (("0".equals(mestoplc) && "0".equals(A02Plc)) || ("1".equals(A02Plc) && "4".equals(mestoplc))) {
            // 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());
            glassInfoMapper.updatemeasurenumber(glassInfo.getId());
           if("0".equals(mestoplc)){
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToA01").getAddress(), (short) 1);
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
            System.out.println("提前匹配");
           }else{
            System.out.println("测量匹配");
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
           }
            if ("0".equals(mestoplc)) {
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToA01").getAddress(), (short) 1);
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
                System.out.println("提前匹配");
            } else {
                System.out.println("测量匹配");
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
            }
            map.put("message", "200");
        } else {
            map.put("message", "300");
@@ -503,14 +507,35 @@
    public Result ManualTake(String glassInfo) {
        // 读取DB105区文件
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        // 移除
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 3);
        // 删除数据
        QueueMapper.DeleteErrorQueue();
        // plcmes.getPlcParameter("GaToMES").setValue("3");
        String A02Plc = plcmes.getPlcParameter("GaToMES").getValue();
        String A01Plc = plcmes.getPlcParameter("A01ToMES").getValue();
        String A02Mes = plcmes.getPlcParameter("MESToGaStatus").getValue();
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        // 移除
        if ("1".equals(A02Plc)||"2".equals(A02Plc)|"1".equals(A02Mes)) {
            Queue queue = QueueMapper.selectLastQueue3();
            if (queue != null) {
                // 减少匹配次数
                glassInfoMapper.updateGlassNumber(queue.getglasstype());
            }
            // 删除队列
            QueueMapper.DeletefromQueue();
            if("0".equals(A02Plc)){
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 0);
            }else{
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 3);
            }
            System.out.println("人工拿走A02Plc:" + A02Plc);
            map.put("message", "200");
        }else{
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToA01").getAddress(), (short) 3);
            QueueMapper.DeletefromQueue();
            map.put("message", "300");
            System.out.println("人工拿走A01Plc:" + A01Plc);
        }
        // plcmes.getPlcParameter("GaToMES").setValue("3");
        return Result.success(map);
    }
@@ -533,8 +558,8 @@
    // 删除出片队列
    public Result DeleteOutTask(Integer id) {
        int cell=homeMapper.SelectOutTaskId(id);
        int cell = homeMapper.SelectOutTaskId(id);
        UpdateStroageCageByCell(cell, 1);// 玻璃数量+1
        homeMapper.DeleteOutTask(id);
        Map<String, Object> map = new HashMap<>();
@@ -567,8 +592,8 @@
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        // 重新测量
        String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// plc请求字
        if("1".equals(PlcRequest)){
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 2);
        if ("1".equals(PlcRequest)) {
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 2);
        }
        // 删除数据
        QueueMapper.DeleteErrorQueue();
@@ -628,7 +653,7 @@
        for (Map map : RemoveErrorData) {
            String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
                    + map.get("thickness").toString() + "_" + map.get("films").toString() + "_"
                    + map.get("order").toString() + "_" + map.get("matching").toString()+ map.get("tier").toString();
                    + map.get("order").toString() + "_" + map.get("matching").toString() + map.get("tier").toString();
            String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
            String value = TypeData.get(key);
springboot-vue3/src/main/resources/config.properties
@@ -224,12 +224,11 @@
PlcInteractionState.MEStaskinformation2=DB106.52,DB106.58,DB103.128-141,DB103.142-155,DB103.156-169,DB103.184-197,DB103.212-225
#IO状态
# PlcIO.State=DB101.0.0,DB101.0.1,DB101.0.2,DB101.2.1,DB101.2.2,DB101.2.3,DB101.2.4,DB101.2.5,DB101.2.6,DB101.2.7,DB101.3.0,DB101.3.1,DB101.3.2,DB101.3.3,DB101.3.4,DB101.4.0,DB101.4.1,DB101.4.2,DB101.4.3,DB101.4.4,DB101.4.5,DB101.4.6,DB101.4.7,DB101.5.0,DB101.5.1,DB101.5.2,DB101.5.3,DB101.6.0,DB101.6.1,DB101.6.2,DB101.6.3,DB101.6.4,DB101.8.0,DB101.8.1,DB101.8.2,DB101.8.3,DB101.8.4,DB101.8.5,DB101.10.0,DB101.10.1,DB101.10.2,DB101.10.3,DB101.10.4,DB101.10.5,DB101.12.0,DB101.12.1,DB101.12.2,DB101.14.0,DB101.14.1,DB101.14.2,DB101.14.3,DB101.14.4,DB101.16.0,DB101.16.1,DB101.16.2,DB101.16.3,DB101.16.4,DB101.16.5,DB101.18.0,DB101.18.1,DB101.18.2,DB101.18.3,DB101.18.4,DB101.18.5,DB101.20.0,DB101.20.1,DB101.20.2,DB101.22.0,DB101.22.1,DB101.22.2,DB101.22.3
PlcIO.state=DB12.2.0,DB12.2.1,DB12.2.2,DB12.4.2,DB12.4.3,DB12.4.4,DB12.4.5,DB12.4.6,DB12.4.7,DB12.5.0,DB12.5.1,DB12.5.2,DB12.5.3,DB12.5.4,DB12.5.5,DB12.8.2,DB12.8.3,DB12.8.4,DB12.8.5,DB12.8.6,DB12.8.7,DB12.9.0,DB12.9.1,DB12.9.2,DB12.9.3,DB12.9.4,DB12.9.7,DB12.10.6,DB12.10.7,DB12.11.0,DB12.12.0,DB12.12.1,DB12.12.2,DB12.12.3,DB12.12.4,DB12.12.5,DB12.14.0,DB12.14.1,DB12.14.2,DB12.14.3,DB12.14.4,DB12.14.5,DB12.14.6,DB12.14.7,DB12.15.0,DB12.15.1,DB12.16.0,DB12.16.1,DB12.16.2,DB12.18.6,DB12.18.7,DB12.19.0,DB12.20.0,DB12.20.1,DB12.20.2,DB12.20.3,DB12.20.4,DB12.20.5,DB12.22.0,DB12.22.1,DB12.22.2,DB12.22.3,DB12.22.4,DB12.22.5,DB12.22.6,DB12.22.7,DB12.23.0,DB12.23.1,DB12.24.0,DB12.24.1,DB12.24.2
# PlcIO.Name=Sr.Dec,Sr.LowE,Sr.OutPos,Sr.InToX,Sr.GaToXIn,Sr.DecToXOut,Sr.GaToY1,Sr.GaToY2,Sr.GaToY3,Sr.GaToY4,Sr.DecToY,Sr.GaToY,Sr.HomeToY,SQ.LimitSwitchTop,SQ.LimitSwitchBottom,Sr.Travellimitleft,Sr.PosToLeft,Sr.DecToLeft,Sr.DecToRight,Sr.PosToRight,Sr.TravellimitRight,SQ.LimitSwitch+,SQ.LimitSwitch-,Sr.HomeToTurn,SQ.LimitSwitchToTurnTop,SQ.LimitSwitchToTurnBottom,oilPump,Sr.Travellimitleft,Sr.TravellimitRight,Sr.Home,SQ.LimitSwitch+,SQ.LimitSwitch-,biBasPosBlowUp1,biBasPosBlowUp2,biBasPosBlowUp3,biBasPosBlowUp4,biBasPosGlassUp1,biBasPosGlassUp2,biWorkPosBlowUp1,biWorkPosBlowUp2,biWorkPosBlowUp3,biWorkPosBlowUp4,biWorkPosGlassUp1,biWorkPosGlassUp2,boWorkPosBlow,boWorkPosBlowUp,boWorkPosGlassUp,Sr.Travellimitleft,Sr.TravellimitRight,Sr.Home,SQ.LimitSwitch+,SQ.LimitSwitch-,biBasPosBlowUp1,biBasPosBlowUp2,biBasPosBlowUp3,biBasPosBlowUp4,biBasPosGlassUp1,biBasPosGlassUp2,biWorkPosBlowUp1,biWorkPosBlowUp2,biWorkPosBlowUp3,biWorkPosBlowUp4,biWorkPosGlassUp1,biWorkPosGlassUp2,boWorkPosBlow,boWorkPosBlowUp,boWorkPosGlassUp,Red,Yellow,Green,FootSwitch
 PlcIO.State=DB12.2.0,DB12.2.1,DB12.2.2,DB12.4.2,DB12.4.3,DB12.4.4,DB12.4.5,DB12.4.6,DB12.4.7,DB12.5.0,DB12.5.1,DB12.5.2,DB12.5.3,DB12.5.4,DB12.5.5,DB12.8.2,DB12.8.3,DB12.8.4,DB12.8.5,DB12.8.6,DB12.8.7,DB12.9.0,DB12.9.1,DB12.9.2,DB12.9.3,DB12.9.4,DB12.9.7,DB12.10.6,DB12.10.7,DB12.11.0,DB12.12.0,DB12.12.1,DB12.12.2,DB12.12.3,DB12.12.4,DB12.12.5,DB12.14.0,DB12.14.1,DB12.14.2,DB12.14.3,DB12.14.4,DB12.14.5,DB12.14.6,DB12.14.7,DB12.15.0,DB12.15.1,DB12.16.0,DB12.16.1,DB12.16.2,DB12.18.6,DB12.18.7,DB12.19.0,DB12.20.0,DB12.20.1,DB12.20.2,DB12.20.3,DB12.20.4,DB12.20.5,DB12.22.0,DB12.22.1,DB12.22.2,DB12.22.3,DB12.22.4,DB12.22.5,DB12.22.6,DB12.22.7,DB12.23.0,DB12.23.1,DB12.24.0,DB12.24.1,DB12.24.2
 #PlcIO.Name=Sr.Dec,Sr.LowE,Sr.OutPos,Sr.InToX,Sr.GaToXIn,Sr.DecToXOut,Sr.GaToY1,Sr.GaToY2,Sr.GaToY3,Sr.GaToY4,Sr.DecToY,Sr.GaToY,Sr.HomeToY,SQ.LimitSwitchTop,SQ.LimitSwitchBottom,Sr.Travellimitleft,Sr.PosToLeft,Sr.DecToLeft,Sr.DecToRight,Sr.PosToRight,Sr.TravellimitRight,SQ.LimitSwitch+,SQ.LimitSwitch-,Sr.HomeToTurn,SQ.LimitSwitchToTurnTop,SQ.LimitSwitchToTurnBottom,oilPump,Sr.Travellimitleft,Sr.TravellimitRight,Sr.Home,SQ.LimitSwitch+,SQ.LimitSwitch-,biBasPosBlowUp1,biBasPosBlowUp2,biBasPosBlowUp3,biBasPosBlowUp4,biBasPosGlassUp1,biBasPosGlassUp2,biWorkPosBlowUp1,biWorkPosBlowUp2,biWorkPosBlowUp3,biWorkPosBlowUp4,biWorkPosGlassUp1,biWorkPosGlassUp2,boWorkPosBlow,boWorkPosBlowUp,boWorkPosGlassUp,Sr.Travellimitleft,Sr.TravellimitRight,Sr.Home,SQ.LimitSwitch+,SQ.LimitSwitch-,biBasPosBlowUp1,biBasPosBlowUp2,biBasPosBlowUp3,biBasPosBlowUp4,biBasPosGlassUp1,biBasPosGlassUp2,biWorkPosBlowUp1,biWorkPosBlowUp2,biWorkPosBlowUp3,biWorkPosBlowUp4,biWorkPosGlassUp1,biWorkPosGlassUp2,boWorkPosBlow,boWorkPosBlowUp,boWorkPosGlassUp,Red,Yellow,Green,FootSwitch
PlcIO.Name=Sr.Low, Sr.OutDec, Sr.OutPos, Sr.XCheck, Sr.XDec, Sr.XPos, Sr.H1, Sr.H2, Sr.H3, Sr.H4, Sr.YChecK, Sr.YDec, Sr.travellimitTop, Sr.travellimitBottom, Sr.YZero, Sr.Travellimitleft, Sr.PosToLeft, Sr.DecToLeft, Sr.DecToRight, Sr.PosToRight, Sr.TravellimitRight, SQ.LimitSwitch+, SQ.LimitSwitch-, Sr.HomeToTurn, SQ.LimitSwitchToTurnTop, SQ.LimitSwitchToTurnBottom, oilPump, Sr.InOrigin, SQ.LimitSwitch+, SQ.LimitSwitch-, biBasPosBlowUp1, biBasPosBlowUp2, biBasPosBlowUp3, biBasPosBlowUp4, biBasPosGlassUp1, biBasPosGlassUp2, biWorkBlowSr1, biWorkBlowSr2, biWorkBlowSr3, biWorkBlowSr4, biWorkPosBlowUp1, biWorkPosBlowUp2, biWorkPosBlowUp3, biWorkPosBlowUp4, biWorkPosGlassUp1, biWorkPosGlassUp2, boWorkPosBlow, boWorkPosBlowUp, boWorkPosGlassUp
PlcIo.Name1=LOW-E检测光电, 出口减速光电, 出口到位光电, X轴寻边, X轴出口减速, X轴出口到位, Y轴高度感应1, Y轴高度感应2, Y轴高度感应3, Y轴高度感应4, Y轴寻边, Y轴高度减速, 上极限, 下极限, Y轴原点, 左极限, 左到位, 左减速, 右减速, 右到位, 右极限, 大车正极限, 大车负极限, 翻转原点, 翻转上极限, 翻转下极限, 油泵输出, 小车原点, 小车正极限, 小车负极限, 吹气抬起气缸原点1, 吹气抬起气缸原点2, 吹气抬起气缸原点3, 吹气抬起气缸原点4, 玻璃抬起气缸原点1, 玻璃抬起气缸原点2, 吹气感应1, 吹气感应2, 吹气感应3, 吹气感应4, 吹气抬起气缸动点1, 吹气抬起气缸动点2, 吹气抬起气缸动点3, 吹气抬起气缸动点4, 玻璃抬起气缸动点1, 玻璃抬起气缸动点2, 吹气输出, 吹气抬起输出, 玻璃抬起输出
# PlcIo.Name1=A01减速光电,LOW-E检测光电,A01出口到位光电,A02X轴入口减速光电,A02X轴入口测量光电,A02X轴出口减速光电,A02Y轴粗定位1(最低位),A02Y轴粗定位2,A02Y轴粗定位3,A02Y轴粗定位4(最高位),A02Y轴减速光电,A02Y轴测量光电,A02Y轴原点,A02Y轴上极限,A02Y轴下极限,B01左极限,B01左到位,B01左减速,B01右减速,B01右到位,B01右极限,B01大车正极限,B01大车负极限,B01翻转原点,B01翻转上极限,B01翻转下极限,B01油泵输出,C01左极限,C01右极限,C01小车原点,C01小车正极限,C01小车负极限,C01吹气抬起气缸原点1,C01吹气抬起气缸原点2,C01吹气抬起气缸原点3,C01吹气抬起气缸原点4,C01玻璃抬起气缸原点1,C01玻璃抬起气缸原点2,C01吹气抬起气缸原点1,C01吹气抬起气缸原点2,C01吹气抬起气缸原点3,C01吹气抬起气缸原点4,C01玻璃抬起气缸原点1,C01玻璃抬起气缸原点2,C01吹气输出,C01吹气抬起输出,C01玻璃抬起输出,C02左极限,C02右极限,C02小车原点,C02小车正极限,C02小车负极限,C02吹气抬起气缸原点1,C02吹气抬起气缸原点2,C02吹气抬起气缸原点3,C02吹气抬起气缸原点4,C02玻璃抬起气缸原点1,C02玻璃抬起气缸原点2,C02吹气抬起气缸原点1,C02吹气抬起气缸原点2,C02吹气抬起气缸原点3,C02吹气抬起气缸原点4,C02玻璃抬起气缸原点1,C02玻璃抬起气缸原点2,C02吹气输出,C02吹气抬起输出,C02玻璃抬起输出,红灯,黄灯,绿灯,脚踏开关
#PlcIo.Name1=A01减速光电,LOW-E检测光电,A01出口到位光电,A02X轴入口减速光电,A02X轴入口测量光电,A02X轴出口减速光电,A02Y轴粗定位1(最低位),A02Y轴粗定位2,A02Y轴粗定位3,A02Y轴粗定位4(最高位),A02Y轴减速光电,A02Y轴测量光电,A02Y轴原点,A02Y轴上极限,A02Y轴下极限,B01左极限,B01左到位,B01左减速,B01右减速,B01右到位,B01右极限,B01大车正极限,B01大车负极限,B01翻转原点,B01翻转上极限,B01翻转下极限,B01油泵输出,C01左极限,C01右极限,C01小车原点,C01小车正极限,C01小车负极限,C01吹气抬起气缸原点1,C01吹气抬起气缸原点2,C01吹气抬起气缸原点3,C01吹气抬起气缸原点4,C01玻璃抬起气缸原点1,C01玻璃抬起气缸原点2,C01吹气抬起气缸原点1,C01吹气抬起气缸原点2,C01吹气抬起气缸原点3,C01吹气抬起气缸原点4,C01玻璃抬起气缸原点1,C01玻璃抬起气缸原点2,C01吹气输出,C01吹气抬起输出,C01玻璃抬起输出,C02左极限,C02右极限,C02小车原点,C02小车正极限,C02小车负极限,C02吹气抬起气缸原点1,C02吹气抬起气缸原点2,C02吹气抬起气缸原点3,C02吹气抬起气缸原点4,C02玻璃抬起气缸原点1,C02玻璃抬起气缸原点2,C02吹气抬起气缸原点1,C02吹气抬起气缸原点2,C02吹气抬起气缸原点3,C02吹气抬起气缸原点4,C02玻璃抬起气缸原点1,C02玻璃抬起气缸原点2,C02吹气输出,C02吹气抬起输出,C02玻璃抬起输出,红灯,黄灯,绿灯,脚踏开关
#A01参数
PlcA01.param=DB101.44,DB101.48,DB101.52,DB101.56,DB101.60
#A01按钮