src/main/java/com/zy/asrs/controller/CrnController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/command/CrnCommand.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensCrnThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/deviceOperate/crnOperate.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -1,5 +1,6 @@ package com.zy.asrs.controller; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; @@ -50,6 +51,8 @@ @Slf4j @RestController public class CrnController { @Autowired private SlaveProperties slaveProperties; @@ -576,6 +579,27 @@ return R.error(); } @ManagerAuth(memo = "切换联机模式") @PostMapping("/crn/operator/auto") public R crnAuto(CrnOperatorParam param){ short[] array = new short[9]; CrnCommand command = new CrnCommand(); command.setCrnNo(param.getCrnNo()); // 堆垛机编号 command.setTaskNo((short) 0); // 工作号 // command.setAckFinish((short) 0); // 任务完成确认位 // command.setTaskMode(CrnTaskModeType.PAKIN); // 任务模式 // command.setSourcePosX(param.getSourceRow()); // 源库位排 // command.setSourcePosY(param.getSourceBay()); // 源库位列 // command.setSourcePosZ(param.getSourceLev()); // 源库位层 // command.setDestinationPosX(param.getRow()); // 目标库位排 // command.setDestinationPosY(param.getBay()); // 目标库位列 // command.setDestinationPosZ(param.getLev()); // 目标库位层 command.setAuto((short)1); return crnControl(command)?R.ok():R.error(); } private boolean crnControl(CrnCommand command){ if (command.getCrnNo() == null) { throw new CoolException("请选择堆垛机"); src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -72,6 +72,9 @@ // 目标巷道 private Short destinationLane = 0; //联机模式 private Short auto = 0; // 任务确认 0:未确认 1:已确认 private Short command = 0; src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -5,6 +5,7 @@ import HslCommunication.Profinet.Siemens.SiemensPLCS; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.alibaba.fastjson.JSON; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SpringUtils; import com.zy.asrs.entity.*; @@ -388,7 +389,7 @@ } command.setCrnNo(slave.getId()); short[] array = new short[9]; short[] array = new short[12]; if (command.getAckFinish() == 0) { array[0] = 5; } else { @@ -424,19 +425,23 @@ array[7] = command.getDestinationPosX(); } array[8] = command.getDestinationPosY(); if (!Cools.isEmpty(command.getAuto())){ array[10] = command.getAuto(); } // 作业信息 OperateResult result = siemensNet.Write("DB100.0", array); // 任务号 + 完成位 short[] array2 = new short[2]; array2[0] = command.getTaskNo(); array2[1] = command.getAckFinish(); OperateResult result1 = siemensNet.Write("DB10.24", array2); // 结束位 if (command.getAckFinish() == 0) { OperateResult result2 = siemensNet.Write("DB10.28.1", true); } // // 任务号 + 完成位 // short[] array2 = new short[2]; // array2[0] = command.getTaskNo(); // array2[1] = command.getAckFinish(); // OperateResult result1 = siemensNet.Write("DB10.24", array2); // // // 结束位 // if (command.getAckFinish() == 0) { // OperateResult result2 = siemensNet.Write("DB10.28.1", true); // } // 日志记录 try { @@ -470,7 +475,7 @@ CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class); commandInfoLog.setId(null); if (result.IsSuccess && result1.IsSuccess) { if (result.IsSuccess) { log.warn("堆垛机命令下发[id:{},时间:{}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command)); OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); src/main/webapp/views/deviceOperate/crnOperate.html
@@ -80,6 +80,7 @@ <el-button @click="requestOperate('taskComplete')" type="primary">任务完成</el-button> <el-button @click="requestOperate('clearCommand')" type="primary">清除命令</el-button> <el-button @click="requestOperate('handleReset')" type="primary">复位</el-button> <el-button @click="requestOperate('auto')" type="primary">联机</el-button> </div> </div> </el-card>