| src/main/java/com/zy/asrs/controller/MonitorController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/WrkDetlService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/MainProcess.java | 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | 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