From 2d5f3029da3c66f22071b9d4f39d1470df6b3ff0 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期三, 16 三月 2022 12:53:39 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/MelsecCrnThread.java | 32 +++++++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java index 0f4c004..ce0f98d 100644 --- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java +++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java @@ -24,6 +24,7 @@ import com.zy.core.model.protocol.CrnProtocol; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import java.text.MessageFormat; import java.util.Date; @@ -39,6 +40,7 @@ private MelsecMcNet melsecMcNet; private CrnSlave slave; private CrnProtocol crnProtocol; + private short heartBeatVal = 1; private boolean resetFlag = false; public MelsecCrnThread(CrnSlave slave) { @@ -49,6 +51,11 @@ @SuppressWarnings("InfiniteLoopStatement") public void run() { this.connect(); +// try { +// Thread.sleep(2000); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } while (true) { try { int step = 1; @@ -86,6 +93,8 @@ default: break; } + // 蹇冭烦 + heartbeat(); Thread.sleep(500); } catch (Exception e) { e.printStackTrace(); @@ -134,7 +143,7 @@ log.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); initCrn(); } - melsecMcNet.ConnectClose(); +// melsecMcNet.ConnectClose(); return result; } @@ -143,6 +152,11 @@ */ private void readStatus(){ try { +// if (this.slave.getId() == 1 && flag1.equals(0)) { +// Thread.sleep(3000); +// flag1=1; +// System.out.println("==="); +// } OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70); if (result.IsSuccess) { if (null == crnProtocol) { @@ -189,6 +203,7 @@ BasCrnp basCrnp = new BasCrnp(); basCrnp.setCrnErr(crnProtocol.getAlarm()==null?0:crnProtocol.getAlarm().longValue()); basCrnp.setCrnNo(slave.getId()); + basCrnp.setCrnSts((int)crnProtocol.getMode()); if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){ log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); } @@ -272,6 +287,21 @@ melsecMcNet.ConnectClose(); } + /** + * 蹇冭烦 + */ + private void heartbeat(){ + if (heartBeatVal == 1) { + heartBeatVal = 2; + } else { + heartBeatVal = 1; + } + OperateResult write = melsecMcNet.Write("D10", heartBeatVal); + if (!write.IsSuccess) { + log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId()); + } + } + /******************************************************************************************/ /**************************************** 娴嬭瘯涓撶敤 *****************************************/ -- Gitblit v1.9.1