From 001e17d89444f1dbfd2ff7ed7e88c79015ffd765 Mon Sep 17 00:00:00 2001 From: TQS <56479841@qq.com> Date: 星期六, 08 七月 2023 18:52:42 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SteThread.java | 61 ++++++++++++++++++------------ 1 files changed, 36 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java index 41a37c8..ad8ed80 100644 --- a/src/main/java/com/zy/core/thread/SteThread.java +++ b/src/main/java/com/zy/core/thread/SteThread.java @@ -13,6 +13,7 @@ import com.zy.asrs.entity.BasSteOpt; import com.zy.asrs.service.BasSteOptService; import com.zy.asrs.service.BasSteService; +import com.zy.common.utils.News; import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; @@ -66,6 +67,8 @@ // 鍐欏叆鏁版嵁 case 2: write((SteCommand) task.getData()); +// Thread.sleep(200); +// readStatus(); break; default: break; @@ -88,7 +91,7 @@ steProtocol = new SteProtocol(); } steProtocol.setSteNo(slave.getId().shortValue()); - steProtocol.setMode((short) 0); + steProtocol.setMode((short) -1); steProtocol.setStatus(SteStatusType.OFF_LINE); steProtocol.setTaskNo((short) 0); steProtocol.setExecute(false); @@ -106,10 +109,10 @@ if(connect.IsSuccess){ result = true; OutputQueue.STE.offer(MessageFormat.format( "銆恵0}銆戠┛姊溅plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - log.info("绌挎杞lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + News.info("绌挎杞lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); } else { OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戠┛姊溅plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] ", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - log.error("绌挎杞lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + News.error("绌挎杞lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); initSte(); } // melsecMcNet.ConnectClose(); @@ -119,7 +122,7 @@ /** * 璇诲彇鐘舵�� */ - private void readStatus(){ + private synchronized void readStatus(){ try { OperateResultExOne<byte[]> result = siemensS7Net.Read("V800", (short) 70); if (result.IsSuccess) { @@ -180,13 +183,15 @@ // 澶嶄綅淇″彿 if (steProtocol.getWaiting()) { - log.error("-------------------------------------------绗竴姝ャ�乕绌挎杞﹀彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负3锛岀瓑寰匴CS纭锛侊紒", - slave.getId(),steProtocol.getTaskNo()); + News.info("-------------绗竴姝ャ�乕绌挎杞﹀彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负{}锛岀瓑寰匴CS纭锛侊紒{}", + slave.getId(),steProtocol.getTaskNo(),steProtocol.getStatus(), resetFlag); if (resetFlag) { SteCommand steCommand = new SteCommand(); steCommand.setComplete(true); if (write(steCommand) && confirmPos()) { resetFlag = false; + News.info("绗簩姝ャ�佸彂閫佸浣嶅懡浠ゆ垚鍔� resetFlag = false,[绌挎杞﹀彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负{}锛岀瓑寰匴CS纭锛侊紒{}", + slave.getId(),steProtocol.getTaskNo(),steProtocol.getStatus(), resetFlag); } } } @@ -204,7 +209,7 @@ BasSte basSte = new BasSte(); basSte.setSteNo(slave.getId()); if (!service.updateById(steProtocol.toSqlModel(basSte))){ - log.error("绌挎杞lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + News.error("绌挎杞lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); } } @@ -215,7 +220,7 @@ } catch (Exception e) { // e.printStackTrace(); OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戣鍙栫┛姊溅plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); -// log.error("璇诲彇绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); +// News.error("璇诲彇绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); initSte(); } @@ -224,9 +229,9 @@ /** * 鍐欏叆鏁版嵁 */ - private boolean write(SteCommand command){ + private synchronized boolean write(SteCommand command){ if (null == command) { - log.error("绌挎杞﹀啓鍏ュ懡浠や负绌�"); + News.error("绌挎杞﹀啓鍏ュ懡浠や负绌�"); return false; } command.setSteNo(slave.getId()); @@ -234,8 +239,8 @@ // 寮�濮嬩换鍔� if (!command.getComplete()) { //缁勭粐浠诲姟鍓嶏紝鍏堟竻绌哄啓浠诲姟纭浣嶏紝浠ュ強浠诲姟瀹屾垚纭浣� - siemensS7Net.Write("V2000.0", false); - siemensS7Net.Write("V2000.1", false); + OperateResult result01 = siemensS7Net.Write("V2000.0", false); + OperateResult result02 = siemensS7Net.Write("V2000.1", false); // 1.浠诲姟鍙� OperateResult result0 = siemensS7Net.Write("V998", command.getTaskNo().shortValue()); try { @@ -274,7 +279,7 @@ // 浠诲姟瀹屾垚 } else { - log.info("鏀跺埌绌挎鏉跨‘璁や俊鍙峰悗鍑嗗缁欏浣嶆爣璁帮紝绌挎鏉縄D={}, 浠诲姟鍙�={}, 绌挎鏉跨姸鎬�={}",slave.getId(), steProtocol.getTaskNo(),steProtocol.getStatus()); + News.info("鏀跺埌绌挎鏉跨‘璁や俊鍙峰悗鍑嗗缁欏浣嶆爣璁帮紝绌挎鏉縄D={}, 浠诲姟鍙�={}, 绌挎鏉跨姸鎬�={}",slave.getId(), steProtocol.getTaskNo(),steProtocol.getStatus()); siemensS7Net.Write("V998", (short) 0); siemensS7Net.Write("V1000", (short) 0); siemensS7Net.Write("V2000.0", false); @@ -318,7 +323,7 @@ } } - log.info("绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); + News.info("绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); try { @@ -330,15 +335,21 @@ if (result1.IsSuccess) { short taskNo = siemensS7Net.getByteTransform().TransInt16(result1.Content, 0); short taskType = siemensS7Net.getByteTransform().TransInt16(result1.Content, 2); - readStatus(); - log.info("绌挎鏉夸换鍔′笅鍙戞垚鍔熷悗浼戠湢200ms绔嬪嵆鍥炶鍐欏叆鏁版嵁锛岀┛姊澘ID={}, 浠诲姟鍙�={}, 浣滀笟绫诲瀷={}",slave.getId(), taskNo, taskType); - log.info("绌挎鏉夸换鍔′笅鍙戞垚鍔熷悗浼戠湢200ms绔嬪嵆鍥炶绌挎鏉跨姸鎬侊紝绌挎鏉縄D={}, 浠诲姟鍙�={}, 绌挎鏉跨姸鎬�={}",slave.getId(), steProtocol.getTaskNo(),steProtocol.getStatus()); +// readStatus(); + News.info("绌挎鏉夸换鍔′笅鍙戞垚鍔熷悗浼戠湢200ms绔嬪嵆鍥炶鍐欏叆鏁版嵁锛岀┛姊澘ID={}, 浠诲姟鍙�={}, 浣滀笟绫诲瀷={}",slave.getId(), taskNo, taskType); + News.info("绌挎鏉夸换鍔′笅鍙戞垚鍔熷悗浼戠湢200ms绔嬪嵆鍥炶绌挎鏉跨姸鎬侊紝绌挎鏉縄D={}, 浠诲姟鍙�={}, 绌挎鏉跨姸鎬�={}",slave.getId(), steProtocol.getTaskNo(),steProtocol.getStatus()); } - + resetFlag = false; return true; } else { OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戝啓鍏ョ┛姊溅plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); - log.error("鍐欏叆绌挎杞lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + News.error("鍐欏叆绌挎杞lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + + //鍐欏叆澶辫触鍚庯紝閲嶆柊娣诲姞commanddao 浠诲姟闃熷垪涓�,骞剁珛鍗冲洖璇讳竴娆¤澶囩姸鎬� +// MessageQueue.offer(SlaveType.Ste, slave.getId(), new Task(2, command)); +// readStatus(); + + initSte(); return false; } } @@ -346,7 +357,7 @@ public void modifyPos(Integer row, Integer bay, Integer lev) { BasSteService service = SpringUtils.getBean(BasSteService.class); if (!service.updatePos(this.slave.getId(), row, bay, lev)) { - log.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); + News.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); } } @@ -362,7 +373,7 @@ if (service.updatePakMk(this.slave.getId(), "N")) { return true; } else { - log.error("{}鍙风┛姊溅淇敼鏁版嵁搴撳畾浣嶅け璐ワ紒锛侊紒", slave.getId()); + News.error("{}鍙风┛姊溅淇敼鏁版嵁搴撳畾浣嶅け璐ワ紒锛侊紒", slave.getId()); } } } @@ -373,12 +384,12 @@ short[] arr = new short[] {row.shortValue(), bay.shortValue(), lev.shortValue()}; OperateResult result = siemensS7Net.Write("V1002", arr); if (!result.IsSuccess) { - log.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); + News.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); return false; } BasSteService service = SpringUtils.getBean(BasSteService.class); if (!service.updatePos(this.slave.getId(), row, bay, lev)) { - log.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); + News.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); return false; } return true; @@ -400,14 +411,14 @@ } OperateResult write = siemensS7Net.Write("D10", heartBeatVal); if (!write.IsSuccess) { - log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId()); + News.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId()); } } // public void modifyPos(int wrkNo, int row, int bay, int lev) { // BasSteService service = SpringUtils.getBean(BasSteService.class); // if (!service.updatePos(wrkNo,this.slave.getId(), row, bay, lev)) { -// log.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); +// News.error("鏇存柊{}鍙风┛姊溅瀹氫綅澶辫触 ===>> 鎺掞細銆恵}銆�, 鍒楋細銆恵}銆戯紝灞傦細銆恵}銆�", this.slave.getId(), row, bay, lev); // } // } -- Gitblit v1.9.1