1
pjb
2025-08-11 38add77dd27643bc83c916aeceac5dcde76bac02
1
7个文件已修改
146 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MonitorController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkDetlService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -268,7 +268,17 @@
     */
    @GetMapping("/led/error")
    public R monitorLedError(@RequestParam("ledId") Integer ledId) {
        if (Cools.isEmpty(ledId)) {
            return R.ok();
        }
        String errorMsg = "";
//        if (ledId == 5 || ledId == 6) {
//            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledId);
//            if (null != ledThread) {
//                errorMsg = ledThread.getErrorMsg().toString();
//            }
//            return R.ok().add(errorMsg);
//        } else {
        for (LedSlave slave : slaveProperties.getLed()) {
            if (slave.getStaArr().contains(ledId)) {
                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
@@ -278,47 +288,24 @@
            }
        }
        return R.ok().add(errorMsg);
        //    }
    }
//    public R monitorLedError2(Integer ledId) {
//        ledId = 311;
//        String errorMsg = "";
//        //for (LedSlave slave : slaveProperties.getLed()) {
//        //if (slave.getStaArr().contains(ledId)) {
//        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledId);
//        if (null != ledThread) {
//            errorMsg = ledThread.getErrorMsg().toString();
//            System.out.println("-----------" + errorMsg + "----------" + ledId);
//        }
//        //}
//        // }
//        return R.ok().add(errorMsg);
    /**
@@ -345,6 +332,7 @@
    /**
     * x轴单位转换
     *
     * @param dot y轴数值保留小数位
     */
    private List<Map<String, Object>> convert(List<Map<String, Object>> list, StatsType statsType, int dot){
@@ -375,6 +363,7 @@
        int id;
        int start;
        int end;
        StatsType(int id, int start, int end) {
            this.id = id;
            this.start = start;
@@ -392,8 +381,6 @@
        }
    }
}
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java
@@ -16,5 +16,4 @@
    List<WrkDetl> findByWorkNo(Integer workNo);
    int updateIoTime(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime);
}
src/main/java/com/zy/asrs/service/WrkDetlService.java
@@ -14,5 +14,4 @@
    List<WrkDetl> findByWorkNo(Integer workNo);
    boolean updateIoTime(Integer workNo, Date ioTime);
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -114,13 +114,13 @@
                // 获取入库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
 //               LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
                /*
                  无条码
                  没有可入信号
@@ -187,6 +187,11 @@
                    if (!staProtocol.isPakMk()) {
                        continue;
                    }
//                    if (ledThread != null && !Cools.isEmpty(errMsg)) {
//                        //String errorMsg = jsonObject.getString("msg");
//                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg));
//                        System.out.println("--------------");
//                    }
                    staProtocol.setWorkNo(wrkNo);
                    News.warn("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, wrkNo);
                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
@@ -1674,7 +1679,7 @@
            // 工作档集合
            List<WrkMast> wrkMasts = new ArrayList<>();
            for (Integer staNo : led.getStaArr()) {
                if (staNo == 104 || staNo == 204 || staNo == 304) {
                if (staNo == 104 || staNo == 204 || staNo == 304|| staNo == 311) {
                    continue;
                }
                // 获取叉车站点
@@ -1744,7 +1749,14 @@
            }
//             命令下发 -------------------------------------------------------------------------------
            if (!commands.isEmpty()) {
                if (led.getId() == 3) {
                if (led.getId() == 6 || led.getId() == 5) {
                    if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
                        News.error("" + mark + " - 2" + " - {}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                        continue;
                    } else {
                        ledThread.setLedMk(false);
                    }
                } else if (led.getId() == 3) {
                    if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
                        News.error("" + mark + " - 2" + " - {}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                        continue;
@@ -1773,14 +1785,14 @@
            try {
                // 修改主档led标记
                for (WrkMast wrkMast : wrkMasts) {
                    wrkMast.setOveMk("Y");
                    wrkMast.setModiTime(new Date());
                    if (wrkMastMapper.updateById(wrkMast) == 0) {
                        News.errorNoLog("" + mark + " - 4" + " - 更新工作档失败");
                        throw new CoolException("更新工作档失败");
                    }
                }
//                for (WrkMast wrkMast : wrkMasts) {
//                    wrkMast.setOveMk("Y");
//                    wrkMast.setModiTime(new Date());
//                    if (wrkMastMapper.updateById(wrkMast) == 0) {
//                        News.errorNoLog("" + mark + " - 4" + " - 更新工作档失败");
//                        throw new CoolException("更新工作档失败");
//                    }
//                }
                // 更新线程当前工作号集合
                ledThread.setWorkNos(workNos);
@@ -2295,7 +2307,11 @@
            }
            if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
                if (crnProtocol.getBay() == 1 && crnProtocol.getLevel() == 1) {
                if ((crnProtocol.getCrnNo()==3 || crnProtocol.getCrnNo()==4) && crnProtocol.getBay()==0 && crnProtocol.getLevel() == 1) {
                    continue;
                }
                if ((crnProtocol.getCrnNo()==1 || crnProtocol.getCrnNo()==2) && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) {
                    continue;
                }
                Page<BasCrnOpt> basCrnOptPage = crnOptService.selectPage(new Page<>(1, 1), new EntityWrapper<BasCrnOpt>().eq("crn_no", crn.getId()).orderBy("send_time", false));
@@ -2321,16 +2337,31 @@
                News.info("堆垛机无任务自动回入库口待机==>>" + crnProtocol.getCrnNo() + "号堆垛机");
                // 命令下发区 --------------------------------------------------------------------------
                CrnCommand crnCommand = new CrnCommand();
                if (crnProtocol.getCrnNo()==3 || crnProtocol.getCrnNo()==4){
                crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 堆垛机编号
                crnCommand.setTaskNo((short) 9999); // 工作号
                crnCommand.setAckFinish((short) 0);  // 任务完成确认位
                crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE); // 任务模式:  堆垛机移动
                    crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 任务模式:  堆垛机移动
                    crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 源库位排
                    crnCommand.setSourcePosY((short) 0);     // 源库位列
                    crnCommand.setSourcePosZ((short) 1);     // 源库位层
                    crnCommand.setDestinationPosX((short) 0);     // 目标库位排
                    crnCommand.setDestinationPosY((short) 0);     // 目标库位列
                    crnCommand.setDestinationPosZ((short) 0);     // 目标库位层
                    crnCommand.setCommand((short) 1);
                }else {
                    crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 堆垛机编号
                    crnCommand.setTaskNo((short) 9999); // 工作号
                    crnCommand.setAckFinish((short) 0);  // 任务完成确认位
                    crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 任务模式:  堆垛机移动
                crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 源库位排
                crnCommand.setSourcePosY((short) 1);     // 源库位列
                crnCommand.setSourcePosZ((short) 1);     // 源库位层
                crnCommand.setDestinationPosX((short) 0);     // 目标库位排
                crnCommand.setDestinationPosY((short) 0);     // 目标库位列
                crnCommand.setDestinationPosZ((short) 0);     // 目标库位层
                    crnCommand.setCommand((short) 1);
                }
                if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
                    News.error("堆垛机移动命令下发失败,堆垛机号={},任务数据={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
                }
src/main/java/com/zy/core/MainProcess.java
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -134,6 +134,7 @@
                    // 读数据
                    case 1:
                        read();
                        Thread.sleep(100);
                        readsanqi();
                        break;
                    // 写数据 ID+目标站
@@ -145,7 +146,7 @@
                }
                // 心跳
//                heartbeat();
                Thread.sleep(300);
                Thread.sleep(200);
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -360,7 +361,7 @@
    private void readsanqi() throws InterruptedException {
        ArrayList<Integer> staNos = staNos3;
        int staNoSize = staNos3.size();
        if (slave.getId() == 2) {
        //
        OperateResultExOne<byte[]> resultsanqi = siemensS7Net.Read("DB101.120", (short) (staNoSize * 8));
        if (resultsanqi.IsSuccess) {
@@ -395,7 +396,7 @@
        //外形检测 三期
        OperateResultExOne<byte[]> resultErrsanqi = siemensS7Net.Read("DB101.160", (short) (staNoSize * 8));
            OperateResultExOne<byte[]> resultErrsanqi = siemensS7Net.Read("DB101.162", (short) (staNoSize * 8));
        if (resultErrsanqi.IsSuccess) {
            for (int i = 0; i < staNoSize; i++) {
                Integer siteId = staNos.get(i); // 站点编号
@@ -465,6 +466,7 @@
            OutputQueue.DEVP.offer(MessageFormat.format("【{0}】更新数据库数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
        }
    }
    }
    /**
     * 写入 ID+目标站 =====> 单站点写入
src/main/resources/application.yml
@@ -224,22 +224,22 @@
      staNo: 311
      barcode: ${wcs-slave.barcode[3].id}
      backSta: 312
      led: ${wcs-slave.led[5].id}
      led: ${wcs-slave.led[4].id}
    # 空板入库口1
    emptyInSta[1]:
      staNo: 311
      barcode: ${wcs-slave.barcode[3].id}
      led: ${wcs-slave.led[5].id}
      led: ${wcs-slave.led[4].id}
      backSta: 312
    # 拣料入库口1
    pickSta[1]:
      staNo: 311
      barcode: ${wcs-slave.barcode[3].id}
      led: ${wcs-slave.led[5].id}
      led: ${wcs-slave.led[4].id}
    # 出库口1
    outSta[1]:
      staNo: 314
      led: ${wcs-slave.led[4].id}
      led: ${wcs-slave.led[5].id}
  # 条码扫描仪1
  barcode[0]:
    id: 1
@@ -284,6 +284,7 @@
  led[4]:
    id: 5
    ip: 10.10.10.110
#    ip: 172.17.20.183
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 311
@@ -291,6 +292,7 @@
  led[5]:
    id: 6
    ip: 10.10.10.111
#    ip: 172.17.20.182
    port: 5005
    devpPlcId: ${wcs-slave.devp[1].id}
    staArr: 314