src/main/java/com/zy/asrs/controller/ConsoleController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/CrnController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/ServerBootstrap.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/MelsecCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -27,7 +27,7 @@ import com.zy.core.properties.SystemProperties; import com.zy.core.thread.BarcodeThread; import com.zy.core.thread.ScaleThread; import com.zy.core.thread.SiemensCrnThread; import com.zy.core.thread.MelsecCrnThread; import com.zy.core.DevpThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -131,7 +131,7 @@ /** * 堆垛机状态判断 */ if (crn.getId() == 1 && crnProtocol.getAlarm1() > 0) { if (crn.getId() == 1 && crnProtocol.getAlarm() > 0) { vo.setCrnStatus(CrnStatusType.MACHINE_ERROR); } else { if (crnProtocol.getTaskNo()>0) { @@ -243,7 +243,7 @@ CrnDetailVo vo = new CrnDetailVo(); for (CrnSlave crnSlave : slaveProperties.getCrn()) { if (crnSlave.getId().equals(crnNo)) { SiemensCrnThread crnThread = (SiemensCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); MelsecCrnThread crnThread = (MelsecCrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); vo.setCrnNo(crnNo); vo.setWorkNo(crnProtocol.getTaskNo()); src/main/java/com/zy/asrs/controller/CrnController.java
@@ -127,42 +127,21 @@ // // } vo.setStatusType(crnProtocol.modeType.desc); // 模式状态 if (crnProtocol.getTaskFinish() == 1) { if (crnProtocol.statusType == com.zy.core.enums.CrnStatusType.WAITING) { vo.setStatus("等待确认"); } else { vo.setStatus(crnProtocol.getStatusType().desc); // 状态 if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.PUT_COMPLETE)) { vo.setStatus("正在作业"); } } vo.setLoading(crnProtocol.getLoaded()==1?"有物":"无物"); // 有物 vo.setBay(crnProtocol.getBay()); // 列 vo.setLev(crnProtocol.getLevel()); // 层 vo.setLiftPos(crnProtocol.getLiftPosType().desc); if (crnProtocol.getPlatformHigh()) { vo.setSitePos("站台高位"); } if (crnProtocol.getPlatformLow()) { vo.setSitePos("站台高位"); } vo.setForkOffset(crnProtocol.getForkPosType().desc); // 货叉位置 vo.setXLocation(crnProtocol.getWalkPos() == 1?"是":"否"); // 走行定位 vo.setYLocation(crnProtocol.getLiftPosType().equals(CrnLiftPosType.NONE)?"否":"是"); // 升降定位 if (crnProtocol.getAlarm1() > 0) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); if (crnProtocol.getAlarm() > 0) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); vo.setAlarm1(crnError==null?"未知异常":crnError.getErrName()); } if (crnProtocol.getAlarm2() > 0) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm2()); vo.setAlarm2(crnError==null?"未知异常":crnError.getErrName()); } if (crnProtocol.getAlarm3() > 0) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm3()); vo.setAlarm3(crnError==null?"未知异常":crnError.getErrName()); } if (crnProtocol.getAlarm4() > 0) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm4()); vo.setAlarm4(crnError==null?"未知异常":crnError.getErrName()); } // vo.setAlarm1(String.valueOf(crnProtocol.getAlarm1())); // vo.setAlarm2(String.valueOf(crnProtocol.getAlarm2())); @@ -335,7 +314,7 @@ command.setCrnNo(param.getCrnNo()); // 堆垛机编号 command.setTaskNo((short) 0); // 工作号 command.setAckFinish((short) 0); // 任务完成确认位 command.setTaskMode(CrnTaskModeType.SITE_MOVE); // 任务模式 command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式 command.setSourcePosX(param.getSourceStaNo()); // 源库位排 command.setSourcePosY((short) 0); // 源库位列 command.setSourcePosZ((short) 1); // 源库位层 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -395,7 +395,7 @@ } // 判断堆垛机状态等待确认 if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) && crnProtocol.getTaskFinish() == 1 // todo:luxiaotao 等待确认 && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.forkPosType == CrnForkPosType.HOME) { // 命令下发区 -------------------------------------------------------------------------- @@ -746,8 +746,7 @@ CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } // 状态:等待确认 并且 任务完成位 = 1 if (crnProtocol.getTaskFinish() == 1 // todo:luxiaotao 等待确认 && crnProtocol.getTaskNo() != 0) { if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { // 获取入库待确认工作档 WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); if (wrkMast == null) { @@ -793,13 +792,13 @@ BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue()); // 有异常 if (latest == null) { if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) { if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo()); if (wrkMast == null) { continue; } BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName(); BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 编号 wrkMast.getWrkNo(), // 工作号 @@ -814,7 +813,7 @@ wrkMast.getSourceStaNo(), // 源站 wrkMast.getSourceLocNo(), // 源库位 wrkMast.getBarcode(), // 条码 crnProtocol.getAlarm1(), // 异常码 (int) crnProtocol.getAlarm(), // 异常码 errName, // 异常 1, // 异常情况 now, // 添加时间 @@ -829,7 +828,7 @@ } } else { // 异常修复 if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) { if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) { latest.setEndTime(now); latest.setUpdateTime(now); latest.setStatus(2); @@ -842,11 +841,11 @@ } else { BasErrLog latest = basErrLogService.findLatest(crn.getId()); // 有异常 if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) { if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { // 记录新异常 if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm1().intValue())) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName(); if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) { BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 编号 null, // 工作号 @@ -861,7 +860,7 @@ null, // 源站 null, // 源库位 null, // 条码 crnProtocol.getAlarm1(), // 异常码 (int)crnProtocol.getAlarm(), // 异常码 errName, // 异常 1, // 异常情况 now, // 添加时间 src/main/java/com/zy/core/ServerBootstrap.java
@@ -74,7 +74,7 @@ // 初始化堆垛机线程 log.info("初始化堆垛机线程..................................................."); for (CrnSlave crn : slaveProperties.getCrn()) { CrnThread crnThread = new SiemensCrnThread(crn); CrnThread crnThread = new MelsecCrnThread(crn); new Thread((Runnable) crnThread).start(); SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread); } src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -94,19 +94,9 @@ public Short walkPos; /** * 堆垛机任务完成 */ public Short taskFinish; /** * 载货台有物 */ public Short loaded; /** * 异常码(数值显示) */ private Short alarm1; private Short temp1; src/main/java/com/zy/core/thread/MelsecCrnThread.java
File was renamed from src/main/java/com/zy/core/thread/CrnThread.java @@ -11,6 +11,7 @@ import com.zy.asrs.entity.BasCrnp; import com.zy.asrs.service.BasCrnOptService; import com.zy.asrs.service.BasCrnpService; import com.zy.core.CrnThread; import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; @@ -33,14 +34,14 @@ */ @Data @Slf4j public class CrnThread implements Runnable, ThreadHandler { public class MelsecCrnThread implements Runnable, ThreadHandler, CrnThread { private MelsecMcNet melsecMcNet; private CrnSlave slave; private CrnProtocol crnProtocol; private boolean resetFlag = false; public CrnThread(CrnSlave slave) { public MelsecCrnThread(CrnSlave slave) { this.slave = slave; } @@ -187,32 +188,22 @@ } command.setCrnNo(slave.getId()); short[] array = new short[10]; array[0] = command.getAckFinish(); array[1] = command.getTaskNo(); array[2] = command.getTaskMode(); array[3] = command.getSourcePosX(); array[4] = command.getSourcePosY(); array[5] = command.getSourcePosZ(); array[6] = command.getDestinationPosX(); array[7] = command.getDestinationPosY(); array[8] = command.getDestinationPosZ(); array[9] = command.getCommand(); OperateResult result = melsecMcNet.Write("D0", array); OperateResult result; if (command.getAckFinish() == 0) { array[0] = command.getAckFinish(); array[1] = command.getTaskNo(); array[2] = command.getTaskMode(); array[3] = command.getSourcePosX(); array[4] = command.getSourcePosY(); array[5] = command.getSourcePosZ(); array[6] = command.getDestinationPosX(); array[7] = command.getDestinationPosY(); array[8] = command.getDestinationPosZ(); array[9] = command.getCommand(); result = melsecMcNet.Write("D0", array); short[] array0 = new short[1]; array0[0] = 1; result = melsecMcNet.Write("D9", array); } else { short commandFinish = 1; result = melsecMcNet.Write("D9", commandFinish); } try { // 日志记录 @@ -264,10 +255,10 @@ slave.setPort(5015); slave.setRack(0); slave.setSlot(0); CrnThread crnThread = new CrnThread(slave); crnThread.connect(); crnThread.readStatus(); System.out.println(JSON.toJSONString(crnThread.crnProtocol)); MelsecCrnThread melsecCrnThread = new MelsecCrnThread(slave); melsecCrnThread.connect(); melsecCrnThread.readStatus(); System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol)); // 1.入库 源和目标都发 // CrnCommand command = new CrnCommand(); src/main/java/com/zy/core/thread/SiemensCrnThread.java
File was deleted