严智鑫
2024-05-29 ad7f461a110cd30ae219bcaa977bbeb0c8409599
Merge branch 'master' of http://10.153.19.25:10101/r/Albania_Mes

# Conflicts:
# Albania_Mes-ui/src/views/home/index.vue
# springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
35个文件已修改
1个文件已添加
1204 ■■■■ 已修改文件
Albania_Mes-ui/src/api/home.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/configuration/Sign.json 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/en-US.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/lang/locales/zh-CN.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/Action.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/AutomaticParameterSetting.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/InteractionState.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/Servomanual.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/Sign.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/Electrical/alarm.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/views/home/index.vue 135 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PlcAlbania.json 414 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/effective-pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/application.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/config.properties 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Albania_Mes-ui/src/api/home.js
@@ -357,6 +357,13 @@
        data:""
    })
}
export function StartChange(flowcard) {
    return request({
        url: '/home/StartChange?flowcard='+flowcard,
        method: 'post',
        data:""
    })
}
Albania_Mes-ui/src/configuration/Sign.json
@@ -6,7 +6,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.0"
      "unit":"I10.0",
      "name1":"LOW-E膜检测"
    },
    {
      "name": "A01Sr.dec",
@@ -14,7 +15,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.1"
      "unit":"I10.1",
      "name1":"A01减速"
    },
    {
      "name": "A01Sr.Pos",
@@ -22,7 +24,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.2"
      "unit":"I10.2",
      "name1":"A01到位"
      
    },
    {
@@ -31,7 +34,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.3"
      "unit":"I10.3",
      "name1":"A02-Y轴原点"
    },
    {
      "name": "A02Sr.YH1",
@@ -39,7 +43,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.4"
      "unit":"I10.4",
      "name1":"A02-Y轴高度感应1"
    },
    {
      "name": "A02Sr.YH2",
@@ -47,7 +52,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.5"
      "unit":"I10.5",
      "name1":"A02-Y轴高度感应2"
    },
    {
      "name": "A02Sr.YH3",
@@ -55,7 +61,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.6"
      "unit":"I10.6",
      "name1":"A02-Y轴高度感应3"
    },
    {
      "name": "A02Sr.YH4",
@@ -63,7 +70,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I10.7"
      "unit":"I10.7",
      "name1":"A02-Y轴高度感应4"
    },
    {
      "name": "A02Sr.LimitTop",
@@ -71,7 +79,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I11.0"
      "unit":"I11.0",
      "name1":"A02-Y轴上极限"
    },
    {
@@ -80,7 +89,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I11.1"
      "unit":"I11.1",
      "name1":"A02-Y轴下极限"
    },
    {
      "name": "A02Sr.Check",
@@ -88,7 +98,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I11.2"
      "unit":"I11.2",
      "name1":"A02-Y轴寻边"
    },
    {
      "name": "A02Sr.YDec",
@@ -96,7 +107,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I11.3"
      "unit":"I11.3",
      "name1":"A02-Y轴减速"
    },
    {
      "name": "A02Sr.Xin",
@@ -104,7 +116,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I11.4"
      "unit":"I11.4",
      "name1":"A02-X轴上片"
    },
    {
      "name": "A02Sr.XCheck",
@@ -112,7 +125,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I11.5"
      "unit":"I11.5",
      "name1":"A02-X轴寻边"
    },
    {
      "name": "A02Sr.XDec",
@@ -120,7 +134,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I11.6"
      "unit":"I11.6",
      "name1":"A02-X轴减速"
    },
    {
      "name": "A02Sr.XPos",
@@ -128,7 +143,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I11.7"
      "unit":"I11.7",
      "name1":"A02-X轴到位"
    },
    {
      "name": "C01Sr.Zero",
@@ -136,7 +152,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I124.0"
      "unit":"I124.0",
      "name1":"C01原点"
   
    },
    {
@@ -145,7 +162,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I124.1"
      "unit":"I124.1",
      "name1":"C01.YV1原点位1"
    },
    {
      "name": "C01YV1.Work1",
@@ -153,7 +171,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I124.2"
      "unit":"I124.2",
      "name1":"C01.YV1动作位1"
    },
    {
      "name": "C01.YV1.Bas2",
@@ -161,7 +180,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I124.3"
      "unit":"I124.3",
      "name1":"C01.YV1原点位2"
    },
    {
      "name": "C01.YV1.Work2",
@@ -169,7 +189,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I124.4"
      "unit":"I124.4",
      "name1":"C01.YV1动作位2"
    },
    {
      "name": "C01.YV2.Bas1",
@@ -177,7 +198,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I124.5"
      "unit":"I124.5",
      "name1":"C01.YV2原点位1"
    },
    {
      "name": "C01.YV2.Bas2",
@@ -185,7 +207,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I124.6"
      "unit":"I124.6",
      "name1":"C01.YV2原点位2"
    },
    {
      "name": "C01.YV2.Bas3",
@@ -193,7 +216,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I124.7"
      "unit":"I124.7",
      "name1":"C01.YV2原点位3"
    },
    {
      "name": "C01.YV2.Bas4",
@@ -201,7 +225,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I125.0"
      "unit":"I125.0",
      "name1":"C01.YV2原点位4"
    },
    {
      "name": "C01.YV2.Work1",
@@ -209,7 +234,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I125.1"
      "unit":"I125.1",
      "name1":"C01.YV2动作位1"
    },
    {
      "name": "C01.YV2.Work2",
@@ -217,7 +243,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I125.2"
      "unit":"I125.2",
      "name1":"C01.YV2动作位2"
    },
    {
      "name": "C01.YV2.Work3",
@@ -225,7 +252,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I125.3"
      "unit":"I125.3",
      "name1":"C01.YV2动作位3"
    },
    {
      "name": "C01.YV2.Work4",
@@ -233,7 +261,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I125.4"
      "unit":"I125.4",
      "name1":"C01.YV2动作位4"
    },
    {
      "name": "C01.YV.Blow1",
@@ -241,7 +270,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I125.5"
      "unit":"I125.5",
      "name1":"C01吹气1"
    },
    {
      "name": "C01.YV.Blow2",
@@ -249,7 +279,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I125.6"
      "unit":"I125.6",
      "name1":"C01吹气2"
    },
    {
      "name": "C01.YV.Blow3",
@@ -257,7 +288,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I125.7"
      "unit":"I125.7",
      "name1":"C01吹气3"
    },
    {
      "name": "C01.YV.Blow4",
@@ -265,7 +297,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I126.0"
      "unit":"I126.0",
      "name1":"C01吹气4"
    },
    {
      "name": "C01.SR.Limit1",
@@ -273,7 +306,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I126.1"
      "unit":"I126.1",
      "name1":"C01对射保护"
    },
    {
      "name": "C02.Sr.Zero",
@@ -281,7 +315,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I126.2"
      "unit":"I126.2",
      "name1":"C02原点"
    },
    {
      "name": "C02.YV1.Bas1",
@@ -289,7 +324,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I126.3"
      "unit":"I126.3",
      "name1":"C02.YV1原点位1"
    },
    {
      "name": "C02.YV1.Work1",
@@ -297,7 +333,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I126.4"
      "unit":"I126.4",
      "name1":"C02.YV1动作位1"
    },
    {
      "name": "C02.YV1.Bas2",
@@ -305,7 +342,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I126.5"
      "unit":"I126.5",
      "name1":"C02.YV1原点位2"
    },
    {
      "name": "C02.YV1.Work2",
@@ -313,7 +351,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I126.6"
      "unit":"I126.6",
      "name1":"C02.YV1动作位2"
    },
    {
      "name": "C02.Sr.limit1",
@@ -321,7 +360,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I126.7"
      "unit":"I126.7",
      "name1":"C02对射保护"
    },
    {
      "name": "C02.YV2.Bas1",
@@ -329,7 +369,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I127.0"
      "unit":"I127.0",
      "name1":"C02.YV2原点位1"
    },
    {
      "name": "C02.YV2.Bas2",
@@ -337,7 +378,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I127.1"
      "unit":"I127.1",
      "name1":"C02.YV2原点位2"
    },
    {
      "name": "C02.YV2.Bas3",
@@ -345,7 +387,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I127.2"
      "unit":"I127.2",
      "name1":"C02.YV2原点位3"
    },
    {
      "name": "C02.YV2.Bas4",
@@ -353,7 +396,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I127.3"
      "unit":"I127.3",
      "name1":"C02.YV2原点位4"
    },
    {
      "name": "C02.YV2.Work1",
@@ -361,7 +405,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I127.4"
      "unit":"I127.4",
      "name1":"C02.YV2动作位1"
    },
    {
      "name": "C02.YV2.Work2",
@@ -369,7 +414,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I127.5"
      "unit":"I127.5",
      "name1":"C02.YV2动作位2"
    },
    {
      "name": "C02.YV2.Work3",
@@ -377,7 +423,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I127.6"
      "unit":"I127.6",
      "name1":"C02.YV2动作位3"
    },
    {
      "name": "C02.YV2.Work4",
@@ -385,7 +432,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I127.7"
      "unit":"I127.7",
      "name1":"C02.YV2动作位4"
    },
    {
      "name": "C02.YV.Blow1",
@@ -393,7 +441,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I128.0"
      "unit":"I128.0",
      "name1":"C02吹气1"
    },
    {
      "name": "C02.YV.Blow2",
@@ -401,7 +450,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I128.1"
      "unit":"I128.1",
      "name1":"C02吹气2"
    },
    {
      "name": "C02.YV.Blow3",
@@ -409,7 +459,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I128.2"
      "unit":"I128.2",
      "name1":"C02吹气3"
    },
    {
      "name": "C02.YV.Blow4",
@@ -417,7 +468,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I128.3"
      "unit":"I128.3",
      "name1":"C02吹气4"
    },
    {
      "name": "bStart",
@@ -425,7 +477,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I128.4"
      "unit":"I128.4",
      "name1":"启动"
    },
    {
      "name": "bStop",
@@ -433,7 +486,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I128.5"
      "unit":"I128.5",
      "name1":"停止"
    },
    {
      "name": "bEstop",
@@ -441,7 +495,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I128.6"
      "unit":"I128.6",
      "name1":"急停"
    },
    {
      "name": "bReset",
@@ -449,7 +504,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I128.7"
      "unit":"I128.7",
      "name1":"复位"
    },
    {
      "name": "bAuto/Manual",
@@ -457,7 +513,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I129.0"
      "unit":"I129.0",
      "name1":"模式选择"
    },
    {
      "name": "bPause",
@@ -465,7 +522,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I129.1"
      "unit":"I129.1",
      "name1":"暂停"
    },
    {
      "name": "C01.Sr.Limit2",
@@ -473,7 +531,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I129.2"
      "unit":"I129.2",
      "name1":"C01对射保护2"
    },
    {
      "name": "C02.Sr.Limit2",
@@ -481,7 +540,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I129.3"
      "unit":"I129.3",
      "name1":"C02对射保护2"
    },
    {
      "name": "A01.FootControl",
@@ -489,7 +549,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I129.4"
      "unit":"I129.4",
      "name1":"脚踏开关"
    },
    {
      "name": "B01.Sr.DecLeft",
@@ -497,7 +558,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I129.5"
      "unit":"I129.5",
      "name1":"B01左减速"
    },
    {
      "name": "B01.Sr.PosLeft",
@@ -505,7 +567,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I129.6"
      "unit":"I129.6",
      "name1":"B01左到位"
    },
    {
      "name": "B01.Sr.SafetyLeft",
@@ -513,7 +576,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I129.7"
      "unit":"I129.7",
      "name1":"B01左安全检测"
    }
    ,
    {
@@ -522,7 +586,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.0"
      "unit":"I130.0",
      "name1":"B01右减速"
    }
    ,
    {
@@ -531,7 +596,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.1"
      "unit":"I130.1",
      "name1":"B01右到位"
    }
    ,
    {
@@ -540,7 +606,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.2"
      "unit":"I130.2",
      "name1":"B01右安全检测"
    }
    ,
    {
@@ -549,7 +616,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.3"
      "unit":"I130.3",
      "name1":"B01大车翻转原点"
    }
    ,
    {
@@ -558,7 +626,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.4"
      "unit":"I130.4",
      "name1":"B01大车翻转上极限"
    }
    ,
    {
@@ -567,7 +636,8 @@
      "state": "1",
      "type": "1",
      "page": "1",
      "unit":"I130.5"
      "unit":"I130.5",
      "name1":"B01大车翻转下极限"
    }
    
    
