From 4ceb4a8697b05d3176c30e00191296969a98016d Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 19 八月 2020 09:53:42 +0800
Subject: [PATCH] Merge branch 'jsasrs' of https://gitee.com/luxiaotao1123/zy-wcs
---
src/main/java/com/zy/core/thread/DevpThread.java | 55 +++++++++++++++++++++++++++++++++----------------------
1 files changed, 33 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/DevpThread.java b/src/main/java/com/zy/core/thread/DevpThread.java
index 0ac542a..7f092a0 100644
--- a/src/main/java/com/zy/core/thread/DevpThread.java
+++ b/src/main/java/com/zy/core/thread/DevpThread.java
@@ -5,16 +5,19 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
+import com.core.common.DateUtils;
import com.zy.core.Slave;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.OutputQueue;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-import java.util.Arrays;
+import java.text.MessageFormat;
+import java.util.Date;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -32,12 +35,12 @@
public DevpThread(Slave slave) {
this.slave = slave;
- connect();
}
@Override
@SuppressWarnings("InfiniteLoopStatement")
public void run() {
+ connect();
while (true) {
try {
int step = 1;
@@ -57,7 +60,10 @@
default:
break;
}
- Thread.sleep(3000);
+
+ // 蹇冭烦
+ heartbeat();
+ Thread.sleep(400);
} catch (Exception e) {
e.printStackTrace();
}
@@ -74,16 +80,18 @@
OperateResult connect = siemensS7Net.ConnectServer();
if(connect.IsSuccess){
result = true;
+ OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
log.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
} else {
- log.info("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ log.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
}
siemensS7Net.ConnectClose();
return result;
}
/**
- * 璇诲彇鐘舵��
+ * 璇诲彇鐘舵�� ====> 鏁村潡plc
*/
private void read(){
OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 40);
@@ -94,17 +102,12 @@
staProtocol.setSiteId(i);
station.put(i, staProtocol);
}
- System.out.println("------");
- System.out.println("绔欑偣缂栧彿锛�" + i);
- System.out.println("宸ヤ綔鍙凤細" + siemensS7Net.getByteTransform().TransInt16(result.Content, (i-1)*2));
- System.out.println("鐩爣绔欙細" + siemensS7Net.getByteTransform().TransInt16(result.Content, (i-1)*2+20));
- staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, (i-1)*2));
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, (i-1)*2+20));
+ staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, (i-1)*2)); // 宸ヤ綔鍙�
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, (i-1)*2+20)); // 鐩爣绔�
}
OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.40", (short) 8);
if (result1.IsSuccess) {
for (int i = 1; i <= 8; i++) {
- System.out.println(Arrays.toString(siemensS7Net.getByteTransform().TransBool(result1.Content, 0, 1)));
boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i-1, 1);
StaProtocol staProtocol = station.get(i);
staProtocol.setAutoing(status[0]); // 鑷姩
@@ -112,20 +115,18 @@
staProtocol.setInEnable(status[2]); // 鍙叆
staProtocol.setOutEnable(status[3]);// 鍙嚭
staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
-
}
}
}
/**
- * 鍐欏叆
+ * 鍐欏叆 =====> 鍗曠珯鐐瑰啓鍏�
*/
private void write(StaProtocol staProtocol){
if (null == staProtocol) {
return;
}
OperateResult write = siemensS7Net.Write("DB100." + (staProtocol.getSiteId() - 1) * 2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
- System.out.println(((staProtocol.getSiteId() - 1) * 2) + 20);
OperateResult write1 = siemensS7Net.Write("DB100." + ((staProtocol.getSiteId() - 1) * 2 + 20), staProtocol.getStaNo()); // 鐩爣绔�
boolean[] status = new boolean[8];
status[0] = staProtocol.isAutoing();
@@ -139,24 +140,34 @@
}
}
+ /**
+ * 蹇冭烦
+ */
+ private void heartbeat(){
+ OperateResult write = siemensS7Net.Write("DB100.50", (short) 1);
+ if (!write.IsSuccess) {
+ log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
+ }
+ }
+
@Override
public void close() {
-
+ siemensS7Net.ConnectClose();
}
public static void main(String[] args) {
Slave slave = new Slave();
slave.setIp("192.168.2.125");
DevpThread devpThread = new DevpThread(slave);
- boolean connect = devpThread.connect();
- System.out.println(connect);
+ devpThread.connect();
devpThread.read();
// 鍐�
StaProtocol staProtocol = devpThread.getStation().get(1);
- staProtocol.setWorkNo((short) 9999);
- staProtocol.setStaNo((short) 100);
- staProtocol.setAutoing(false);
- staProtocol.setEmptyMk(false);
+ staProtocol.setWorkNo((short) 232);
+ staProtocol.setStaNo((short) 6);
+ staProtocol.setAutoing(true);
+ staProtocol.setEmptyMk(true);
+ staProtocol.setInEnable(true);
devpThread.write(staProtocol);
System.out.println("----------------------------------------");
// 璇�
--
Gitblit v1.9.1