wu
2024-04-10 bf3d6101a58cdec0e81f369d94b8191648813c41
Merge branch 'master' of http://10.153.19.25:10101/r/Albania_Mes
24个文件已修改
3个文件已添加
3243 ■■■■ 已修改文件
Alarm.json 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/api/home.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/configuration/AlbaniaServo.json 1207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/configuration/Sign.json 517 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/configuration/parameter2.json 250 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/en-US.json 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/zh-CN.json 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/router/index.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue 392 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/ManualonePosition.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/Sign.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/alarm.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/home/index.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/MyGenerator.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/S7control.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/application.properties 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/config.properties 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Alarm.json
@@ -1,618 +1,653 @@
{
  "content": [
    {
      "name": "D01 VFD error",
      "name": "Emergency Stop",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02 VFD error",
      "name": "DB15.0.1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03 VFD error",
      "name": "DB15.0.2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D04 VFD error",
      "name": "DB15.0.3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D05 VFD error",
      "name": "DB15.0.4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D06 VFD error",
      "name": "DB15.0.5",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 VFD error",
      "name": "DB15.0.6",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 VFD error",
      "name": "DB15.0.7",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 VFD error",
      "name": "DB15.1.0",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 VFD error",
      "name": "DB15.1.1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 servo turn error",
      "name": "DB15.1.2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 servo turn error",
      "name": "DB15.1.3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 servo travel error",
      "name": "DB15.1.4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 servo travel error",
      "name": "DB15.1.5",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 servo travel error",
      "name": "DB15.1.6",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 servo travel error",
      "name": "DB15.1.7",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D01 DEC error",
      "name": "A01_FVDAlarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D01 pos error",
      "name": "A01_LowAlarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02 DEC error",
      "name": "A01_OutJam",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02 pos error",
      "name": "DB15.2.3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03 DEC error",
      "name": "DB15.2.4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03 pos error",
      "name": "DB15.2.5",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D04 DEC error",
      "name": "DB15.2.6",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D04 pos error",
      "name": "DB15.2.7",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D05 DEC error",
      "name": "DB15.3.0",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D05 pos error",
      "name": "DB15.3.1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D06 DEC error",
      "name": "DB15.3.2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D06 pos error",
      "name": "DB15.3.3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "DB15.3.4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "DB15.3.5",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "DB15.3.6",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "DB15.3.7",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02_ServoXAlarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 DEC error",
      "name": "A02_ServoYAlarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 pos error",
      "name": "A02_InJam",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 DEC error",
      "name": "A02_OutJam",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 pos error",
      "name": "A02_limiBottom",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 IN DEC error",
      "name": "A02_LimitTop",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 IN pos error",
      "name": "DB15.4.6",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 OUT DEC error",
      "name": "DB15.4.7",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 OUT pos error",
      "name": "DB15.5.0",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 IN DEC error",
      "name": "DB15.5.1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 IN pos error",
      "name": "DB15.5.2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 OUT DEC error",
      "name": "DB15.5.3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 OUT pos error",
      "name": "DB15.5.4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D01 Scan glass exceeding limit",
      "name": "DB15.5.5",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "emergency stop alarm",
      "name": "DB15.5.6",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "More glass than known",
      "name": "DB15.5.7",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "less glass than known",
      "name": "B01_V90Alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D01 conveyor timeout alarm",
      "name": "B01_FVDAlarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02 conveyor timeout alarm",
      "name": "B01_I950Alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03 conveyor timeout alarm",
      "name": "B01_LeftLimit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D04 conveyor timeout alarm",
      "name": "B01_RightLimit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D05 conveyor timeout alarm",
      "name": "B01_TurnTopLimit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D06 conveyor timeout alarm",
      "name": "B01_TurnBottomLimit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 conveyor timeout alarm",
      "name": "B01_Limit+",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 conveyor timeout alarm",
      "name": "B01_Limit-",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 conveyor timeout alarm",
      "name": "B01_LeftJam",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 conveyor timeout alarm",
      "name": "B01_RightJam",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 conveyor Left safety alarm",
      "name": "DB15.7.3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 conveyor right safety alarm",
      "name": "DB15.7.4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 conveyor Left safety alarm",
      "name": "DB15.7.5",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 conveyor right safety alarm",
      "name": "DB15.7.6",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "1# buffer safety alarm",
      "name": "DB15.7.7",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "2# buffer safety alarm",
      "name": "C01_V90Alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "3# buffer safety alarm",
      "name": "C01_FVDAlarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "4# buffer safety alarm",
      "name": "C01_LeftLimit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01.SR right in pos error",
      "name": "C01_RightLimit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02.SR left in pos error",
      "name": "C01_Limit+",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.SR left in pos error",
      "name": "C01_Limit-",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.SR left dec error",
      "name": "C01_BlowAlarm1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.SR right dec error",
      "name": "C01_BlowAlarm2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.SR right in pos error",
      "name": "C01_BlowAlarm3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02.SR left in pos error",
      "name": "C01_BlowAlarm4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02.SR left dec error",
      "name": "C01_BlowUpAlarm1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02.SR right dec error",
      "name": "C01_BlowUpAlarm2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    }
    ,{
      "name": "B02.SR right in pos error",
      "name": "C01_GlassUpAlarm1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A01 servo turn  homed",
      "name": "C01_GlassUpAlarm2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A02 servo turn  homed",
      "name": "C01_GlassUpAlarm3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A01 servo travel  homed",
      "name": "C01_GlassUpAlarm4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A02 servo travel  homed",
      "name": "C02_V90Alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "B01 servo travel  homed",
      "name": "C02_FVDAlarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "B02 servo travel  homed",
      "name": "C02_LeftLimit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "resetDelay",
      "name": "C02_RightLimit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A01 travel Negative limit",
      "name": "C02_Limit+",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A01 travel Positive limit",
      "name": "C02_Limit-",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A01 turn up limit",
      "name": "C02_BlowAlarm1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A01 turn down limit",
      "name": "C02_BlowAlarm2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A02 travel Negative limit",
      "name": "C02_BlowAlarm3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A02 travel Positive limit",
      "name": "C02_BlowAlarm4",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A02 turn up limit",
      "name": "C02_BlowUpAlarm1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    } ,{
      "name": "A02 turn down limit",
      "name": "C02_BlowUpAlarm2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },{
      "name": "B01 travel Negative limit",
      "name": "C02_GlassUpAlarm1",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },{
      "name": "B01 travel Positive limit",
      "name": "C02_GlassUpAlarm2",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },{
      "name": "B02 travel Negative limit",
      "name": "C02_GlassUpAlarm3",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },{
      "name": "B02 travel Positive limit",
      "name": "C02_GlassUpAlarm4",
      "value": "1",
      "state": "1",
      "type": "3",
@@ -621,8 +656,8 @@
  ],
  "address": [
    {
      "name": "DB104.0.0",
      "count": 91
      "name": "DB15.0.0",
      "count": 96
    }
  ]
}
Albania_Mes-ui/src/api/home.js
@@ -1,6 +1,22 @@
import request from "../utils/request";
export function WriteWord(address,value) {
    return request({
        url: '/home/WriteWord?address='+address+'&value='+value,
        method: 'get',
        data:""
    })
}
export function WriteBit(address,value) {
    return request({
        url: '/home/WriteBit?address='+address+'&value='+value,
        method: 'get',
        data:""
    })
}
export function SelectPermissionByUserName(username) {
    return request({
        url: '/home/SelectPermissionByUserName?username='+username,
Albania_Mes-ui/src/configuration/AlbaniaServo.json
New file
@@ -0,0 +1,1207 @@
[
  [
    {
      "USname": "",
      "CNname": "B01翻转当前位置",
      "address": "DB10.1988",
      "min": 0,
      "max": 99999,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "B01行走电机当前位置",
      "address": "DB10.1992",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "C01当前位置",
      "address": "DB10.1996",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "A02X轴当前位置",
      "address": "DB10.2000",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "A02Y周当前位置",
      "address": "DB10.2008",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "C02当前位置",
      "address": "DB10.2016",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    }
  ],
  [
    {
      "USname": "",
      "CNname": "输送线高速速度",
      "address": "DB10.1664",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线中速速度",
      "address": "DB10.1668",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线低速速度",
      "address": "DB10.1672",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线手动速度",
      "address": "DB10.1676",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "电机最大速度",
      "address": "DB10.1680",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "button": {
        "USname": "",
        "CNname": "故障复位",
        "value": 0,
        "address": "DB10.42.2",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "JOG使能",
        "value": 0,
        "address": "DB10.44.0",
        "state": 1
      }
    }
  ],
  [
    {
      "USname": "",
      "CNname": "X轴光电总长度",
      "address": "DB10.248",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴光电总长度",
      "address": "DB10.252",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴粗定位1(最低位)",
      "address": "DB10.256",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴粗定位2",
      "address": "DB10.260",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴粗定位3",
      "address": "DB10.264",
      "min": 0,
      "max": 9999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴粗定位4(最高位)",
      "address": "DB10.268",
      "min": 0,
      "max": 9999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "测量台定位位置",
      "address": "DB10.448",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "X轴手动速度",
      "address": "DB10.1744",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "X轴自动高速",
      "address": "DB10.1748",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "X轴自动低速",
      "address": "DB10.1752",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "X轴自动返回速度",
      "address": "DB10.1756",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴手动速度",
      "address": "DB10.1760",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴自动高速",
      "address": "DB10.1764",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴自动低速",
      "address": "DB10.1768",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "Y轴自动返回速度",
      "address": "DB10.1772",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "button": {
        "USname": "",
        "CNname": "人工移除玻璃",
        "value": 0,
        "address": "DB10.60.2",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "X轴故障复位",
        "value": 0,
        "address": "DB10.68.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "Y轴故障复位",
        "value": 0,
        "address": "DB10.68.1",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "X轴JOG使能",
        "value": 0,
        "address": "DB10.70.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "Y轴JOG使能",
        "value": 0,
        "address": "DB10.70.1",
        "state": 1
      }
    }
  ],
  [
    {
      "USname": "",
      "CNname": "大车到1#笼子第一格距离",
      "address": "DB10.448",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "大车到2#笼子第一格距离",
      "address": "DB10.452",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "大车到3#笼子第一格距离",
      "address": "DB10.456",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "大车到4#笼子第一格距离",
      "address": "DB10.460",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线高速速度",
      "address": "DB10.1684",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线中速速度",
      "address": "DB10.1688",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线低速速度",
      "address": "DB10.1692",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线手动速度",
      "address": "DB10.1696",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "电机最大速度",
      "address": "DB10.1700",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "翻转手动速度",
      "address": "DB10.1776",
      "min": 0,
      "max": 100,
      "unit": "°/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "翻转自动速度",
      "address": "DB10.1780",
      "min": 0,
      "max": 100,
      "unit": "°/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "行走电机手动速度",
      "address": "DB10.1792",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "行走电机远距离速度",
      "address": "DB10.1796",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "行走电机近距离速度",
      "address": "DB10.1800",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "高速行走翻转角度",
      "address": "DB10.1632",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "低速行走翻转角度",
      "address": "DB10.1636",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送台角度",
      "address": "DB10.1640",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "笼子角度",
      "address": "DB10.1644",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "button": {
        "USname": "",
        "CNname": "输送手动JOG使能",
        "value": 0,
        "address": "DB10.80.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "翻转手动JOG使能",
        "value": 0,
        "address": "DB10.88.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "行走手动JOG使能",
        "value": 0,
        "address": "DB10.88.1",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "输送故障复位",
        "value": 0,
        "address": "DB10.78.2",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "翻转故障复位",
        "value": 0,
        "address": "DB10.86.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "行走故障复位",
        "value": 0,
        "address": "DB10.86.1",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "B01到1#笼子距离定位",
        "value": 0,
        "address": "DB10.2050.4",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "B01到2#笼子距离定位",
        "value": 0,
        "address": "DB10.2050.5",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "B01到3#笼子距离定位",
        "value": 0,
        "address": "DB10.2050.6",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "B01到4#笼子距离定位",
        "value": 0,
        "address": "DB10.2050.7",
        "state": 1
      }
    }
  ],
  [
    {
      "USname": "",
      "CNname": "输送线高速速度",
      "address": "DB10.1704",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线中速速度",
      "address": "DB10.1708",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线低速速度",
      "address": "DB10.1712",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线手动速度",
      "address": "DB10.1716",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "电机最大速度",
      "address": "DB10.1720",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "定位电机手动速度",
      "address": "DB10.1808",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "定位电机自动速度",
      "address": "DB10.1812",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "C01到1#笼子第一格距离",
      "address": "DB10.192",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "C01到2#笼子第一格距离",
      "address": "DB10.196",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "C01到3#笼子第一格距离",
      "address": "DB10.200",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "1#笼子栅格间距",
      "address": "DB10.208",
      "min": 0,
      "max": 100,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "2#笼子栅格间距",
      "address": "DB10.212",
      "min": 0,
      "max": 100,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "3#笼子栅格间距",
      "address": "DB10.216",
      "min": 0,
      "max": 100,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "1#笼子角度",
      "address": "DB10.232",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "2#笼子角度",
      "address": "DB10.236",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "3#笼子角度",
      "address": "DB10.240",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "1#笼子栅格数量",
      "address": "DB10.224",
      "min": 0,
      "max": 100,
      "unit": "格",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "2#笼子栅格数量",
      "address": "DB10.226",
      "min": 0,
      "max": 100,
      "unit": "格",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "3#笼子栅格数量",
      "address": "DB10.228",
      "min": 0,
      "max": 100,
      "unit": "格",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "button": {
        "USname": "",
        "CNname": "输送手动JOG使能",
        "value": 0,
        "address": "DB10.98.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "定位手动JOG使能",
        "value": 0,
        "address": "DB10.106.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "输送故障复位",
        "value": 0,
        "address": "DB10.96.2",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "定位故障复位",
        "value": 0,
        "address": "DB10.104.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "1#笼子距离定位",
        "value": 0,
        "address": "DB10.2050.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "2#笼子距离定位",
        "value": 0,
        "address": "DB10.2050.1",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "3#笼子距离定位",
        "value": 0,
        "address": "DB10.2050.2",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "1#笼子角度定位",
        "value": 0,
        "address": "DB10.2048.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "2#笼子角度定位",
        "value": 0,
        "address": "DB10.2048.1",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "3#笼子角度定位",
        "value": 0,
        "address": "DB10.2048.2",
        "state": 1
      }
    }
  ],
  [
    {
      "USname": "",
      "CNname": "输送线高速速度",
      "address": "DB10.1724",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线中速速度",
      "address": "DB10.1728",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线低速速度",
      "address": "DB10.1732",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "输送线手动速度",
      "address": "DB10.1736",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "电机最大速度",
      "address": "DB10.1740",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "定位电机手动速度",
      "address": "DB10.1824",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "定位电机自动速度",
      "address": "DB10.1828",
      "min": 0,
      "max": 100,
      "unit": "m/min",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "C02到4#笼子第一格距离",
      "address": "DB10.204",
      "min": 0,
      "max": 99999,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "4#笼子栅格间距",
      "address": "DB10.220",
      "min": 0,
      "max": 100,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "4#笼子角度",
      "address": "DB10.244",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "4#笼子栅格数量",
      "address": "DB10.230",
      "min": 0,
      "max": 100,
      "unit": "格",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "button": {
        "USname": "",
        "CNname": "输送手动JOG使能",
        "value": 0,
        "address": "DB10.116.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "定位手动JOG使能",
        "value": 0,
        "address": "DB10.124.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "输送故障复位",
        "value": 0,
        "address": "DB10.114.2",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "定位故障复位",
        "value": 0,
        "address": "DB10.122.0",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "4#笼子距离定位",
        "value": 0,
        "address": "DB10.2050.3",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "4#笼子角度定位",
        "value": 0,
        "address": "DB10.2048.3",
        "state": 1
      }
    }
  ],
  [
    {
      "USname": "",
      "CNname": "大车到中空线1距离",
      "address": "DB10.2052.0",
      "min": 0,
      "max": 100,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "大车到中空线2距离",
      "address": "DB10.2056.0",
      "min": 0,
      "max": 100,
      "unit": "mm",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "中空线1翻转角度",
      "address": "DB10.1648.0",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "USname": "",
      "CNname": "中空线2翻转角度",
      "address": "DB10.1652.0",
      "min": 0,
      "max": 100,
      "unit": "°",
      "type": "0",
      "value": "0",
      "value2": "0"
    },
    {
      "button": {
        "USname": "",
        "CNname": "中空线1距离定位",
        "value": 0,
        "address": "DB10.2048.6",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "中空线2距离定位",
        "value": 0,
        "address": "DB10.2048.7",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "中空线1角度定位",
        "value": 0,
        "address": "DB10.2048.4",
        "state": 1
      }
    },
    {
      "button": {
        "USname": "",
        "CNname": "中空线2角度定位",
        "value": 0,
        "address": "DB10.2048.5",
        "state": 1
      }
    }
  ]
]
Albania_Mes-ui/src/configuration/Sign.json
@@ -1,7 +1,7 @@
{
  "sign": [
    {
      "name": "D01.SR dec",
      "name": "A01Sr.Low-E",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -9,7 +9,7 @@
      "unit":"I10.0"
    },
    {
      "name": "D01.SR in pos",
      "name": "A01Sr.dec",
      "value": "0",
      "state": "1",
      "type": "1",
@@ -17,7 +17,7 @@
      "unit":"I10.1"
    },
    {
      "name": "D02.SR dec",
      "name": "A01Sr.Pos",
      "value": "0",
      "state": "1",
      "type": "1",
@@ -26,7 +26,7 @@
      
    },
    {
      "name": "D02.SR in pos",
      "name": "A02Sr.YZero",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -34,7 +34,7 @@
      "unit":"I10.3"
    },
    {
      "name": "D03.SR into",
      "name": "A02Sr.YH1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -42,7 +42,7 @@
      "unit":"I10.4"
    },
    {
      "name": "D03.SR dec",
      "name": "A02Sr.YH2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -50,7 +50,7 @@
      "unit":"I10.5"
    },
    {
      "name": "D03.SR in pos",
      "name": "A02Sr.YH3",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -58,7 +58,7 @@
      "unit":"I10.6"
    },
    {
      "name": "D04.SR dec",
      "name": "A02Sr.YH4",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -66,7 +66,7 @@
      "unit":"I10.7"
    },
    {
      "name": "D04.SR in pos",
      "name": "A02Sr.LimitTop",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -75,7 +75,7 @@
    },
    {
      "name": "D05.SR dec",
      "name": "A02Sr.LimiBottom",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -83,7 +83,7 @@
      "unit":"I11.1"
    },
    {
      "name": "D05.SR in pos",
      "name": "A02Sr.Check",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -91,7 +91,7 @@
      "unit":"I11.2"
    },
    {
      "name": "D06.SR dec",
      "name": "A02Sr.YDec",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -99,7 +99,7 @@
      "unit":"I11.3"
    },
    {
      "name": "D06.SR in pos",
      "name": "A02Sr.Xin",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -107,7 +107,7 @@
      "unit":"I11.4"
    },
    {
      "name": "B01.SR in dec",
      "name": "A02Sr.XCheck",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -115,7 +115,7 @@
      "unit":"I11.5"
    },
    {
      "name": "B01.SR in in pos",
      "name": "A02Sr.XDec",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -123,7 +123,7 @@
      "unit":"I11.6"
    },
    {
      "name": "B01.SR out dec",
      "name": "A02Sr.XPos",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -131,7 +131,7 @@
      "unit":"I11.7"
    },
    {
      "name": "B01.SR out in pos",
      "name": "C01Sr.Zero",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -140,7 +140,7 @@
   
    },
    {
      "name": "B01.SR turn on",
      "name": "C01YV1.Bas1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -148,7 +148,7 @@
      "unit":"I124.1"
    },
    {
      "name": "B01.SR turn off",
      "name": "C01YV1.Work1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -156,7 +156,7 @@
      "unit":"I124.2"
    },
    {
      "name": "B01.SR up",
      "name": "C01.YV1.Bas2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -164,7 +164,7 @@
      "unit":"I124.3"
    },
    {
      "name": "B01.SR down",
      "name": "C01.YV1.Work2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -172,7 +172,7 @@
      "unit":"I124.4"
    },
    {
      "name": "B02.SR out dec",
      "name": "C01.YV2.Bas1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -180,7 +180,7 @@
      "unit":"I124.5"
    },
    {
      "name": "B02.SR out in pos",
      "name": "C01.YV2.Bas2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -188,7 +188,7 @@
      "unit":"I124.6"
    },
    {
      "name": "B02.SR in dec",
      "name": "C01.YV2.Bas3",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -196,7 +196,7 @@
      "unit":"I124.7"
    },
    {
      "name": "B02.SR in in pos",
      "name": "C01.YV2.Bas4",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -204,7 +204,7 @@
      "unit":"I125.0"
    },
    {
      "name": "B02.SR turn on",
      "name": "C01.YV2.Work1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -212,7 +212,7 @@
      "unit":"I125.1"
    },
    {
      "name": "B02.SR turn off",
      "name": "C01.YV2.Work2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -220,7 +220,7 @@
      "unit":"I125.2"
    },
    {
      "name": "B02.SR up",
      "name": "C01.YV2.Work3",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -228,7 +228,7 @@
      "unit":"I125.3"
    },
    {
      "name": "B02.SR down",
      "name": "C01.YV2.Work4",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -236,7 +236,7 @@
      "unit":"I125.4"
    },
    {
      "name": "B01.SR in safety",
      "name": "C01.YV.Blow1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -244,7 +244,7 @@
      "unit":"I125.5"
    },
    {
      "name": "B01.SR out safety",
      "name": "C01.YV.Blow2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -252,7 +252,7 @@
      "unit":"I125.6"
    },
    {
      "name": "B02.SR in safety",
      "name": "C01.YV.Blow3",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -260,7 +260,7 @@
      "unit":"I125.7"
    },
    {
      "name": "SB.start(+)",
      "name": "C01.YV.Blow4",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -268,7 +268,7 @@
      "unit":"I126.0"
    },
    {
      "name": "SB.stop(1)",
      "name": "C01.SR.Limit1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -276,7 +276,7 @@
      "unit":"I126.1"
    },
    {
      "name": "SB.reset",
      "name": "C02.Sr.Zero",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -284,7 +284,7 @@
      "unit":"I126.2"
    },
    {
      "name": "SB.auto/manul",
      "name": "C02.YV1.Bas1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -292,7 +292,7 @@
      "unit":"I126.3"
    },
    {
      "name": "space",
      "name": "C02.YV1.Work1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -300,7 +300,7 @@
      "unit":"I126.4"
    },
    {
      "name": "SB.emg",
      "name": "C02.YV1.Bas2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -308,7 +308,7 @@
      "unit":"I126.5"
    },
    {
      "name": "D01.SB.start",
      "name": "C02.YV1.Work2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -316,7 +316,7 @@
      "unit":"I126.6"
    },
    {
      "name": "D06.SB.start",
      "name": "C02.Sr.limit1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -324,7 +324,7 @@
      "unit":"I126.7"
    },
    {
      "name": "B02.SR out safety",
      "name": "C02.YV2.Bas1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -332,7 +332,7 @@
      "unit":"I127.0"
    },
    {
      "name": "SafetyDoor.requset",
      "name": "C02.YV2.Bas2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -340,7 +340,7 @@
      "unit":"I127.1"
    },
    {
      "name": "SafetyDoor.confirm",
      "name": "C02.YV2.Bas3",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -348,7 +348,7 @@
      "unit":"I127.2"
    },
    {
      "name": "SafetyDoor.reset",
      "name": "C02.YV2.Bas4",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -356,7 +356,7 @@
      "unit":"I127.3"
    },
    {
      "name": "space",
      "name": "C02.YV2.Work1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -364,7 +364,7 @@
      "unit":"I127.4"
    },
    {
      "name": "space",
      "name": "C02.YV2.Work2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -372,7 +372,7 @@
      "unit":"I127.5"
    },
    {
      "name": "space",
      "name": "C02.YV2.Work3",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -380,7 +380,7 @@
      "unit":"I127.6"
    },
    {
      "name": "space",
      "name": "C02.YV2.Work4",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -388,7 +388,7 @@
      "unit":"I127.7"
    },
    {
      "name": "A01.SR left dec",
      "name": "C02.YV.Blow1",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -396,7 +396,7 @@
      "unit":"I128.0"
    },
    {
      "name": "A01.SR left in pos",
      "name": "C02.YV.Blow2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -404,7 +404,7 @@
      "unit":"I128.1"
    },
    {
      "name": "A01.SR left safety",
      "name": "C02.YV.Blow3",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -412,7 +412,7 @@
      "unit":"I128.2"
    },
    {
      "name": "A01.SR right dec",
      "name": "C02.YV.Blow4",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -420,7 +420,7 @@
      "unit":"I128.3"
    },
    {
      "name": "A01.SR right in pos",
      "name": "bStart",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -428,7 +428,7 @@
      "unit":"I128.4"
    },
    {
      "name": "A01.SR right safety",
      "name": "bStop",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -436,7 +436,7 @@
      "unit":"I128.5"
    },
    {
      "name": "A01.SR turn home",
      "name": "bEstop",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -444,7 +444,7 @@
      "unit":"I128.6"
    },
    {
      "name": "A01.SR turn up",
      "name": "bReset",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -452,7 +452,7 @@
      "unit":"I128.7"
    },
    {
      "name": "A01.SR turn down",
      "name": "bAuto/Manual",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -460,7 +460,7 @@
      "unit":"I129.0"
    },
    {
      "name": "A01.SR travel home",
      "name": "bPause",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -468,7 +468,7 @@
      "unit":"I129.1"
    },
    {
      "name": "A01.SR travel left dec",
      "name": "C01.Sr.Limit2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -476,7 +476,7 @@
      "unit":"I129.2"
    },
    {
      "name": "A01.SR travel left limit",
      "name": "C02.Sr.Limit2",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -484,7 +484,7 @@
      "unit":"I129.3"
    },
    {
      "name": "A01.SR travel right dec",
      "name": "A01.FootControl",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -492,7 +492,7 @@
      "unit":"I129.4"
    },
    {
      "name": "A01.SR travel right limit",
      "name": "B01.Sr.DecLeft",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -500,7 +500,7 @@
      "unit":"I129.5"
    },
    {
      "name": "space",
      "name": "B01.Sr.PosLeft",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -508,7 +508,7 @@
      "unit":"I129.6"
    },
    {
      "name": "space",
      "name": "B01.Sr.SafetyLeft",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -517,7 +517,7 @@
    }
    ,
    {
      "name": "A02.SR left dec",
      "name": "B01.Sr.DecRight",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -526,7 +526,7 @@
    }
    ,
    {
      "name": "A02.SR left in pos",
      "name": "B01.Sr.PosRight",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -535,7 +535,7 @@
    }
    ,
    {
      "name": "A02.SR left safety",
      "name": "B01.Sr.SafetyRight",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -544,7 +544,7 @@
    }
    ,
    {
      "name": "A02.SR right dec",
      "name": "B01.Sr.TurnZero",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -553,7 +553,7 @@
    }
    ,
    {
      "name": "A02.SR right in pos",
      "name": "B01.Sr.TurnLimitTop",
      "value": "1",
      "state": "1",
      "type": "1",
@@ -562,389 +562,14 @@
    }
    ,
    {
      "name": "A02.SR right safety",
      "name": "B01.Sr.TurnLimitBottom",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.5"
    }
    ,
    {
      "name": "A02.SR turn home",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.6"
    }
    ,
    {
      "name": "A02.SR turn up",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.7"
    }
    ,
    {
      "name": "A02.SR turn down",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I131.0"
    }
    ,
    {
      "name": "A02.SR travel home",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I131.1"
    }
    ,
    {
      "name": "A02.SR travel left dec",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I131.2"
    }
    ,
    {
      "name": "A02.SR travel left limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I131.3"
    }
    ,
    {
      "name": "A02.SR travel right dec",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I131.4"
    }
    ,
    {
      "name": "A02.SR travel right limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I131.5"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I131.6"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I131.7"
    }
    ,
    {
      "name": "B01.SR origin",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I132.0"
    }
    ,
    {
      "name": "B01.SR left limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I132.1"
    }
    ,
    {
      "name": "B01.SR right limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I132.2"
    }
    ,
    {
      "name": "B02.SR origin",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I132.3"
    }
    ,
    {
      "name": "B02.SR left limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I132.4"
    }
    ,
    {
      "name": "B02.SR right limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I132.5"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I132.6"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I132.7"
    }
    ,
    {
      "name": "LED.red",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q4.0"
    }
    ,
    {
      "name": "LED.green",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q4.1"
    }
    ,
    {
      "name": "LED.yellow",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q4.2"
    }
    ,
    {
      "name": "D01.LED.green",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q4.3"
    }
    ,
    {
      "name": "D06.LED.green",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q4.4"
    },
    {
      "name": "B01.YV.turn",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q4.5"
    }
    ,
    {
      "name": "B01.YV.up down",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q4.6"
    }
    ,
    {
      "name": "B01.YV.gassing",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q4.7"
    }
    ,
    {
      "name": "B02.YV.turn",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q5.0"
    }
    ,
    {
      "name": "B02.YV.up down",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q5.1"
    }
    ,
    {
      "name": "B02.YV.gassing",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q5.2"
    }
    ,
    {
      "name": "SafetyDoor.Led",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q5.3"
    }
    ,
    {
      "name": "SafetyDoor.open",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q5.4"
    }
    ,
    {
      "name": "D01 SB.confirm",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q5.5"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q5.6"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q5.7"
    }
    ,
    {
      "name": "A01 oilPump",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q126.0"
    }
    ,
    {
      "name": "A01 motorCtr",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q126.1"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q126.2"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q126.3"
    }
    ,
    {
      "name": "A02 oilPump",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q127.0"
    }
    ,
    {
      "name": "A02 motorCtr",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q127.1"
    }
    ,
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q127.2"
    },
    {
      "name": "space",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"Q127.3"
    }
    
  ],
Albania_Mes-ui/src/configuration/parameter2.json
@@ -3,8 +3,8 @@
    {
      "button": {
        "name": "D01手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -12,8 +12,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "3"
@@ -23,16 +23,16 @@
      "read": 33,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "D02手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -40,8 +40,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "3"
@@ -51,16 +51,16 @@
      "read": 33,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "D03手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -68,8 +68,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "3"
@@ -79,16 +79,16 @@
      "read": 33,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "D04手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -96,8 +96,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "3"
@@ -107,16 +107,16 @@
      "read": 33,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "D05手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -124,8 +124,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "3"
@@ -135,16 +135,16 @@
      "read": 33,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "D06手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -152,8 +152,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "3"
@@ -163,16 +163,16 @@
      "read": 33,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "A01手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -180,8 +180,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "3"
@@ -191,26 +191,24 @@
      "read": 33,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    },
    {
      "name": "ID2",
      "read": 33,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "A02手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -218,8 +216,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "3"
@@ -229,26 +227,24 @@
      "read": "ID28",
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "B01手动状态",
        "value": 0,
"value2": 0
        "value": 0,
        "value2": 0
      },
      "type": "4"
    },
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0
        "value": 0,
        "value2": 0
      },
      "type": "3"
    },
@@ -257,16 +253,16 @@
      "read": "ID29",
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "B02手动状态",
        "value": 0,
"value2": 0,
        "value": 0,
        "value2": 0,
        "address": "DB10.0"
      },
      "type": "4"
@@ -274,9 +270,8 @@
    {
      "button": {
        "name": "清除ID",
        "value": 0,
"value2": 0
        "value": 0,
        "value2": 0
      },
      "type": "3"
    },
@@ -285,8 +280,8 @@
      "read": "ID210",
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
@@ -294,17 +289,16 @@
      "name": "扫描枪扫码的ID",
      "read": 0,
      "sending": 0,
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    },
    {
      "name": "ID1",
      "read": 66,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
@@ -312,17 +306,16 @@
      "name": "扫描枪扫码的ID",
      "read": 0,
      "sending": 0,
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    },
    {
      "name": "ID2",
      "read": 666,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
@@ -331,79 +324,72 @@
      "read": 333,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    },
    {
      "name": "A02所在格子",
      "read": 333,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    },
    {
      "name": "B01所在格子",
      "read": 333,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    },
    {
      "name": "B02所在格子",
      "read": 333,
      "sending": 0,
      "type": "0",
      "value": 0,
"value2": 0
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "A01终止/继续",
        "value": 0,
        "address": "DB10.0",
        "type": "66"
      }
    }
  ],
  [
    {
      "button": {
        "name": "A02终止/继续",
        "value": 0,
        "address": "DB10.0",
        "type": "66"
      }
    }
  ],
  [
    {
      "name": "存片等待延时",
      "read": 666,
      "sending": 0,
      "type": "0",
      "value": 0,
      "value2": 0
    }
  ],
  [
    {
      "button": {
        "name": "软急停",
        "value": 0,
        "address": "DB10.0",
        "type": "66"
      }
    }
  ]
  ,
      [
      {
        "button": {
          "name": "A01终止/继续",
          "value":0,
          "address":"DB10.0",
          "type":"66"
        }
      }],
      [
      {
        "button": {
          "name": "A02终止/继续",
          "value":0,
          "address":"DB10.0",
          "type":"66"
        }
      }],
      [
        {
          "name": "存片等待延时",
          "read": 666,
          "sending": 0,
          "type": "0",
          "value": 0,
"value2": 0
        }
      ],
      [
        {
          "button": {
            "name": "软急停",
            "value":0,
            "address":"DB10.0",
            "type":"66"
          }
        }]
]
Albania_Mes-ui/src/lang/locales/en-US.json
@@ -1,4 +1,13 @@
{
  "Manual matching":"Manual matching",
  "Manual removal":"Manual removal",
  "Remeasure":"Remeasure",
  "Measure Width":"Measure Width",
  "Measure Height":"Measure Height",
  "Matching results":"Matching results",
  "Matching successful":"Matching successful",
  "Multiple data matching":"Multiple data matching",
  "Matching failed":"Matching failed",
  "Customer":"Customer",
  "Tier":"Tier",
  "Matching":"Matching",
@@ -24,13 +33,15 @@
  "StorageCageAdd":"StorageCageAdd",
  "Reduce":"Reduce",
  "number":"number",
  "Import order":"Importorder",
  "Import order":"Import order",
  "Measure":"Measure",
  "StorageCage":"StorageCage",
  "Task queue":"Task queue",
  "Height":"Height",
  "Thickness":"Thickness",
  "Clear":"Clear",
  "ip":"localhost",
  "systemTitle": "Login System",
  "usernamePlaceholder": "Please enter username",
Albania_Mes-ui/src/lang/locales/zh-CN.json
@@ -1,13 +1,45 @@
{
  "Manual matching":"人工匹配",
  "Manual removal":"人工拿走",
  "Remeasure":"重新测量",
  "Measure Width":"测量宽",
  "Measure Height":"测量高",
  "Matching results":"匹配结果",
  "Matching successful":"匹配成功",
  "Multiple data matching":"多数据匹配",
  "Matching failed":"匹配失败",
  "Customer":"客户",
  "Tier":"层",
  "Matching":"匹配编号",
  "Productname":"项目名称",
  "All Out":"全部出完",
  "Operation failed":"操作失败",
  "Flowcard":"流程卡",
  "Glasstype":"玻璃类型",
  "Mode Change":"模式更改",
  "Start Task":"开始任务",
  "Stop Task":"停止任务",
  "No Of Cage":"笼子号",
  "Task State":"任务状态",
  "Task Method":"任务模式",
  "Task Line":"任务线路",
  "Finish No":"完成数量",
  "Mate No":"配对编号",
  "Order":"订单",
  "Select":"查询",
  "GlassType":"玻璃类型",
  "Films":"膜系",
  "StorageCageAdd":"笼子玻璃添加",
  "Reduce":"减少",
  "number":"数量",
  "Import order":"导入订单",
  "Measure":"测量",
  "StorageCage":"理片笼",
  "StorageCage":"笼子",
  "Task queue":"任务队列",
  "Height":"高",
  "Thickness":"厚度",
  "Clear":"清除",
  "ip":"localhost",
  "systemTitle": "登录系统",
  "usernamePlaceholder": "请输入用户名",
Albania_Mes-ui/src/router/index.js
@@ -127,7 +127,11 @@
        path: '/Electrical/InteractionState',
        component: () => import('../views/Electrical/InteractionState')
      }
      ,
      {
        path: '/Electrical/AlbaniaServo',
        component: () => import('../views/Electrical/AlbaniaServo')
      }
 
    ]
