From 759ac29f4ede586002f7349abc8d9d0a8c0bf0ba Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 09 三月 2022 14:31:29 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/MelsecCrnThread.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 59 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 57d10ea..9c8ca3b 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,12 +93,40 @@
default:
break;
}
+ // 蹇冭烦
+ heartbeat();
Thread.sleep(500);
} catch (Exception e) {
e.printStackTrace();
}
}
+ }
+
+ /**
+ * 鍒濆鍖栧爢鍨涙満鐘舵��
+ */
+ private void initCrn() {
+ if (null == crnProtocol) {
+ crnProtocol = new CrnProtocol();
+ }
+ crnProtocol.setMode((short) -1);
+// crnProtocol.setTaskNo((short)0);
+ crnProtocol.setStatus((short)-1);
+ crnProtocol.setBay((short)0);
+ crnProtocol.setLevel((short)0);
+ crnProtocol.setForkPos((short) -1);
+ crnProtocol.setLiftPos((short) -1);
+ crnProtocol.setWalkPos((short)0);
+ crnProtocol.setLoaded((short)0);
+ crnProtocol.setAlarm((short)0);
+ crnProtocol.setXSpeed(0F);
+ crnProtocol.setYSpeed(0F);
+ crnProtocol.setZSpeed(0F);
+ crnProtocol.setXDistance(0F);
+ crnProtocol.setYDistance(0F);
+ crnProtocol.setXDuration(0F);
+ crnProtocol.setYDuration(0F);
}
@Override
@@ -106,8 +141,9 @@
} else {
OutputQueue.CRN.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());
+ initCrn();
}
- melsecMcNet.ConnectClose();
+// melsecMcNet.ConnectClose();
return result;
}
@@ -116,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) {
@@ -157,6 +198,7 @@
}
}
+
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
BasCrnp basCrnp = new BasCrnp();
@@ -174,6 +216,7 @@
e.printStackTrace();
OutputQueue.CRN.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());
+ initCrn();
}
}
@@ -244,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