| src/main/java/com/zy/core/network/ZyCrnConnectDriver.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/network/api/ZyCrnConnectApi.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/network/fake/ZyCrnFakeConnect.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/thread/CrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/core/network/ZyCrnConnectDriver.java
@@ -97,10 +97,6 @@ return zyCrnConnectApi.sendCommand(command); } public CommandResponse sendCommand1(CrnCommand command) { return zyCrnConnectApi.sendCommand1(command); } public CommandResponse sendCommand2(CrnCommand command) { return zyCrnConnectApi.sendCommand2(command); } src/main/java/com/zy/core/network/api/ZyCrnConnectApi.java
@@ -14,8 +14,6 @@ CommandResponse sendCommand(CrnCommand command);//下发命令 CommandResponse sendCommand1(CrnCommand command); CommandResponse sendCommand2(CrnCommand command); CommandResponse sendCommand3(CrnCommand command); src/main/java/com/zy/core/network/fake/ZyCrnFakeConnect.java
@@ -56,23 +56,6 @@ } @Override public CommandResponse sendCommand1(CrnCommand command) { CommandResponse response = new CommandResponse(false); if (command.getTaskMode().intValue() == CrnTaskModeType.LOC_MOVE.id) { //取放货 executor.submit(() -> commandTake(command)); } else if (command.getTaskMode().intValue() == CrnTaskModeType.CRN_MOVE.id) { //移动 executor.submit(() -> commandMove(command)); } else if (command.getTaskMode().intValue() == CrnTaskModeType.NONE.id) { //复位 executor.submit(() -> commandTaskComplete(command)); } response.setResult(true); return response; } @Override public CommandResponse sendCommand2(CrnCommand command) { return null; } src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
@@ -213,107 +213,6 @@ } @Override public CommandResponse sendCommand1(CrnCommand command) { CommandResponse response = new CommandResponse(false); try { if (null == command) { News.error("堆垛机写入命令为空"); response.setMessage("堆垛机写入命令为空"); return response; } int writeAck = 0; do { OperateResult resultAck = siemensNet.Write("DB100.0", (short) 0); if (resultAck.IsSuccess) { Thread.sleep(200); OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 2); short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0); if (ack != 0) { writeAck++; } else { News.info("堆垛机命令下发[id:{}] >>>>> {}", command.getCrnNo(), "ack复位完成"); break; } } } while (writeAck < 5); short[] array = new short[10]; array[0] = (short) 1; array[1] = command.getTaskNo().shortValue(); array[2] = command.getTaskMode().shortValue(); array[3] = command.getSourcePosX().shortValue(); array[4] = command.getSourcePosY().shortValue(); array[5] = command.getSourcePosZ().shortValue(); array[6] = command.getDestinationPosX().shortValue(); array[7] = command.getDestinationPosY().shortValue(); array[8] = command.getDestinationPosZ().shortValue(); array[9] = (short) 0; OperateResult result = siemensNet.Write("DB100.0", array); if (!result.IsSuccess) { response.setMessage("堆垛机命令下发[id:{}] >>>>> {}" + command.getCrnNo() + "任务状态位异常"); return response; } int idx = 0; do { OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20); if (resultRead.IsSuccess) { short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2); short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4); short sourcePosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 6); short sourcePosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 8); short sourcePosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10); short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12); short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14); short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 16); if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) { result = siemensNet.Write("DB100.0", array); } else { break; } } idx++; Thread.sleep(500); } while (idx < 5); if (result != null && result.IsSuccess) { News.info("堆垛机命令下发[id:{}] >>>>> {}", command.getCrnNo(), JSON.toJSON(command)); OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), command.getCrnNo(), JSON.toJSON(command))); response.setResult(true); response.setMessage("命令下发成功"); } else { News.error("写入堆垛机plc数据失败 ===>> [id:{}]", command.getCrnNo()); OutputQueue.CRN.offer(MessageFormat.format("【{0}】写入堆垛机plc数据失败 ===>> [id:{1}]", DateUtils.convert(new Date()), command.getCrnNo())); response.setResult(false); response.setMessage("命令下发失败"); } if (!Cools.isEmpty(command.getLocNo())){ OperateResult resultAck = siemensNet.Write("DB110." + command.getIndex() * 2, command.getValue()); if (resultAck.IsSuccess) { Integer index = command.getIndex()*2 + 200; OperateResult resultAck1 = siemensNet.Write("DB110." + index, command.getValue()); if (resultAck1.IsSuccess) { News.info("库位橙色按钮命令下发[locNo:{}] >>>>> {}", command.getLocNo(), command.getValue()); } else { News.error("库位白色灯命令下发失败[locNo:{}] >>>>> {}", command.getLocNo(), command.getValue()); } News.info("库位白色灯命令下发[locNo:{}] >>>>> {}", command.getLocNo(), command.getValue()); } else { News.error("库位白色灯命令下发失败[locNo:{}] >>>>> {}", command.getLocNo(), command.getValue()); } } return response; } catch (Exception e) { e.printStackTrace(); } return response; } @Override public CommandResponse sendCommand2(CrnCommand command) { CommandResponse response = new CommandResponse(false); try { src/main/java/com/zy/core/thread/CrnThread.java
@@ -17,8 +17,6 @@ CommandResponse sendCommand(CrnCommand command);//下发命令 CommandResponse sendCommand1(CrnCommand command); CommandResponse sendCommand2(CrnCommand command); CommandResponse sendCommand3(CrnCommand command); src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
@@ -81,14 +81,11 @@ if (step == 2) { sendCommand((CrnCommand) task.getData()); }else if (step == 3) { sendCommand1((CrnCommand) task.getData()); }else if (step == 4) { sendCommand2((CrnCommand) task.getData()); }else if (step == 5) { sendCommand3((CrnCommand) task.getData()); } Thread.sleep(100); } catch (Exception e) { @@ -315,39 +312,6 @@ CommandResponse response = null; try { response = zyCrnConnectDriver.sendCommand(command); return response; } finally { String sourceLocNo = Utils.getLocNo(command.getSourcePosX(), command.getSourcePosY(), command.getSourcePosZ()); String targetLocNo = Utils.getLocNo(command.getDestinationPosX(), command.getDestinationPosY(), command.getDestinationPosZ()); BasCrnpOptService bean = SpringUtils.getBean(BasCrnpOptService.class); ZyCrnStatusEntity statusEntity = zyCrnConnectDriver.getStatus(); BasCrnpOpt basCrnpOpt = new BasCrnpOpt( command.getTaskNo().intValue(), command.getCrnNo(), new Date(), String.valueOf(command.getTaskMode()), sourceLocNo, targetLocNo, null, null, null, JSON.toJSONString(command), JSON.toJSONString(statusEntity), 1, JSON.toJSONString(response) ); if (bean != null) { bean.insert(basCrnpOpt); } } } @Override public synchronized CommandResponse sendCommand1(CrnCommand command) { this.crnProtocol.setLastCommandTime(System.currentTimeMillis()); CommandResponse response = null; try { response = zyCrnConnectDriver.sendCommand1(command); return response; } finally { String sourceLocNo = Utils.getLocNo(command.getSourcePosX(), command.getSourcePosY(), command.getSourcePosZ()); src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -658,7 +658,7 @@ resetCommand.setIndex(i); resetCommand.setValue((short)0); } MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(3, resetCommand)); MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, resetCommand)); News.info("堆垛机任务状态更新成功,堆垛机号={},工作号={}", basCrnp.getCrnNo(), crnProtocol.getTaskNo()); }