Albania_Mes-ui/src/views/Electrical/AlbaniaServo.vue
New file
@@ -0,0 +1,392 @@
<template>
  <div class="app">
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/alarm" tag="el-button" type="text" active-class="blue-button">{{ $t('Alarm')
        }}</router-link>
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
        }}</router-link>
      <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
      }}</router-link>
    </el-breadcrumb>
    <!-- <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">
        {{ $t('Automatic State') }}</router-link>
      <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition')
      }}</router-link>
      <router-link v-if="hasPermission" to="/Electrical/Servomanualone" tag="el-button" type="text"
        active-class="blue-button">
        {{ $t('Servomanualone') }}
      </router-link>
      <router-link v-if="hasPermission" to="/Electrical/Positioning1" tag="el-button" type="text"
        active-class="blue-button">{{
        $t('Address parameter settings')
      }}</router-link>
      <router-link v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text"
        active-class="blue-button">{{
        $t('Speed parameter settings')
      }}</router-link>
      <router-link v-if="hasPermission" to="/Electrical/InteractionState" tag="el-button" type="text"
        active-class="blue-button">{{ $t("InteractionState") }}</router-link>
    </el-breadcrumb> -->
    <el-row :gutter="10">
      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
        <el-card class="json-block" style="width:670px;margin-bottom: 10px;">
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row">
              <span class="name" style="width:300px;">{{ item.CNname }}</span>
              <el-input style="width:300px;"
                v-if="item.state != 0 && item.type === '0' && groupIndex === 0 && (itemIndex === 2)"
                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value" class="input-box"
                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 0"
                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value"
                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
                class="input-box"
                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
              <!-- <el-input style="width: 300px;" v-else-if="(item.state !== 0) && (item.type === '0') && (itemIndex === 2)"
                v-model="item.value" readonly class="input-box"></el-input> -->
              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1"
                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value"
                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
                class="input-box"
                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 2"
                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value"
                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
                class="input-box"
                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 3"
                @focus="handleInput(groupIndex, itemIndex)" v-model="item.value"
                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
                class="input-box"
                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
              <el-input style="width:300px;" v-else-if="item.state != 0 && item.type === '0'" v-model="item.value"
                @focus="handleInput(groupIndex, itemIndex)" class="input-box"
                @keyup.enter.native="WriteWord(dataGroup, itemIndex, 0)" @blur="WriteWord(dataGroup, itemIndex, 1)"
                :oninput="`value=value.replace(/^\\D*(\\d*(?:\\.\\d{0,2})?).*$/g, '$1');if(value<` + item.min + `){value=` + item.value + `}else if(value>` + item.max + `){value=` + item.value + `}`"></el-input>
              <span class="name" style="width:30px;">{{ item.unit }}</span>
            </div>
          </div>
          <div class="button-row" style="display: flex; justify-content: center;flex-wrap: wrap;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <el-button v-if="item.button && language === 'en-US' && item.state != 0" :name="item.button.CNname"
                v-model="item.button.value"
                :class="{ 'action-button': true, 'error-button': item.button.CNname === 'Fault' && item.button.value === 1, 'error-button2': item.button.CNname === 'NotZero' && item.button.value === 0, 'error-button3': item.button.CNname === 'Zero' && item.button.value === 1, 'greenbutton': item.button.CNname !== 'NotZero' && item.button.CNname !== 'Fault' && item.button.value === 1 }"
                @click="updateButtonValue(dataGroup, itemIndex);">{{
        item.button.CNname }}</el-button>
              <el-button v-if="item.button && language === 'zh-CN' && item.state != 0" :name="item.button.CNname"
                v-model="item.button.value"
                :class="{ 'action-button': true, 'error-button': item.button.CNname === '故障' && item.button.value === 1, 'error-button2': item.button.CNname === '未回零' && item.button.value === 0, 'error-button3': item.button.CNname === '已回零' && item.button.value === 1, 'greenbutton': item.button.CNname !== '未回零' && item.button.CNname !== '故障' && item.button.value === 1 }"
                @click="updateButtonValue(dataGroup, itemIndex);">{{
        item.button.CNname }}</el-button>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <div class="container">
    <component :is="embeddedComponent"></component>
    <component :is="embeddedComponent2"></component>
  </div>  -->
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/AlbaniaServo'
// import ManualonePosition2 from './ManualonePosition2.vue';
// import ManualJog from './ManualJog.vue';
import {
  SelectPermissionByUserName, currentUsername, WriteWord, WriteBit
} from "../../api/home";
// import { createWebSocket } from '../../api/websocket.js';
let socket;
export default {
  name: "AlbaniaServo",
  mixins: [LanguageMixin],
  data() {
    return {
      jsonData: data,
      language: this.$i18n.locale,
      // embeddedComponent: ManualonePosition2,
      // embeddedComponent2: ManualJog,
      hasPermission: false // 默认没有权限
      // 加载整个data.json文件作为jsonData
    }
  },
  activated() {
    this.initWebSocket();
    // const language = this.$i18n.locale;
    //console.log(language);
    // if (language === 'en-US') {
    //   this.replaceChineseWithEnglish();
    // }
    this.$forceUpdate();
    currentUsername().then(res => {
      SelectPermissionByUserName(res.data).then(res => {
        res.data.permission.forEach(item => {
          if (item.permissionId == "36" && item.state == 1) {
            this.hasPermission = true;
          }
        });
      });
    });
  },
  methods: {
    handleInput(groupIndex, itemIndex) {
      this.jsonData[groupIndex][itemIndex].value2 = 1;
    },
    closeSocket() {
      // 关闭 WebSocket 连接
      socket.close();
    },
    updateButtonValue(dataGroup, itemIndex) {
      // 将当前按钮的值设为1
      if (dataGroup[itemIndex].button.value === 0) {
        // 如果当前按钮的值是 0,将其设为 1
        this.$set(dataGroup[itemIndex].button, 'value', 1);
      } else {
        // 否则将其设为 0
        this.$set(dataGroup[itemIndex].button, 'value', 0);
      }
      WriteBit(dataGroup[itemIndex].button.address, dataGroup[itemIndex].button.value).then(res => {
        if (res.data.message == 200) {
          this.$message.success(this.$t('Operation successful'));
        }
      });
    },
    WriteWord(dataGroup, itemIndex, index) {
      if (isNaN(dataGroup[itemIndex].value)) {
        this.$message.success(this.$t('Operation Please enter number'));
      } else {
        WriteWord(dataGroup[itemIndex].address, dataGroup[itemIndex].value).then(res => {
          if (res.data.message == 200) {
            this.$message.success(this.$t('Operation successful'));
          }
        });
      }
      if (index == 1) {
        this.$set(dataGroup[itemIndex], 'value2', 0);
      }
    },
    initWebSocket() {
      let viewname = "AlbaniaServo";
      if (typeof WebSocket === "undefined") {
        console.log("您的浏览器不支持WebSocket");
      } else {
        let socketUrl = "ws://" + this.$t('ip') + ":8888" + "/springboot-vue3/api/talk/" + viewname;
        if (socket != null) {
          socket.close();
          socket = null;
        }
        // 开启一个websocket服务
        socket = new WebSocket(socketUrl);
        // 打开事件
        socket.onopen = function () {
          console.log("websocket已打开");
        };
        // 收到消息
        //         let isMouseInInputBox = false; // 标记鼠标是否在输入框内
        // const inputBox = document.querySelectorAll('.input-box');
        // inputBox.forEach(box => {
        //   box.addEventListener('mouseenter', () => {
        //     isMouseInInputBox = true;
        //   });
        //   box.addEventListener('mouseleave', () => {
        //     isMouseInInputBox = false;
        //   });
        // });
        socket.onmessage = (msg) => {
          if (!msg.data) {
            return; // 如果收到空数据,则直接返回,不执行后续逻辑
          }
          // 添加判断条件:如果光标在输入框内,则不执行后续逻辑
          // if (document.activeElement.tagName.toLowerCase() === 'input') {
          //   return;
          // }
          // console.log(this.jsonData);
          let obj = JSON.parse(msg.data);
          // const weihuiling = obj.weihuiling;
          this.jsonData.forEach((item, index) => {
            item.forEach((item2, index2) => {
              if (item2.button !== undefined) {
                switch (index) {
                  case 0:
                    item2.button.value = obj.listpositionparam[0][index2];
                    break;
                  case 1:
                    item2.button.value = obj.listA01param[0][index2];
                    break;
                  case 2:
                    item2.button.value = obj.listA02param[0][index2];
                    break;
                  case 3:
                    item2.button.value = obj.listB01param[0][index2];
                    break;
                  case 4:
                    item2.button.value = obj.listC01param[0][index2];
                    break;
                  case 5:
                    item2.button.value = obj.listC02param[0][index2];
                    break;
                  case 6:
                    item2.button.value = obj.listHollowparam[0][index2];
                    break;
                  default:
                    break;
                }
              } else {
                if (item2.value2 !== 1) {
                  switch (index) {
                    case 0:
                      item2.value = obj.listpositionparam[0][index2];
                      break;
                    case 1:
                      item2.value = obj.listA01param[0][index2];
                      break;
                    case 2:
                      item2.value = obj.listA02param[0][index2];
                      break;
                    case 3:
                      item2.value = obj.listB01param[0][index2];
                      break;
                    case 4:
                      item2.value = obj.listC01param[0][index2];
                      break;
                    case 5:
                      item2.value = obj.listC02param[0][index2];
                      break;
                    case 6:
                      item2.value = obj.listHollowparam[0][index2];
                      break;
                    default:
                      break;
                  }
                }
              }
            });
          });
          // if (obj.zuhe1) {
          //   console.log(obj);
          //   // 执行更新逻辑
          //   for (let i = 0; i < 4; i++) {
          //     jsonData2[i].forEach((item, index) => {
          //       if (typeof item.value !== 'undefined' && typeof obj[`zuhe${i + 1}`][0][index] !== 'undefined') {
          //         item.value = obj[`zuhe${i + 1}`][0][index];
          //       }
          //     });
          //   }
          // }
        };
        // 关闭事件
        socket.onclose = function () {
          console.log("websocket已关闭");
        };
        // 发生错误事件
        socket.onerror = function () {
          console.log("websocket发生了错误");
        };
        this.$router.afterEach(function () {
          socket.close();
        })
      }
    },
    send() {
      socket?.send(JSON.stringify(this.messagepack));
    }
  }
}
</script>
<style scoped>
.item-row {
  display: flex;
  align-items: center;
  margin-bottom: 2px;
  /* 调整每个项目之间的间距 */
}
.action-button {
  margin-right: 10px;
  background: #66b1ff;
  color: #FFF;
}
.blue-button {
  background-color: skyblue;
}
.el-card ::v-deep .el-card__body {
  padding: 13px;
}
.error-button {
  background-color: red;
}
.error-button2 {
  background-color: red;
}
.greenbutton {
  background-color: green;
}
.error-button3 {
  background-color: green;
}
</style>
Albania_Mes-ui/src/views/Electrical/ManualonePosition.vue
@@ -607,8 +607,6 @@
if(obj.zuhe1){
           //更新实时位置
           jsonData2.forEach((item) => {
                item.forEach((subItem) => {
Albania_Mes-ui/src/views/Electrical/Sign.vue
@@ -13,7 +13,7 @@
      }}</router-link> -->
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
 <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
 <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
        }}</router-link>
    </el-breadcrumb>
@@ -21,13 +21,12 @@
    <div style="padding-right: 30px;display: flex;flex-wrap: wrap;" class="neir">
      <div class="kuai_sb" v-for="item in record.xyData" :key="item.name">
        <el-col class="deng" :class="getStatusClass(item.value)"></el-col>
        <span  style="width: 100%;" class="in_mc">{{
        <!-- <span  style="width: 100%;" class="in_mc">{{
                item.unit
              }}</span>
              }}</span> -->
        <span  style="width: 100%;" class="in_mc">{{
                item.name
              }}</span>
      </div>
    </div>
Albania_Mes-ui/src/views/Electrical/alarm.vue
@@ -8,7 +8,7 @@
      <!-- <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link> -->
      <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link> -->
    <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link>
    <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
    <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
        }}</router-link>
    </el-breadcrumb>
    <div>{{ $t('Alarm') }}</div>
