ZengTao
2023-12-07 ad97e59dc3198f90f685c6538998624fa07cc199
出片队列添加手动完成任务
10个文件已修改
2个文件已添加
759 ■■■■■ 已修改文件
CanadaMes-ui/src/api/home.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/img/xmjc.png 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/en-US.json 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/lang/locales/zh-CN.json 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/home/index.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/Alarm.json 507 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/resources/config.properties 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/api/home.js
@@ -222,4 +222,11 @@
    })
}
export function CompleteQueue(id,frameid) {
    return request({
        url: '/home/CompleteQueue?id=' + id+'&frameid='+frameid,
        method: 'post',
        data:""
    })
}
CanadaMes-ui/src/img/xmjc.png

CanadaMes-ui/src/lang/locales/en-US.json
@@ -324,6 +324,8 @@
  "Unable to find the placement method of the aluminum frame":"Unable to find the placement method of the aluminum frame",
  "Unable to find whether the aluminum frame is flipped or not":"Unable to find whether the aluminum frame is flipped or not",
  "You do not have this permission":"You do not have this permission",
  "This glass is already in the Queue":"This glass is already in the Queue",
  "complete":"complete",
    "ServoManualone": {
      "A01 所在格子": "A01 Current Grid",
      "数量": "Quantity",
CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -316,6 +316,8 @@
  "You do not have this permission":"You do not have this permission",
  "Unable to find the placement method of the aluminum frame":"查询不到铝框摆放方式",
  "Unable to find whether the aluminum frame is flipped or not":"查询不到铝框是否翻转",
  "This glass is already in the Queue":"此玻璃已在出片队列中",
  "complete":"完成",
  "langparameter": {
    "conveyor Velocity(Auto FAST)": "D01-D06 皮带输送自动快速",
    "conveyor Velocity(Auto SLOW)": "D01-D06 皮带输送自动慢速",
CanadaMes-ui/src/views/home/index.vue
@@ -238,9 +238,9 @@
            </div>
            <div>
                <el-table :data="this.tasklist1" border style="width: 100%">
                    <el-table-column :width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column>
                    <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
                    <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
                    <el-table-column :width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column>
                    <el-table-column :width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
@@ -258,9 +258,9 @@
                    </el-table-column>
                </el-table>
                <el-table :data="this.tasklist2" border style="width: 100%">
                    <el-table-column :width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column>
                    <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
                    <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
                    <el-table-column :width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column>
                    <el-table-column :width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
                    <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
@@ -628,7 +628,11 @@
        </el-dialog>
        <el-dialog :visible.sync="dialogFormVisible6" :title="$t('Outing Queue')" top="5vh">
            <el-button type="primary" @click="isAllowQueueState()">{{ this.isAllowQueue == true ? $t('Start') : $t('Stop')
            <el-button type="primary" @click="isAllowQueueState()" :disabled="!this.isAllowReordering">{{ this.isAllowQueue
                == true ? $t('Start') : $t('Stop')
            }}</el-button>
            <el-button type="primary" @click="isAllowReorderingState()" :disabled="this.isAllowQueue">{{
                this.isAllowReordering == true ? $t('Not Allow') : $t('Allow')
            }}</el-button>
            <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border
                style="width: 100%;overflow: auto;">
@@ -640,27 +644,34 @@
                <el-table-column prop="storageCage.glassheightmm" :label="$t('Width')"></el-table-column>
                <el-table-column prop="state" :label="$t('State')">
                    <template slot-scope='scope'>
                        {{ scope.row.state == 0 ? "Waiting" : "Outing" }}
                        {{ scope.row.state == 0 ? "Waiting" : scope.row.state == 1 ?"Outing":"Completed" }}
                    </template>
                </el-table-column>
                <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column>
                <el-table-column prop="position" :label="$t('Position')"></el-table-column>
                <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column>
                <el-table-column prop="barcode" :label="$t('Complete')">
                    <template slot-scope='scope'>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="!isAllowQueue"
                            @click="CompleteQueue(scope.row.id,scope.row.barcode)">{{ $t('Complete') }}</el-button>
                    </template>
                </el-table-column>
                <el-table-column :width="280" :label="$t('Operate')">
                    <template slot-scope='scope'>
                        <el-button type="text" size="small" @click="getTopMove(scope.row, scope.$index)"
                            style="font-size: 15px;"
                            :disabled="(scope.$index == 0 || isAllowQueue == true || scope.row.state == 1)">
                            :disabled="(scope.$index == 0 || isAllowReordering == true || scope.row.state == 1)">
                            {{ $t('Top') }}
                        </el-button>
                        <el-button type="text" size="small" @click="getUpMove(scope.row, scope.$index)"
                            style="font-size: 15px;"
                            :disabled="(scope.$index == 0 || isAllowQueue == true || scope.row.state == 1)">
                            :disabled="(scope.$index == 0 || isAllowReordering == true || scope.row.state == 1)">
                            {{ $t('Up') }}
                        </el-button>
                        <el-button type="text" size="small" @click="getDownMove(scope.row, scope.$index)"
                            style="font-size: 15px;"
                            :disabled="(OutSlice.length - 1 == scope.$index || isAllowQueue == true || scope.row.state == 1)">
                            :disabled="(OutSlice.length - 1 == scope.$index || isAllowReordering == true || scope.row.state == 1)">
                            {{ $t('Down') }}
                        </el-button>
                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="isAllowQueue"
@@ -714,7 +725,7 @@
import {
    home, home2, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist,
    SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass, SelectGlassNo,
    SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates, SelectPermissionByUserName, currentUsername
    SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates, SelectPermissionByUserName, currentUsername, CompleteQueue
} from "../../api/home";
@@ -785,7 +796,6 @@
            currentPage: 1,  //默认初始页
            pagesize: 15,    //每页默认显示的数据
            pageCount: 0,
            currentPages: 1,  //默认初始页
            pagesizes: 21,    //每页默认显示的数据
            pageCounts: 0,
@@ -793,6 +803,7 @@
            AluminumFrame: [],
            framebarcode: "",
            isAllowQueue: true,
            isAllowReordering: true,
            FrameNoFlag: "",
            isConfirm: true,
            ManuallyInfeedGlass: true,
@@ -847,7 +858,7 @@
                    //是否允许出片
                    this.isAllowQueue = obj.isAllowQueue[0];
                    //出片队列
                    if (this.isAllowQueue == true) {
                    if (this.isAllowReordering == true) {
                        this.OutSlice = obj.listoutslice[0];
                    }
                    //获取上片位玻璃信息
@@ -877,9 +888,9 @@
                        this.form5 = obj.form3[0];
                        this.showform3();
                        this.Sizerange(this.form5, 3);
                        this.glassid1="";
                        this.glassid1 = "";
                    } else {
                        if(this.glassid1==""){
                        if (this.glassid1 == "") {
                            this.DeleteBarcodeGlass();
                        }
                    }
@@ -1234,7 +1245,7 @@
                if (this.password == value) {
                    if (state == 1) {
                        OutByGlassID(glassid).then(res => {
                            if (res.data.message3 == 200) {
                            if (res.data.message2 == 200) {
                                this.$message.success(this.$t('Operation successful'));
                            }
                            else if (res.data.message2 == 300) {
@@ -1354,7 +1365,7 @@
        //手动添加扫码位玻璃
        InsertQueueGlass(parameter) {
            if (parameter == 1 && this.form5.glassId != "") {
                if (this.form5.glassId != this.form2.glassId) {
                if (this.form5.glassId != this.form2.glassId && this.form5.glassId != this.form3.glassId) {
                    InsertQueueGlassId(1, this.form5).then(res => {
                        if (res.data.message == 200) {
                            this.form5 = {};
@@ -1367,7 +1378,7 @@
                    this.$message.error(this.$t('The glass ID already exists in the loading queue'));
                }
            } else if (parameter == 2 && this.form4.glassId != "") {
                if (this.form4.glassId != this.form3.glassId) {
                if (this.form4.glassId != this.form3.glassId && this.form4.glassId != this.form2.glassId) {
                    InsertQueueGlassId(2, this.form4).then(res => {
                        if (res.data.message == 200) {
                            this.form4 = {};
@@ -1388,14 +1399,14 @@
            if (parameter == 1) {
                DeleteQueueGlass(1).then(res => {
                    if (res.data.message == 200) {
                        this.form2 = {};
                        this.form3 = {};
                        this.$message.success(this.$t('Operation successful'));
                    }
                });
            } else {
                DeleteQueueGlass(2).then(res => {
                    if (res.data.message == 200) {
                        this.form3 = {};
                        this.form2 = {};
                        this.$message.success(this.$t('Operation successful'));
                    }
                });
@@ -1551,6 +1562,10 @@
                }
            })
        },
        //
        isAllowReorderingState() {
            this.isAllowReordering = !this.isAllowReordering;
        },
        //切换上片是否需要确认玻璃信息
        isConfirmState() {
            isConfirmStates(!this.isConfirm).then(res => {
@@ -1574,7 +1589,7 @@
            if (rowIndex != 0) {
                barcode2 = arrOutSlice[rowIndex - 1].barcode;
            }
            if (columnIndex === 10) {
            if (columnIndex === 11) {
                if (barcode != barcode2) {
                    // this.FrameNoFlag = barcode;
                    for (let i = rowIndex; i < this.OutSlice.length; i++) {
@@ -1634,6 +1649,14 @@
        //清空待确认玻璃信息
        DeleteBarcodeGlass() {
            this.form5 = {};
        },
        //手动完成出片任务
        CompleteQueue(id,frameid) {
            CompleteQueue(id,frameid).then(res => {
                if (res.data.message == 200) {
                    this.$message.success(this.$t('Operation successful'));
                }
            });
        }
    }
}
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -14,6 +14,7 @@
import com.example.springboot.mapper.SpianMapper;
import com.example.springboot.service.JdbcConnections;
import com.example.springboot.service.North_Glass_Buffer1Service;
import com.example.springboot.service.OutSliceServive;
import com.example.springboot.service.SpianService;
@@ -21,6 +22,7 @@
    @Autowired
    private HomeMapper homeMapper;
    private OutSliceServive outSliceServive;
    private SpianMapper spianMapper;
    private SpianService spianService;
    private North_Glass_Buffer1Service north_Glass_Buffer1Service;
@@ -47,6 +49,7 @@
            homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
            spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
            spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
            outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class);
            north_Glass_Buffer1Service = WebSocketServer.applicationContext.getBean(North_Glass_Buffer1Service.class);
            // 笼子使用情况
            List<StorageCage> tableData = homeMapper.selectAll();
@@ -103,10 +106,11 @@
                jsonObject.append("form3", form3);
            }
            // 获取出片队列信息
            List<Out_slice> listoutslice = homeMapper.SelectProductionqueue();
            for (Out_slice out_slice : listoutslice) {
                out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
            }
            List<Out_slice> listoutslice=outSliceServive.SelectProductionqueue();
            // List<Out_slice> listoutslice = homeMapper.SelectProductionqueue();
            // for (Out_slice out_slice : listoutslice) {
            //     out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
            // }
            jsonObject.append("listoutslice", listoutslice);
            //获取当前出片队列状态
            jsonObject.append("isAllowQueue",Plchome.isAllowQueue);
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -20,25 +20,25 @@
//    new PlcHold().start();
//
    //
//    new Plchome().start();
   new Plchome().start();
//    //
     new PlcParameter().start();
     //
     new Plcalarm().start();
     //
     new Plcsign().start();
     //
     new Plcaction().start();
     new Plcstate().start();
     new PlcPositioning1().start();
     new PlcPositioning2().start();
    new PlcParameter2().start();
     new PlcParameter1().start();
     new PLCAutomaticParameterSetting().start();
    //  new PlcParameter().start();
    //  //
    //  new Plcalarm().start();
    //  //
    //  new Plcsign().start();
    //  //
    //  new Plcaction().start();
    //  new Plcstate().start();
    //  new PlcPositioning1().start();
    //  new PlcPositioning2().start();
    // new PlcParameter2().start();
    //  new PlcParameter1().start();
    //  new PLCAutomaticParameterSetting().start();
     new PlcManualonePosition().start();
     new PlcManualonePosition2().start();
     new PlcServoManualone().start();
     new PLCManualJog().start();
    //  new PlcManualonePosition().start();
    //  new PlcManualonePosition2().start();
    //  new PlcServoManualone().start();
    //  new PLCManualJog().start();
  }
}
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -261,6 +261,7 @@
    } else {
      homeMapper.Inglassid(queue, cage, cell, tier);
      spianMapper.UpdataAddCage1(queue.getglasswidth(), cage, cell);
      map.put("message", "200");
    }
    return Result.success(map);
  }
@@ -283,8 +284,10 @@
      map.put("message", "300");
    } else {
      homeMapper.InsertQueueGlassId(queue, id);
      // 调用伍存储过程
      spianService.selectAll(queue.getglassId());
      if (id == 1) {
        // 调用伍存储过程
        spianService.selectAll(queue.getglassId());
      }
      map.put("message", "200");
    }
    return Result.success(map);
@@ -328,22 +331,6 @@
    return Result.success(map);
  }
  // 查询出片队列数据
  @PostMapping("/SelectProductionqueue")
  public Result SelectProductionqueue() throws SQLException {
    List<Out_slice> listoutslice = homeMapper.SelectProductionqueue();
    for (Out_slice out_slice : listoutslice) {
      out_slice
          .setnorth_glass_buffer1s(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(out_slice.getGlassId(), "", ""));
      out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
    }
    Map<String, Object> maps = new HashMap<>();
    maps.put("listoutslice", listoutslice);
    // Plchome.isAllowQueue=false;
    return Result.success(maps);
  }
  // 根据玻璃id删除出片队列玻璃
  @PostMapping("/DeleteProductionQueueGlass")
  public Result DeleteProductionQueueGlass(String FrameNo) {
@@ -384,4 +371,12 @@
    map.put("message", "200");
    return Result.success(map);
  }
  //手动完成任务
  @PostMapping("/CompleteQueue")
  public Result CompleteQueue(String id,String frameid) {
    return outSliceServive.CompleteQueue(id,frameid);
  }
}
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -115,15 +115,15 @@
  Queue GetQueueInfo(int id);
  //手动添加扫码位玻璃
  @Select("update queue set glassid=#{queue.glassId},orderid=#{queue.orderId},listId=#{queue.listId},boxId=#{queue.boxId},glasswidth=#{queue.glasswidth},glassheight=#{queue.glassheight},glasswidthmm=#{queue.glasswidthmm},glassheightmm=#{queue.glassheightmm},state=1 where id=#{id}")
  @Update("update queue set glassid=#{queue.glassId},orderid=#{queue.orderId},listId=#{queue.listId},boxId=#{queue.boxId},glasswidth=#{queue.glasswidth},glassheight=#{queue.glassheight},glasswidthmm=#{queue.glasswidthmm},glassheightmm=#{queue.glassheightmm},state=1 where id=#{id}")
  void InsertQueueGlassId(Queue queue,Short id);
  //确认扫码位玻璃信息
  @Select("update queue set state=1 where id=1")
  @Update("update queue set state=1 where id=1")
  void UpdateQueueState();
  //手动添加扫码位玻璃
  @Select("update queue set glassid=null,orderid=null,listid=null,boxid=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,state=0 where id=#{id}")
  @Update("update queue set glassid=null,orderid=null,listid=null,boxid=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,state=0 where id=#{id}")
  void DeleteQueueGlass(String id);
  //查询此订单在理片笼里的玻璃数
@@ -144,7 +144,7 @@
  //根据玻璃id删除出片队列玻璃
  @Select("update out_slice set state=3 where barcode=#{FrameNo} and (state=0 or state=1 or state=2)")
  @Update("update out_slice set state=4 where barcode=#{FrameNo} and (state=0 or state=1 or state=2)")
  void DeleteProductionQueueGlass(String id);
  //根据铝框id查询对应玻璃信息
@@ -157,18 +157,29 @@
  Out_slice SelectQueueByglassid(String getbarcode);
  //添加出片队列
  @Select("INSERT INTO out_slice( `glassId`, `barcode`, `glasswidth`, `glassheight`, `state`, `flip`, `sequence`, `time` ,`position`) VALUES ( #{glassid}, #{FrameNo}, #{glasslengthMm}, #{glassheightMm}, 0, #{flip}, #{sequence}, now(), #{position});")
  @Insert("INSERT INTO out_slice( `glassId`, `barcode`, `glasswidth`, `glassheight`, `state`, `flip`, `sequence`, `time` ,`position`) VALUES ( #{glassid}, #{FrameNo}, #{glasslengthMm}, #{glassheightMm}, 0, #{flip}, #{sequence}, now(), #{position});")
  void AddOutSliceS(String glassid, String flip, String FrameNo, String glasslengthMm, String glassheightMm, int sequence, String position);
  //出片队列调序
  @Select("update out_slice set sequence=#{sequence} where glassid=#{glassId}")
  @Update("update out_slice set sequence=#{sequence} where glassid=#{glassId}")
  void UpdateOutSliceSequence(String glassId,int sequence);
  //查询出片队列最大顺序
  @Select("select ifnull(max(sequence),0)+1 from out_slice ")
  Short SelectMaxSquence();
  //查询用户权限
  @Select("select rp.* from role_permission rp inner join role r on rp.role_id=r.id and r.name=#{token} and (permission_id=32 or permission_id=33 or permission_id=34 or permission_id=35)")
  List<RolePermission> SelectPermissionByUserName(String token);
  //完成出片任务
  @Update("update out_slice set state=2 where id=#{id}")
  void CompleteQueue(String id);
  //查询铝框id对应玻璃完成数量
  @Select("select count(*) from out_slice where barcode=#{frameid} and state<2")
  Short SelectCountByFrameNo(String frameid);
  //铝框id对应玻璃改完全部完成状态
  @Update("update out_slice set state=3 where barcode=#{frameid} and state=2")
  void CompleteQueueByFrameNo(String frameid);
}
springboot-vue3/src/main/java/com/example/springboot/service/OutSliceServive.java
@@ -1,11 +1,15 @@
package com.example.springboot.service;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.springboot.common.Result;
import com.example.springboot.entity.Out_slice;
import com.example.springboot.mapper.HomeMapper;
@Service
@@ -19,7 +23,7 @@
  public void AddOutSliceS(String[][] AluminumFrames) throws SQLException {
    int sequence = homeMapper.SelectMaxSquence();
    // 添加到数据库
    for (String[] item : AluminumFrames) {
      if (item[1] == "true") {
@@ -30,6 +34,24 @@
    }
  }
  // 查询出片队列
  public List<Out_slice> SelectProductionqueue() {
    List<Out_slice> listoutslice = homeMapper.SelectProductionqueue();
    for (Out_slice out_slice : listoutslice) {
      out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId()));
    }
    return listoutslice;
  }
public Result CompleteQueue(String id, String frameid) {
  homeMapper.CompleteQueue(id);
  Short num=homeMapper.SelectCountByFrameNo(frameid);
  if(num==0){
    homeMapper.CompleteQueueByFrameNo(frameid);
  }
  Map<String, Object> map = new HashMap<>();
  map.put("message", "200");
  return Result.success(map);
}
}
springboot-vue3/src/main/resources/Alarm.json
New file
@@ -0,0 +1,507 @@
{
  "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"
    }
  ],
  "address": [
    {
      "name": "DB104.0.0",
      "count": 71
    }
  ]
}
springboot-vue3/src/main/resources/config.properties
New file
@@ -0,0 +1,52 @@
#PlcServoManualone 地址 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# A01组合中地址表集合
A01.addresses=DB103.32,DB100.144,DB100.184,DB100.186,DB100.180,DB100.182
# A02组合中地址表集合
A02.addresses=DB103.26,DB100.188,DB100.190,DB100.146
# A01翻转地址
A01.flipAddress=DB103.42
# A02翻转地址
A02.flipAddress=DB103.46
# B01组合中地址
B01.address=DB103.27
# B02组合地址
B02.address=DB103.29
# 所有故障按钮地址
faultButtonAddresses=DB104.1.4,DB104.1.5,DB104.1.2,DB104.1.3,DB104.1.6,DB104.1.7
# 复位按钮地址
resetButtonAddresses=DB101.4.0,DB101.4.3,DB101.3.6,DB101.4.1,DB101.4.4,DB101.4.6
# 所有未回零按钮地址
notHomedButtonAddresses=DB104.9.0,DB104.9.1,DB104.9.0,DB104.9.1,DB104.9.4,DB104.9.5
# 进片id地址
inputGlassIdAddress=DB100.148
# 存片id地址
outputGlassIdAddress=DB100.162
#回零按钮地址
HomedButtonAddresses=DB101.3.7,DB101.4.2,DB101.4.5,DB101.4.7
#A02start
A02start=DB101.5.1
#A01start
A01start=DB101.5.0
#A02start
A02Bstart=DB101.11.1
#A01start
A01Bstart=DB101.11.0
#abort/resumeTasks
abortresumeTasks=DB101.10.4
#------------------------------------------------------------
#A02start
mlp.A02start=DB101.2.3
#A01start
mlp.A01start=DB101.2.2
#A02start
mlp.B02start=DB101.2.5
#A01start
mlp.B01start=DB101.2.4
#--------------------------
#A02start
mlp2.A02start=DB101.2.1
#A01start
mlp2.A01start=DB101.2.0