From 405a34a73ddad9367c1a40b03a5f8cec914ad683 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 03 七月 2023 13:30:22 +0800 Subject: [PATCH] 命令下发保存二进制报文 --- src/main/java/com/zy/core/thread/LiftThread.java | 44 +++++++++++++--------- src/main/java/com/zy/core/thread/ShuttleThread.java | 45 ++++++++++++---------- src/main/java/com/zy/asrs/entity/BasLiftOpt.java | 9 ++++ src/main/java/com/zy/asrs/entity/BasShuttleOpt.java | 9 ++++ 4 files changed, 66 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/BasLiftOpt.java b/src/main/java/com/zy/asrs/entity/BasLiftOpt.java index 932332f..1bd9be4 100644 --- a/src/main/java/com/zy/asrs/entity/BasLiftOpt.java +++ b/src/main/java/com/zy/asrs/entity/BasLiftOpt.java @@ -76,9 +76,15 @@ @ApiModelProperty(value= "鍛戒护") private String command; + /** + * 鍛戒护 + */ + @ApiModelProperty(value= "鍛戒护鎶ユ枃(涓嬪彂)") + private String commandSend; + public BasLiftOpt() {} - public BasLiftOpt(Integer wrkNo,Integer liftNo,Date sendTime,Date updateTime,Long updateBy,String memo,String command) { + public BasLiftOpt(Integer wrkNo, Integer liftNo, Date sendTime, Date updateTime, Long updateBy, String memo, String command, String commandSend) { this.wrkNo = wrkNo; this.liftNo = liftNo; this.sendTime = sendTime; @@ -86,6 +92,7 @@ this.updateBy = updateBy; this.memo = memo; this.command = command; + this.commandSend = commandSend; } // BasLiftOpt basLiftOpt = new BasLiftOpt( diff --git a/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java b/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java index 8739111..798b0ca 100644 --- a/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java +++ b/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java @@ -96,9 +96,15 @@ @ApiModelProperty(value= "鍛戒护") private String command; + /** + * 鍛戒护 + */ + @ApiModelProperty(value= "鍛戒护鎶ユ枃(涓嬪彂)") + private String commandSend; + public BasShuttleOpt() {} - public BasShuttleOpt(Integer wrkNo,Integer shuttleNo,Date sendTime,String mode,String sourceLocNo,String distLocNo,Date updateTime,Long updateBy,String memo,String command) { + public BasShuttleOpt(Integer wrkNo,Integer shuttleNo,Date sendTime,String mode,String sourceLocNo,String distLocNo,Date updateTime,Long updateBy,String memo,String command,String commandSend) { this.wrkNo = wrkNo; this.shuttleNo = shuttleNo; this.sendTime = sendTime; @@ -109,6 +115,7 @@ this.updateBy = updateBy; this.memo = memo; this.command = command; + this.commandSend = commandSend; } // BasShuttleOpt basShuttleOpt = new BasShuttleOpt( diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java index a399c9e..87a8598 100644 --- a/src/main/java/com/zy/core/thread/LiftThread.java +++ b/src/main/java/com/zy/core/thread/LiftThread.java @@ -244,6 +244,28 @@ } command.setLiftNo(slave.getId().shortValue()); + short[] array = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃 + + try { + Thread.sleep(1000);//鍛戒护涓嬪彂鍓嶄紤鐪�1s + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + OperateResult result = modbusTcpNet.Write("41088", array); + if (result != null && result.IsSuccess) { + News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); + OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); + return true; + } else { + OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + return false; + } + } + + //鑾峰彇鍛戒护鎶ユ枃 + private short[] getCommandArr(LiftCommand command) { // 寮�濮嬩换鍔� short[] array = new short[30]; //寮�濮嬭繍琛� @@ -284,23 +306,7 @@ tmp[1] = array[1]; array = tmp; } - - try { - Thread.sleep(1000);//鍛戒护涓嬪彂鍓嶄紤鐪�1s - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - - OperateResult result = modbusTcpNet.Write("41088", array);; - if (result != null && result.IsSuccess) { - News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); - OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); - return true; - } else { - OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆戝啓鍏ユ彁鍗囨満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - News.error("鍐欏叆鎻愬崌鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - return false; - } + return array; } //鍒嗛厤浠诲姟 @@ -448,6 +454,7 @@ //淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘� BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class); if (liftOptService != null) { + short[] commandArr = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃 BasLiftOpt opt = new BasLiftOpt( redisCommand.getWrkNo().intValue(), redisCommand.getLiftNo().intValue(), @@ -455,7 +462,8 @@ null, null, null, - JSON.toJSONString(command) + JSON.toJSONString(command), + JSON.toJSONString(commandArr) ); liftOptService.insert(opt); } diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java index 3f5bacd..7b303b0 100644 --- a/src/main/java/com/zy/core/thread/ShuttleThread.java +++ b/src/main/java/com/zy/core/thread/ShuttleThread.java @@ -279,7 +279,6 @@ News.error("鍥涘悜绌挎杞﹀啓鍏ュ懡浠や负绌�"); return false; } - BasShuttleService shuttleService = SpringUtils.getBean(BasShuttleService.class); if (shuttleService == null) { News.error("绯荤粺閿欒"); @@ -291,8 +290,27 @@ News.error("鍥涘悜绌挎杞︿笉瀛樺湪"); return false; } - command.setShuttleNo(slave.getId().shortValue()); + short[] array = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃 + OperateResult result = modbusTcpNet.Write("0", array);; + if (result != null && result.IsSuccess) { + try { + Thread.sleep(3000);//鍛戒护涓嬪彂鍚庝紤鐪�1s + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); + return true; + } else { + OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ洓鍚戠┛姊溅plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); + News.error("鍐欏叆鍥涘悜绌挎杞lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + return false; + } + } + + //鑾峰彇鍛戒护鎶ユ枃 + private short[] getCommandArr(ShuttleCommand command) { // 寮�濮嬩换鍔� short[] array = new short[17]; //鎺у埗鎸囦护瀛� @@ -326,7 +344,6 @@ array[7] = middleToDistDistances[1]; } - array[8] = basShuttle.getRunSpeed().shortValue();//鍥涘悜绌挎杞﹁繍琛岄�熷害锛屼粠绯荤粺鏁版嵁搴撹鍑� if (command.getRunDirection() != null) { //灏忚溅杩愯鏂瑰悜 array[8] = command.getRunDirection(); @@ -363,25 +380,9 @@ //灏忚溅闆疯揪澶囩敤 array[15] = command.getRadarTmp(); } - //鎸囦护缁撴潫浣� array[16] = command.getCommandEnd(); - - OperateResult result = modbusTcpNet.Write("0", array);; - if (result != null && result.IsSuccess) { - try { - Thread.sleep(3000);//鍛戒护涓嬪彂鍚庝紤鐪�1s - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - News.info("鍥涘悜绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); - OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); - return true; - } else { - OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ洓鍚戠┛姊溅plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - News.error("鍐欏叆鍥涘悜绌挎杞lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); - return false; - } + return array; } /** @@ -834,6 +835,7 @@ //淇濆瓨鏁版嵁鍒版暟鎹簱鍋氭祦姘� BasShuttleOptService shuttleOptService = SpringUtils.getBean(BasShuttleOptService.class); if (shuttleOptService != null) { + short[] commandArr = getCommandArr(command);//鑾峰彇鍛戒护鎶ユ枃 BasShuttleOpt opt = new BasShuttleOpt( assignCommand.getTaskNo().intValue(), assignCommand.getShuttleNo().intValue(), @@ -844,7 +846,8 @@ null, null, null, - JSON.toJSONString(command) + JSON.toJSONString(command), + JSON.toJSONString(commandArr) ); shuttleOptService.insert(opt); } -- Gitblit v1.9.1