添加新界面,配置新界面json文件,补充IO状态界面地址,添加报警信息界面json
11个文件已修改
21个文件已添加
5385 ■■■■■ 已修改文件
CanadaMes-ui/src/configuration/Action.json 564 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/Alarm.json 514 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/AutomaticParameterSetting.json 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/ManualJog.json 220 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/Manualoneposition.json 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/Manualoneposition2.json 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/Parameter.json 640 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/Positioning1.json 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/Positioning2.json 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/ServoManualone.json 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/Sign.json 270 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/State.json 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/address.json 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/parameter1.json 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/parameter2.json 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/zh-CN.json 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/router/index.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Action.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualJog.vue 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualonePosition.vue 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Parameter1.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Parameter2.vue 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Positioning1.vue 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Positioning2.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/ServoManualone.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Servomanual.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/Electrical/Sign.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/configuration/Action.json
@@ -1,88 +1,598 @@
{
  "action": [
    {
      "name": "D01 VFD conveyor"
      "name": "D01 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D02 VFD conveyor"
      "name": "D02 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D03 VFD conveyor"
      "name": "D03 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D04 VFD conveyor"
      "name": "D04 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D05 VFD conveyor"
      "name": "D05 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D06 VFD conveyor"
      "name": "D06 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 VFD conveyor"
      "name": "A01 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 VFD conveyor"
      "name": "A02 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 VFD conveyor"
      "name": "B01 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 VFD conveyor"
      "name": "B02 VFD conveyor",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 SERVE TURN JOG+"
      "name": "A01 SERVE TURN JOG+",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 SERVE TURN JOG-"
      "name": "A02 SERVE TURN JOG-",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 SERVE TRAVEL JOG+"
      "name": "A01 SERVE TRAVEL JOG+",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 SERVE TRAVEL JOG-"
      "name": "A02 SERVE TRAVEL JOG-",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 SERVE TRAVEL JOG+"
      "name": "B01 SERVE TRAVEL JOG+",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 SERVE TRAVEL JOG-"
      "name": "B02 SERVE TRAVEL JOG-",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 SERVE TURN POS"
      "name": "A01 SERVE TURN POS",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 SERVE TURN POS"
      "name": "A02 SERVE TURN POS",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 SERVE TRAVEL POS"
      "name": "A01 SERVE TRAVEL POS",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 SERVE TRAVEL POS"
      "name": "A02 SERVE TRAVEL POS",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 SERVE TRAVEL POS"
      "name": "B01 SERVE TRAVEL POS",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 SERVE TRAVEL POS"
      "name": "B02 SERVE TRAVEL POS",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 YV TURN"
      "name": "B01 YV TURN",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 YV UP DOWN"
      "name": "B01 YV UP DOWN",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 YV TURN"
      "name": "B02 YV TURN",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 YV UP DOWN"
      "name": "B02 YV UP DOWN",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 YV Gassing",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 YV Gassing",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 VFD conveyor reverse",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 VFD conveyor reverse",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 SERVE TURN reset",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 SERVE TURN home",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 SERVE TRAVEL reset",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 SERVE TURN reset",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 SERVE TURN home",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 SERVE TRAVEL reset",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 SERVE TRAVEL reset",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 SERVE TRAVEL home",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 SERVE TRAVEL reset",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 SERVE TRAVEL home",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "Manual storage startup",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "Manual output startup",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 oil pump",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 oil pump",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 1# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 22# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 43# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 64# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 85# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 106# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 127# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 148# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 get 169# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 190# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 1# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 22# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 43# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 64# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 85# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 106# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 127# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 148# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 169# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 get 190# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 get 1# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 get 22# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 get 43# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 get 64# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 get 85# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 get 106# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 get 127# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 get 148# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 get 169# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 get 190# grid address",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D01 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D02 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D03 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D04 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D05 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D06 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 ID Clean",
      "value": 1,
      "state": "1",
      "type": "1",
      "page": "1"
    }
  ],
  "address": [
    {
      "name": "DB2.0.0",
      "count": 26
      "count": 84
    }
  ]
}
CanadaMes-ui/src/configuration/Alarm.json
New file
@@ -0,0 +1,514 @@
{
  "content": [
    {
      "name": "D01 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D04 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D05 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D06 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 VFD error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 servo turn error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 servo turn error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 servo travel error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 servo travel error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 servo travel error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 servo travel error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D01 DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D01 pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02 DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02 pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03 DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03 pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D04 DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D04 pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D05 DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D05 pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D06 DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D06 pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 IN DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 IN pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 OUT DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 OUT pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 IN DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 IN pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 OUT DEC error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 OUT pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D01 Scan glass exceeding limit",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "emergency stop alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "More glass than known",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "less glass than known",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D01 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D04 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D05 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D06 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02 conveyor timeout alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 conveyor Left safety alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01 conveyor right safety alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 conveyor Left safety alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02 conveyor right safety alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "1# buffer safety alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "2# buffer safety alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "3# buffer safety alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "4# buffer safety alarm",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01.SR right in pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02.SR left in pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.SR left in pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.SR left dec error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.SR right dec error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.SR right in pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02.SR left in pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02.SR left dec error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02.SR right dec error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02.SR right in pos error",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    }
  ],
  "address": [
    {
      "name": "DB104.DBx0.0",
      "count": 72
    }
  ]
}
CanadaMes-ui/src/configuration/AutomaticParameterSetting.json
New file
@@ -0,0 +1,92 @@
[
  [
    {
      "name": "大车自动速度",
      "read": 33,
      "sending": "",
      "type": "0",
      "address": "DB100.0",
      "count": 3
    }
  ],
  [
    {
      "name": "小车自动速度",
      "read": 11,
      "sending": "",
      "address": "DB100.0",
      "type": "0"
    }
  ],
  [
    {
      "name": "A01行走高速角度",
      "read": 33,
      "sending": "",
      "type": "0",
      "address": "DB100.0",
      "count": 3
    },
    {
      "name": "A01行走低速角度",
      "read": 11,
      "sending": "",
      "address": "DB100.0",
      "type": "0"
    },
    {
      "name": "A01输送接片角度",
      "read": 22,
      "sending": "",
      "address": "DB100.0",
      "type": "0"
    },
    {
      "name": "A01笼子角度",
      "read": 22,
      "sending": "",
      "address": "DB100.0",
      "type": "0"
    }
  ],
  [
    {
      "name": "A02行走高速角度",
      "read": 33,
      "sending": "",
      "type": "0",
      "address": "DB100.0",
      "count": 3
    },
    {
      "name": "A02行走低速角度",
      "read": 11,
      "sending": "",
      "address": "DB100.0",
      "type": "0"
    },
    {
      "name": "A02输送接片角度",
      "read": 22,
      "sending": "",
      "address": "DB100.0",
      "type": "0"
    },
    {
      "name": "A02笼子角度",
      "read": 22,
      "sending": "",
      "address": "DB100.0",
      "type": "0"
    }
  ],
  [
    {
      "name": "自动翻转速度",
      "read": 33,
      "sending": "",
      "address": "DB100.0",
      "type": "0"
    }
  ]
]
CanadaMes-ui/src/configuration/ManualJog.json
New file
@@ -0,0 +1,220 @@
[
  [
    {
      "button": {
        "name": "D01输送",
        "value": 1,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "D02输送",
        "value": 1,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "D03输送",
        "value": 1,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "D04输送",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "D05输送",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "D06输送",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ],
  [
    {
      "button": {
        "name": "A01注油泵",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "A01翻转",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "A01行走点动",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "A01输送正向",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "A01输送反向",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ],
  [
    {
      "button": {
        "name": "A02注油泵",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "A02翻转",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "A02行走点动",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "A02输送正向",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "A02输送反向",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ],
  [
    {
      "button": {
        "name": "B01输送",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "B01行走点动",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "B02输送",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "B02行走点动",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ],
  [
    {
      "button": {
        "name": "B01翻转气缸",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "B01升降气缸",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "B01电磁阀",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "B02翻转气缸",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "B02升降气缸",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "B02电磁阀",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ]
]
CanadaMes-ui/src/configuration/Manualoneposition.json
New file
@@ -0,0 +1,314 @@
[
  [
    {
      "name": "A01手动格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3,
      "state": 1
    },
    {
      "name": "A01定位速度",
      "read": 11,
      "sending": 0,
      "address": "DB100.0",
      "type": "0",
      "state": 1
    },
    {
      "name": "A01当前格子",
      "read": 22,
      "sending": 0,
      "address": "DB100.0",
      "type": "0",
      "state": 1
    },
    {
      "button": {
        "name": "A01启动",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "未回零",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "回零",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    }
  ],
  [
    {
      "name": "A02手动格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3,
      "state": 1
    },
    {
      "name": "A02定位速度",
      "read": 11,
      "sending": 0,
      "address": "DB100.0",
      "type": "0",
      "state": 1
    },
    {
      "name": "A02当前格子",
      "read": 22,
      "sending": 0,
      "address": "DB100.0",
      "type": "0",
      "state": 1
    },
    {
      "button": {
        "name": "A02启动",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "未回零",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "回零",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    }
  ],
  [
    {
      "name": "B01手动格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3,
      "state": 1
    },
    {
      "name": "B01定位速度",
      "read": 11,
      "sending": 0,
      "address": "DB100.0",
      "type": "0",
      "state": 1
    },
    {
      "name": "B01当前格子",
      "read": 22,
      "sending": 0,
      "address": "DB100.0",
      "type": "0",
      "state": 1
    },
    {
      "button": {
        "name": "B01启动",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "未回零",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "回零",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ],
  [
    {
      "name": "B02手动格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3,
      "state": 1
    },
    {
      "name": "B02定位速度",
      "read": 11,
      "sending": 0,
      "address": "DB100.0",
      "type": "0",
      "state": 1
    },
    {
      "name": "B02当前格子",
      "read": 22,
      "sending": 0,
      "address": "DB100.0",
      "type": "0",
      "state": 1
    },
    {
      "button": {
        "name": "B02启动",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "未回零",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "回零",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ],
  [
    {
      "name": "A01实时位置",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3,
      "state": 1
    }
  ],
  [
    {
      "name": "A02实时位置",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3,
      "state": 1
    }
  ],
  [
    {
      "name": "B01实时位置",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3,
      "state": 1
    }
  ],
  [
    {
      "name": "B02实时位置",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3,
      "state": 1
    }
  ]
]
CanadaMes-ui/src/configuration/Manualoneposition2.json
New file
@@ -0,0 +1,130 @@
[
  [
    {
      "name": "手动位置",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3
    },
    {
      "name": "定位速度",
      "read": 11,
      "sending": 0,
      "address": "DB100.0",
      "type": "0"
    },
    {
      "name": "A01翻转实时位置",
      "read": 22,
      "sending": 0,
      "address": "DB100.0",
      "type": "0"
    },
    {
      "button": {
        "name": "A01翻转启动",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "未回零",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "回零",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ],
  [
    {
      "name": "手动位置",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3
    },
    {
      "name": "定位速度",
      "read": 11,
      "sending": 0,
      "address": "DB100.0",
      "type": "0"
    },
    {
      "name": "A02翻转实时位置",
      "read": 22,
      "sending": 0,
      "address": "DB100.0",
      "type": "0"
    },
    {
      "button": {
        "name": "A02翻转启动",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0",
        "state": 0
      }
    },
    {
      "button": {
        "name": "未回零",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    },
    {
      "button": {
        "name": "回零",
        "value": 0,
        "address": "DB10.0",
        "state": 1
      }
    }
  ]
]
CanadaMes-ui/src/configuration/Parameter.json
@@ -1,86 +1,666 @@
{
  "para": [
    {
      "name": "conveyor Velocity(Auto FAST)",
      "read": 33,
      "name": "D01-D06 conveyor Velocity(Auto FAST)",
      "value": 123,
      "sending": 0,
      "unit": "m/min"
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "conveyor Velocity(Auto SLOW)",
      "read": 11,
      "name": "D01-D06 conveyor Velocity(Auto SLOW)",
      "value": 11,
      "sending": 0,
      "unit": "m/min"
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "conveyor Velocity(Manual)",
      "read": 22,
      "name": "D01-D06 conveyor Velocity(Manual)",
      "value": 22,
      "sending": 0,
      "unit": "m/min"
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 TURN JOG Velocity",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 TRAVEL JOG Velocity",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 B02 TRAVEL JOG Velocity",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 TURN POS Velocity AUTO",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 TURN POS Velocity manual",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 TRAVEL POS Velocity AUTO",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 TRAVEL POS Velocity manual",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 B02 TRAVEL POS Velocity AUTO",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 B02 TRAVEL POS Velocity manual",
      "read": 0,
      "value": 0,
      "sending": 0,
      "unit": "mm/S"
      "unit": "mm/S",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D01-D06 conveyor Velocity(Max)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 conveyor Velocity(Max)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 conveyor Velocity(Auto FAST)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 A02 conveyor Velocity(Auto SLOW)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 B02 conveyor Velocity(Manual)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 B02 conveyor Velocity(Max)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 B02 conveyor Velocity(Auto FAST)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 B02 conveyor Velocity(Auto SLOW)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 B02 conveyor Velocity(Manual)",
      "value": 0,
      "sending": 0,
      "unit": "m/min",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "grid spacing",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 Splice address setting",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 Splice address setting",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 1# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 22# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 43# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 64# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 85# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 106# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 127# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 148# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 169# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 190# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 1# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 22# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 43# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 64# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 85# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 106# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 127# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 148# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 169# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 190# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 1# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 22# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 43# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 64# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 85# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 106# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 127# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 148# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 169# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 190# grid address",
      "value": 0,
      "sending": 0,
      "unit": "mm",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 Target grid(Manual)",
      "value": 0,
      "sending": 0,
      "unit": "",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 Target grid(Manual)",
      "value": 0,
      "sending": 0,
      "unit": "",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 Target grid(Manual)",
      "value": 0,
      "sending": 0,
      "unit": "",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 Target grid(Manual)",
      "value": 0,
      "sending": 0,
      "unit": "",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 turn Target Angle(Manual)",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 turn Target Angle(Manual)",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 turn Angle1",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 turn Angle2",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 turn Angle3",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 turn Angle4",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 turn Angle1",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 turn Angle2",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 turn Angle3",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 turn Angle4",
      "value": 0,
      "sending": 0,
      "unit": "°",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "Minimum glass length",
      "value": 0,
      "sending": 0,
      "unit": "",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "Minimum glass height",
      "value": 0,
      "sending": 0,
      "unit": "",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "Maximum glass length",
      "value": 0,
      "sending": 0,
      "unit": "",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "Maximum glass height",
      "value": 0,
      "sending": 0,
      "unit": "",
      "state": "1",
      "type": "1",
      "page": "1"
    }
  ],
  "address": [
    {
      "name": "DB100.0",
      "count": 12
      "count": 72
    },
    {
      "name": "DB100.0",
      "count": 12
      "name": "DB101.0",
      "count": 22
    },
    {
      "name": "DB102.0",
      "count": 33
    }
  ]
}
CanadaMes-ui/src/configuration/Positioning1.json
New file
@@ -0,0 +1,177 @@
[
    [
        {
            "title": {
              "name": "存片格位置设定"
            }, "type": "1"
          },
      {
        "name": "1#格地址",
        "read": 33,
        "sending": 0,
        "type": "0",
        "value":"0",
        "address":"DB100.48",
        "count":10
      },
      {
        "name": "22#格地址",
        "read": 11,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "43#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "64#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "85#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "106#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "127#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "148#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "169#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "190#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      }
    ],
    [
        {
            "title": {
              "name": "出片格位置设定"
            },"type": "1",
            "value":"0"
          },
      {
        "name": "1#格地址",
        "read": 33,
        "sending": 0,
        "type": "0" ,
        "value":"0",
        "address":"DB100.68",
        "count":10
      },
      {
        "name": "22#格地址",
        "read": 11,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "43#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "64#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "85#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "106#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "127#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "148#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "169#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      },
      {
        "name": "190#格地址",
        "read": 22,
        "sending": 0,
        "type": "0" ,
        "value":"0"
      }
    ]
  ]
CanadaMes-ui/src/configuration/Positioning2.json
New file
@@ -0,0 +1,92 @@
[
    [
        {
            "title": {
              "name": "B01格位置设定"
            }
          },
      {
        "name": "1#格地址",
        "read": 33,
        "sending": 0,
        "type": "0",
        "address":"DB100.0",
        "count":3
      },
      {
        "name": "22#格地址",
        "read": 11,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "43#格地址",
        "read": 22,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "64#格地址",
        "read": 22,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "85#格地址",
        "read": 22,
        "sending": 0,
        "type": "0"
      }
    ],
    [
        {
            "title": {
              "name": "B02位置设定"
            }
          },
          {
            "name": "106#格地址",
            "read": 22,
            "sending": 0,
            "type": "0"
          },
          {
            "name": "127#格地址",
            "read": 22,
            "sending": 0,
            "type": "0"
          },
          {
            "name": "148#格地址",
            "read": 22,
            "sending": 0,
            "type": "0"
          },
          {
            "name": "169#格地址",
            "read": 22,
            "sending": 0,
            "type": "0"
          },
          {
            "name": "190#格地址",
            "read": 22,
            "sending": 0,
            "type": "0"
          }
    ]
  ]
CanadaMes-ui/src/configuration/ServoManualone.json
New file
@@ -0,0 +1,218 @@
[
  [
    {
      "name": "大车自动速度",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3
    }
  ],
  [
    {
      "name": "小车自动速度",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3
    }
  ],
  [
    {
      "name": "A01 所在格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.0",
      "count": 3
    },
    {
      "name": "取片格子",
      "read": 11,
      "sending": 0,
      "type": "0"
    },
    {
      "name": "存片格子",
      "read": 22,
      "sending": 0,
      "type": "0"
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0"
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0"
      }
    },
    {
      "button": {
        "name": "自动启动",
        "value": 0,
        "address": "DB10.0"
      }
    }
  ],
  [
    {
      "name": "A02 所在格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.1",
      "count": 3
    },
    {
      "name": "取片格子",
      "read": 11,
      "sending": 0,
      "type": "0"
    },
    {
      "name": "存片格子",
      "read": 22,
      "sending": 0,
      "type": "0"
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0"
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0"
      }
    },
    {
      "button": {
        "name": "自动启动",
        "value": 0,
        "address": "DB10.0"
      }
    }
  ],
  [
    {
      "name": "B01 所在格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.2",
      "count": 3
    },
    {
      "name": "目标格子",
      "read": 11,
      "sending": 0,
      "type": "0"
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0"
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0"
      }
    }
  ],
  [
    {
      "name": "B02 所在格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.3",
      "count": 3
    },
    {
      "name": "目标格子",
      "read": 11,
      "sending": 0,
      "type": "0"
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0"
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0"
      }
    }
  ],
  [
    {
      "name": "B02 所在格子",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.3",
      "count": 3
    },
    {
      "name": "目标格子",
      "read": 11,
      "sending": 0,
      "type": "0"
    },
    {
      "button": {
        "name": "故障",
        "value": 0,
        "address": "DB10.0"
      }
    },
    {
      "button": {
        "name": "复位",
        "value": 0,
        "address": "DB10.0"
      }
    }
  ],
  [
    {
      "name": "存片接片地址",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.4",
      "count": 3
    }
  ],
  [
    {
      "name": "出片接片地址",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address": "DB100.5",
      "count": 3
    }
  ]
]
CanadaMes-ui/src/configuration/Sign.json
@@ -3,287 +3,443 @@
    {
      "name": "D01.SR dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D01.SR in pos",
      "value": "0",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D02.SR dec",
      "value": "0",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D02.SR in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D03.SR into",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D03.SR dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D03.SR in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D04.SR dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D04.SR in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D05.SR dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D05.SR in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D06.SR dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D06.SR in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR out dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR out in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR in dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR in in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR turn on",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR turn off",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR up",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR down",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR out dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR out in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR in dec",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR in in pos",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR turn on",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR turn off",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR up",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR down",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR out safety",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR in safety",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR out safety",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SB.start(+)",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SB.stop(1)",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SB.reset",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SB.auto/manul",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SB.pause",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SB.emg",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D01.SB.start",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D06.SB.start",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR in safety",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SAFETYDOOR.requset",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SAFETYDOOR.confirm",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SAFETYDOOR.reset",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "LED.red",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "LED.green",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "LED.yellow",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D01.LED.green",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D06.LED.green",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.YV.turn",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.YV.up down",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.YV.gassing",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.YV.turn",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.YV.up down",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.YV.gassing",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SAFETYDOOR.led",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "SAFETYDOOR.open",
      "value": "1",
      "state": "1"
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR origin",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR left limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01.SR right limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR origin",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR left limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02.SR right limit",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    }
  ],
  "address": [
CanadaMes-ui/src/configuration/State.json
@@ -1,40 +1,318 @@
{
  "state": [
    {
      "name": "D01.State"
      "name": "D01.State",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D02.State"
      "name": "D02.State",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B01.State"
      "name": "B01.State",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "B02.State"
      "name": "B02.State",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A01.State"
      "name": "A01.State",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "A02.State"
      "name": "A02.State",
      "value": "1",
      "state": "1",
      "type": "3",
      "page": "1"
    },
    {
      "name": "D03.State"
      "name": "D03.State",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D04.State"
      "name": "D04.State",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D05.State"
      "name": "D05.State",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D06.State"
      "name": "D06.State",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 tavel Actual Position",
      "value": "1",
      "state": "1",
      "type": "2",
      "page": "1"
    },
    {
      "name": "A01 turn Actual angle",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 tavel Actual Position",
      "value": "1",
      "state": "1",
      "type": "2",
      "page": "1"
    },
    {
      "name": "A02 turn Actual angle",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 tavel Actual Position",
      "value": "1",
      "state": "1",
      "type": "2",
      "page": "1"
    },
    {
      "name": "B02 tavel Actual Position",
      "value": "1",
      "state": "1",
      "type": "2",
      "page": "1"
    },
    {
      "name": "A01 Current Grid",
      "value": "1",
      "state": "1",
      "type": "2",
      "page": "1"
    },
    {
      "name": "A02 Current Grid",
      "value": "1",
      "state": "1",
      "type": "2",
      "page": "1"
    },
    {
      "name": "B01 Current Grid",
      "value": "1",
      "state": "1",
      "type": "2",
      "page": "1"
    },
    {
      "name": "B01 Target Grid",
      "value": "1",
      "state": "1",
      "type": "2",
      "page": "1"
    },
    {
      "name": "B02 Current Grid",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 Target Grid",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D01 ID",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D02 ID",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D03 ID",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D04 ID",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D05 ID",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "D06 ID",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 ID1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 ID2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 ID1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 ID2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 ID1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 ID2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 ID1",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 ID2",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 conveyor Fault codes",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 turn servo Fault codes",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A01 travel servo Fault codes",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 conveyor Fault codes",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 turn servo Fault codes",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "A02 travel servo Fault codes",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B01 travel servo Fault codes",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    },
    {
      "name": "B02 travel servo Fault codes",
      "value": "1",
      "state": "1",
      "type": "1",
      "page": "1"
    }
  ],
  "address": [
    {
      "name": "DB103.0",
      "count": 10
      "count": 44
    }
  ]
}
CanadaMes-ui/src/configuration/address.json
New file
@@ -0,0 +1,68 @@
{
  "parameter1": [
    {
      "name": "DB100.0",
      "type": "w",
      "count": 12
    },
    {
      "name": "DB100.0",
      "type": "x",
      "count": 12
    }
  ],
  "parameter2": [
    {
      "name": "DB100.0",
      "count": 12
    },
    {
      "name": "DB100.0",
      "count": 12
    }
  ],
  "Positioning1": [
    {
      "name": "DB100.0",
      "count": 12
    },
    {
      "name": "DB100.0",
      "count": 12
    }
  ],
  "Positioning2": [
    {
      "name": "DB100.0",
      "count": 12
    },
    {
      "name": "DB100.0",
      "count": 12
    }
  ],
  "ServoManualone": [
    {
      "name": "DB100.0",
      "count": 12
    },
    {
      "name": "DB100.0",
      "count": 12
    }
  ],
  "Manualoneposition": [
    {
      "name": "DB100.0",
      "count": 72
    },
    {
      "name": "DB101.0",
      "count": 22
    },
    {
      "name": "DB102.0",
      "count": 33
    }
  ]
}
CanadaMes-ui/src/configuration/parameter1.json
New file
@@ -0,0 +1,114 @@
[
    [
        {
            "title": {
              "name": "D01~D06输送"
            }
          },
      {
        "name": "最高速度",
        "read": 33,
        "sending": 0,
        "type": "0",
        "address":"DB100.0",
        "count":3
      },
      {
        "name": "高速线速度",
        "read": 11,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "低速线速度",
        "read": 11,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "手动速度",
        "read": 22,
        "sending": 0,
        "type": "0"
      }
    ],
    [
      {
          "title": {
            "name": "A01~A02输送"
          }
        },
    {
      "name": "最高速度",
      "read": 33,
      "sending": 0,
      "type": "0",
      "address":"DB100.0",
      "count":3
    },
    {
      "name": "高速线速度",
      "read": 11,
      "sending": 0,
      "type": "0"
    },
    {
      "name": "低速线速度",
      "read": 11,
      "sending": 0,
      "type": "0"
    },
    {
      "name": "手动速度",
      "read": 22,
      "sending": 0,
      "type": "0"
    }
  ],[
    {
        "title": {
          "name": "B01~B02输送"
        }
      },
  {
    "name": "最高速度",
    "read": 33,
    "sending": 0,
    "type": "0",
    "address":"DB100.0",
    "count":3
  },
  {
    "name": "高速线速度",
    "read": 11,
    "sending": 0,
    "type": "0"
  },
  {
    "name": "低速线速度",
    "read": 11,
    "sending": 0,
    "type": "0"
  },
  {
    "name": "手动速度",
    "read": 22,
    "sending": 0,
    "type": "0"
  }
]
  ]
CanadaMes-ui/src/configuration/parameter2.json
New file
@@ -0,0 +1,128 @@
[
    [
        {
            "title": {
              "name": "A01输送"
            }
          },
      {
        "name": "高速线速度",
        "read": 33,
        "sending": 0,
        "type": "0",
        "address":"DB100.0",
        "count":3
      },
      {
        "name": "低速线速度",
        "read": 11,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "手动速度",
        "read": 22,
        "sending": 0,
        "type": "0"
      }
    ],
    [
        {
            "title": {
              "name": "B02输送"
            }
          },
      {
        "name": "高速线速度",
        "read": 33,
        "sending": 0,
        "type": "0",
        "address":"DB100.0",
        "count":3
      },
      {
        "name": "低速线速度",
        "read": 11,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "手动速度",
        "read": 22,
        "sending": 0,
        "type": "0"
      }
    ],
    [
        {
            "title": {
              "name": "A02输送"
            }
          },
      {
        "name": "高速线速度",
        "read": 33,
        "sending": 0,
        "type": "0",
        "address":"DB100.0",
        "count":3
      },
      {
        "name": "低速线速度",
        "read": 11,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "手动速度",
        "read": 22,
        "sending": 0,
        "type": "0"
      }
    ],
    [
        {
            "title": {
              "name": "B02输送"
            }
          },
      {
        "name": "高速线速度",
        "read": 33,
        "sending": 0,
        "type": "0",
        "address":"DB100.0",
        "count":3
      },
      {
        "name": "低速线速度",
        "read": 11,
        "sending": 0,
        "type": "0"
      },
      {
        "name": "手动速度",
        "read": 22,
        "sending": 0,
        "type": "0"
      }
    ]
  ]
CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -297,9 +297,9 @@
  "The glass ID already exists in the loading queue": "上片队列已存在此玻璃id",
  "This glass ID already exists in the sorting cage": "理片笼内已存在此玻璃id",
  "langparameter": {
    "conveyor Velocity(Auto FAST)": "皮带输送自动快速",
    "conveyor Velocity(Auto SLOW)": "皮带输送自动慢速",
    "conveyor Velocity(Manual)": "皮带输送手动速度",
    "conveyor Velocity(Auto FAST)": "D01-D06 皮带输送自动快速",
    "conveyor Velocity(Auto SLOW)": "D01-D06 皮带输送自动慢速",
    "conveyor Velocity(Manual)": "D01-D06 皮带输送手动速度",
    "A01 A02 TURN JOG Velocity": "A01 A02 翻转点动速度",
    "A01 A02 TRAVEL JOG Velocity": "A01 A02 行走点动速度",
    "B01 B02 TRAVEL JOG Velocity": "B01 B02 行走点动速度",
CanadaMes-ui/src/router/index.js
@@ -33,7 +33,7 @@
        path: '/home',
        component: () => import('../views/home')
      },
      {
@@ -49,7 +49,7 @@
        component: () => import('../views/device/parameter'),
      },
      {
        path: '/device/alarm',
        component: () => import('../views/device/alarm')
@@ -58,7 +58,7 @@
        path: '/device/iostate',
        component: () => import('../views/device/iostate')
      },
      {
        path: '/device/control',
        component: () => import('../views/device/control')
@@ -83,6 +83,46 @@
        path: '/Electrical/alarm',
        component: () => import('../views/Electrical/alarm')
      },
      {
        path: '/Electrical/Servomanual',
        component: () => import('../views/Electrical/Servomanual')
      },
      {
        path: '/Electrical/ServoManualone',
        component: () => import('../views/Electrical/ServoManualone')
      },
      {
        path: '/Electrical/Parameter1',
        component: () => import('../views/Electrical/Parameter1')
      },
      {
        path: '/Electrical/Parameter2',
        component: () => import('../views/Electrical/Parameter2')
      },
      {
        path: '/Electrical/Positioning1',
        component: () => import('../views/Electrical/Positioning1')
      },
      {
        path: '/Electrical/Positioning2',
        component: () => import('../views/Electrical/Positioning2')
      },
      {
        path: '/Electrical/ManualonePosition',
        component: () => import('../views/Electrical/ManualonePosition')
      },
      {
        path: '/Electrical/ManualonePosition2',
        component: () => import('../views/Electrical/ManualonePosition2')
      },
      {
        path: '/Electrical/AutomaticParameterSetting',
        component: () => import('../views/Electrical/AutomaticParameterSetting')
      },
      {
        path: '/Electrical/ManualJog',
        component: () => import('../views/Electrical/ManualJog')
      }
CanadaMes-ui/src/views/Electrical/Action.vue
@@ -12,7 +12,10 @@
      }}</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('Servo Manual')
      }}</router-link>
    </el-breadcrumb>
    <div>Action</div>
    <el-form label-width="100px" style="display: flex;flex-wrap: wrap;" :model="{ messagepack }">
      <!-- <div class="kuai_div" v-for="item in record.xyData" :key="item.value">
CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
New file
@@ -0,0 +1,118 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
        }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
    <el-row :gutter="20">
      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
        <el-card class="json-block" style="width:485px;">
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row" v-if="item.type === '0'">
              <span class="name" v-if="item.type === '0'" style="width:150px;">{{ item.name }}</span>
              <el-input style="width:150px;" v-if="item.type === '0'" v-model="item.read" class="input-box"></el-input>
              <el-input style="width:150px;" v-if="item.type === '0'" v-model="item.sending" class="input-box"></el-input>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/AutomaticParameterSetting'
export default {
  name: "AutomaticParameterSetting",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
    }
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { name: item.name, value: item.value, address: item.address };
          } else if (item.button) {
            return { name: item.button.name, value: item.button.value, address: item.button.address };
          }
          return null;
        });
      });
      // 模拟提交数据到后端的操作,实际情况下需要根据你的后端API进行修改
      console.log('提交以下数据到后端:', inputData);
    }
  }
}
</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;
}
</style>
CanadaMes-ui/src/views/Electrical/ManualJog.vue
New file
@@ -0,0 +1,139 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
        }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
    <el-row :gutter="20">
      <el-col :span="18" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
        <el-card class="json-block" style="width:100%;">
          <div class="button-row" style="display: flex; justify-content: space-between;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <el-button v-if="item.button" :name="item.button.name" :class="getStatusClass(item.button.value)"
                class="action-button" @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend();">{{
                  item.button.name
                }}</el-button>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/ManualJog'
export default {
  name: "ManualJog",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
    }
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { name: item.name, value: item.value, address: item.address };
          } else if (item.button) {
            return { name: item.button.name, value: item.button.value, address: item.button.address };
          }
          return null;
        });
      });
      // 模拟提交数据到后端的操作,实际情况下需要根据你的后端API进行修改
      console.log('提交以下数据到后端:', inputData);
    },
    //根据读取PLC的值,根据名称改变颜色1打开,0关闭
    getStatusClass (zhuangtai) {
      if (zhuangtai === 1) {
        return "op";
      }
      else {
        return "dow";
      }
    }
  }
}
</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;
}
.op {
  background-color: #66b1ff;
}
.dow {
  background-color: #A0A0A0;
}
</style>
CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
New file
@@ -0,0 +1,129 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
        }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</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:485px;">
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row">
              <span class="name" style="width:100px;">{{ item.name }}</span>
              <el-input style="width:250px;" v-if="item.state != 0 && item.type === '0'" v-model="item.value"
                class="input-box"></el-input>
            </div>
          </div>
          <div class="button-row" style="display: flex; justify-content: space-between;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <el-button v-if="item.button && item.button.state != 0" :name="item.button.name" class="action-button"
                @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend();">{{ item.button.name
                }}</el-button>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/Manualoneposition'
