src/main/java/com/zy/asrs/controller/MonitorController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/model/MatDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/LedThread.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
@@ -62,7 +62,17 @@ * 获取其他信息 */ @GetMapping("/other") public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer ledId) { public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer sta) { Integer ledId = 0; for (LedSlave led : slaveProperties.getLed()) { for (Integer staNo : led.getStaArr()) { if (staNo.equals(sta)) { ledId = led.getId(); break; } } } Double xSpeed = 0.0D; Double ySpeed = 0.0D; Double zSpeed = 0.0D; @@ -105,7 +115,15 @@ // 获取输送线plc线程 LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledId); String ledContent = ledThread==null?"":ledThread.getWorkNos().toString(); // ledContent = "ask的模块萨满大算了萨满大了\n 是窘境到埃及嗲家嗲\n 萨达姆打开萨满大凯撒麦当劳萨满大老师"; if (!(xSpeed<127)){ xSpeed=0.0; } if (!(ySpeed<127)){ ySpeed=0.0; } if (!(zSpeed<127)){ zSpeed=0.0; } return R.ok( Cools.add("xSpeed", Arith.multiplys(1, Math.abs(xSpeed), 1)) // 行走速度 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -120,39 +120,37 @@ && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) { // 尺寸检测异常 boolean back = false; String errMsg = ""; String errMsg = "异常:"; if (staProtocol.isFrontErr()) { errMsg = "前超限"; errMsg = errMsg+"前超限;"; back = true; } if (!back && staProtocol.isBackErr()) { errMsg = "后超限"; if (staProtocol.isBackErr()) { errMsg = errMsg+"后超限"; back = true; } if (!back && staProtocol.isHighErr()) { errMsg = "高超限"; if (staProtocol.isHighErr()) { errMsg = errMsg+"高超限"; back = true; } if (!back && staProtocol.isLeftErr()) { errMsg = "左超限"; if (staProtocol.isLeftErr()) { errMsg = errMsg+"左超限"; back = true; } if (!back && staProtocol.isRightErr()) { errMsg = "右超限"; if (staProtocol.isRightErr()) { errMsg = errMsg+"右超限"; back = true; } if (!back && staProtocol.isWeightErr()) { errMsg = "超重"; if (staProtocol.isWeightErr()) { errMsg = errMsg+"超重"; back = true; } if (!back && staProtocol.isBarcodeErr()) { errMsg = "扫码失败"; if (staProtocol.isBarcodeErr()) { errMsg = errMsg+"扫码失败"; back = true; } // 退回 if (back) { News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg); @@ -177,7 +175,7 @@ String barcode = barcodeThread.getBarcode(); if(!Cools.isEmpty(barcode)) { // News.info("{}号条码扫描器检测条码信息:{}", inSta.getBarcode(), barcode); if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) { if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)|| "00000000".equals(barcode)) { staProtocol.setWorkNo((short) 32002); staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); @@ -2388,18 +2386,11 @@ break; } ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); ledCommand.setLocNo(wrkMast.getLocNo()); ledCommand.setStaNo(wrkMast.getStaNo()); if (wrkMast.getIoType() != 110) { if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); try { WrkDetl wrkDetl = wrkDetls.get(0); if (!Cools.isEmpty(wrkDetl.getOrderNo())) { OrderDetl orderDetl = orderDetlMapper.selectItemNoneOfBatch(wrkDetl.getOrderNo(), wrkDetl.getMatnr()); ledCommand.getMatDtos().add(new MatDto(orderDetl)); } } catch (Exception e) { News.error("led execute fail", e); } wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getSpecs()))); } commands.add(ledCommand); } @@ -2412,9 +2403,20 @@ } // 命令下发 ------------------------------------------------------------------------------- if (!commands.isEmpty()) { if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { News.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); continue; if (led.getId()>3){ if (!MessageQueue.offer(SlaveType.Led, led.getId()-3, new Task(1, commands))) { log.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId()-3, led.getIp(), led.getPort()); continue; }else { ledThread.setLedMk(false); } }else { if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) { log.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); continue; }else { ledThread.setLedMk(false); } } } @@ -2444,6 +2446,35 @@ */ public void ledReset() { for (LedSlave led : slaveProperties.getLed()) { // 获取输送线plc线程 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); // 命令集合 boolean reset = true; for (Integer staNo : led.getStaArr()) { // 获取叉车站点 StaProtocol staProtocol = devpThread.getStation().get(staNo); if (staProtocol == null) { continue; } if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) { reset = false; break; } } // 获取led线程 LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); // led显示默认内容 if (reset && !ledThread.isLedMk()) { ledThread.setLedMk(true); if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) { News.error(" - {}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); } else { } } } for (LedSlave led : slaveProperties.getLed()) { // 获取输送线plc线程 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); // 命令集合 src/main/java/com/zy/common/model/MatDto.java
@@ -13,6 +13,18 @@ private String matnr; // 物料名称 private String maknx; // 库位规格 private String specs; // 物料数量 private Double count; // 库位数量 private Double total; // 物料名称 private String model; // 条码 @@ -20,12 +32,6 @@ // 订单编号 private String orderNo; // 已出 private Double count; // 总数量 private Double total; public MatDto() { } @@ -38,4 +44,22 @@ this.count = orderDetl.getQty(); this.total = orderDetl.getAnfme(); } public MatDto(String matNo, String maknx, Double count) { this.matnr = matNo; this.maknx = maknx; this.count = count; } public MatDto(String matNo, String maknx, Double count,String specs) { this.specs = specs; this.matnr = matNo; this.maknx = maknx; this.count = count; } public MatDto(String matNo, String maknx, Double count,Double total,String specs) { this.specs = specs; this.matnr = matNo; this.maknx = maknx; this.count = count; this.total = total; } } src/main/java/com/zy/core/thread/LedThread.java
@@ -9,6 +9,10 @@ import com.zy.core.model.command.LedCommand; import lombok.Data; import lombok.extern.slf4j.Slf4j; import onbon.bx05.Bx5GScreenClient; import onbon.bx05.area.TextCaptionBxArea; import onbon.bx05.file.ProgramBxFile; import onbon.bx05.utils.DisplayStyleFactory; import java.util.HashSet; import java.util.List; @@ -23,6 +27,12 @@ private Slave slave; private Set<Integer> workNos = new HashSet<>(); private Bx5GScreenClient screen; ProgramBxFile pf; TextCaptionBxArea area; DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]); private boolean ledMk = false; private boolean resetStatus = false; // 复位状态 // 显示器 private StringBuffer stringBuffer = new StringBuffer(); src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -181,34 +181,49 @@ charge1 = status[0]; } // // 外形检测 - 102 // Thread.sleep(50); // OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB102.129", (short)1); // if (result4.IsSuccess) { // boolean[] status = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1); // StaProtocol staProtocol = station.get(102); // staProtocol.setFrontErr(status[0]); // staProtocol.setBackErr(status[1]); // staProtocol.setHighErr(status[2]); // staProtocol.setLeftErr(status[3]); // staProtocol.setRightErr(status[4]); // staProtocol.setWeightErr(status[5]); // staProtocol.setBarcodeErr(status[6]); // } // // 外形检测 - 203 // Thread.sleep(50); // OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB102.130", (short)1); // if (result5.IsSuccess) { // boolean[] status = siemensS7Net.getByteTransform().TransBool(result5.Content, 0, 1); // StaProtocol staProtocol = station.get(202); // staProtocol.setFrontErr(status[0]); // staProtocol.setBackErr(status[1]); // staProtocol.setHighErr(status[2]); // staProtocol.setLeftErr(status[3]); // staProtocol.setRightErr(status[4]); // staProtocol.setWeightErr(status[5]); // staProtocol.setBarcodeErr(status[6]); // } // 外形检测 - 102 Thread.sleep(50); OperateResultExOne<byte[]> result102 = siemensS7Net.Read("DB102.110", (short)1); if (result102.IsSuccess) { boolean[] status = siemensS7Net.getByteTransform().TransBool(result102.Content, 0, 1); StaProtocol staProtocol = station.get(102); staProtocol.setFrontErr(status[0]);// 前超限 staProtocol.setBackErr(status[1]);// 后超限 staProtocol.setHighErr(status[2]);// 高超限 staProtocol.setLeftErr(status[3]);// 左超限 staProtocol.setRightErr(status[4]);// 右超限 staProtocol.setWeightErr(status[5]); // 超重 staProtocol.setBarcodeErr(status[6]);// 扫码失败 } // 外形检测 - 201 Thread.sleep(50); OperateResultExOne<byte[]> result201 = siemensS7Net.Read("DB102.112", (short)1); if (result201.IsSuccess) { boolean[] status = siemensS7Net.getByteTransform().TransBool(result201.Content, 0, 1); StaProtocol staProtocol = station.get(201); staProtocol.setFrontErr(status[0]); staProtocol.setBackErr(status[1]); staProtocol.setHighErr(status[2]); staProtocol.setLeftErr(status[3]); staProtocol.setRightErr(status[4]); staProtocol.setWeightErr(status[5]); staProtocol.setBarcodeErr(status[6]); } // 外形检测 - 301 Thread.sleep(50); OperateResultExOne<byte[]> result301 = siemensS7Net.Read("DB102.114", (short)1); if (result301.IsSuccess) { boolean[] status = siemensS7Net.getByteTransform().TransBool(result301.Content, 0, 1); StaProtocol staProtocol = station.get(301); staProtocol.setFrontErr(status[0]); staProtocol.setBackErr(status[1]); staProtocol.setHighErr(status[2]); staProtocol.setLeftErr(status[3]); staProtocol.setRightErr(status[4]); staProtocol.setWeightErr(status[5]); staProtocol.setBarcodeErr(status[6]); } if (result.IsSuccess && result1.IsSuccess) { src/main/resources/application.yml
@@ -183,21 +183,42 @@ # LED1 led[0]: id: 1 ip: 10.10.10.231 ip: 10.10.10.241 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 102 # LED1 # LED2 led[1]: id: 2 ip: 10.10.10.232 ip: 10.10.10.242 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 202 # LED1 staArr: 201 # LED3 led[2]: id: 3 ip: 10.10.10.233 ip: 10.10.10.243 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 302 staArr: 301 # LED1 led[3]: id: 4 ip: 10.10.10.241 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 100 # LED2 led[4]: id: 5 ip: 10.10.10.242 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 200 # LED3 led[5]: id: 6 ip: 10.10.10.243 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 300