Albania_Mes-ui/src/views/home/index.vue
@@ -346,14 +346,14 @@
            </div>
            <div style="display: flex;align-items: center;overflow: hidden;">
                <div class="blocks" style="position: relative;width: 100%;">
                    <div class="blocks-img" :style="'z-index:999;left:150px;top:555px;'">
                    <div class="blocks-img" :style="'z-index:999;left:150px;top:'+carposition+'px;'">
                    </div>
                    <div
                        :style="'position: absolute;z-index:99;left:271px;top:987px;width:210px;height:38px;background-color:' + ShowDeviceList(0) + ';'">
                    </div>
                    <div
                        :style="'position: absolute;z-index:1000;left:553px;top:956px;width:110px;height:74px;background-color:' + ShowDeviceList(0) + ';'">
                        :style="'position: absolute;z-index:1000;left:553px;top:'+(400+carposition)+'px;width:110px;height:88px;background-color:' + ShowDeviceList(0) + ';'">
                    </div>
                    <div
                        :style="'position: absolute;z-index:99;left:800px;top:450px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';'">
@@ -421,7 +421,7 @@
                        <el-table-column :min-width="100" :label="$t('Terminate Task')">
                            <template slot-scope='scope'>
                                <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                                    @click="FinishTask(0, scope.row.id)">{{ $t('Complete') }}</el-button>
                                    @click="FinishTask(scope.row.id)">{{ $t('Complete') }}</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