export default {
  name: "ManualonePosition",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data, // 加载整个data.json文件作为jsonData
      RenderingCollections: []
    }
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { name: item.name, value: item.value, address: item.address };
          } else if (item.button) {
            return { name: item.button.name, value: item.button.value, address: item.button.address };
          }
          return null;
        });
      });
      // 模拟提交数据到后端的操作,实际情况下需要根据你的后端API进行修改
      console.log('提交以下数据到后端:', inputData);
    }
  }
}
</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;
}
</style>
CanadaMes-ui/src/views/Electrical/ManualonePosition2.vue
New file
@@ -0,0 +1,124 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
        }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
    <el-row :gutter="20">
      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
        <el-card class="json-block" style="width:485px;">
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row">
              <span class="name" style="width:100px;">{{ item.name }}</span>
              <el-input style="width:250px;" v-if="item.type === '0'" v-model="item.value" class="input-box"></el-input>
            </div>
          </div>
          <div class="button-row" style="display: flex; justify-content: space-between;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <el-button v-if="item.button" :name="item.button.name" class="action-button"
                @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend();">{{ item.button.name
                }}</el-button>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/Manualoneposition2'
export default {
  name: "ManualonePosition2",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
    }
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { name: item.name, value: item.value, address: item.address };
          } else if (item.button) {
            return { name: item.button.name, value: item.button.value, address: item.button.address };
          }
          return null;
        });
      });
      // 模拟提交数据到后端的操作,实际情况下需要根据你的后端API进行修改
      console.log('提交以下数据到后端:', inputData);
    }
  }
}
</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;
}
</style>
CanadaMes-ui/src/views/Electrical/Parameter1.vue
New file
@@ -0,0 +1,122 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
        }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/Manualoneposition" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manualoneposition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
    <el-row :gutter="18">
      <el-col :span="7" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
        <el-card class="json-block">
          <div class="button-row" style="display: flex; justify-content: space-between;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <span v-if="item.title" :name="item.title.name" class="action-button">{{ item.title.name }}</span>
            </div>
          </div>
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row">
              <span class="name" style="width:250px;">{{ item.name }}</span>
              <el-input v-if="item.type === '0'" v-model="item.value" class="input-box"></el-input>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/parameter1'