Albania_Mes-ui/src/lang/locales/en-US.json
@@ -40,6 +40,10 @@
  "Height":"Height",
  "Thickness":"Thickness",
  "Clear":"Clear",
  "MeasureNumber":"MeasureNumber",
  "results":"results",
  "start work":"start work",
  "ip":"localhost",
Albania_Mes-ui/src/lang/locales/zh-CN.json
@@ -39,6 +39,9 @@
  "Height":"高",
  "Thickness":"厚度",
  "Clear":"清除",
  "MeasureNumber":"测量数量",
  "results":"结果",
  "start work":"开始工作",
  "ip":"localhost",
  "systemTitle": "登录系统",
Albania_Mes-ui/src/views/Electrical/Action.vue
@@ -12,7 +12,7 @@
      }}</router-link> -->
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
       <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
       <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter')
      }}</router-link>
    </el-breadcrumb>
    
Albania_Mes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -11,7 +11,7 @@
      }}</router-link> -->
      <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign')
      }}</router-link>
      <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{
      <router-link to="/Electrical/AlbaniaServo" tag="el-button" type="text" active-class="blue-button">{{
        $t('Parameter')
      }}</router-link>
    </el-breadcrumb>
Albania_Mes-ui/src/views/Electrical/InteractionState.vue
@@ -32,7 +32,7 @@
        >{{ $t("Sign") }}</router-link
      >
      <router-link
        to="/Electrical/Servomanual"
        to="/Electrical/AlbaniaServo"
        tag="el-button"
        type="text"
        active-class="blue-button"
Albania_Mes-ui/src/views/Electrical/Servomanual.vue
@@ -23,7 +23,7 @@
      <!-- <router-link to="/Electrical/ManualJog" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualJog')
      }}</router-link> -->
<!--
       <router-link to="/Electrical/ManualonePosition" tag="el-button" type="text" active-class="blue-button">{{
        $t('ManualonePosition')
      }}</router-link>
@@ -39,7 +39,7 @@
  
      <router-link   v-if="hasPermission" to="/Electrical/AutomaticParameterSetting" tag="el-button" type="text" active-class="blue-button">{{
        $t('Speed parameter settings')
      }}</router-link>
      }}</router-link> -->
<router-link  v-if="hasPermission"
        to="/Electrical/InteractionState"
Albania_Mes-ui/src/views/Electrical/Sign.vue
@@ -25,7 +25,7 @@
                item.unit
              }}</span> -->
        <span  style="width: 100%;" class="in_mc">{{
                item.name
                language === 'zh-CN'?item.name1:item.name
              }}</span>
      </div>
@@ -50,8 +50,7 @@
        params: [],
        xyData: [],
      },
      language :this.$i18n.locale,
      messagepack: {
        data: { taskname: "" }
      },
