src/main/java/com/zy/asrs/controller/SiteController.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/CrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/MainProcess.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/MelsecCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/pipeline.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -63,6 +63,8 @@ vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 入库标记 vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 空板信号 vo.setStaNo(staProtocol.getStaNo()); // 目标站 // vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "低" : "高"); //高低库位 vo.setLocType1(devp.getDevNo()==102 ? "高" : "低"); } return R.ok().add(list); } @@ -137,6 +139,7 @@ vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 需求1 vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 空板信号 vo.setStaNo(staProtocol.getStaNo()); // 目标站 vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "低" : "高"); //高低库位 return R.ok().add(vo); } } src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
@@ -35,4 +35,6 @@ // 目标站 private Short staNo = 0; //高低库位 private String locType1 = "-"; } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -90,8 +90,6 @@ @Value("${wms.url}") private String wmsUrl; @Value("${crnBackHp.enable}") private boolean crnBackHp; /** * 组托 @@ -531,6 +529,11 @@ log.error("{}号堆垛机尚未在数据库进行维护!", crn.getId()); continue; } if(crnThread.isBackHpFlag()){ continue; } // 只有当堆垛机空闲 并且 无任务时才继续执行 if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { // 如果最近一次是入库模式 @@ -556,20 +559,15 @@ } // 库位移转 this.locToLoc(crn, crnProtocol); this.crnRebackHp(crnProtocol, crnThread); // if (crnBackHp) { // // //堆垛机没有执行中任务,设备存在入库任务时叫回原点 // this.crnRebackHp(crnProtocol); // // } } } /** * 回原点,堆垛机没有执行中任务,设备存在入库任务时叫回原点 */ public synchronized void crnRebackHp(CrnProtocol crnProtocol){ public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread){ // for (CrnSlave crn : slaveProperties.getCrn()) { // // 获取堆垛机信息 // CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); @@ -597,12 +595,11 @@ return; } //输送线没有入库任务,过滤2 if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) { return; } // log.info("堆垛机召回原点==>>" + crn.getId() + "号堆垛机有入库任务,召回原点"); log.info("堆垛机召回原点==>>" + crnProtocol.getCrnNo() + "号堆垛机有入库任务,召回原点"); // 命令下发区 -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 堆垛机编号 @@ -618,6 +615,7 @@ if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) { log.error("堆垛机回原点命令下发失败,堆垛机号={},任务数据={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand)); } crnThread.setBackHpFlag(true); } // } } @@ -841,6 +839,11 @@ } log.error("{}任务出库失败,浅库位堵塞!", wrkMast.getWrkNo()); continue; } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")){ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); if (null != waitWrkMast && waitWrkMast.getWrkSts()==4) { continue; } } } src/main/java/com/zy/core/CrnThread.java
@@ -8,4 +8,10 @@ void setResetFlag(boolean flag); void setBackHpFlag(boolean flag); /** * 堆垛机是否在回原点运动中标记 */ boolean isBackHpFlag(); } src/main/java/com/zy/core/MainProcess.java
@@ -24,9 +24,6 @@ private MainServiceImpl mainService; // 所属线程 private Thread thread; @Value("${crnBackHp.enable}") private boolean crnBackHp; private boolean look = true; /** * =====>> 开始工作 @@ -69,15 +66,6 @@ mainService.ledExecute(); // 其他 ===>> LED显示器复位,显示默认信息 mainService.ledReset(); // if (crnBackHp) { // if (look) { // //堆垛机没有执行中任务,设备存在入库任务时叫回原点 // mainService.crnRebackHp(); // } // } // look = !look; mainService.outOfDevp(); src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -43,6 +43,11 @@ private short heartBeatVal = 1; private boolean resetFlag = false; /** * 堆垛机是否在回原点运动中标记 */ private boolean backHpFlag = false; public MelsecCrnThread(CrnSlave slave) { this.slave = slave; } @@ -191,6 +196,9 @@ if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) { log.error("-------------------------------------------第一步、[堆垛机号:{}][工作号:{}]==>> 状态为90,等待确认!!",slave.getId(),crnProtocol.getTaskNo()); if (resetFlag) { if(crnProtocol.getTaskNo()==9999){ backHpFlag = false; } CrnCommand crnCommand = new CrnCommand(); crnCommand.setAckFinish((short)1); if (write(crnCommand)) { src/main/resources/application.yml
@@ -9,10 +9,7 @@ datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver # url: jdbc:sqlserver://47.97.1.152:51433;databasename=xgmasrs # username: sa # password: Zoneyung@zy56$ url: jdbc:sqlserver://192.168.4.15:1433;databasename=klsasrs2 # url: jdbc:sqlserver://localhost:1433;databasename=xgmasrs url: jdbc:sqlserver://localhost:1433;databasename=klsasrs2 username: sa password: sa@123 mvc: @@ -39,10 +36,6 @@ wms: url: localhost:8080/klswms #堆垛机没有执行中任务,输送有入库任务,叫回原点 crnBackHp: enable: false # 下位机配置 wcs-slave: src/main/webapp/views/pipeline.html
@@ -73,6 +73,7 @@ <th>入库标记</th> <th>空板信号</th> <th>目标站</th> <th>高低库位</th> </tr> </thead> <!-- 表格内容 --> @@ -202,6 +203,7 @@ setVal(tr.children("td").eq(6), table[i-1].pakMk); setVal(tr.children("td").eq(7), table[i-1].emptyMk); setVal(tr.children("td").eq(8), table[i-1].staNo); setVal(tr.children("td").eq(9), table[i-1].locType1); } } else if (res.code === 403){ window.location.href = baseUrl+"/login"; @@ -287,6 +289,7 @@ " <td></td>\n" + " <td></td>\n" + " <td></td>\n" + " <td></td>\n" + " </tr>\n"; } $('#site-table tbody').after(html);