export default {
  name: "Parameter1",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
    }
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { name: item.name, value: item.value, address: item.address };
          } else if (item.button) {
            return { name: item.title.name, value: item.title.value, address: item.title.address };
          }
          return null;
        });
      });
      // 模拟提交数据到后端的操作,实际情况下需要根据你的后端API进行修改
      console.log('提交以下数据到后端:', inputData);
    }
  }
}
</script>
<style scoped>
.item-row {
  display: flex;
  align-items: center;
  margin-bottom: 5px;
  /* 调整每个项目之间的间距 */
}
.action-button {
  margin-right: 30px;
  background: #66b1ff;
  color: #FFF;
}
.blue-button {
  background-color: skyblue;
}
</style>
CanadaMes-ui/src/views/Electrical/Parameter2.vue
New file
@@ -0,0 +1,122 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
          }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/Manualoneposition" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manualoneposition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
    <el-row :gutter="20">
      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
        <el-card class="json-block">
          <div class="button-row" style="display: flex; justify-content: space-between;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <span v-if="item.title" :name="item.title.name" class="action-button">{{ item.title.name }}</span>
            </div>
          </div>
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row">
              <span class="name" style="width:250px;">{{ item.name }}</span>
              <el-input v-if="item.type === '0'" v-model="item.value" class="input-box"></el-input>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/parameter2'