@@ -63,13 +62,14 @@
    }
  },
  created () {
    //this.showdata();
  },
  activated(){
    this.init();
    this.record.xyData = this.jsonData.sign;
    const language = this.$i18n.locale;
    if (language === 'zh-CN') {
            this.replaceChineseWithEnglish();
          } else {
@@ -78,8 +78,6 @@
 },
  methods: {
    showdata () {
      console.log(1111);
      console.log(this.jsonData.sign[0].name);
      // console.log(this.record.xyData);
    },
@@ -128,7 +126,6 @@
          this.record.params[0] = obj.sig[0];
          this.record.xyData = this.jsonData.sign;
          console.log(this.jsonData.sign)
          for (let a = 0; a < this.record.xyData.length; a++) {
            this.record.xyData[a].value = this.record.params[0][a];
@@ -141,7 +138,8 @@
          );
          const language = this.$i18n.locale;
          const language = this.$i18n.locale;language
          console.log(language);
          if (language === 'zh-CN') {
            this.replaceChineseWithEnglish();
          } else {
@@ -164,12 +162,12 @@
    //语言转换
    replaceChineseWithEnglish () {
      const translation = this.$t('Signlang');
      // const translation = this.$t('Signlang');
      if (translation != null) {
        this.record.xyData = this.record.xyData.map(item => { return { name: translation[item.name] || item.name, value: item.value,unit:item.unit }; });
        //console.log(translation);
      }
      // if (translation != null) {
      //   this.record.xyData = this.record.xyData.map(item => { return { name: translation[item.name] || item.name, value: item.value,unit:item.unit }; });
      //   //console.log(translation);
      // }
    }
  }
Albania_Mes-ui/src/views/Electrical/alarm.vue
@@ -154,6 +154,7 @@
        this.roles = res.data.list;
        //table中的内容进行语言转换
        const language = this.$i18n.locale;
        if (language === 'zh-CN') {
          this.replaceChineseWithEnglish();
        } else {
Albania_Mes-ui/src/views/home/index.vue
@@ -306,6 +306,9 @@
.cells {
    height: 100%;
}
.custom-row-class{
    background-color: rgb(150, 238, 234) !important;
}
</style>
<template>
    <el-container>
@@ -346,14 +349,14 @@
            </div>
            <div style="display: flex;align-items: center;overflow: hidden;">
                <div class="blocks" style="position: relative;width: 100%;">
                    <div class="blocks-img" :style="'z-index:999;left:150px;top:'+carposition+'px;'">
                    <div class="blocks-img" :style="'z-index:999;left:150px;top:' + carposition + 'px;'">
                    </div>
                    <div
                        :style="'position: absolute;z-index:99;left:271px;top:987px;width:210px;height:38px;background-color:' + ShowDeviceList(0) + ';'">
                    </div>
                    <div
                        :style="'position: absolute;z-index:1000;left:553px;top:'+(400+carposition)+'px;width:110px;height:88px;background-color:' + ShowDeviceList(0) + ';'">
                        :style="'position: absolute;z-index:1000;left:553px;top:' + (400 + carposition) + 'px;width:110px;height:88px;background-color:' + ShowDeviceList(0) + ';'">
                    </div>
                    <div
                        :style="'position: absolute;z-index:99;left:800px;top:450px;width:115px;height:30px;background-color:' + ShowDeviceList(0) + ';'">
@@ -477,41 +480,72 @@
            <div style="height: 780px;">
                <!--功能-->
                <div>
                    <el-button type="primary" @click="ManualMatching()" :disabled="SoftEmergencyStopState"
                    <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state <= 0)"
                        style="z-index: 999;">{{ $t('Manual matching') }}</el-button>
                    <el-button type="primary" @click="ManualTake()" :disabled="SoftEmergencyStopState"
                        style="z-index: 999;">{{ $t('Manual removal') }}</el-button>
                    <el-button type="primary" @click="AnewMeasure()" :disabled="SoftEmergencyStopState"
                        style="z-index: 999;">{{ $t('Remeasure') }}</el-button>
                    <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state <= 0)"
                        style="z-index: 999;">{{
                $t('Manual removal') }}</el-button>
                    <el-button type="primary" @click="AnewMeasure()" :disabled="(this.LastQueue.state <= 0)"
                        style="z-index: 999;">{{
                $t('Remeasure') }}</el-button>
                </div>
                <br>
                <!--显示-->
                <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;float: left;">
                    <!--玻璃图  #81b337-->
                    <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:'+((720-(this.LastQueue.glassheight / 25 * 7))/2)+'px auto;width:'
                        + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
                        + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
                        + (this.LastQueue.glassheight / 25 * 7) + 'px; background-color: '
                        + (this.LastQueue.state>0?'#4CCCE4':(this.LastQueue.state==0?'#E4CA4C':'#E4CA4C'))+';text-align: center;'">
                        {{ (this.LastQueue.glasswidth+this.LastQueue.glassheight)!=0?(this.LastQueue.glasswidth+"*"+this.LastQueue.glassheight):"" }}
                    <div
                        :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:' + ((720 - (this.LastQueue.glassheight / 25 * 7)) / 2) + 'px auto;width:'
                         + (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
                         + (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
                         + (this.LastQueue.glassheight / 25 * 7/3) + 'px; background-color: '
                         + (this.LastQueue.state > 0 ? '#4CCCE4' : (this.LastQueue.state == 0 ? '#E4CA4C' : '#E4CA4C')) + ';text-align: center;font-size:50px'">
                         <div>
                            {{ $t('Measure')}}
                        </div>
                        <div>
                            {{ $t('Width')+"*"+$t('Height') }}:{{(this.LastQueue.glasswidth + this.LastQueue.glassheight) != 0 ? (this.LastQueue.glasswidth + "*"+this.LastQueue.glassheight)+"" : ""}}
                        </div>
                        <div>
                            {{ $t('results') }}:{{this.LastState[this.LastQueue.state]}}
                        </div>
                    </div>
                </div>
                <!--显示-->
                <div style="width:20px;height: 720px;float: left;"></div>
                <div style="width:500px;height: 620px;border: 2px solid #d1d1d1;float: left;padding: 50px 50px;">
                    <!--玻璃图  #81b337-->
                    <span class="measuretitle">{{ $t('Width') }}:</span> <span class="measureValue">{{ this.LastQueue.glasswidth }}</span> <span class="measureUnit">mm</span>
                <div style="width:600px;height: 720px;border: 2px solid #d1d1d1;float: left;">
                    <!--玻璃图  #81b337  padding: 50px 50px;-->
                    <!-- <span class="measuretitle">{{ $t('Width') }}:</span> <span class="measureValue">{{
                this.LastQueue.glasswidth
            }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">{{ $t('Height') }}:</span> <span class="measureValue">{{ this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
                    <span class="measuretitle">{{ $t('Height') }}:</span> <span class="measureValue">{{
                this.LastQueue.glassheight }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">{{ $t('Measure Width') }}:</span> <span class="measureValue">{{ this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">{{ $t('Measure Height') }}:</span> <span class="measureValue">{{ this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
                    <span class="measuretitle">{{ $t('Measure Width') }}:</span> <span class="measureValue">{{
                this.LastQueue.glasswidthmm }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">{{ $t('Matching results') }}:</span> <span class="measureValue">{{ this.LastQueue.state>0?$t('Matching successful'):(this.LastQueue.state==0?$t('Multiple data matching'):$t('Matching failed')) }}</span>
                    <span class="measuretitle">{{ $t('Measure Height') }}:</span> <span class="measureValue">{{
                this.LastQueue.glassheightmm }}</span> <span class="measureUnit">mm</span>
                    <br>
                    <span class="measuretitle">{{ $t('Matching results') }}:</span> <span class="measureValue">{{
                this.LastQueue.state > 0 ? $t('Matching successful') :
                    (this.LastQueue.state == 0 ? $t('Multiple data matching') : $t('Matching failed')) }}</span>
                    <br> -->
                    <el-table :data="this.tasklist3" :row-class-name="rowClassName" style="width: 100%;padding:0;">
                        <el-table-column prop="flowcard" :label="$t('flowcard')"></el-table-column>
                        <el-table-column prop="films" :label="$t('Films')"></el-table-column>
                        <el-table-column prop="width" :label="$t('Width')"></el-table-column>
                        <el-table-column prop="height" :label="$t('Height')"></el-table-column>
                        <el-table-column prop="thickness" :label="$t('Thickness')"></el-table-column>
                        <el-table-column prop="number" :label="$t('Number')"></el-table-column>
                        <el-table-column prop="measurenumber" :label="$t('MeasureNumber')"></el-table-column>
                    </el-table>
                </div>
            </div>
        </el-dialog>
@@ -584,7 +618,7 @@
                </el-table-column>
                <el-table-column prop="line" :label="$t('Task Line')">
                </el-table-column>
                <el-table-column width="300" :label="$t('Operate')">
                <el-table-column width="350" :label="$t('Operate')">
                    <template slot-scope='scope'>
                        <el-select v-model="selected[scope.$index]" :placeholder="$t('Line')"
@@ -598,10 +632,17 @@
                            @click="ClaimTasks(scope.row.flowcard, scope.row.state, selected[scope.$index])">
                            {{ scope.row.state > 0 ? $t('Stop Task') : $t('Start Task') }}</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            v-show="scope.row.state >= 0 ? true : false"
                            @click="ModeChange(scope.row.flowcard, scope.row.method)">
                            {{ $t('Mode Change') }}</el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
                            v-show="scope.row.state >= 0 ? true : false"
                            @click="StartChange(scope.row.flowcard)">
                            {{ $t('start work') }}</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -647,7 +688,7 @@
    Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue,
    isAllowReorderings,
    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure
    UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure,StartChange
} from "../../api/home";
@@ -658,7 +699,7 @@
    name: "Home",
    data() {
        return {
            carposition:0,
            carposition: 0,
            selected: [],
            options: [{
                value: '1',
@@ -710,6 +751,7 @@
            task2: 2,
            tasklist1: [],
            tasklist2: [],
            tasklist3: [],
            order: "",
            glassid: "",
            glassid1: "",
@@ -763,7 +805,8 @@
            GlassIdList: [],
            Scanningmethod: true,
            CurrrentGlassId: "",
            LastQueue: {}
            LastQueue: {},
            LastState: ["",this.$t('Matching successful'),this.$t('Multiple data matching'),this.$t('Matching failed')]
        };
    },
    created() {
@@ -807,7 +850,7 @@
                socket.onmessage = function (msg) {
                    //console.log("收到数据====" + msg.data);
                    let obj = JSON.parse(msg.data);
                    if(obj.carposition != null){
                    if (obj.carposition != null) {
                        this.carposition = obj.carposition[0];
                    }
                    // 获取设备状态
@@ -819,13 +862,26 @@
                    this.cagelist2 = obj.cagelist2[0];
                    this.cagelist3 = obj.cagelist3[0];
                    this.cagelist4 = obj.cagelist4[0];
                    this.tasklist3 = obj.glassInfoFlowCard[0];
                    this.tasklist2 = obj.StoragTaskeTaskFeed[0];
                    this.tasklist1 = obj.StoragTaskeTaskOut[0];
                    this.alarm = obj.alarmmg[0];
                    if (obj.alarmmg[0].length > 0) {
                        if (this.alarm.length > 0) {
                            if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) {
                                this.alarm = obj.alarmmg[0];
                                this.dialogFormVisible2 = true;
                            }
                        } else {
                            this.alarm = obj.alarmmg[0];
                            this.dialogFormVisible2 = true;
                        }
                    } else {
                        this.alarm = obj.alarmmg[0];
                        this.dialogFormVisible2 = false;
                    }
                    this.tableData1 = obj.OrderTask[0];
                    this.LastQueue = obj.LastQueue[0];
                    //是否允许出片
                    this.isAllowQueue = obj.isAllowQueue[0];
@@ -909,7 +965,7 @@
                StorageCageAddGlass(this.cell, this.StorageCageAddInfo[index]).then(res => {
                    if (res.data.message == 200) {
                        this.$message.success(this.$t('Operation successful'));
                        this.StorageCageAdd=false;
                        this.StorageCageAdd = false;
                    }
                })
            } else {
@@ -938,6 +994,13 @@
                    this.$message.success(this.$t('Operation successful'));
                }
            });
        },//选择开始工程
        StartChange(flowcard) {
            StartChange(flowcard).then(res => {
                if (res.data.message == 200) {
                    this.$message.success(this.$t('Operation successful'));
                }
            });
        },
        //查询玻璃信息
        SelectGlassInfo() {
@@ -957,7 +1020,7 @@
        UpdateStroageCageByCell(cell, nownum, num) {
            if (nownum == null && num == 1) {
                this.StorageCageAdd = true;
                this.Measuermode=true;
                this.Measuermode = true;
                this.cell = cell;
            } else {
                if (nownum + num == 0) {
@@ -1045,7 +1108,7 @@
        //人工匹配
        ManualMatching() {
            this.StorageCageAdd = true;
            this.Measuermode=false;
            this.Measuermode = false;
        },
        //人工拿走
        ManualTake() {
@@ -1096,7 +1159,7 @@
        },
        importData() {
            //let tbdata=JSON.stringify(this.dataList);
            let tbdata=this.dataList;
            let tbdata = this.dataList;
            console.log(tbdata);
            importData(tbdata).then(res => {
                if (res.data.message == 200) {
@@ -1107,6 +1170,14 @@
        del() {
            this.StorageCageAdd = true;
        },
        rowClassName({ row, rowIndex }) {
            if (row.glasstype!=0&&row.glasstype == this.LastQueue.glasstype) {
                console.log(rowIndex);
                return 'custom-row-class';
            } else {
                return ''; // 返回空字符串表示不添加任何额外的类名
            }
        }
PlcAlbania.json
New file
@@ -0,0 +1,414 @@
{
   "plcAddressBegin":"DB14.0",
   "plcAddressLenght":"208",
   "dataType":"word",
   "parameteInfor":[
      {
         "codeId": "PLCToMES",
         "addressIndex":"0",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"m/min"
      },
      {
          "codeId": "IDStatus1",
          "addressIndex":"2",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "IDStatus2",
          "addressIndex":"4",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"m/min"
       },
       {
          "codeId": "IDStatus3",
          "addressIndex":"6",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "IDStatus4",
          "addressIndex":"8",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "IDStatus5",
          "addressIndex":"10",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
       ,
       {
          "codeId": "IDStatus6",
          "addressIndex":"12",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "StautsID1",
          "addressIndex":"14",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
       ,
       {
          "codeId": "StautsID2",
          "addressIndex":"16",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
       ,
       {
          "codeId": "StautsID3",
          "addressIndex":"18",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
       ,
       {
          "codeId": "StautsID4",
          "addressIndex":"20",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
       ,
       {
          "codeId": "StautsID5",
          "addressIndex":"22",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "StautsID6",
          "addressIndex":"24",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "GaToMES",
          "addressIndex":"26",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "Height",
          "addressIndex":"28",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "width",
          "addressIndex":"30",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "ExportTOMES1",
          "addressIndex":"32",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       }
       ,
       {
          "codeId": "ExportToMES2",
          "addressIndex":"34",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       } ,
       {
          "codeId": "MESToPLC",
          "addressIndex":"36",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       } ,
       {
          "codeId": "MESID1",
          "addressIndex":"38",
          "addressLenght":"14",
          "ratio":"1",
          "unit":"mm/S"
       } ,
       {
          "codeId": "MESID2",
          "addressIndex":"54",
          "addressLenght":"14",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "MESID3",
          "addressIndex":"70",
          "addressLenght":"14",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "MESID4",
          "addressIndex":"86",
          "addressLenght":"14",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "MESID5",
          "addressIndex":"102",
          "addressLenght":"14",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "MESID6",
          "addressIndex":"118",
          "addressLenght":"14",
          "ratio":"1",
          "unit":"mm/S"
       },
       {
          "codeId": "MESToPLCStart1",
          "addressIndex":"134",
          "addressLenght":"2",
          "ratio":"1",
          "unit":"mm/S"
       },{
         "codeId": "MESToPLCStart2",
         "addressIndex":"136",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCStart3",
         "addressIndex":"138",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      }
      ,{
         "codeId": "MESToPLCStart4",
         "addressIndex":"140",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      }
      ,{
         "codeId": "MESToPLCStart5",
         "addressIndex":"142",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      }
      ,{
         "codeId": "MESToPLCStart6",
         "addressIndex":"144",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCTarget1",
         "addressIndex":"146",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCTarget2",
         "addressIndex":"148",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCTarget3",
         "addressIndex":"150",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCTarget4",
         "addressIndex":"152",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCTarget5",
         "addressIndex":"154",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCTarget6",
         "addressIndex":"156",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCStatus1",
         "addressIndex":"158",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCStatus2",
         "addressIndex":"160",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCStatus3",
         "addressIndex":"162",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCStatus4",
         "addressIndex":"164",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCStatus5",
         "addressIndex":"166",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToPLCStatus6",
         "addressIndex":"168",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "MESToGaStatus",
         "addressIndex":"170",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "A01Err",
         "addressIndex":"172",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "A02Err",
         "addressIndex":"174",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "B01Err",
         "addressIndex":"176",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "C01Err",
         "addressIndex":"178",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "C02Err",
         "addressIndex":"180",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "ErrSpace1",
         "addressIndex":"182",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "ErrSpace2",
         "addressIndex":"184",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "ErrSpace3",
         "addressIndex":"186",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "B01Position",
         "addressIndex":"188",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "C01Position",
         "addressIndex":"190",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "C02Position",
         "addressIndex":"192",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "DeviceState",
         "addressIndex":"194",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "AllFVRun",
         "addressIndex":"196",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "A01State",
         "addressIndex":"198",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "A02State",
         "addressIndex":"200",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "B01State",
         "addressIndex":"202",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "C01State",
         "addressIndex":"204",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      },{
         "codeId": "C02State",
         "addressIndex":"206",
         "addressLenght":"2",
         "ratio":"1",
         "unit":"mm/S"
      }
   ]
}
springboot-vue3/effective-pom.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================================== -->
<!--                                                                        -->
<!-- Generated by Maven Help Plugin on 2024-03-19T08:09:38+08:00            -->
<!-- Generated by Maven Help Plugin on 2024-04-15T08:30:30+08:00            -->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/                -->
<!--                                                                        -->
<!-- ====================================================================== -->
springboot-vue3/src/main/java/com/example/springboot/component/InitUtil.java
@@ -7,6 +7,7 @@
import com.example.springboot.entity.device.PlcParameterObject;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
@@ -16,6 +17,11 @@
public class InitUtil {
    //初始化word
    public static PlcParameterObject initword(String jsonFilePath) {
        // File file=new File(jsonFilePath);
        // if (!file.exists()) {
        //     System.out.println(jsonFilePath);
        //     return null;
        // }
        try {
            FileReader fileReader = new FileReader(jsonFilePath);
            BufferedReader bufferedReader = new BufferedReader(fileReader);
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -24,7 +24,8 @@
    // 单例实例
    private static PLCAutoMes instance;
    private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
    private static String PlcAlbania ="D:/Code/Albania_Mes/PlcAlbania.json";
    //  PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
    public static PlcParameterObject PlcMesObject = initUtil.initword(PlcAlbania);
  
    // 私有构造函数
springboot-vue3/src/main/java/com/example/springboot/component/PlcAlbaniaServo.java
@@ -2,10 +2,8 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import org.apache.commons.io.FileUtils;
import java.io.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -13,7 +11,7 @@
public class PlcAlbaniaServo extends Thread {
    private Configuration config;
    public PlcAlbaniaServo() throws IOException {
    public  PlcAlbaniaServo() throws IOException {
        config = new Configuration("config.properties");
    }
springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
@@ -37,9 +37,9 @@
      PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
      if(plcmes.getPlcParameter("PLCToMES").getValue()!=null){
        
      //spianService.Mestast("NG0001-1",1,4,1,"MESID1",1);
      // spianService.Mestast("NG0001-1",40,1,0,"MESID1",1);
      // spianService.Mestast("NG0001-2",40,2,0,"MESID2",2);
      // spianService.Mestast("NG0001-3",40,2,1,"MESID3",3);
    
      String ExportTOMES1=plcmes.getPlcParameter("ExportTOMES1").getValue();//出片请求一线
      String ExportToMES2=plcmes.getPlcParameter("ExportToMES2").getValue();//出片请求二线
@@ -51,19 +51,17 @@
      //一号线请求
      if(ExportTOMES1!=null&&MESToPLC!=null){
      if (ExportTOMES1.equals("1") == true&&MESToPLC.equals("0")==true) {
        //将运输车状态改为忙碌
        spianService.selectout(1);
      }
    }
      // //二线号请求时
      if(ExportToMES2!=null &&MESToPLC!=null){
      if (ExportToMES2.equals("1") == true&&MESToPLC.equals("0")==true) {
        //将运输车状态改为忙碌
        spianService.selectout(2);
      }
    }
      //进片请求时
      GlassInfo glass=albaniaMapper.SelectGlass();
      if(PLCToMES!=null && glass!=null&&MESToPLC!=null){
      if(PLCToMES.equals("1")==true&&MESToPLC.equals("0")==true){        
springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -87,8 +87,8 @@
      // 根据地址读取PCL数据
      List<Boolean> plclist = S7control.getinstance().ReadBits("DB15.0.0", Plccount);
      // System.out.println(plclist);
//      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
      System.out.println(plclist);
      // Boolean[] values = { false, false, true, false, true, false, true, false,
      // true, false, true, false, true, false,
      // true, false, true, false, true, false, true, false, true, false, true, false,
@@ -128,10 +128,6 @@
            alarmMapper = WebSocketServer.applicationContext.getBean(AlarmMapper.class);
            for (short i = 0; i < array1.length; i++) {
              // 查询对应报警信息结束时间为null的条数
              if(i==48){
                short result = alarmMapper.selectnullti(array1[i]);
                System.out.println(result+"-"+array1[i]);
              }
              short result = alarmMapper.selectnullti(array1[i]);
              // 读取到PLC的值为1并且对应报警信息结束时间为null的条数的条数为0
    //System.out.println(result);
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -1,4 +1,5 @@
package com.example.springboot.component;
import cn.hutool.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
@@ -30,13 +31,11 @@
    private HomeMapper homeMapper;
    @Autowired
    private HomeService HomeService;
    @Autowired
    private GlassInfoMapper glassInfoMapper;
    private QueueMapper QueueMapper;
    private GlassInfoMapper GlassInfoMapper;
    private MeasureSettingMapper MeasureSettingMapper;
    private OutSliceServive outSliceServive;
    private SpianMapper spianMapper;
    private SpianService spianService;
    // 出片队列是否允许出片
    public static Boolean isAllowQueue = true;
    public static Boolean isAllowReordering = true;
@@ -61,29 +60,40 @@
    // public static Map b=new HashMap<>();
    // b.put()
    public double carstart = 200;
    public double carend = 20000;
    @Override
    public void run() {
        while (this != null) {
            JSONObject jsonObject = new JSONObject();
            try {
                Thread.sleep(1000);
                // 注入mapper
                HomeService  = WebSocketServer.applicationContext.getBean(HomeService.class);
                QueueMapper  = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                HomeService = WebSocketServer.applicationContext.getBean(HomeService.class);
                QueueMapper = WebSocketServer.applicationContext.getBean(QueueMapper.class);
                homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
                spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
                spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
                outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
                storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
                glassInfoMapper = WebSocketServer.applicationContext.getBean(GlassInfoMapper.class);
                // 获取其车的位置
                if (S7control.getinstance().CheckConnected() == true&&false) {
                    double carposition = 0;
                    float car = S7control.getinstance().readFloat32("DB10.1992");
                    carposition = (-40 + (car / (carend - carstart) * 595));
                    jsonObject.append("carposition", carposition);
                }
                // 笼子使用情况
                List<StorageCage> tableData = homeMapper.selectAlls();
                jsonObject.append("tableData", tableData);
                // 格理片笼格子状态
                List<StorageCage> cagelist1=storageCageService.SelectStorageCageByCage(1);
                List<StorageCage> cagelist2=storageCageService.SelectStorageCageByCage(2);
                List<StorageCage> cagelist3=storageCageService.SelectStorageCageByCage(3);
                List<StorageCage> cagelist4=storageCageService.SelectStorageCageByCage(4);
                List<StorageCage> cagelist1 = storageCageService.SelectStorageCageByCage(1);
                List<StorageCage> cagelist2 = storageCageService.SelectStorageCageByCage(2);
                List<StorageCage> cagelist3 = storageCageService.SelectStorageCageByCage(3);
                List<StorageCage> cagelist4 = storageCageService.SelectStorageCageByCage(4);
                jsonObject.append("cagelist1", cagelist1);
                jsonObject.append("cagelist2", cagelist2);
                jsonObject.append("cagelist3", cagelist3);
@@ -97,7 +107,6 @@
                List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
                jsonObject.append("alarmmg", alarmmg);
                // 获取出片队列信息
                List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
                jsonObject.append("listoutslice", listoutslice);
@@ -112,56 +121,66 @@
                // 查询当前铝框信息
                Out_slice CurrentFrame = outSliceServive.SelectCurrentFrame();
                jsonObject.append("CurrentFrame", CurrentFrame);
                //读取DB105区文件
                PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
                String PlcRequest=plcmes.getPlcParameter("GaToMES").getValue();//请求
                String MesSend=plcmes.getPlcParameter("MESToGaStatus").getValue();//发送
                double width=Double.valueOf(plcmes.getPlcParameter("width").getValue());//宽
                double height=Double.valueOf(plcmes.getPlcParameter("Height").getValue());//高
                // String PlcRequest=S7control.getinstance().ReadWord("DB14.26", 1).get(0)+"";
                // double width=Double.parseDouble(S7control.getinstance().ReadWord("DB14.28", 1).get(0)+"");
                // double height=Double.parseDouble(S7control.getinstance().ReadWord("DB14.30", 1).get(0)+"");
                // String MesSend=S7control.getinstance().ReadWord("DB14.170", 1).get(0)+"";
                // 读取DB105区文件
                PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
                // if(plcmes.==null){
                //获取测量的长,宽
                 boolean istest = true;
                // }
                // 获取测量的长,宽
                boolean istest = true;
                // String PlcRequest = "1";
                // String MesSend = "0";
                // double width = 516;
                // double height = 507;
                //匹配
                //System.err.println(PlcRequest+","+MesSend+","+width+","+height);
                if ("0".equals(PlcRequest)&&istest) {
                    S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 0);
                }
                if ("1".equals(PlcRequest)&&"0".equals(MesSend)) {
                    boolean is=HomeService.Normal(width, height, "1");
                    if (is&&istest) {
                        // 测量成功
                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
                // double width = 0;
                // double height = 0;
                    }else if(istest){
                        // 重新测量
                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 4);
                    }
                // 匹配
                // System.err.println(PlcRequest+","+MesSend+","+width+","+height);
                // if (plcmes.getPlcParameter("GaToMES").getValue() != null) {
                // String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// 请求
                // String MesSend = plcmes.getPlcParameter("MESToGaStatus").getValue();// 发送
                // double width = Double.valueOf(plcmes.getPlcParameter("width").getValue());//
                // 宽
                // double height =
                // Double.valueOf(plcmes.getPlcParameter("Height").getValue());// 高
                // if ("0".equals(PlcRequest) && istest) {
                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                // (short) 0);
                // }
                // if ("1".equals(PlcRequest) && "0".equals(MesSend)) {
                // boolean is = HomeService.Normal(width, height, "1");
                // if (is && istest) {
                // // 测量成功
                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                // (short) 1);
                }
                 //S7control.getinstance().WriteWord("DB14.170", (short)0);
                Queue LastQueue= QueueMapper.selectLastQueue();
                if(LastQueue==null){
                    Queue nullQueue=new Queue();
                // } else if (istest) {
                // // 重新测量
                // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
                // (short) 4);
                // }
                // }
                // }
                // S7control.getinstance().WriteWord("DB14.170", (short)0);
                // 正在上片订单中的所有小片信息
                List<GlassInfo> glassInfoFlowCard = glassInfoMapper.selectOrderState(1);
                jsonObject.append("glassInfoFlowCard", glassInfoFlowCard);
                Queue LastQueue = QueueMapper.selectLastQueue();
                if (LastQueue == null) {
                    Queue nullQueue = new Queue();
                    nullQueue.setglassId("");
                    nullQueue.setglassheight(0);
                    nullQueue.setglasswidth(0);
                    nullQueue.setglassheightmm(0);
                    nullQueue.setglasstype(0);
                    nullQueue.setglasswidthmm(0);
                    jsonObject.append("LastQueue", nullQueue);
                }else{
                    if (LastQueue.getstate()<1) {
                } else {
                    if (LastQueue.getstate() < 1) {
                        LastQueue.setglasswidth(0);
                        LastQueue.setglassheight(0);
                    }
@@ -170,16 +189,15 @@
                // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16));
                // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14));
                //查询理片笼信息
                // 查询理片笼信息
                List<StorageCage> StorageCageInfo = storageCageService.SelectStorageCageInfo();
                jsonObject.append("StorageCageInfo", StorageCageInfo);
                //查询当前进片任务
                // 查询当前进片任务
                List<StorageTask> StoragTaskeTaskFeed = storageCageService.SelectStorageTask(0);
                jsonObject.append("StoragTaskeTaskFeed", StoragTaskeTaskFeed);
                //查询当前出片任务
                // 查询当前出片任务
                List<StorageTask> StoragTaskeTaskOut = storageCageService.SelectStorageTask(1);
                jsonObject.append("StoragTaskeTaskOut", StoragTaskeTaskOut);
@@ -187,27 +205,28 @@
                List<FlowCard> OrderTask = storageCageService.SelectOrderTask();
                jsonObject.append("OrderTask", OrderTask);
                // jsonObject.append("params", new short[] { 30, 40, });
                // System.out.println("jsonObject:" + jsonObject);
                ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
                if (sendwServer != null) {
                    for (WebSocketServer webserver : sendwServer) {
                        webserver.sendMessage(jsonObject.toString());
                        if (webserver != null) {
                            List<String> messages = webserver.getMessages();
                            if (!messages.isEmpty()) {
                                // // 将最后一个消息转换为整数类型的列表
                                webserver.clearMessages();
                            }
                        }
                    }
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // jsonObject.append("params", new short[] { 30, 40, });
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
                    if (webserver != null) {
                        List<String> messages = webserver.getMessages();
                        if (!messages.isEmpty()) {
                            // // 将最后一个消息转换为整数类型的列表
                            webserver.clearMessages();
                        }
                    }
                }
            }
        }
    }
springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -17,6 +17,11 @@
  // 用于存储应用程序的配置信息
  private Configuration config;
    public Plcsign() throws IOException {
        config = new Configuration("config.properties");
    }
  String name = "";
  Integer count = 0;
@@ -63,33 +68,14 @@
  public void run() {
    while (this != null) {
      try {
        Thread.sleep(1000);
        Thread.sleep(100);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
//      this.readValue();
//      String PlcAddress = this.name;
//      Integer Plccount = this.count;
      // System.out.println(PlcAddress);
//      List<Boolean> plclist = S7control.getinstance().ReadBits(PlcAddress, Plccount);
      //  List<Boolean> plclist = S7control.getinstance().ReadBits("DB102.0.0", 112);
       List<String> addressList21 = Arrays.asList(config.getProperty("PlcIO.State").split(","));
       List<Boolean> plclist = S7control.getinstance().readBits(addressList21);
       List<String> addressListName = Arrays.asList(config.getProperty("PlcIO.Name").split(","));
      //  System.out.println("急停"+S7control.getinstance().ReadBits("DB10.0.5", 1));
      
//       Boolean[] values = { true, true, true, true, true, false, true, false,
//       true, false, true, false, true, false,
//       true, false, true, false, true, false, true, false, true, false, true, false,
//       true, false, true, false, true,
//       false, true, false, true, false,
//       true, false, true, false, true, false, true, false, null,
//       true, false,
//       true, false, true, false, true, false,
//       true, false, true, false, true, };
//       List<Boolean> plclist = new ArrayList<>(Arrays.asList(values));
      if (plclist != null) {
        // 将获取的布尔类型转换为整数类型
        List<Integer> Intlist = new ArrayList<>();
@@ -101,7 +87,6 @@
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.append("sig", Intlist);
        jsonObject.append("addressListName", addressListName);
//        WebSocketServer sendwServer3 = WebSocketServer.sessionMap.get("Sign");
//        if (sendwServer3 != null) {
//          sendwServer3.sendMessage(jsonObject.toString());
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -19,8 +19,8 @@
        // new Plcalarm().start();
        // new PLCAutoMes().start();
        //  new PlcHoldNew().start();
         new Plchome().start();
        // new PlcHoldNew().start();
        new Plchome().start();
        // new PlcAlbaniaServo().start();
        // new Plcsign().start();
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -532,6 +532,12 @@
    public Result ManualTake(@RequestBody String glassInfo) {
      return storageCageService.ManualTake(glassInfo);
    }
    //开始工程
    @PostMapping("/StartChange")
    public Result StartChange(String flowcard) {
      return storageCageService.StartChange(flowcard);
    }
    //重新测量
    @PostMapping("/AnewMeasure")
    public Result AnewMeasure(@RequestBody String glassInfo) {
springboot-vue3/src/main/java/com/example/springboot/entity/FlowCard.java
@@ -17,6 +17,8 @@
  private Integer state;// 状态
  private Integer method;// 出片方式
  private Date starttime;// 任务领取时间
  private Integer orderstate;// 任务领取时间
  
  public List<GlassInfo> glassinfo;// 玻璃信息
springboot-vue3/src/main/java/com/example/springboot/entity/GlassInfo.java
@@ -24,4 +24,6 @@
  private Integer measurenumber;// 测量完成数量
  private Integer cageno;//笼内数量
  private Integer method;//出片方式
  private Integer orderstate;//出片方式
}
springboot-vue3/src/main/java/com/example/springboot/entity/Queue.java
@@ -10,7 +10,7 @@
    private double glassheight;//玻璃高
    private double glasswidthmm;//玻璃宽英制
    private double glassheightmm;//玻璃高英制
    private int type;//类型
    private int glasstype;//类型
    private int state;//状态
    private String time;//修改时间
@@ -86,12 +86,12 @@
        this.glassheightmm = glassheightmm;
    }
    public int gettype() {
        return type;
    public int getglasstype() {
        return glasstype;
    }
    public void settype(int type) {
        this.type = type;
    public void setglasstype(int glasstype) {
        this.glasstype = glasstype;
    }
    public int getstate() {
springboot-vue3/src/main/java/com/example/springboot/entity/flowcard.java
@@ -17,6 +17,8 @@
  private Integer state;// 状态
  private Integer method;// 出片方式
  private Date starttime;// 任务领取时间
  private Integer orderstate;// 任务领取时间
  
  public List<GlassInfo> glassinfo;// 玻璃信息
springboot-vue3/src/main/java/com/example/springboot/entity/glassinfo.java
@@ -24,4 +24,6 @@
  private Integer measurenumber;// 测量完成数量
  private Integer cageno;//笼内数量
  private Integer method;//出片方式
  private Integer orderstate;//出片方式
}
springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
@@ -12,10 +12,10 @@
@Repository
public interface AlbaniaMapper  {
    //判断笼内是否有合适的类型空格
    @Select("select id from storage_cage where glasstype=#{glasstype} and width>=#{width}+#{widths} and state=0 and disabled=0 order by id limit 1")
    @Select("select id from storage_cage where glasstype=#{glasstype} and width>=#{width}+#{widths}  and disabled=0 order by id limit 1")
    StorageCage SelectCage(int glasstype,Double width,int widths);
    //判断笼内没有玻璃的空格
    @Select("select id from storage_cage where number=0 and cage>#{cage} and cage<#{cage2} and disabled=0 order by id limit 1")
    @Select("select id from storage_cage where (number is null or number=0) and cage>#{cage} and cage<#{cage2} and disabled=0 order by id limit 1")
    StorageCage SelectNewCell(int cage,int cage2);
    //增加玻璃数
    @Update("update storage_cage set number=number+1,width=width-glasswidth where id=#{id}")
@@ -27,8 +27,8 @@
    @Insert("INSERT INTO `albania`.`storage_task`(`task_type`, `task_state`, `shelf_rack`, `load_rack`,start_time,glass_id,glasstype,flowcard,mateid,tier) VALUES (#{tasktype},#{taskstate},#{shelfrack},#{loadrack},now(),#{glassid},#{glasstype},#{flowcard},#{mateid},#{tier});")
    void Inserttask(int tasktype, int taskstate, int shelfrack, int loadrack, String glassid, int glasstype,String flowcard,int mateid,int tier);
    //新增一条笼子数据
    @Update("UPDATE `albania`.`storage_cage` SET `glass_id` =#{glassid}, `width` =width-#{glasswidth}, `glasswidth` =#{glasswidth}, `glassheight` =#{glassheight}, `glasswidthmm` =#{glasswidthmm}, `glassheightmm` = #{glassheightmm},  `state` = #{state}, `glasstype` = #{glasstype}, `number` = #{number} WHERE `id` =#{id};")
    void AddCage(int id,String glassid,Double glasswidth,Double glassheight,Double glasswidthmm,Double glassheightmm,int state,String glasstype,int number);
    @Update("UPDATE `albania`.`storage_cage` SET `glass_id` =#{glassid}, `width` =width-#{glasswidth}, `glasswidth` =#{glasswidth}, `glassheight` =#{glassheight}, `glasswidthmm` =#{glasswidth}, `glassheightmm` = #{glassheight},  `state` = #{state}, `glasstype` = #{glasstype}, `number` = #{number} WHERE `id` =#{id};")
    void AddCage(int id,String glassid,Double glasswidth,Double glassheight,int state,int glasstype,int number);
    //获取进片数据
    @Select("select glassid,flowcard,glasswidth as width,glassheight as height,glasswidthmm,glassheightmm,glasstype,thickness  from queue where state=1 limit 1")
    GlassInfo SelectGlass();
@@ -57,10 +57,15 @@
    @Select("select method from flowcard where state=1 and line=#{line} ORDER BY starttime LIMIT 1;")
    GlassInfo SelectMethod(int line);
    //直出模式任务查询
    @Select("select b.flowcard,b.glasstype,b.mateid,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=#{line} and c.number>0")
    @Select("select b.flowcard,b.glassid,b.glasstype,b.mateid,b.width,b.tier,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=#{line} and c.number>0 limit 1")
    GlassInfo SelectOutGlass2(int line);
    //查询直通模式下最后一块
    @Select("select b.tier from flowcard a  left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=2 and c.number>0 ORDER BY b.tier desc LIMIT 1")
    int SelectOutGlassend(int line);
    //增加笼子表宽高
    @Select("update storage_cage a set a.glasswidth=#{width},a.glassheight=#{height} where id=#{id} ")
    void UpdateStorage(double width,double height,int id);
    //更改队列表状态
    @Update("update queue set state=2 where glassid=#{glassid};")
    void UpdateQueueState(String glassid);
springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
@@ -13,12 +13,14 @@
@Repository
public interface GlassInfoMapper extends BaseMapper<GlassInfo> {
    @Select("SELECT * FROM glassinfo where width<=#{maxwidth} and width>=#{minwidth} and height<=#{maxheight} and height>=#{minheight} and measurenumber<number")
    @Select("select gi.* from flowcard as fd LEFT JOIN glassinfo as gi on fd.flowcard=gi.flowcard where fd.orderstate=1 and gi.flowcard is not null and  gi.width<=#{maxwidth} and gi.width>=#{minwidth} and gi.height<=#{maxheight} and gi.height>=#{minheight} and gi.measurenumber<number")
    List<GlassInfo> selectGlassInfos(@Param("maxwidth") double maxwidth, @Param("minwidth") double minwidth, @Param("maxheight") double maxheight, @Param("minheight") double minheight);
    // @Select("SELECT COUNT(*) FROM role_permission WHERE role_id = #{roleId} AND permission_id = #{permissionId}")
    // boolean checkExists(@Param("roleId") int roleId, @Param("permissionId") int permissionId);
    @Select("SELECT g.* FROM flowcard as f left join glassinfo as g on f.flowcard=g.flowcard WHERE f.orderstate = #{orderstate}")
    List<GlassInfo> selectOrderState(@Param("orderstate") int orderstate);
    @Update("UPDATE glassinfo SET measurenumber = measurenumber+1 WHERE id = #{id}")
    void updatemeasurenumber(@Param("id") int roleId);
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -283,6 +283,10 @@
  @Update("update flowcard set method=#{method} where flowcard=#{flowcard}")
  void ModeChange(String flowcard, int method);
  @Update("update flowcard set orderstate=#{orderstate} where flowcard=#{flowcard}")
  void StartChange(String flowcard,int orderstate);
  @Update("update queue set glassid=concat(#{flowcard},'-',#{tier}),flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},thickness=#{thickness},state=1 where state<=0")
  void UpdateQueue(String flowcard, double width, double height, Integer glasstype, Double thickness, Integer tier);
springboot-vue3/src/main/java/com/example/springboot/service/HomeService.java
@@ -69,6 +69,7 @@
            //System.out.println("有匹配失败数据未去除");
            return false;
        }
        //查询当前领取的任务
        List<GlassInfo> Result = NormalGlassInfo(width, height, "1");
        if (Result.size() == 1) {
            // 匹配成功 就一种类型 添加数据
springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
@@ -18,7 +18,7 @@
     * 数据库连接参数
     * driver,url,username,password
     */
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
    private static final String URL = "jdbc:mysql://10.153.19.150:3306/canadames";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "beibo.123/";
springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
@@ -24,6 +24,8 @@
        //有进片请求但是测量台没有玻璃
        return 400;
    }
    System.out.println(glassInfo+"初始");
    //定义初始字段
    StorageCage cage;
    String glassid=glassInfo.getGlassid();
@@ -44,20 +46,23 @@
         if(glassInfo.getThickness()>=15){
            cage=albaniaMapper.SelectNewCell(3,5);
        }else{
            cage=albaniaMapper.SelectNewCell(0,5);
            cage=albaniaMapper.SelectNewCell(0,4);
            System.out.println(cage+"理片笼判断");
        }
        //当返回的格子号为空时,返回400笼子已满
        if(cage!=null){
            albaniaMapper.AddCage(cage.getId(), glassid,width, height, cage.getGlassWidthMm(), cage.getGlassHeightMm(), 1, cage.getGlasstype(), 0);
            albaniaMapper.AddCage(cage.getId(), glassid,width, height, 1, glasstype, 0);
            Mestast(glassid,1001,cage.getId(),1,"MESID1",1);
            albaniaMapper.UpdateStorage(width,height,cage.getId());
            albaniaMapper.UpdateQueueState(glassid);
            System.out.println(cage+"任务发送");
        }else{
            return(400);
        }
    }
    //增加任务记录
    albaniaMapper.Inserttask(0, 0, 1001, cage.getId(), glassid,glasstype, flowcard,0,0);
    albaniaMapper.UpdateQueueState(glassid);
    return(200);
}
@@ -67,6 +72,7 @@
        GlassInfo glassmate=new GlassInfo();
        GlassInfo method=new GlassInfo();
        StorageCage glass=new StorageCage();
        int glassend=0;
        method=albaniaMapper.SelectMethod(line);
        double width=0;
            for(int i=1;i<=7;i++){
@@ -76,6 +82,8 @@
                }else{
                    //直通模式时按顺序直出
                    glassmate= albaniaMapper.SelectOutGlass2(line);
                    //获取直通模式最后一块
                    glassend=albaniaMapper.SelectOutGlassend(line);
                }
                
                if(glassmate==null){ 
@@ -97,11 +105,12 @@
                    Mestast(glass.getGlassId(), glass.getId(),40, 0,"MESID"+i,i);
                    albaniaMapper.AddFinishNumber(glassmate.getFlowcard(), glassmate.getMateid(), glassmate.getTier());
                    albaniaMapper.Inserttask(1, 0, glass.getId(), 2002, glassmate.getGlassid(), glassmate.getGlasstype(),glass.getFlowcard(),glassmate.getMateid(),glassmate.getTier());
                      if(glassmate.getTier()==glassmate.getId()){//当配片数量等于成品小片总片数时
                      if(glassmate.getTier()==glassmate.getId()||glassmate.getTier()==glassend){//当配片数量等于成品小片总片数时
                        //本次配片完成发送启动命令
                        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short)1);//出片任务启动
                        return (200);//结束
                      }
                      
                    }else{
                        return (400);//结束
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -223,7 +223,7 @@
            homeMapper.DeleteStroageCageByCell(cell);
        } else {
            homeMapper.updateStroageCageByCell(cell, num);
            homeMapper.UpdateStroageCageWidthByCell(cell);//修改笼子宽度
            homeMapper.UpdateStroageCageWidthByCell(cell);// 修改笼子宽度
        }
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
@@ -294,9 +294,9 @@
    // 开始任务
    public Result ClaimTasks(String flowcard, Integer state, Integer line) {
        if (state == 1) {
            homeMapper.ClaimTasks(flowcard, 0,line);
            homeMapper.ClaimTasks(flowcard, 0, line);
        } else {
            homeMapper.ClaimTasks(flowcard, 1,line);
            homeMapper.ClaimTasks(flowcard, 1, line);
        }
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
@@ -318,10 +318,10 @@
    // 修改测量信息
    public Result UpdateQueue(GlassInfo glassInfo) {
        homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
                glassInfo.getGlasstype(),glassInfo.getThickness(),glassInfo.getTier());
                glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier());
        Map<String, Object> map = new HashMap<>();
        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
        map.put("message", "200");
        return Result.success(map);
    }
@@ -335,11 +335,19 @@
        // 读取DB105区文件
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        // 移除
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 3);
        //删除数据
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 3);
        // 删除数据
        QueueMapper.DeleteErrorQueue();
        // plcmes.getPlcParameter("GaToMES").setValue("3");
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        return Result.success(map);
    }
    // 开始工程
    public Result StartChange(String flowcard) {
        homeMapper.StartChange(flowcard, 1);
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        return Result.success(map);
@@ -350,8 +358,8 @@
        // 读取DB105区文件
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        // 重新测量
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 2);
        //删除数据
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 2);
        // 删除数据
        QueueMapper.DeleteErrorQueue();
        // plcmes.getPlcParameter("GaToMES").setValue("2");
        Map<String, Object> map = new HashMap<>();
@@ -365,14 +373,15 @@
        // 筛选处理数据 1.去除无用数据 2.计算配片ID 3.计算ID 4. 计算总层数
        List<Map> TypeDatas = homeMapper.SelectType();
        Map<String, String> TypeData = new HashMap<String, String>();// 得到处理完后所有的类型
        Map<String, Integer> groupby=new HashMap<String, Integer>(); // 得到处理完后所有总层数;
        Map<String, Integer> OrderFinishedProduct=new HashMap<String, Integer>(); // 得到处理完后订单成品总数量;
        //"order zong 0  1  10  2 10"
        Map<String, Integer> groupby = new HashMap<String, Integer>(); // 得到处理完后所有总层数;
        Map<String, Integer> OrderFinishedProduct = new HashMap<String, Integer>(); // 得到处理完后订单成品总数量;
        // "order zong 0 1 10 2 10"
        List<Map> RemoveErrorData = IportDataStr.stream()
                .filter(item -> (item.get("order") != null && item.get("glasstype") != null && item.get("tier") != null
                        &&
                        item.get("films") != null && item.get("base") != null && item.get("height") != null
                        && item.get("thickness") != null && item.get("quantity") != null&& item.get("matching") != null))
                        && item.get("thickness") != null && item.get("quantity") != null
                        && item.get("matching") != null))
                .collect(Collectors.toList());
        TypeDatas.forEach(item -> {
@@ -380,32 +389,34 @@
        });
        RemoveErrorData.forEach(item -> {
            String key=item.get("order").toString()+"_"+item.get("matching").toString();
            String keyCount=item.get("order").toString()+"_"+item.get("matching").toString()+"_"+item.get("tier").toString();
            String keyCountSum=item.get("order").toString()+"_"+item.get("matching").toString()+"_Sum";//订单总数
            if (OrderFinishedProduct.get(keyCount)!=null) {
                Integer count=OrderFinishedProduct.get(keyCount)+1;
                Integer sumcount=OrderFinishedProduct.get(keyCountSum)+Integer.parseInt(item.get("quantity").toString());
                OrderFinishedProduct.put(keyCount,count);
                OrderFinishedProduct.put(keyCountSum,sumcount);
            }else if(OrderFinishedProduct.get(keyCount)==null&&groupby.get(key)==null){
                OrderFinishedProduct.put(keyCount,1);
                OrderFinishedProduct.put(keyCountSum,Integer.parseInt(item.get("quantity").toString()));
            String key = item.get("order").toString() + "_" + item.get("matching").toString();
            String keyCount = item.get("order").toString() + "_" + item.get("matching").toString() + "_"
                    + item.get("tier").toString();
            String keyCountSum = item.get("order").toString() + "_" + item.get("matching").toString() + "_Sum";// 订单总数
            if (OrderFinishedProduct.get(keyCount) != null) {
                Integer count = OrderFinishedProduct.get(keyCount) + 1;
                Integer sumcount = OrderFinishedProduct.get(keyCountSum)
                        + Integer.parseInt(item.get("quantity").toString());
                OrderFinishedProduct.put(keyCount, count);
                OrderFinishedProduct.put(keyCountSum, sumcount);
            } else if (OrderFinishedProduct.get(keyCount) == null && groupby.get(key) == null) {
                OrderFinishedProduct.put(keyCount, 1);
                OrderFinishedProduct.put(keyCountSum, Integer.parseInt(item.get("quantity").toString()));
            }
            if (groupby.get(key)!=null) {
                Integer Tiers=groupby.get(key)+1;
            if (groupby.get(key) != null) {
                Integer Tiers = groupby.get(key) + 1;
                groupby.put(key, Tiers);
            }else{
            } else {
                groupby.put(key, 1);
            }
            }
        });
        System.out.println(RemoveErrorData.size());
        // 处理完成 添加数据库
        int count=1;
        int count = 1;
        for (Map map : RemoveErrorData) {
            String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
                       + map.get("thickness").toString() + "_" + map.get("films").toString();
                    + map.get("thickness").toString() + "_" + map.get("films").toString();
            String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
@@ -413,8 +424,8 @@
            Integer glasstype;
            if (TypeData.get(key) == null) {
                glasstype = homeMapper.SelectMaxType();
                if (glasstype==null) {
                    glasstype=1;
                if (glasstype == null) {
                    glasstype = 1;
                }
            } else {
                glasstype = Integer.valueOf(value);
@@ -422,21 +433,18 @@
            //
            homeMapper.AddGlassinfo(map.get("order").toString(), glasstype,
                    Integer.parseInt(map.get("matching").toString()) // 需要计算 配片ID
                    ,map.get("order").toString()+"-"+count+"" // 需要计算 玻璃ID
                    , map.get("order").toString() + "-" + count + "" // 需要计算 玻璃ID
                    , Integer.parseInt(map.get("tier").toString()), map.get("films").toString(),
                    Double.parseDouble(map.get("base").toString()), Double.parseDouble(map.get("height").toString()),
                    Double.parseDouble(map.get("thickness").toString()),
                    Integer.parseInt(map.get("quantity").toString()),groupby.get(tierkey));// 需要计算总层数
            //订单内总层数
            homeMapper.InsertFlowcard(map.get("order").toString(),OrderFinishedProduct.get(tierkey+"_Sum"));
                    Integer.parseInt(map.get("quantity").toString()), groupby.get(tierkey));// 需要计算总层数
            // 订单内总层数
            homeMapper.InsertFlowcard(map.get("order").toString(), OrderFinishedProduct.get(tierkey + "_Sum"));
            count++;
        }
        Map<String, Object> ResultCode = new HashMap<>();
        ResultCode.put("message", "200");
        return Result.success(ResultCode);
    }
}
springboot-vue3/src/main/resources/application.properties
@@ -6,7 +6,7 @@
#\u6570\u636E\u5E93\u9A71\u52A8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#\u6570\u636E\u5E93\u8FDE\u63A5\u5730\u5740
#spring.datasource.url=jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
# spring.datasource.url=jdbc:mysql://localhost:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://10.153.19.150:3306/albania?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
#\u6570\u636E\u5E93\u7528\u6237\u540D
spring.datasource.username=root
springboot-vue3/src/main/resources/config.properties
@@ -225,8 +225,8 @@
#IO状态
PlcIO.State=DB10.2.1,DB10.2.2,DB10.2.5,DB10.10.6,DB10.11.1,DB10.11.2,DB10.11.3,DB10.11.4,DB10.11.5,DB10.11.6,DB10.12.1,DB10.12.3,DB10.10.0,DB10.10.2,DB10.10.3,DB10.10.5,DB10.26.6,DB10.30.4,DB10.33.0,DB10.30.5,DB10.33.1,DB10.30.0,DB10.30.1,DB10.30.2,DB10.30.3,DB10.32.4,DB10.32.5,DB10.32.6,DB10.32.7,DB10.32.0,DB10.32.1,DB10.32.2,DB10.32.3,DB10.27.7,DB10.24.6,DB10.38.4,DB10.41.0,DB10.38.5,DB10.41.1,DB10.35.7,DB10.38.0,DB10.38.1,DB10.38.2,DB10.38.3,DB10.40.4,DB10.40.5,DB10.40.6,DB10.40.7,DB10.40.0,DB10.40.1,DB10.40.2,DB10.40.3,DB10.0.0,DB10.0.1,DB10.0.5,DB10.0.2,DB10.0.7,DB10.0.3,DB10.28.0,DB10.36.0,DB10.1.0,DB10.18.2,DB10.18.4,DB10.19.7,DB10.18.3,DB10.18.5,DB10.20.0,DB10.18.6,DB10.19.5,DB10.19.6
PLCIO.Name=A01Sr.Low-E,A01Sr.dec,A01Sr.Pos,A02Sr.YZero,A02Sr.YH1,A02Sr.YH2,A02Sr.YH3,A02Sr.YH4,A02Sr.LimitTop,A02Sr.LimiBottom,A02Sr.Check,A02Sr.YDec,A02Sr.Xin,A02Sr.XCheck,A02Sr.XDec,A02Sr.XPos,C01Sr.Zero,C01YV1.Bas1,C01YV1.Work1,C01.YV1.Bas2,C01.YV1.Work2,C01.YV2.Bas1,C01.YV2.Bas2,C01.YV2.Bas3,C01.YV2.Bas4,C01.YV2.Work1,C01.YV2.Work2,C01.YV2.Work3,C01.YV2.Work4,C01.YV.Blow1,C01.YV.Blow2,C01.YV.Blow3,C01.YV.Blow4,C01.SR.Limit1,C02.Sr.Zero,C02.YV1.Bas1,C02.YV1.Work1,C02.YV1.Bas2,C02.YV1.Work2,C02.Sr.limit1,C02.YV2.Bas1,C02.YV2.Bas2,C02.YV2.Bas3,C02.YV2.Bas4,C02.YV2.Work1,C02.YV2.Work2,C02.YV2.Work3,C02.YV2.Work4,C02.YV.Blow1,C02.YV.Blow2,C02.YV.Blow3,C02.YV.Blow4,bStart,bStop,bEstop,bReset,bAuto/Manual,bPause,C01.Sr.Limit2,C02.Sr.Limit2,A01.FootControl,B01.Sr.DecLeft,B01.Sr.PosLeft,B01.Sr.SafetyLeft,B01.Sr.DecRight,B01.Sr.PosRight,B01.Sr.SafetyRight,B01.Sr.TurnZero,B01.Sr.TurnLimitTop,B01.Sr.TurnLimitBottom
PlcIO.Name=A01Sr.Low-E,A01Sr.dec,A01Sr.Pos,A02Sr.YZero,A02Sr.YH1,A02Sr.YH2,A02Sr.YH3,A02Sr.YH4,A02Sr.LimitTop,A02Sr.LimiBottom,A02Sr.Check,A02Sr.YDec,A02Sr.Xin,A02Sr.XCheck,A02Sr.XDec,A02Sr.XPos,C01Sr.Zero,C01YV1.Bas1,C01YV1.Work1,C01.YV1.Bas2,C01.YV1.Work2,C01.YV2.Bas1,C01.YV2.Bas2,C01.YV2.Bas3,C01.YV2.Bas4,C01.YV2.Work1,C01.YV2.Work2,C01.YV2.Work3,C01.YV2.Work4,C01.YV.Blow1,C01.YV.Blow2,C01.YV.Blow3,C01.YV.Blow4,C01.SR.Limit1,C02.Sr.Zero,C02.YV1.Bas1,C02.YV1.Work1,C02.YV1.Bas2,C02.YV1.Work2,C02.Sr.limit1,C02.YV2.Bas1,C02.YV2.Bas2,C02.YV2.Bas3,C02.YV2.Bas4,C02.YV2.Work1,C02.YV2.Work2,C02.YV2.Work3,C02.YV2.Work4,C02.YV.Blow1,C02.YV.Blow2,C02.YV.Blow3,C02.YV.Blow4,bStart,bStop,bEstop,bReset,bAuto/Manual,bPause,C01.Sr.Limit2,C02.Sr.Limit2,A01.FootControl,B01.Sr.DecLeft,B01.Sr.PosLeft,B01.Sr.SafetyLeft,B01.Sr.DecRight,B01.Sr.PosRight,B01.Sr.SafetyRight,B01.Sr.TurnZero,B01.Sr.TurnLimitTop,B01.Sr.TurnLimitBottom
PlcIo.Name1=LOW-E膜检测,A01减速,A01到位,A02-Y轴原点,A02-Y轴高度感应1,A02-Y轴高度感应2,A02-Y轴高度感应3,A02-Y轴高度感应4,A02-Y轴上极限,A02-Y轴下极限,A02-Y轴寻边,A02-Y轴减速,A02-X轴上片,A02-X轴寻边,A02-X轴减速,A02-X轴到位,C01原点,C01.YV1原点位1,C01.YV1动作位1,C01.YV1原点位2,C01.YV1动作位2,C01.YV2原点位1,C01.YV2原点位2,C01.YV2原点位3,C01.YV2原点位4,C01.YV2动作位1,C01.YV2动作位2,C01.YV2动作位3,C01.YV2动作位4,C01吹气1,C01吹气2,C01吹气3,C01吹气4,C01对射保护,C02原点,C02.YV1原点位1,C02.YV1动作位1,C02.YV1原点位2,C02.YV1动作位2,C02对射保护,C02.YV2原点位1,C02.YV2原点位2,C02.YV2原点位3,C02.YV2原点位4,C02.YV2动作位1,C02.YV2动作位2,C02.YV2动作位3,C02.YV2动作位4,C02吹气1,C02吹气2,C02吹气3,C02吹气4,启动,停止,急停,复位,模式选择,暂停,C01对射保护2,C02对射保护2,脚踏开关,B01左减速,B01左到位,B01左安全检测,B01右减速,B01右到位,B01右安全检测,B01
#A01参数
PlcA01.param=DB10.1664,DB10.1668,DB10.1672,DB10.1676,DB10.1680
#A01按钮