src/main/java/com/zy/asrs/controller/RgvController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SiemensRgvThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/deviceOperate/rgvOperate.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/RgvController.java
@@ -294,6 +294,12 @@ return rgvFetchSingleStepPut(param,3)?R.ok():R.error(); } @ManagerAuth(memo = "取放") @PostMapping("/operator/single/step/four/put") public R rgvFetchSingleStepFourPut(RgvOperatorParam param){ return rgvFetchSingleStepPut(param,4)?R.ok():R.error(); } public boolean rgvFetchSingleStepPut(RgvOperatorParam param ,Integer type){ wrkNo++; RgvCommand command = new RgvCommand(); @@ -309,6 +315,9 @@ break; case 3: fetchPut = RgvTaskModeType.X_MOVE; break; case 4: fetchPut = RgvTaskModeType.FETCH_PUT; break; default: return false; @@ -326,7 +335,7 @@ // command.setDestinationStaNo2(param.getStaNo2()); // 目标站 command.setCommand((short) 0); return rgvControl(command); return rgvControlD(command); } @@ -611,4 +620,34 @@ return false; } private boolean rgvControlD(RgvCommand command){ if (command.getRgvNo() == null) { throw new CoolException("请选择RGV"); } for (RgvSlave rgv : slaveProperties.getRgv()) { // 获取RGV信息 if (command.getRgvNo().equals(rgv.getId())) { // SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); // if (rgvThread == null) { // throw new CoolException("RGV不在线"); // } // RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); // if (rgvProtocol == null) { // throw new CoolException("RGV不在线"); // } try{ if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(11, command))) { return true; } else { throw new CoolException("命令下发失败"); } }catch (Exception e){ log.error("单步任务下发失败,异常:"+e); throw new CoolException("命令下发失败"); } } } return false; } } src/main/java/com/zy/core/thread/SiemensRgvThread.java
@@ -118,6 +118,10 @@ case 10: write10((String) task.getData()); break; //单机写入数据 case 11: write11((RgvCommand) task.getData()); break; default: break; } @@ -484,6 +488,46 @@ } } //单步任务 private boolean write11(RgvCommand command) throws InterruptedException { if (null == command) { log.error("RGV写入命令为空"); return false; } String status = ""; command.setRgvNo(slave.getId()); short[] array = new short[2]; array[0] = command.getSourceStaNo2(); array[1] = command.getDestinationStaNo2(); OperateResult result = siemensNet.Write("DB19.0", array); if (command.getTaskMode1().equals(RgvTaskModeType.FETCH)){ status = "4.1"; } else if (command.getTaskMode1().equals(RgvTaskModeType.PUT)){ status = "4.2"; } else if (command.getTaskMode1().equals(RgvTaskModeType.X_MOVE)){ status = "4.0"; } else if (command.getTaskMode1().equals(RgvTaskModeType.FETCH_PUT)){ status = "4.3"; } else { OutputQueue.RGV.offer(MessageFormat.format("【{0}】写入RGV plc数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [DB块:{4}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status)); log.error("写入RGV plc数据失败 未知任务类型 ===>> [id:{}] [ip:{}] [port:{}] [DB块:{4}]", slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status); return false; } OperateResult result1 = siemensNet.Write("DB19."+status, true); if (result != null && result.IsSuccess && result1 != null && result1.IsSuccess) { Thread.sleep(200); this.readStatus(); log.info("RGV 命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSON("DB19."+status)); OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), "DB19."+status)); return true; } else { OutputQueue.RGV.offer(MessageFormat.format("【{0}】写入RGV plc数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}] [DB块:{4}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status)); log.error("写入RGV plc数据失败 ===>> [id:{}] [ip:{}] [port:{}] [DB块:{4}]", slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status); return false; } } @Override public void close() { siemensNet.ConnectClose(); src/main/webapp/views/deviceOperate/rgvOperate.html
@@ -64,7 +64,8 @@ <el-form-item label="启动"> <el-button @click="initiateD(1)" type="warning">取货</el-button> <el-button @click="initiateD(2)" type="warning">放货</el-button> <el-button @click="initiateD(3)" type="warning">XY移动</el-button> <el-button @click="initiateD(3)" type="warning">X移动</el-button> <el-button @click="initiateD(4)" type="warning">搬运</el-button> </el-form-item> </el-form> </div> @@ -346,6 +347,8 @@ urlS = "/rgv/operator/single/step/two/put"; }else if (method === 3){ urlS = "/rgv/operator/single/step/three/put"; }else if (method === 4){ urlS = "/rgv/operator/single/step/four/put"; } let that = this that.$confirm('此操作存在风险,是否继续','提示',{