From 204e15023a4443ac2849f732763ee41ee2918f06 Mon Sep 17 00:00:00 2001 From: lsh <lsh123456> Date: 星期二, 07 三月 2023 13:16:47 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/model/MatDto.java | 36 ++++++- src/main/java/com/zy/core/thread/LedThread.java | 10 ++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 91 ++++++++++++------ src/main/java/com/zy/asrs/controller/MonitorController.java | 22 ++++ src/main/java/com/zy/core/thread/SiemensDevpThread.java | 71 ++++++++----- src/main/resources/application.yml | 35 +++++- 6 files changed, 192 insertions(+), 73 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MonitorController.java b/src/main/java/com/zy/asrs/controller/MonitorController.java index df73a28..51fdd09 100644 --- a/src/main/java/com/zy/asrs/controller/MonitorController.java +++ b/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)) // 琛岃蛋閫熷害 diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index c7a5445..7a79790 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/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("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕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("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕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("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕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(" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); + } else { + + } + } + } + for (LedSlave led : slaveProperties.getLed()) { // 鑾峰彇杈撻�佺嚎plc绾跨▼ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); // 鍛戒护闆嗗悎 diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java index f3c808f..358e924 100644 --- a/src/main/java/com/zy/common/model/MatDto.java +++ b/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; + } } diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java index 1581f7a..eb261b6 100644 --- a/src/main/java/com/zy/core/thread/LedThread.java +++ b/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(); diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index edce7b1..408002a 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/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) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 251f3c5..e6e65d7 100644 --- a/src/main/resources/application.yml +++ b/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 -- Gitblit v1.9.1