export default {
  name: "Parameter2",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
    }
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { name: item.name, value: item.value, address: item.address };
          } else if (item.button) {
            return { name: item.title.name, value: item.title.value, address: item.title.address };
          }
          return null;
        });
      });
      // 模拟提交数据到后端的操作,实际情况下需要根据你的后端API进行修改
      console.log('提交以下数据到后端:', inputData);
    }
  }
}
</script>
<style scoped>
.item-row {
  display: flex;
  align-items: center;
  margin-bottom: 5px;
  /* 调整每个项目之间的间距 */
}
.action-button {
  margin-right: 30px;
  background: #66b1ff;
  color: #FFF;
}
.blue-button {
  background-color: skyblue;
}
</style>
CanadaMes-ui/src/views/Electrical/Positioning1.vue
New file
@@ -0,0 +1,222 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
          }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/Manualoneposition" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manualoneposition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
    <el-row :gutter="18">
      <el-col :span="7" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex" class='card'>
        <el-card class="json-block">
          <div class="button-row" style="display: flex; justify-content: space-between;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <span v-if="item.title" :name="item.title.name" class="action-button">{{ item.title.name }}</span>
            </div>
          </div>
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row">
              <span class="name" style="width:250px;">{{ item.name }}</span>
              <el-input v-if="item.type === '0'" v-model="item.value" class="input-box"></el-input>
              <el-button v-if="item.type === '0'" class="input-box" @click="submitDataToBackend();">取地址</el-button>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
