zjj
2023-12-04 098343a983ceba34ee253453c45b903b95d8e877
#输送线plc异常显示
5个文件已修改
201 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/SiteController.java 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/StaProtocol.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/realtimeWatch/crn2.html 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -126,28 +126,75 @@
            for(Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
                StaProtocol staProtocol = entry.getValue();
//                if (staProtocol) {
//                    PlcErrorTableVo vo = new PlcErrorTableVo();
//                    vo.setNo(entry.getKey());   //  序号
//
//                    vo.setPlcDesc("");  //  todo:luxiaotao plc错误描述
//                    vo.setError("");    //  todo:luxiaotao 异常信息
//                    list.add(vo);
//                }
                    if (staProtocol.getBreakerErr()){
                        PlcErrorTableVo vo = new PlcErrorTableVo();
                        vo.setNo(entry.getKey());   //  序号
                        vo.setPlcDesc("断路器故障");  //  todo:luxiaotao plc错误描述
                        vo.setError("断路器故障");    //  todo:luxiaotao 异常信息
                        list.add(vo);
                    }
                    if (staProtocol.getInfraredErr()){
                        PlcErrorTableVo vo = new PlcErrorTableVo();
                        vo.setNo(entry.getKey());   //  序号
                        vo.setPlcDesc("光电异常");
                        vo.setError("光电异常");
                        list.add(vo);
                    }
                    if (staProtocol.getOutTimeErr()){
                        PlcErrorTableVo vo = new PlcErrorTableVo();
                        vo.setNo(entry.getKey());   //  序号
                        vo.setPlcDesc("运行超时");
                        vo.setError("运行超时");
                        list.add(vo);
                    }
                    if (staProtocol.getSeizeSeatErr()){
                        PlcErrorTableVo vo = new PlcErrorTableVo();
                        vo.setNo(entry.getKey());   //  序号
                        vo.setPlcDesc("占位超时");
                        vo.setError("占位超时");
                        list.add(vo);
                    }
                    if (staProtocol.getWrkYgoodsN()){
                        PlcErrorTableVo vo = new PlcErrorTableVo();
                        vo.setNo(entry.getKey());   //  序号
                        vo.setPlcDesc("有任务无货故障");
                        vo.setError("有任务无货故障");
                        list.add(vo);
                    }
                    if (staProtocol.getInverterErr()){
                        PlcErrorTableVo vo = new PlcErrorTableVo();
                        vo.setNo(entry.getKey());   //  序号
                        vo.setPlcDesc("变频器故障");
                        vo.setError("变频器故障");
                        list.add(vo);
                    }
                    if (staProtocol.getContactErr()){
                        PlcErrorTableVo vo = new PlcErrorTableVo();
                        vo.setNo(entry.getKey());   //  序号
                        vo.setPlcDesc("电机接触器故障");
                        vo.setError("电机接触器故障");
                        list.add(vo);
                    }
                    if (staProtocol.getUpcontactErr()){
                        PlcErrorTableVo vo = new PlcErrorTableVo();
                        vo.setNo(entry.getKey());   //  序号
                        vo.setPlcDesc("顶升电机接触器故障");
                        vo.setError("顶升电机接触器故障");
                        list.add(vo);
                    }
            }
        }
        list.sort((o1, o2) -> {
            if (o1.getNo().compareTo(o2.getNo()) > 0){
                return 1;
            }else if (o1.getNo().compareTo(o2.getNo()) < 0){
                return 0;
            }else{
                return -1;
            }
        });
        return R.ok().add(list);
    }
src/main/java/com/zy/asrs/utils/Utils.java
@@ -27,17 +27,34 @@
        if (split[3].equals("01")){
            ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length+2-1) / 2);
            if (split[4].equals("01")){
                ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1);
                if (ints.length<2){
                }else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2, ints.length);
                }
            }else {
                ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2);
                if (ints.length<2){
                }else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1);
                }
            }
        }else {
            ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2-1,wcsRow.length-1 );
            if (split[4].equals("01")){
                if (ints.length<2){
                ints = Arrays.copyOfRange(ints, 0, ints.length / 2);
                }else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1);
                }
            }else {
                ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1);
                if (ints.length<2){
                }else {
                    ints = Arrays.copyOfRange(ints, ints.length / 2, ints.length);
                }
            }
        }
        int i = ints[0];
@@ -313,7 +330,7 @@
//        slaveProperties.setGroupCount(4);
//        Integer deepRow = getDeepRow(slaveProperties, 6);
//        System.out.println(deepRow);
        String wcsLocNo = getWcsLocNo("06-52-01-01-01");
        String wcsLocNo = getWcsLocNo("02-01-01-02-01");
        System.out.println(wcsLocNo);
    }
}
src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -4,6 +4,9 @@
import com.zy.asrs.entity.CommandInfo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
 * 输送线plc单个站点详细信息
 * Created by vincent on 2020/8/6
