src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/protocol/StaProtocol.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensDevpThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -96,6 +96,8 @@ @Value("${wms.url}") private String wmsUrl; public Integer wrkNo = 10000; /** * 组托 * 入库站,根据条码扫描生成入库工作档,工作状态 2 @@ -118,6 +120,56 @@ continue; } else { staProtocol = staProtocol.clone(); } // 尺寸检测异常 boolean back = false; String errMsg = ""; if (staProtocol.isFrontErr()) { errMsg = "前超限"; back = true; } if (!back && staProtocol.isBackErr()) { errMsg = "后超限"; back = true; } if (!back && staProtocol.isHighErr()) { errMsg = "高超限"; back = true; } if (!back && staProtocol.isLeftErr()) { errMsg = "左超限"; back = true; } if (!back && staProtocol.isRightErr()) { errMsg = "右超限"; back = true; } if (!back && staProtocol.isWeightErr()) { errMsg = "超重"; back = true; } if (!back && staProtocol.isBarcodeErr()) { errMsg = "扫码失败"; back = true; } // 退回 if (back) { // News.warn("扫码入库失败,{}入库站因{}异常,托盘已被退回", inSta.getStaNo(), errMsg); MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errMsg)); if (!staProtocol.isLoading()){ continue; } if (!staProtocol.isPakMk()) { continue; } staProtocol.setWorkNo(wrkNo); News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); wrkNo++; staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } //LED @@ -372,7 +424,7 @@ } String barcode = barcodeThread.getBarcode(); if(!Cools.isEmpty(barcode)) { News.info(""+mark+" - 1"+" - {}号条码扫描器检测条码信息:{}", pickSta.getBarcode(), barcode); // News.info(""+mark+" - 1"+" - {}号条码扫描器检测条码信息:{}", pickSta.getBarcode(), barcode); if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { continue; } src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -58,6 +58,29 @@ //lfd入库印记 当stamp>=2时才入库 private Integer stamp = 0; // 外形检测 ------------------------------------------------------------------------ // 前超限 private boolean frontErr = false; // 后超限 private boolean backErr = false; // 高超限 private boolean highErr = false; // 左超限 private boolean leftErr = false; // 右超限 private boolean rightErr = false; // 超重 private boolean weightErr = false; // 扫码失败 private boolean barcodeErr = false; public BasDevp toSqlModel(){ BasDevp basDevp = new BasDevp(); basDevp.setDevNo(siteId); src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -66,6 +66,12 @@ add(200);add(201);add(202); }}; public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{ add(0); add(1); add(2); }}; public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{ add(106); add(107); add(159); }}; private Integer count=0; @@ -267,18 +273,36 @@ // } //条码扫描器 Thread.sleep(200); OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0",(short)(barcodeSize*8)); ArrayList<Integer> barcodeList = BarcodeList; OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840", (short) (barcodeList.size() * 8)); if (result2.IsSuccess) { for (int i = 0; i < barcodeSize; i++) { for (int i = 0; i < barcodeList.size(); i++) { Integer barcodeId = barcodeList.get(i); String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){ // && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) { BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1); if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); } } } //外形检测 ArrayList<Integer> staNoErrs = staNosErrList; int staNoErrsSize = staNoErrs.size(); OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8)); if (resultErr.IsSuccess){ for (int i = 0;i<3;i++){ Integer siteId = staNoErrs.get(i); // 站点编号 boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1); StaProtocol staProtocol = station.get(siteId); 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) { src/main/resources/application.yml
@@ -250,6 +250,24 @@ barcode: ${wcs-slave.barcode[0].id} led: ${wcs-slave.led[1].id} backSta: 105 # 入库口1 inSta[1]: staNo: 107 barcode: ${wcs-slave.barcode[1].id} backSta: 108 led: ${wcs-slave.led[1].id} # 空板入库口1 emptyInSta[1]: staNo: 107 barcode: ${wcs-slave.barcode[1].id} backSta: 108 led: ${wcs-slave.led[1].id} # 拣料入库口1 pickSta[1]: staNo: 107 barcode: ${wcs-slave.barcode[1].id} led: ${wcs-slave.led[1].id} backSta: 108 # 出库口1 outSta[0]: staNo: 100