From 7d06cea49f39ab2bc9177833d0ab2a04bd53e3eb Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 22 十一月 2023 13:42:27 +0800 Subject: [PATCH] #联机 --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 96 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 72 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index 5d068f5..52bf8d0 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -96,6 +96,9 @@ command.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� write(command); break; + case 4: + writeAuto((CrnCommand) task.getData()); + break; default: break; } @@ -384,47 +387,48 @@ log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); return false; } - if (command.getTaskNo() == 0 && command.getAckFinish() == 0) { + if (command.getTaskNo() == 0 && command.getAckFinish() == 0 && command.getAuto() != 1) { command.setTaskNo((short) 9999); } command.setCrnNo(slave.getId()); short[] array = new short[12]; - if (command.getAckFinish() == 0) { + if (Cools.isEmpty(command.getAckFinish())) { array[0] = 5; } else { - array[0] = 0; + array[0] = command.getAckFinish(); } array[1] = command.getTaskNo(); array[2] = command.getTaskMode(); - array[3] = command.getDestinationPosZ(); - if (rowOne.contains(command.getSourcePosX())){ - array[4] = (short)1; - }else if (rowTwo.contains(command.getSourcePosX())){ - array[4] = (short)2; - }else if (rowThree.contains(command.getSourcePosX())){ - array[4] = (short)3; - }else if (rowFour.contains(command.getSourcePosX())){ - array[4] = (short)4; - }else { + array[3] = command.getSourcePosZ(); +// if (rowOne.contains(command.getSourcePosX())){ +// array[4] = (short)1; +// }else if (rowTwo.contains(command.getSourcePosX())){ +// array[4] = (short)2; +// }else if (rowThree.contains(command.getSourcePosX())){ +// array[4] = (short)3; +// }else if (rowFour.contains(command.getSourcePosX())){ +// array[4] = (short)4; +// }else { array[4] = command.getSourcePosX(); - } +// } array[5] = command.getDestinationPosY(); array[6] = command.getDestinationPosZ(); - if (rowOne.contains(command.getDestinationPosX())){ - array[7] = (short)1; - }else if (rowTwo.contains(command.getDestinationPosX())){ - array[7] = (short)2; - }else if (rowThree.contains(command.getDestinationPosX())){ - array[7] = (short)3; - }else if (rowFour.contains(command.getDestinationPosX())){ - array[7] = (short)4; - }else { +// if (rowOne.contains(command.getDestinationPosX())){ +// array[7] = (short)1; +// }else if (rowTwo.contains(command.getDestinationPosX())){ +// array[7] = (short)2; +// }else if (rowThree.contains(command.getDestinationPosX())){ +// array[7] = (short)3; +// }else if (rowFour.contains(command.getDestinationPosX())){ +// array[7] = (short)4; +// }else { array[7] = command.getDestinationPosX(); - } +// } array[8] = command.getDestinationPosY(); + array[9] = command.getCommand(); if (!Cools.isEmpty(command.getAuto())){ array[10] = command.getAuto(); } @@ -503,6 +507,50 @@ } } + private boolean writeAuto(CrnCommand command){ + if (null == command) { + log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�"); + return false; + } + short[] array = new short[1]; + array[0] = command.getAuto(); + OperateResult result = siemensNet.Write("DB100.20", array); + + //鏇存柊鍛戒护鏃ュ織 + CommandInfoLogService commandInfoLogService = SpringUtils.getBean(CommandInfoLogService.class); + CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class); + CommandInfo commandInfo = commandInfoService.selectById(command.getCommandId()); + CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class); + commandInfoLog.setId(null); + + 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))); + + //鏇存柊鎸囦护鏃ュ織 + commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛"); + commandInfoLogService.insert(commandInfoLog); + + //鏇存柊浠诲姟姝ュ簭 + TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class); + TaskWrk taskWrk = taskWrkService.selectByWrkNo(command.getTaskNo().intValue()); + if (taskWrk != null) { + taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//鏇存柊鎸囦护姝ュ簭 + taskWrkService.updateById(taskWrk); + } + + return true; + } else { + OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); + log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + + //鏇存柊鎸囦护鏃ュ織 + commandInfoLog.setDeviceLog("鎸囦护涓嬪彂澶辫触"); + commandInfoLogService.insert(commandInfoLog); + return false; + } + } + @Override public void close() { siemensNet.ConnectClose(); -- Gitblit v1.9.1