@@ -85,6 +88,56 @@
    // 扫码失败
    private boolean barcodeErr;
    //故障-----------------------------------------------------------------------
    private Boolean breakerErr = false; //断路器故障
    private Boolean infraredErr = false; //光电异常
    private Boolean outTimeErr = false; //运行超时
    private Boolean seizeSeatErr = false; //占位超时
    private Boolean wrkYgoodsN = false;//有任务无货故障
    private Boolean inverterErr = false; //变频器故障
    private Boolean contactErr = false; //电机接触器故障
    private Boolean upcontactErr = false; //顶升电机接触器故障
    private List<Integer> alarm;
    public List<Integer> getAlarm(){
        List<Integer> alarm = new ArrayList<>();
        if (breakerErr){
            alarm.add(1);
        }
        if (infraredErr){
            alarm.add(2);
        }
        if (outTimeErr){
            alarm.add(3);
        }
        if (seizeSeatErr){
            alarm.add(4);
        }
        if (wrkYgoodsN){
            alarm.add(5);
        }
        if (inverterErr){
            alarm.add(6);
        }
        if (contactErr){
            alarm.add(7);
        }
        if (upcontactErr){
            alarm.add(8);
        }
        return alarm;
    }
    public BasDevp toSqlModel(){
        BasDevp basDevp = new BasDevp();
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -346,10 +346,32 @@
                staProtocol.setRightErr(status[4]);
                staProtocol.setWeightErr(status[5]);
                staProtocol.setBarcodeErr(status[6]);
            }
        }
        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB13.2", (short) 100);
        if (resultErr.IsSuccess) {
            for (int i = 0; i < staNoSize; i++) {
                Integer siteId = staNos.get(i); // 站点编号
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4, 1);
                StaProtocol staProtocol = station.get(siteId);
                staProtocol.setBreakerErr(status[0]);
                staProtocol.setInfraredErr(status[1]);
                staProtocol.setOutTimeErr(status[2]);
                staProtocol.setSeizeSeatErr(status[3]);
                staProtocol.setWrkYgoodsN(status[4]);
                staProtocol.setInverterErr(status[5]);
                staProtocol.setContactErr(status[6]);
                staProtocol.setUpcontactErr(status[7]);
            }
        }
//        //RGV台车位置
//        Thread.sleep(200);
//        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4);
src/main/webapp/views/realtimeWatch/crn2.html
@@ -42,50 +42,50 @@
</head>
<body>
<div style="padding: 10px;height: 100%;float: left;width: 6%">
  <div class="button-window"></div>
<!--  <div class="button-window"></div>-->
</div>
<div style="height: 100%;padding-left: 6%">
  <div style="padding: 10px;height: 100%">
    <!-- 日志监控板 -->
    <div class="log-board">
    <div class="log-board" >
      <!-- 执行命令 -->
      <!-- 执行命令 -->
      <div class="command-log">
      <div class="command-log" style="overflow: auto;">
        <h3>执行中的命令</h3>
        <div class="crn-command-item">
          <label>1#</label>
          <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
<!--          <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>-->
          <!--            <span>&nbsp;</span>-->
          <input id="crn1" disabled="disabled">
        </div>
        <div class="crn-command-item">
          <label>2#</label>
          <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
<!--          <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>-->
          <!--            <span>&nbsp;</span>-->
          <input id="crn2" disabled="disabled">
        </div>
        <div class="crn-command-item">
          <label>3#</label>
          <button id="demoBtn-3" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
<!--          <button id="demoBtn-3" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>-->
          <!--            <span>&nbsp;</span>-->
          <input id="crn3" disabled="disabled">
        </div>
        <div class="crn-command-item">
          <label>4#</label>
          <button id="demoBtn-4" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
<!--          <button id="demoBtn-4" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>-->
          <!--            <span>&nbsp;</span>-->
          <input id="crn4" disabled="disabled">
        </div>
        <div class="crn-command-item">
          <label>5#</label>
          <button id="demoBtn-5" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
<!--          <button id="demoBtn-5" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>-->
          <!--            <span>&nbsp;</span>-->
          <input id="crn5" disabled="disabled">
        </div>
        <div class="crn-command-item">
          <label>6#</label>
          <button id="demoBtn-6" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>
<!--          <button id="demoBtn-6" class="demoBtn" onclick="demoSwitch(this.id)"> - </button>-->
          <!--            <span>&nbsp;</span>-->
          <input id="crn6" disabled="disabled">
        </div>