@@ -437,7 +437,7 @@
                        <el-table-column :min-width="100" :label="$t('Terminate Task')">
                            <template slot-scope='scope'>
                                <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                                    @click="FinishTask(1, scope.row.id)">{{ $t('Complete') }}</el-button>
                                    @click="FinishTask(scope.row.id)">{{ $t('Complete') }}</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
@@ -469,38 +469,6 @@
                    <el-table-column prop="glasstype" :label="$t('Glasstype')"></el-table-column>
                    <el-table-column prop="productname" :label="$t('Productname')"></el-table-column>
                </el-table>
                <!-- <table id="table">
                    <thead>
                        <tr>
                            <th>Customer</th>
                            <th>order</th>
                            <th>base</th>
                            <th>height</th>
                            <th>thickness</th>
                            <th>films</th>
                            <th>quantity</th>
                            <th>tier</th>
                            <th>matching</th>
                            <th>glasstype</th>
                            <th>productname</th>
                        </tr>
                    </thead>
                    <tbody style="text-align: center">
                        <tr v-for="item in dataList" :key="item.id">
                            <td>{{ item.Customer }}</td>
                            <td>{{ item.order }}</td>
                            <td>{{ item.base }}</td>
                            <td>{{ item.height }}</td>
                            <td>{{ item.thickness }}</td>
                            <td>{{ item.films }}</td>
                            <td>{{ item.quantity }}</td>
                            <td>{{ item.tier }}</td>
                            <td>{{ item.matching }}</td>
                            <td>{{ item.glasstype }}</td>
                            <td>{{ item.productname }}</td>
                        </tr>
                    </tbody>
                </table> -->
            </div>
        </el-dialog>