let socket;
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/Positioning1'
export default {
  name: "Positioning1",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
    }
  },
  created () {
    this.initWebSocket();
    console.log('jsonData:', this.jsonData);
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { value: parseInt(item.value) };
          } else if (item.button) {
            return { value: parseInt(item.title.value) };
          }
          return null;
        });
      });
      // 将inputData转换为整数数组
      const integerArray = inputData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item !== null) {
            return item.value;
          }
          return null;
        });
      });
      // 构建JSON对象
      const jsonObject = { data: integerArray };
      // 提交数据到后端
      const jsonString = JSON.stringify(jsonObject);
      console.log('提交以下数据到后端:', jsonString);
      socket?.send(jsonString);
    },
    initWebSocket () {
      let viewname = "Positioning1";
      if (typeof WebSocket === "undefined") {
        console.log("您的浏览器不支持WebSocket");
      } else {
        let socketUrl = "ws://" + "localhost:8888" + "/springboot-vue3/api/talk/" + viewname;
        if (socket != null) {
          socket.close();
          socket = null;
        }
        // 开启一个websocket服务
        socket = new WebSocket(socketUrl);
        // 打开事件
        socket.onopen = function () {
          console.log("websocket已打开");
        };
        // 收到消息
        socket.onmessage = (msg) => {
          if (!msg.data) {
            return; // 如果收到空数据,则直接返回,不执行后续逻辑
          }
          let obj = JSON.parse(msg.data);
          const jsonData2 = this.jsonData;
          document.addEventListener('mouseover', function (event) {
            const inputBox = document.querySelector('.card'); // 根据你的实际情况选择正确的选择器
            if (inputBox && !inputBox.contains(event.target)) {
              // 如果鼠标不在输入框内,更新输入框的值
              // this.submitDataToBackend()
              const params = obj.params;
              // this.submitDataToBackend()
              let currentIndex = 0;
              jsonData2.forEach((group, groupIndex) => {
                group.forEach((item) => {
                  if (item.type !== '1') {
                    if (params[groupIndex] && params[groupIndex][currentIndex] !== undefined) {
                      item.value = params[groupIndex][currentIndex];
                    }
                    currentIndex++;
                  }
                });
                currentIndex = 0; // 手动重置索引,准备处理下一个分组
              });
              console.log(jsonData2);
            }
          });
        };
        // 关闭事件
        socket.onclose = function () {
          console.log("websocket已关闭");
        };
        // 发生错误事件
        socket.onerror = function () {
          console.log("websocket发生了错误");
        };
      }
    },
    send () {
      socket?.send(JSON.stringify(this.messagepack));
    },
  }
}
</script>
<style scoped>
.item-row {
  display: flex;
  align-items: center;
  margin-bottom: 5px;
  /* 调整每个项目之间的间距 */
}
.action-button {
  margin-right: 30px;
  background: #66b1ff;
  color: #FFF;
}
.blue-button {
  background-color: skyblue;
}
</style>
CanadaMes-ui/src/views/Electrical/Positioning2.vue
New file
@@ -0,0 +1,124 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
      }}</router-link>
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/Manualoneposition" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manualoneposition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
    <el-row :gutter="18">
      <el-col :span="7" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
        <el-card class="json-block">
          <div class="button-row" style="display: flex; justify-content: space-between;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <span v-if="item.title" :name="item.title.name" class="action-button">{{ item.title.name }}</span>
            </div>
          </div>
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row">
              <span class="name" style="width:250px;">{{ item.name }}</span>
              <el-input v-if="item.type === '0'" v-model="item.value" class="input-box"></el-input>
              <el-button v-if="item.type === '0'" v-model="item.value" class="input-box"
                @click="submitDataToBackend();">取地址</el-button>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/Positioning2'
