src/main/java/com/zy/asrs/controller/SiteController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/domain/vo/SiteDetailVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
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/java/com/zy/asrs/controller/SiteController.java
@@ -166,8 +166,8 @@ @PostMapping("/detl/update") @ManagerAuth(memo = "修改站点数据") public R siteDetlUpdate(@RequestParam Integer siteId, @RequestParam Short workNo, @RequestParam Short staNo, @RequestParam Integer workNo, @RequestParam Integer staNo, @RequestParam String pakMk){ for (DevpSlave devp : slaveProperties.getDevp()) { DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); src/main/java/com/zy/asrs/domain/vo/SiteDetailVo.java
@@ -13,7 +13,7 @@ private Integer siteId; // 工作号 private Short workNo; private Integer workNo; // 工作状态 private String wrkSts = ""; src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java
@@ -14,7 +14,7 @@ private String siteId; // 工作号 private Short workNo; private Integer workNo; // 站点状态 private SiteStatusType siteStatus; src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
@@ -12,7 +12,7 @@ private Integer devNo; // 工作号 private Short workNo = 0; private Integer workNo = 0; // 自动 private String autoing = "-"; @@ -33,7 +33,7 @@ private String emptyMk = "-"; // 目标站 private Short staNo = 0; private Integer staNo = 0; //高低库位 private String locType1 = "-"; src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -197,12 +197,12 @@ StartupDto dto = jsonObject.getObject("data", StartupDto.class); barcodeThread.setBarcode(""); staProtocol.setWorkNo(dto.getWorkNo().shortValue()); staProtocol.setWorkNo(dto.getWorkNo()); if(Cools.isEmpty(dto.getRgvNo()) || dto.getRgvNo() <= 0) { staProtocol.setStaNo(dto.getStaNo().shortValue()); staProtocol.setStaNo(dto.getStaNo()); } else {//如果存在RGV编号,说明需要RGV接驳,先下发任务到RGV源站 staProtocol.setStaNo(dto.getRgvSstaNo().shortValue()); staProtocol.setStaNo(dto.getRgvSstaNo()); } devpThread.setPakMk(staProtocol.getSiteId(), false); @@ -263,8 +263,8 @@ // 命令下发区 -------------------------------------------------------------------------- // 更新站点信息 且 下发plc命令 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (result) { @@ -393,8 +393,8 @@ } // 更新站点信息 且 下发plc命令 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { @@ -448,8 +448,8 @@ // 命令下发区 -------------------------------------------------------------------------- // 下发站点信息 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { continue; } @@ -475,6 +475,7 @@ * 入出库 ===>> 堆垛机入出库作业下发 */ public synchronized void crnIoExecute() { try{ for (CrnSlave crn : slaveProperties.getCrn()) { // 获取堆垛机信息 CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); @@ -520,12 +521,16 @@ // this.crnRebackHp(crnProtocol, crnThread); } }catch (Exception e){ log.error("堆垛机出入库下发报错"+e); } } /** * 搜索RGV车。通过目标站搜索哪台车可用 */ public synchronized Integer searchRgvNo(Integer staNo) { try{ BasDevp basDevp = basDevpService.selectById(staNo); if (basDevp == null) { return null;//目标站不存在 @@ -580,6 +585,10 @@ } return null; }catch (Exception e){ log.error("搜索RGV车。通过目标站搜索哪台车可用"+e); return null; } } // /** @@ -2350,8 +2359,8 @@ && rgvProtocol.statusType1 == RgvStatusType.WAITING) { // 命令下发区 -------------------------------------------------------------------------- // 下发站点信息 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); if (!MessageQueue.offer(SlaveType.Devp, rgvStn.getDevpPlcId(), new Task(2, staProtocol))) { continue; } @@ -2371,8 +2380,8 @@ && rgvProtocol.statusType2 == RgvStatusType.WAITING) { // 命令下发区 -------------------------------------------------------------------------- // 下发站点信息 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); if (!MessageQueue.offer(SlaveType.Devp, rgvStn.getDevpPlcId(), new Task(2, staProtocol))) { continue; } @@ -2426,8 +2435,8 @@ && rgvProtocol.statusType1 == RgvStatusType.WAITING) { // 命令下发区 -------------------------------------------------------------------------- // 下发站点信息 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); if (!MessageQueue.offer(SlaveType.Devp, rgvStn.getDevpPlcId(), new Task(2, staProtocol))) { continue; } @@ -2447,8 +2456,8 @@ && rgvProtocol.statusType2 == RgvStatusType.WAITING) { // 命令下发区 -------------------------------------------------------------------------- // 下发站点信息 staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); if (!MessageQueue.offer(SlaveType.Devp, rgvStn.getDevpPlcId(), new Task(2, staProtocol))) { continue; } @@ -2871,8 +2880,8 @@ StartupDto dto = jsonObject.getObject("data", StartupDto.class); // 更新站点信息 且 下发plc命令 staProtocol.setWorkNo(dto.getWorkNo().shortValue()); staProtocol.setStaNo(dto.getStaNo().shortValue()); staProtocol.setWorkNo(dto.getWorkNo()); staProtocol.setStaNo(dto.getStaNo()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { @@ -3676,9 +3685,8 @@ && staProtocol.getWorkNo() == 9992 ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { staProtocol.setWorkNo((short)9999); staNo = staNo + 1; staProtocol.setStaNo((short)staNo); staProtocol.setWorkNo(9999); staProtocol.setStaNo(staNo + 1); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); if (!result) { @@ -3688,8 +3696,9 @@ } } }catch (Exception e){ e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // e.printStackTrace(); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); log.error("其他 ===>> 码垛完成驱动托盘进入下一步(入库前扫码)"+e); } } /** @@ -3732,8 +3741,8 @@ && staProtocol.getWorkNo() >= 9990 ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); if (!result) { @@ -3745,8 +3754,9 @@ } } }catch (Exception e){ e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // e.printStackTrace(); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); log.error("其他 ===>> 码垛完成驱动托盘进入下一步"+e); } } /** @@ -3791,8 +3801,8 @@ && staProtocol.isLoading() ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(wrkMast.getStaNo()); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); if (!result) { @@ -3804,8 +3814,9 @@ } } }catch (Exception e){ e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // e.printStackTrace(); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); log.error("其他 ===>> 贴标完成驱动托盘进入下一步"+e); } } src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -15,11 +15,11 @@ // ---------------------------------------------------------------- // 工作号 private Short workNo = 0; private Integer workNo = 0; // ---------------------------------------------------------------- // 目标站 private Short staNo; private Integer staNo; // ---------------------------------------------------------------- // 自动 src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -161,7 +161,7 @@ // updateIoMode(); ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*4)); OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8)); if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 站点编号 @@ -171,9 +171,23 @@ staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 工作号 staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 工作号 staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4 + 2)); // 目标站 staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8 + 4)); // 目标站 boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2); staProtocol.setAutoing(status[0]); // 自动 staProtocol.setLoading(status[1]); // 有物 staProtocol.setInEnable(status[2]); // 可入 staProtocol.setOutEnable(status[3]);// 可出 staProtocol.setEmptyMk(status[4]); // 空板信号 staProtocol.setFullPlt(status[5]); // 满托盘 staProtocol.setHigh(status[6]); // 高库位 staProtocol.setLow(status[7]); // 低库位 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); } } } // Thread.sleep(200); @@ -190,34 +204,34 @@ // staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2)); // 目标站 // } // } Thread.sleep(200); OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.100", (short) (staNoSize * 2)); if (result1.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 站点编号 boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1); StaProtocol staProtocol = station.get(siteId); staProtocol.setAutoing(status[0]); // 自动 staProtocol.setLoading(status[1]); // 有物 staProtocol.setInEnable(status[2]); // 可入 staProtocol.setOutEnable(status[3]);// 可出 staProtocol.setEmptyMk(status[4]); // 空板信号 staProtocol.setFullPlt(status[5]); // 满托盘 staProtocol.setHigh(status[6]); // 高库位 staProtocol.setLow(status[7]); // 低库位 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); } } } // Thread.sleep(200); // OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.100", (short) (staNoSize * 2)); // if (result1.IsSuccess) { // for (int i = 0; i < staNoSize; i++) { // Integer siteId = staNos.get(i); // 站点编号 // boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1); // StaProtocol staProtocol = station.get(siteId); // staProtocol.setAutoing(status[0]); // 自动 // staProtocol.setLoading(status[1]); // 有物 // staProtocol.setInEnable(status[2]); // 可入 // staProtocol.setOutEnable(status[3]);// 可出 // staProtocol.setEmptyMk(status[4]); // 空板信号 // staProtocol.setFullPlt(status[5]); // 满托盘 // staProtocol.setHigh(status[6]); // 高库位 // staProtocol.setLow(status[7]); // 低库位 // // if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { // staProtocol.setPakMk(true); // } // } // } //条码扫描器 Thread.sleep(200); OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.150",(short)(barcodeSize*8)); OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)(barcodeSize*10)); if (result2.IsSuccess) { for (int i = 0; i < barcodeSize; i++) { String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,10, "UTF-8"); BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); @@ -241,7 +255,7 @@ if (result.IsSuccess && result1.IsSuccess) { if (result.IsSuccess) { OutputQueue.DEVP.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); @@ -278,10 +292,10 @@ } ArrayList<Integer> staNos = getStaNo(); int index = staNos.indexOf(staProtocol.getSiteId()); short[] array = new short[2]; int[] array = new int[2]; array[0] = staProtocol.getWorkNo(); array[1] = staProtocol.getStaNo(); OperateResult write = siemensS7Net.Write("DB100." + index*4, array); OperateResult write = siemensS7Net.Write("DB100." + index*8, array); // OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 工作号 // Thread.sleep(500);