@@ -510,26 +478,22 @@
                <!--功能-->
                <div>
                    <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState"
                        style="z-index: 999;">人工匹配</el-button>
                        style="z-index: 999;">{{ $t('Manual matching') }}</el-button>
                    <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState"
                        style="z-index: 999;">人工拿走</el-button>
                        style="z-index: 999;">{{ $t('Manual removal') }}</el-button>
                    <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState"
                        style="z-index: 999;">重新测量</el-button>
                        style="z-index: 999;">{{ $t('Remeasure') }}</el-button>
                </div>
                <br>
                <!--显示-->
                <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;float: left;">
                    <!--玻璃图  #81b337-->
                    <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:'+((720-(this.LastQueue.glasswidth / 25 * 7))/2)+'px auto;'+
                        'width:'+ (this.LastQueue.glasswidth / 25 * 7) + 'px;'+
                        'height:'+ (this.LastQueue.glassheight / 25 * 7) + 'px;'+
                        'line-height: '+ (this.LastQueue.glassheight / 25 * 7) + 'px;'+
                        'background-color: '+ (this.LastQueue.state>0?'#4CCCE4':(this.LastQueue.state==0?'#E4CA4C':'#E4CA4C'))+
                        ';text-align: center;'">
                        {{ this.LastQueue.glasswidth!=null?(this.LastQueue.glasswidth+"*"+this.LastQueue.glassheight):"" }}
                    <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:'+((720-(this.LastQueue.glassheight / 25 * 7))/2)+'px auto;width:'
                        + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
                        + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
                        + (this.LastQueue.glassheight / 25 * 7) + 'px; background-color: '
                        + (this.LastQueue.state>0?'#4CCCE4':(this.LastQueue.state==0?'#E4CA4C':'#E4CA4C'))+';text-align: center;'">
                        {{ (this.LastQueue.glasswidth+this.LastQueue.glassheight)!=0?(this.LastQueue.glasswidth+"*"+this.LastQueue.glassheight):"" }}
                    </div>
                </div>