export default {
  name: "Positioning2",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
    }
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { name: item.name, value: item.value, address: item.address };
          } else if (item.button) {
            return { name: item.title.name, value: item.title.value, address: item.title.address };
          }
          return null;
        });
      });
      // 模拟提交数据到后端的操作,实际情况下需要根据你的后端API进行修改
      console.log('提交以下数据到后端:', inputData);
    }
  }
}
</script>
<style scoped>
.item-row {
  display: flex;
  align-items: center;
  margin-bottom: 5px;
  /* 调整每个项目之间的间距 */
}
.action-button {
  margin-right: 30px;
  background: #66b1ff;
  color: #FFF;
}
.blue-button {
  background-color: skyblue;
}
</style>
CanadaMes-ui/src/views/Electrical/ServoManualone.vue
New file
@@ -0,0 +1,124 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
        }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/Manualoneposition" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manualoneposition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
    <el-row :gutter="20">
      <el-col :span="12" v-for="(dataGroup, groupIndex) in jsonData" :key="groupIndex">
        <el-card class="json-block" style="width:450px;">
          <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container">
            <div class="item-row">
              <span class="name" style="width:100px;">{{ item.name }}</span>
              <el-input style="width:250px;" v-if="item.type === '0'" v-model="item.value" class="input-box"></el-input>
            </div>
          </div>
          <div class="button-row" style="display: flex; justify-content: space-between;">
            <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex">
              <el-button v-if="item.button" :name="item.button.name" class="action-button"
                @click="updateButtonValue(dataGroup, itemIndex); submitDataToBackend();">{{ item.button.name
                }}</el-button>
            </div>
          </div>
        </el-card>
      </el-col>
    </el-row>
    <!-- <el-button @click="submitDataToBackend">提交数据到后端</el-button> -->
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/ServoManualone'
export default {
  name: "ServoManualone",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data // 加载整个data.json文件作为jsonData
    }
  },
  methods: {
    updateButtonValue (dataGroup, itemIndex) {
      this.$set(dataGroup[itemIndex].button, 'value', 1); // 点击按钮后将值改为1
    },
    submitDataToBackend () {
      const inputData = this.jsonData.map(dataGroup => {
        return dataGroup.map(item => {
          if (item.type === '0') {
            return { name: item.name, value: item.value, address: item.address };
          } else if (item.button) {
            return { name: item.button.name, value: item.button.value, address: item.button.address };
          }
          return null;
        });
      });
      // 模拟提交数据到后端的操作,实际情况下需要根据你的后端API进行修改
      console.log('提交以下数据到后端:', inputData);
    }
  }
}
</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;
}
</style>
CanadaMes-ui/src/views/Electrical/Servomanual.vue
New file
@@ -0,0 +1,88 @@
<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/State" tag="el-button" type="text" active-class="blue-button">{{ $t('State')
      }}</router-link>
      <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('ServoManual')
      }}</router-link>
    </el-breadcrumb>
    <el-breadcrumb separator-class="el-icon-arrow-right" class="el-breadcrumb">
      <router-link to="/Electrical/Servomanualone" tag="el-button" type="text" active-class="blue-button">{{
        $t('Servomanualone')
      }}</router-link>
      <router-link to="/Electrical/Parameter1" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter1')
      }}</router-link>
      <!-- <router-link to="/Electrical/Parameter2" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter2')
          }}</router-link> -->
      <router-link to="/Electrical/Positioning1" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning1')
      }}</router-link>
      <router-link to="/Electrical/Positioning2" tag="el-button" type="text" active-class="blue-button">{{
        $t('Positioning2')
      }}</router-link>
      <router-link to="/Electrical/Manualoneposition" tag="el-button" type="text" active-class="blue-button">{{
        $t('Manualoneposition')
      }}</router-link>
      <router-link to="/Electrical/ManualonePosition2" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition2')
      }}</router-link>
      <router-link to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('AutomaticParameterSetting')
      }}</router-link>
      <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link>
    </el-breadcrumb>
  </div>
</template>
<script>
import LanguageMixin from '../../lang/LanguageMixin'
import data from '../../configuration/ServoManualone'
export default {
  name: "Servomanual",
  mixins: [LanguageMixin],
  data () {
    return {
      jsonData: data  // 加载整个data.json文件作为jsonData
    }
  },
  created () {
    // 通过路由跳转到/Electrical/Servomanualone页面
    this.$router.push('/Electrical/Servomanualone');
  }
}
</script>
<style scoped>
.item-row {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  /* 调整每个项目之间的间距 */
}
.action-button {
  margin-right: 60px;
  /* 调整按钮之间的间距 */
}
.blue-button {
  background-color: skyblue;
}
</style>
CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -20,7 +20,7 @@
    <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>
        <el-input v-model="item.name" style="width: 280px;" class="in_mc"></el-input>
        <el-input v-model="item.name" style="width: 100%;" class="in_mc"></el-input>
      </div>
@@ -148,10 +148,14 @@
    },
    //语言转换
    replaceChineseWithEnglish () {
      const translation = this.$t('Signlang');
      this.record.xyData = this.record.xyData.map(item => { return { name: translation[item.name] || item.name, value: item.value }; });
      //console.log(translation);
      if (translation != null) {
        this.record.xyData = this.record.xyData.map(item => { return { name: translation[item.name] || item.name, value: item.value }; });
        //console.log(translation);
      }
    }
  }