@@ -537,17 +501,17 @@
                <div style="width:20px;height: 720px;float: left;"></div>
                <div style="width:500px;height: 620px;border: 2px solid #d1d1d1;float: left;padding: 50px 50px;">
                    <!--玻璃图  #81b337-->
                    <span class="measuretitle">长:</span> <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> <span class="measureUnit">mm</span>
                    <span class="measuretitle">{{ $t('Width') }}:</span> <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">宽:</span> <span class="measureValue">{{ this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
                    <span class="measuretitle">{{ $t('Height') }}:</span> <span class="measureValue">{{ this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">厚:</span> <span class="measureValue">{{ this.LastQueue.thickness }}</span> <span class="measureUnit">mm</span>
                    <span class="measuretitle">{{ $t('Thickness') }}:</span> <span class="measureValue">{{ this.LastQueue.thickness }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">测量长:</span> <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
                    <span class="measuretitle">{{ $t('Measure Width') }}:</span> <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
                    <br>    
                    <span class="measuretitle">测量宽:</span> <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
                    <span class="measuretitle">{{ $t('Measure Height') }}:</span> <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">匹配结果:</span> <span class="measureValue">{{ this.LastQueue.state>0?"匹配成功":(this.LastQueue.state==0?"多数据匹配":"匹配失败") }}</span>
                    <span class="measuretitle">{{ $t('Matching results') }}:</span> <span class="measureValue">{{ this.LastQueue.state>0?$t('Matching successful'):(this.LastQueue.state==0?$t('Multiple data matching'):$t('Matching failed')) }}</span>
                    <br>
                </div>
            </div>
@@ -696,6 +660,7 @@
    name: "Home",
    data() {
        return {
            carposition:0,
            selected: [],
            options: [{
                value: '1',
@@ -844,13 +809,8 @@
                socket.onmessage = function (msg) {
                    //console.log("收到数据====" + msg.data);
                    let obj = JSON.parse(msg.data);
                    if (obj.params != null) {
                        var zhi1 = obj.params[0][0];
                        var zhi2 = obj.params[0][1];
                        this.car1 = 145 + 8.15 * Math.abs(zhi1 - this.carlist[0]['start']) / Math.abs(this.carlist[0]['end'] - this.carlist[0]['start']) * 100;
                        this.car2 = 210 + 8.15 * Math.abs(zhi2 - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100;
                        // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
                        // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100;
                    if(obj.carposition != null){
                        this.carposition = obj.carposition[0];
                    }
                    // 获取设备状态
                    if (obj.DeviceList != null) {
@@ -951,6 +911,7 @@
                StorageCageAddGlass(this.cell, this.StorageCageAddInfo[index]).then(res => {
                    if (res.data.message == 200) {
                        this.$message.success(this.$t('Operation successful'));
                        this.StorageCageAdd=false;
                    }
                })
            } else {
@@ -987,9 +948,9 @@
            })
        },
        //完成进/出片任务
        FinishTask(tasktype, id) {
            FinishTask(tasktype, id).then(res => {
                if (res.data.message3 == 200) {
        FinishTask(id) {
            FinishTask(id).then(res => {
                if (res.data.message == 200) {
                    this.$message.success(this.$t('Operation successful'));
                }
            });
@@ -998,6 +959,7 @@
        UpdateStroageCageByCell(cell, nownum, num) {
            if (nownum == null && num == 1) {
                this.StorageCageAdd = true;
                this.Measuermode=true;
                this.cell = cell;
            } else {
                if (nownum + num == 0) {
@@ -1085,6 +1047,7 @@
        //人工匹配
        ManualMatching() {
            this.StorageCageAdd = true;
            this.Measuermode=false;
        },
        //人工拿走
        ManualTake() {
springboot-vue3/src/main/java/MyGenerator.java
@@ -18,7 +18,8 @@
public class MyGenerator {
    /** 数据源配置*/
    private static final String jdbc = "jdbc:mysql://10.153.19.150:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    // private static final String jdbc = "jdbc:mysql://10.153.19.150:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    private static final String jdbc = "jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    private static final String driverName = "com.mysql.cj.jdbc.Driver";
    private static final String username = "root";
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -24,29 +24,8 @@
    // 单例实例
    private static PLCAutoMes instance;
    // private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
    private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
    // private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
    // private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
    // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
    // private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
    // private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
    // private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
    // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
    // 调用initword方法
    // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
    // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
    // public static PlcBitObject  plcBitObject = initUtil.initbit(PlcSign);
    // public static PlcParameterObject  plcStateObject= initUtil.initword(PlcState);
    // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
    public static PlcParameterObject PlcMesObject = initUtil.initword(PlcAlbania);
    // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
    // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
  
    // 私有构造函数
    public PLCAutoMes() throws IOException {
@@ -71,30 +50,8 @@
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // System.out.println(jsonFilePath);
            //readAndUpdateWordValues(PlcReadObject);
            List<Short> ss=S7control.getinstance().ReadWord("DB14.0", 1);
            readAndUpdateWordValues(PlcMesObject);
            //readAndUpdateWordValues(PlcframeObject);
            // readAndUpdateWordValues(PlcframeObject);
            // readAndUpdateWordValues(plcStateObject);
            // int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
            // // System.out.println(index);
            // PlcMesObject.getPlcParameter("AddStart").getAddress(index);
            // // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
            // List<String> addresses = new ArrayList<>();
            // addresses.add("FeedID");
            // addresses.add("AddStart");
            // // System.out.println(addresses);
            // // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
            // List<String> addresses2 = new ArrayList<>();
            // addresses2.add("FeedID");
            // addresses2.add("FeedCarStatus");
            //System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
        }
    }
springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java
New file
@@ -0,0 +1,146 @@
package com.example.springboot.component;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import org.apache.commons.io.FileUtils;
import java.io.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PlcAlbaniaServo extends Thread {
    private Configuration config;
    public PlcAlbaniaServo() throws IOException {
        config = new Configuration("config.properties");
    }
    @Override
    public void run() {
        while (this != null) {
            try {
                Thread.sleep(500);
                // List<Short> listA01param=new ArrayList<>();
                // listA01param.add((short)100);
                // listA01param.add((short)100);
                // listA01param.add((short)100);
                // listA01param.add((short)100);
                // listA01param.add((short)100);
                // List<Boolean> listA01button=new ArrayList<>();
                // listA01button.add(true);
                // listA01button.add(false);
                // for (Boolean boolean1 : listA01button) {
                //     listA01param.add((short) (boolean1 ? 1 : 0));
                // }
                JSONObject jsonObject = new JSONObject();
                // jsonObject.append("listA01param", listA01param);
                //A01
                List<String> A01input = Arrays.asList(config.getProperty("PlcA01.param").split(","));
                List<Float> listA01param = S7control.getinstance().readFloat32(A01input);
                List<String> A01button = Arrays.asList(config.getProperty("PlcA01.button").split(","));
                List<Boolean> listA01button = S7control.getinstance().readBits(A01button);
                for (Boolean boolean1 : listA01button) {
                    listA01param.add((float) (boolean1 ? 1 : 0));
                }
                jsonObject.append("listA01param", listA01param);
                //A02
                List<String> A02input = Arrays.asList(config.getProperty("PlcA02.param").split(","));
                List<Float> listA02param = S7control.getinstance().readFloat32(A02input);
                List<String> A02button = Arrays.asList(config.getProperty("PlcA02.button").split(","));
                List<Boolean> listA02button = S7control.getinstance().readBits(A02button);
                for (Boolean boolean1 : listA02button) {
                    listA02param.add((float) (boolean1 ? 1 : 0));
                }
                jsonObject.append("listA02param", listA02param);
                //B01
                List<String> B01input = Arrays.asList(config.getProperty("PlcB01.param").split(","));
                // List<Float> listB01param = S7control.getinstance().readFloat32(B01input);
                List<Float> listB01param = S7control.getinstance().readFloat32(B01input);
                List<String> B01button = Arrays.asList(config.getProperty("PlcB01.button").split(","));
                List<Boolean> listB01button = S7control.getinstance().readBits(B01button);
                for (Boolean boolean1 : listB01button) {
                    listB01param.add((float) (boolean1 ? 1 : 0));
                }
                jsonObject.append("listB01param", listB01param);
                //C01
                List<String> C01input = Arrays.asList(config.getProperty("PlcC01.param").split(","));
                List<Float> listC01param = S7control.getinstance().readFloat32(C01input);
                List<String> C01button = Arrays.asList(config.getProperty("PlcC01.button").split(","));
                List<Boolean> listC01button = S7control.getinstance().readBits(C01button);
                for (Boolean boolean1 : listC01button) {
                    listC01param.add((float) (boolean1 ? 1 : 0));
                }
                jsonObject.append("listC01param", listC01param);
                //C02
                List<String> C02input = Arrays.asList(config.getProperty("PlcC02.param").split(","));
                List<Float> listC02param = S7control.getinstance().readFloat32(C02input);
                List<String> C02button = Arrays.asList(config.getProperty("PlcC02.button").split(","));
                List<Boolean> listC02button = S7control.getinstance().readBits(C02button);
                for (Boolean boolean1 : listC02button) {
                    listC02param.add((float) (boolean1 ? 1 : 0));
                }
                jsonObject.append("listC02param", listC02param);
                //中空台
                List<String> Hollowinput = Arrays.asList(config.getProperty("PlcHollow.param").split(","));
                List<Float> listHollowparam = S7control.getinstance().readFloat32(Hollowinput);
                List<String> Hollowbutton = Arrays.asList(config.getProperty("PlcHollow.button").split(","));
                List<Boolean> listHollowbutton = S7control.getinstance().readBits(Hollowbutton);
                for (Boolean boolean1 : listHollowbutton) {
                    listHollowparam.add((float) (boolean1 ? 1 : 0));
                }
                jsonObject.append("listHollowparam", listHollowparam);
                //当前位置
                List<String> positioninput = Arrays.asList(config.getProperty("Plc.position").split(","));
                List<Float> listpositionparam = S7control.getinstance().readFloat32(positioninput);
                jsonObject.append("listpositionparam", listpositionparam);
                // System.out.println(listpositionparam);
                // System.out.println(S7control.getinstance().readFloat32("DB10.1758"));
                // System.out.println(new BigDecimal(S7control.getinstance().readFloat32("DB10.1758")).setScale(2, BigDecimal.ROUND_HALF_UP));
                // System.out.println(S7control.getinstance().readFloat32("DB10.1440"));
                // System.out.println(S7control.getinstance().readFloat64("DB10.1444"));
                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AlbaniaServo");
                if (sendwServer != null) {
                    for (WebSocketServer webserver : sendwServer) {
                        webserver.sendMessage(jsonObject.toString());
                        if (webserver != null) {
                            List<String> messages = webserver.getMessages();
                            // System.out.println(messages.isEmpty());
                            if (!messages.isEmpty()) {
                                // 将最后一个消息转换为 short 类型的列表
                                String lastMessage = messages.get(messages.size() - 1);
                                // System.out.println("lastMessage:" + lastMessage);
                                JSONArray messageArray = new JSONArray(lastMessage);
                                // 清空消息列表
                                webserver.clearMessages();
                            }
                        }
                    }
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
@@ -130,25 +130,6 @@
            short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
                    A01readstart, A02readstart, B01readstart, B02readstart
            );
            // Short[] values1 = { 1, 2, 3 };
            // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
            // Short[] values2 = { 1, 2, 3 };
            // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
            // Short[] values3 = { 1, 2, 3 };
            // List<Short> arraylist3 = new ArrayList<>(Arrays.asList(values3));
            // Short[] values4 = { 1, 2, 3 };
            // List<Short> arraylist4 = new ArrayList<>(Arrays.asList(values4));
            // Short[] values5 = { 5 };
            // List<Short> arraylist5 = new ArrayList<>(Arrays.asList(values5));
            // Short[] values6 = { 6 };
            // List<Short> arraylist6 = new ArrayList<>(Arrays.asList(values6));
            // Short[] values7 = { 7 };
            // List<Short> arraylist7 = new ArrayList<>(Arrays.asList(values7));
            // Short[] values8 = { 8 };
            // List<Short> arraylist8 = new ArrayList<>(Arrays.asList(values8));
            // Boolean[] values9 = { false, false, true, true };
            // List<Boolean> arraylist9 = new ArrayList<>(Arrays.asList(values9));
            short[] params2 = new short[arraylist9.size()];
            for (int i = 0; i < arraylist9.size(); i++) {
                boolean value = arraylist9.get(i);
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -10,7 +10,6 @@
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.example.springboot.mapper.AlarmMapper;
@@ -28,7 +27,7 @@
    FileInputStream fileInputStream;
    try {
      // 从文件中读取字节数据存入 fileInputStream
      fileInputStream = new FileInputStream("D:/Albania_Mes/Alarm.json");
      fileInputStream = new FileInputStream("D:/Code/Albania_Mes/Alarm.json");
      // 读取 fileInputStream 中字节并将其解码为字符
      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
      // 提高读取效率,在 BufferedReader 内包装 InputStreamReader
@@ -87,9 +86,9 @@
      Integer Plccount = this.count;
      // 根据地址读取PCL数据
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.0.0", Plccount);
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB15.0.0", Plccount);
//      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
      // System.out.println(plclist);
      System.out.println(plclist);
      // Boolean[] values = { false, false, true, false, true, false, true, false,
      // true, false, true, false, true, false,
      // true, false, true, false, true, false, true, false, true, false, true, false,
@@ -129,6 +128,10 @@
            alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
            for (short i = 0; i < array1.length; i++) {
              // 查询对应报警信息结束时间为null的条数
              if(i==48){
                short result = alarmMapper.selectnullti(array1[i]);
                System.out.println(result+"-"+array1[i]);
              }
              short result = alarmMapper.selectnullti(array1[i]);
              // 读取到PLC的值为1并且对应报警信息结束时间为null的条数的条数为0
    //System.out.println(result);
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -1,4 +1,5 @@
package com.example.springboot.component;
import cn.hutool.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
@@ -31,12 +32,8 @@
    @Autowired
    private HomeService HomeService;
    private QueueMapper QueueMapper;
    private GlassInfoMapper GlassInfoMapper;
    private MeasureSettingMapper MeasureSettingMapper;
    private OutSliceServive outSliceServive;
    private SpianMapper spianMapper;
    private SpianService spianService;
    // 出片队列是否允许出片
    public static Boolean isAllowQueue = true;
    public static Boolean isAllowReordering = true;
@@ -61,6 +58,9 @@
    // public static Map b=new HashMap<>();
    // b.put()
    public double carstart = 200;
    public double carend = 20000;
    @Override
    public void run() {
        while (this != null) {
@@ -68,22 +68,28 @@
            try {
                Thread.sleep(1000);
                // 注入mapper
                HomeService  = WebSocketServer.applicationContext.getBean(HomeService.class);
                QueueMapper  = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                HomeService = WebSocketServer.applicationContext.getBean(HomeService.class);
                QueueMapper = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
                spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
                spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
                outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
                storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
                // 获取其车的位置
                if (S7control.getinstance().CheckConnected() == true) {
                    double carposition = 0;
                    float car = S7control.getinstance().readFloat32("DB10.1992");
                    carposition = (-40 + (car / (carend - carstart) * 595));
                    jsonObject.append("carposition", carposition);
                }
                // 笼子使用情况
                List<StorageCage> tableData = homeMapper.selectAlls();
                jsonObject.append("tableData", tableData);
                // 格理片笼格子状态
                List<StorageCage> cagelist1=storageCageService.SelectStorageCageByCage(1);
                List<StorageCage> cagelist2=storageCageService.SelectStorageCageByCage(2);
                List<StorageCage> cagelist3=storageCageService.SelectStorageCageByCage(3);
                List<StorageCage> cagelist4=storageCageService.SelectStorageCageByCage(4);
                List<StorageCage> cagelist1 = storageCageService.SelectStorageCageByCage(1);
                List<StorageCage> cagelist2 = storageCageService.SelectStorageCageByCage(2);
                List<StorageCage> cagelist3 = storageCageService.SelectStorageCageByCage(3);
                List<StorageCage> cagelist4 = storageCageService.SelectStorageCageByCage(4);
                jsonObject.append("cagelist1", cagelist1);
                jsonObject.append("cagelist2", cagelist2);
                jsonObject.append("cagelist3", cagelist3);
@@ -97,7 +103,6 @@
                List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
                jsonObject.append("alarmmg", alarmmg);
                // 获取出片队列信息
                List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
                jsonObject.append("listoutslice", listoutslice);
@@ -112,56 +117,57 @@
                // 查询当前铝框信息
                Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame();
                jsonObject.append("CurrentFrame", CurrentFrame);
                //读取DB105区文件
                PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
                String PlcRequest=plcmes.getPlcParameter("GaToMES").getValue();//请求
                String MesSend=plcmes.getPlcParameter("MESToGaStatus").getValue();//发送
                double width=Double.valueOf(plcmes.getPlcParameter("width").getValue());//宽
                double height=Double.valueOf(plcmes.getPlcParameter("Height").getValue());//高
                // String PlcRequest=S7control.getinstance().ReadWord("DB14.26", 1).get(0)+"";
                // double width=Double.parseDouble(S7control.getinstance().ReadWord("DB14.28", 1).get(0)+"");
                // double height=Double.parseDouble(S7control.getinstance().ReadWord("DB14.30", 1).get(0)+"");
                // String MesSend=S7control.getinstance().ReadWord("DB14.170", 1).get(0)+"";
                // 读取DB105区文件
                PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
                // if(plcmes.==null){
                //获取测量的长,宽
                 boolean istest = true;
                // }
                // 获取测量的长,宽
                boolean istest = true;
                // String PlcRequest = "1";
                // String MesSend = "0";
                // double width = 516;
                // double height = 507;
                //匹配
                //System.err.println(PlcRequest+","+MesSend+","+width+","+height);
                if ("0".equals(PlcRequest)&&istest) {
                    S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 0);
                }
                if ("1".equals(PlcRequest)&&"0".equals(MesSend)) {
                    boolean is=HomeService.Normal(width, height, "1");
                    if (is&&istest) {
                        // 测量成功
                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
                // double width = 0;
                // double height = 0;
                    }else if(istest){
                        // 重新测量
                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 4);
                    }
                // 匹配
                // System.err.println(PlcRequest+","+MesSend+","+width+","+height);
                // String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// 请求
                // String MesSend = plcmes.getPlcParameter("MESToGaStatus").getValue();// 发送
                // double width = Double.valueOf(plcmes.getPlcParameter("width").getValue());// 宽
                // double height = Double.valueOf(plcmes.getPlcParameter("Height").getValue());// 高
                // if ("0".equals(PlcRequest) && istest) {
                //     S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 0);
                // }
                // if ("1".equals(PlcRequest) && "0".equals(MesSend)) {
                //     boolean is = HomeService.Normal(width, height, "1");
                //     if (is && istest) {
                //         // 测量成功
                //         S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                //                 (short) 1);
                }
                 //S7control.getinstance().WriteWord("DB14.170", (short)0);
                Queue LastQueue= QueueMapper.selectLastQueue();
                if(LastQueue==null){
                    Queue nullQueue=new Queue();
                //     } else if (istest) {
                //         // 重新测量
                //         S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                //                 (short) 4);
                //     }
                // }
                // S7control.getinstance().WriteWord("DB14.170", (short)0);
                Queue LastQueue = QueueMapper.selectLastQueue();
                if (LastQueue == null) {
                    Queue nullQueue = new Queue();
                    nullQueue.setglassId("");
                    nullQueue.setglassheight(0);
                    nullQueue.setglasswidth(0);
                    nullQueue.setglassheightmm(0);
                    nullQueue.setglasswidthmm(0);
                    jsonObject.append("LastQueue", nullQueue);
                }else{
                    if (LastQueue.getstate()<1) {
                } else {
                    if (LastQueue.getstate() < 1) {
                        LastQueue.setglasswidth(0);
                        LastQueue.setglassheight(0);
                    }
@@ -170,16 +176,15 @@
                // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
                //查询理片笼信息
                // 查询理片笼信息
                List<StorageCage> StorageCageInfo = storageCageService.SelectStorageCageInfo();
                jsonObject.append("StorageCageInfo", StorageCageInfo);
                //查询当前进片任务
                // 查询当前进片任务
                List<StorageTask> StoragTaskeTaskFeed = storageCageService.SelectStorageTask(0);
                jsonObject.append("StoragTaskeTaskFeed", StoragTaskeTaskFeed);
                //查询当前出片任务
                // 查询当前出片任务
                List<StorageTask> StoragTaskeTaskOut = storageCageService.SelectStorageTask(1);
                jsonObject.append("StoragTaskeTaskOut", StoragTaskeTaskOut);
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -14,6 +14,9 @@
import java.util.Arrays;
public class Plcsign extends Thread {
  // 用于存储应用程序的配置信息
  private Configuration config;
  String name = "";
  Integer count = 0;
@@ -71,8 +74,11 @@
      // System.out.println(PlcAddress);
//      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
       List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112);
      //  List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112);
       List<String> addressList21 = Arrays.asList(config.getProperty("PlcIO.State").split(","));
       List<Boolean> plclist = S7control.getinstance().readBits(addressList21);
       List<String> addressListName = Arrays.asList(config.getProperty("PlcIO.Name").split(","));
//       Boolean[] values = { true, true, true, true, true, false, true, false,
//       true, false, true, false, true, false,
//       true, false, true, false, true, false, true, false, true, false, true, false,
@@ -95,6 +101,7 @@
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.append("sig", Intlist);
        jsonObject.append("addressListName", addressListName);
//        WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
//        if (sendwServer3 != null) {
//          sendwServer3.sendMessage(jsonObject.toString());
springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -10,6 +10,7 @@
import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
import com.github.xingshuangs.iot.utils.FloatUtil;
import com.google.common.primitives.Bytes;
import org.apache.ibatis.jdbc.Null;
@@ -477,4 +478,45 @@
    public String readStrings(String addr) {
        return s7PLC.readString(addr);
    }
    public float readFloat32(String addr) {
        return s7PLC.readFloat32(addr);
    }
    public double readFloat64(String addr) {
        return s7PLC.readFloat64(addr);
    }
    // public float[] readfloat32(List<String> addr) {
    //     float[] result=new float[addr.size()];
    //     for (int i=0;i<addr.size();i++) {
    //         String address=addr.get(i);
    //         result[i]=readFloat32(address);
    //     }
    //     return result;
    // }
    public List<Float> readFloat32(List<String> addr) {
        List<Float> result=new ArrayList<>();
        for (String string : addr) {
            if(string.equals("DB10.2000")||string.equals("DB10.2008")){
                result.add((float)s7PLC.readFloat64(string));
            }else if (string.equals("DB10.224")||string.equals("DB10.226")||string.equals("DB10.228")||string.equals("DB10.230")) {
                List<Short> word=ReadWord(string,1);
                for (Short short1 : word) {
                    result.add((float)short1);
                }
            }
            else{
                result.add(s7PLC.readFloat32(string));
            }
        }
        return result;
    }
    public void writeFloat32(String addr, float data) {
      s7PLC.writeFloat32(addr,data);
   }
}
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -16,11 +16,14 @@
        // TODO Auto-generated method stub
        //
        System.out.println("启动完成");
        new PLCAutoMes().start();
         new PlcHoldNew().start();
        // new Plcalarm().start();
        // new PLCAutoMes().start();
        //  new PlcHoldNew().start();
         new Plchome().start();
        // new PlcAlbaniaServo().start();
        // new Plcsign().start();
       
    }
}
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -61,6 +61,39 @@
  @Autowired
  private JdbcConnections jdbcConnections;
  // 写入word
  @GetMapping("/WriteWord")
  public Result WriteWord(String address,float value)  {
    System.err.println("写入word"+address+"+"+value);
    if(address.equals("DB10.224")||address.equals("DB10.226")||address.equals("DB10.228")||address.equals("DB10.230")){
      S7control.getinstance().WriteWord(address, (short)value);
    }else{
      S7control.getinstance().writeFloat32(address, value);
    }
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 写入bit
  @GetMapping("/WriteBit")
  public Result WriteBit(String address,short value)  {
    boolean values;
    if (value == 0) {
      values=false;
    }else{
      values=true;
    }
    S7control.getinstance().WriteBit(address, values);
    System.err.println("写入bit"+address+"+"+values);
    Map<String, Object> map = new HashMap<>();
    map.put("message", "200");
    return Result.success(map);
  }
  // 获取当前登录用户权限
  @GetMapping("/SelectPermissionByUserName")
  public Result SelectPermissionByUserName(String username) throws SQLException {
springboot-vue3/src/main/java/com/example/springboot/mapper/AlarmMapper.java
@@ -14,10 +14,10 @@
  @Select("SELECT count(*) FROM alarmmg where endTime is null and content=#{content}")
  short selectnullti(String content);// 根据报警内容查询结束时间为null的
  @Insert("INSERT INTO `canadames`.`alarmmg`( `content`,`timeon`) VALUES ( #{content},now())")
  @Insert("INSERT INTO `alarmmg`( `content`,`timeon`) VALUES ( #{content},now())")
  void Insertalarm(String content);// 添加一条报警数据
  @Insert("UPDATE  `canadames`.`alarmmg` set endTime= now() where endTime is null and content=#{content}")
  @Insert("UPDATE  `alarmmg` set endTime= now() where endTime is null and content=#{content}")
  void updatealarm(String content);// 修改对应报警内容的结束时间
  @Select("SELECT * FROM alarmmg where timeon between #{sj1} and #{sj2}")
springboot-vue3/src/main/resources/JsonFile/PlcAlbania.json
@@ -22,7 +22,7 @@
          "addressIndex":"4",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
          "unit":"m/min"
       },
       {
          "codeId": "IDStatus3",
springboot-vue3/src/main/resources/application.properties
@@ -6,8 +6,8 @@
#\u6570\u636E\u5E93\u9A71\u52A8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#\u6570\u636E\u5E93\u8FDE\u63A5\u5730\u5740
spring.datasource.url=jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
#spring.datasource.url=jdbc:mysql://10.153.19.150:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
#spring.datasource.url=jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://10.153.19.150:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
#\u6570\u636E\u5E93\u7528\u6237\u540D
spring.datasource.username=root
#\u6570\u636E\u5E93\u7528\u6237\u5BC6\u7801  
springboot-vue3/src/main/resources/config.properties
@@ -223,19 +223,42 @@
#任务信息2
PlcInteractionState.MEStaskinformation2=DB106.52,DB106.58,DB103.128-141,DB103.142-155,DB103.156-169,DB103.184-197,DB103.212-225
#IO状态
PlcIO.State=DB10.2.1,DB10.2.2,DB10.2.5,DB10.10.6,DB10.11.1,DB10.11.2,DB10.11.3,DB10.11.4,DB10.11.5,DB10.11.6,DB10.12.1,DB10.12.3,DB10.10.0,DB10.10.2,DB10.10.3,DB10.10.5,DB10.26.6,DB10.30.4,DB10.33.0,DB10.30.5,DB10.33.1,DB10.30.0,DB10.30.1,DB10.30.2,DB10.30.3,DB10.32.4,DB10.32.5,DB10.32.6,DB10.32.7,DB10.32.0,DB10.32.1,DB10.32.2,DB10.32.3,DB10.27.7,DB10.24.6,DB10.38.4,DB10.41.0,DB10.38.5,DB10.41.1,DB10.35.7,DB10.38.0,DB10.38.1,DB10.38.2,DB10.38.3,DB10.40.4,DB10.40.5,DB10.40.6,DB10.40.7,DB10.40.0,DB10.40.1,DB10.40.2,DB10.40.3,DB10.0.0,DB10.0.1,DB10.0.5,DB10.0.2,DB10.0.7,DB10.0.3,DB10.28.0,DB10.36.0,DB10.1.0,DB10.18.2,DB10.18.4,DB10.19.7,DB10.18.3,DB10.18.5,DB10.20.0,DB10.18.6,DB10.19.5,DB10.19.6
PLCIO.Name=A01Sr.Low-E,A01Sr.dec,A01Sr.Pos,A02Sr.YZero,A02Sr.YH1,A02Sr.YH2,A02Sr.YH3,A02Sr.YH4,A02Sr.LimitTop,A02Sr.LimiBottom,A02Sr.Check,A02Sr.YDec,A02Sr.Xin,A02Sr.XCheck,A02Sr.XDec,A02Sr.XPos,C01Sr.Zero,C01YV1.Bas1,C01YV1.Work1,C01.YV1.Bas2,C01.YV1.Work2,C01.YV2.Bas1,C01.YV2.Bas2,C01.YV2.Bas3,C01.YV2.Bas4,C01.YV2.Work1,C01.YV2.Work2,C01.YV2.Work3,C01.YV2.Work4,C01.YV.Blow1,C01.YV.Blow2,C01.YV.Blow3,C01.YV.Blow4,C01.SR.Limit1,C02.Sr.Zero,C02.YV1.Bas1,C02.YV1.Work1,C02.YV1.Bas2,C02.YV1.Work2,C02.Sr.limit1,C02.YV2.Bas1,C02.YV2.Bas2,C02.YV2.Bas3,C02.YV2.Bas4,C02.YV2.Work1,C02.YV2.Work2,C02.YV2.Work3,C02.YV2.Work4,C02.YV.Blow1,C02.YV.Blow2,C02.YV.Blow3,C02.YV.Blow4,bStart,bStop,bEstop,bReset,bAuto/Manual,bPause,C01.Sr.Limit2,C02.Sr.Limit2,A01.FootControl,B01.Sr.DecLeft,B01.Sr.PosLeft,B01.Sr.SafetyLeft,B01.Sr.DecRight,B01.Sr.PosRight,B01.Sr.SafetyRight,B01.Sr.TurnZero,B01.Sr.TurnLimitTop,B01.Sr.TurnLimitBottom
#A01参数
PlcA01.param=DB10.1664,DB10.1668,DB10.1672,DB10.1676,DB10.1680
#A01按钮
PlcA01.button=DB10.42.2,DB10.44.0
#A02参数
PlcA02.param=DB10.248,DB10.252,DB10.256,DB10.260,DB10.264,DB10.268,DB10.448,DB10.1744,DB10.1748,DB10.1752,DB10.1756,DB10.1760,DB10.1764,DB10.1768,DB10.1772
#A02按钮
PlcA02.button=DB10.60.2,DB10.68.0,DB10.68.1,DB10.70.0,DB10.70.1
#A02参数
PlcB01.param=DB10.448,DB10.452,DB10.456,DB10.460,DB10.1684,DB10.1688,DB10.1692,DB10.1696,DB10.1700,DB10.1776,DB10.1780,DB10.1792,DB10.1796,DB10.1800,DB10.1632,DB10.1636,DB10.1640,DB10.1644
#A02按钮
PlcB01.button=DB10.80.0,DB10.88.0,DB10.88.1,DB10.78.2,DB10.86.0,DB10.86.1,DB10.2050.4,DB10.2050.5,DB10.2050.6,DB10.2050.7
#C01参数
PlcC01.param=DB10.1704,DB10.1708,DB10.1712,DB10.1716,DB10.1720,DB10.1808,DB10.1812,DB10.192,DB10.196,DB10.200,DB10.208,DB10.212,DB10.216,DB10.232,DB10.236,DB10.240,DB10.224,DB10.226,DB10.228
#C01按钮
PlcC01.button=DB10.98.0,DB10.106.0,DB10.96.2,DB10.104.0,DB10.2050.0,DB10.2050.1,DB10.2050.2,DB10.2048.0,DB10.2048.1,DB10.2048.2
#C02参数
PlcC02.param=DB10.1724,DB10.1728,DB10.1732,DB10.1736,DB10.1740,DB10.1824,DB10.1828,DB10.204,DB10.220,DB10.244,DB10.230
#C03按钮
PlcC02.button=DB10.116.0,DB10.124.0,DB10.114.2,DB10.122.0,DB10.2050.3,DB10.2048.3
#中空台参数
PlcHollow.param=DB10.2052.0,DB10.2056.0,DB10.1648.0,DB10.1652.0
#中空台按钮
PlcHollow.button=DB10.2048.6,DB10.2048.7,DB10.2048.4,DB10.2048.5
#当前位置显示
Plc.position=DB10.1988,DB10.1992,DB10.1996,DB10.2000,DB10.2008,DB10.2016