@@ -186,7 +190,7 @@
.kuai_sb {
  text-align: center;
  width: 25%;
  width: 15%;
  margin-bottom: 15px;
}
@@ -211,8 +215,8 @@
  background: #A0A0A0;
  border: 0.1875em solid white;
  border-radius: 50%;
  height: 5em;
  width: 5em;
  height: 4em;
  width: 4em;
  box-shadow: 0.375em 0.375em 0 0 rgba(214, 214, 214, 0.125);
}
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter.java
@@ -80,11 +80,23 @@
      // System.out.println(stt);
      // List<Short> arraylist = S7control.getinstance().ReadWord("DB100.0", 12);
      // List<Short> state = S7control.getinstance().ReadWord("DB103.0", 10);
      Short[] values1 = { 1, 1, 1, 1, 1, 1, 2, 33, 2, 3, 4, 5 };
      Short[] values1 = { 1231, 1, 1, 1, 1, 1, 2, 33, 2, 3, 4, 5 };
      List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
      Short[] values2 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
      List<Short> state = new ArrayList<>(Arrays.asList(values2));
      Boolean[] values = { false, true, true, true, true, true, true, true, true,
          true, true, true, true, true, true, true, true, true, true, true, true, true, true,
          true, false, true };
      List<Boolean> paramlist = new ArrayList<>(Arrays.asList(values));
      short[] sholist = new short[paramlist.size()];
      for (int i = 0; i < paramlist.size(); i++) {
        boolean value = paramlist.get(i);
        sholist[i] = value ? (short) 1 : (short) 0;
      }
      JSONObject jsonObject = new JSONObject();
      // new short[]{1,1, 1, 1, 1, 1, 2, 33, 2,3, 4, 5}
@@ -92,6 +104,7 @@
      jsonObject.append("params", arraylist);
      jsonObject.append("state", state);
      jsonObject.append("action", sholist);
      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter");
      if (sendwServer != null) {
        sendwServer.sendMessage(jsonObject.toString());
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -1,7 +1,14 @@
package com.example.springboot.component;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -11,6 +18,61 @@
public class Plcalarm extends Thread {
  private AlarmMapper alarmMapper;
  String content = "";
  String name = "";
  Integer count = 0;
  public List<String> readValue() {
    String str = "";
    BufferedReader bufferedReader = null;
    FileInputStream fileInputStream;
    try {
      // 从文件中读取字节数据存入 fileInputStream
      fileInputStream = new FileInputStream("CanadaMes-ui/src/configuration/Alarm.json");
      // 读取 fileInputStream 中字节并将其解码为字符
      InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8");
      // 提高读取效率,在 BufferedReader 内包装 InputStreamReader
      bufferedReader = new BufferedReader(inputStreamReader);
      String line = null;
      // 将 bufferedReader 内容一行一行赋值给str
      while ((line = bufferedReader.readLine()) != null) {
        str += line;
      }
      // 将str字符串格式转为json
      JSONObject jsonObject = new JSONObject(str);
      List<String> arraylistss = new ArrayList<>();
      // 获取json中报警信息的值
      JSONArray AlarmContent = jsonObject.getJSONArray("content");
      for (int i = 0; i < AlarmContent.size(); i++) {
        JSONObject ress = (JSONObject) AlarmContent.get(i);
        this.content = ress.getStr("name");
        arraylistss.add(content);
      }
      // 获取json中地址的值
      JSONArray address = jsonObject.getJSONArray("address");
      for (int i = 0; i < address.size(); i++) {
        JSONObject ress = (JSONObject) address.get(i);
        this.name = ress.getStr("name");
        this.count = ress.getInt("count");
      }
      return arraylistss;
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return null;
  }
  @Override
  public void run() {
    while (this != null) {
@@ -19,15 +81,21 @@
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      this.readValue();
      String PlcAddress = this.name;
      Integer Plccount = this.count;
      // 根据地址读取PCL数据
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB104.0.0", 40);
      // Boolean[] values = { true, 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,
      // true, false, true, false, true,
      // false, true, false, true, false,
      // true, false, true, false };
      // List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
      // List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress,
      // Plccount);
      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,
          true, false, true, false, true,
          false, true, false, true, false,
          true, false, true, false };
      List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
      if (plclist != null) {
        JSONObject jsonObject = new JSONObject();
@@ -47,60 +115,23 @@
        // 将Intlist转换为数组
        Integer[] shuzu1 = Intlist.toArray(new Integer[0]);
        // 定义的报警内容数组
        String[] shuzu = {
            "D01 VFD error",
            "D02 VFD error",
            "D03 VFD error",
            "D04 VFD error",
            "D05 VFD error",
            "D06 VFD error",
            "B01 VFD error",
            "B02 VFD error",
            "A01 VFD error",
            "A02 VFD error",
            "A01 servo turn error",
            "A02 servo turn error",
            "A01 servo travel error",
            "A02 servo travel error",
            "B01 servo travel error",
            "B02 servo travel error",
            "D01 DEC error",
            "D01 pos error",
            "D02 DEC error",
            "D02 pos error",
            "D03 DEC error",
            "D03 pos error",
            "D04 DEC error",
            "D04 pos error",
            "D05 DEC error",
            "D05 pos error",
            "D06 DEC error",
            "D06 pos error",
            "A01 DEC error",
            "A01 pos error",
            "A02 DEC error",
            "A02 pos error",
            "B01 IN DEC error",
            "B01 IN pos error",
            "B01 OUT DEC error",
            "B01 OUT pos error",
            "B02 IN DEC error",
            "B02 IN pos error",
            "B02 OUT DEC error",
            "B02 OUT pos error",
        };
        // 定义的报警内容数组,获取json返回的集合
        List<String> myCollection;
        myCollection = readValue();
        String[] array1 = myCollection.toArray(new String[myCollection.size()]);
        // System.out.println(myCollection);
        alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
        for (short i = 0; i < shuzu.length; i++) {
        for (short i = 0; i < array1.length; i++) {
          // 查询对应报警信息结束时间为null的条数
          short result = alarmMapper.selectnullti(shuzu[i]);
          short result = alarmMapper.selectnullti(array1[i]);
          // 读取到PLC的值为1并且对应报警信息结束时间为null的条数的条数为0
          if (shuzu1[i] == 1 && result == 0) {
            // 填加一条报警信息,有开始时间
            alarmMapper.Insertalarm(shuzu[i]);
            alarmMapper.Insertalarm(array1[i]);
          } else if (shuzu1[i] == 0 && result > 0) {
            // 修改该条报警信息的结束时间
            alarmMapper.updatealarm(shuzu[i]);
            alarmMapper.updatealarm(array1[i]);
          }
        }
      }
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -7,6 +7,7 @@
import org.springframework.stereotype.Component;
import com.example.springboot.component.PlcHold;
import com.example.springboot.component.PlcManualonePosition;
import com.example.springboot.component.PlcParameter;
import com.example.springboot.component.Plcaction;
import com.example.springboot.component.Plchome;
@@ -29,7 +30,7 @@
    new Plcaction().start();
    new Plchome().start();
    // new Plchome().start();
    new PlcParameter().start();
@@ -38,5 +39,7 @@
    new Plcsign().start();
    new Plcstate().start();
    // new PlcManualonePosition().start();
  }
}