From 7eab121b2462e5b83f144fe4f3be93db6128ca0f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 17 八月 2020 10:49:15 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/cache/OutputQueue.java | 15 +++++++++++++++
src/main/java/com/zy/asrs/controller/CrnController.java | 19 ++++++++++++++++---
src/main/java/com/zy/core/model/command/CrnCommand.java | 2 ++
src/main/java/com/zy/core/thread/CrnThread.java | 12 ++++++++++++
src/main/java/com/zy/core/thread/DevpThread.java | 7 ++++---
5 files changed, 49 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index bacf4b6..3be82ea 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -9,6 +9,7 @@
import com.zy.asrs.domain.vo.CrnStateTableVo;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
+import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.CrnModeType;
import com.zy.core.enums.SlaveType;
@@ -23,7 +24,6 @@
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
@@ -137,8 +137,21 @@
@PostMapping("/output/site")
@ManagerAuth(memo = "鍫嗗灈鏈烘姤鏂囨棩蹇楄緭鍑�")
public R crnOutput(){
- String str = "\n" +new Date().toLocaleString() + "銆�2020-5-29 13:14:22銆戞壂鎻弍lcA 鐩爣绔�--273283723728327636432343234323422732837237283276364323432343234227328372372832763643234323432342";
- return R.ok().add(str);
+ StringBuilder str = new StringBuilder();
+ String s;
+ int i = 0;
+ while( (s = OutputQueue.CRN.poll()) != null && i <=10) {
+ str.append("\n").append(s);
+ i++;
+ }
+// str = new StringBuilder("\n" + new Date().toLocaleString() + "銆�2020-5-29 13:14:22銆戞壂鎻弍lcA 鐩爣绔�--273283723728327636432343234323422732837237283276364323432343234227328372372832763643234323432342");
+ return R.ok().add(str.toString());
+ }
+
+ public static void main(String[] args) {
+ for (int i =0; i<10; i++) {
+
+ }
}
/****************************************************************/
diff --git a/src/main/java/com/zy/core/cache/OutputQueue.java b/src/main/java/com/zy/core/cache/OutputQueue.java
new file mode 100644
index 0000000..d4881e9
--- /dev/null
+++ b/src/main/java/com/zy/core/cache/OutputQueue.java
@@ -0,0 +1,15 @@
+package com.zy.core.cache;
+
+import java.util.concurrent.ArrayBlockingQueue;
+
+/**
+ * Created by vincent on 2020/8/17
+ */
+public class OutputQueue {
+
+ // 鍫嗗灈鏈鸿緭鍑烘棩蹇�
+ public static ArrayBlockingQueue<String> CRN = new ArrayBlockingQueue<>(32);
+ // 杈撻�佺嚎杈撳嚭鏃ュ織
+ public static ArrayBlockingQueue<String> DEVP = new ArrayBlockingQueue<>(32);
+
+}
diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java
index dc97b19..6a6bbcc 100644
--- a/src/main/java/com/zy/core/model/command/CrnCommand.java
+++ b/src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -1,5 +1,6 @@
package com.zy.core.model.command;
+import com.alibaba.fastjson.annotation.JSONField;
import com.zy.core.enums.CrnTaskModeType;
import lombok.Data;
@@ -32,6 +33,7 @@
*/
private Short taskMode;
+ @JSONField(serialize = false)
private CrnTaskModeType taskModeType;
// 婧愪綅缃帓鍙�
diff --git a/src/main/java/com/zy/core/thread/CrnThread.java b/src/main/java/com/zy/core/thread/CrnThread.java
index fa3e72c..16ade31 100644
--- a/src/main/java/com/zy/core/thread/CrnThread.java
+++ b/src/main/java/com/zy/core/thread/CrnThread.java
@@ -5,8 +5,10 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
+import com.core.common.DateUtils;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.OutputQueue;
import com.zy.core.enums.CrnTaskModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
@@ -15,6 +17,9 @@
import com.zy.core.model.protocol.CrnProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+
+import java.text.MessageFormat;
+import java.util.Date;
/**
* 鍫嗗灈鏈虹嚎绋�
@@ -27,6 +32,7 @@
private SiemensS7Net siemensNet;
private CrnSlave slave;
private CrnProtocol crnProtocol;
+
public CrnThread(CrnSlave slave) {
this.slave = slave;
@@ -90,8 +96,10 @@
OperateResult connect = siemensNet.ConnectServer();
if(connect.IsSuccess){
result = true;
+ OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
log.info("鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
} else {
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
log.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
siemensNet.ConnectClose();
@@ -104,6 +112,7 @@
private void readStatus(){
OperateResultExOne<byte[]> result = siemensNet.Read("DB8.18", (short) 46);
if (result.IsSuccess) {
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
if (null == crnProtocol) {
crnProtocol = new CrnProtocol();
}
@@ -128,6 +137,7 @@
crnProtocol.setYDistance(siemensNet.getByteTransform().TransInt32(result.Content, 38));
crnProtocol.setDuration(siemensNet.getByteTransform().TransInt32(result.Content, 42));
} else {
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
}
@@ -153,8 +163,10 @@
array[8] = command.getDestinationPosZ();
OperateResult result = siemensNet.Write("DB8.0", array);
if (result.IsSuccess) {
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
readStatus();
} else {
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
}
diff --git a/src/main/java/com/zy/core/thread/DevpThread.java b/src/main/java/com/zy/core/thread/DevpThread.java
index be6e10b..387fef4 100644
--- a/src/main/java/com/zy/core/thread/DevpThread.java
+++ b/src/main/java/com/zy/core/thread/DevpThread.java
@@ -140,12 +140,13 @@
Slave slave = new Slave();
slave.setIp("192.168.2.125");
DevpThread devpThread = new DevpThread(slave);
+ devpThread.connect();
devpThread.read();
// 鍐�
StaProtocol staProtocol = devpThread.getStation().get(1);
- staProtocol.setWorkNo((short) 222);
- staProtocol.setStaNo((short) 2);
- staProtocol.setAutoing(false);
+ staProtocol.setWorkNo((short) 232);
+ staProtocol.setStaNo((short) 6);
+ staProtocol.setAutoing(true);
staProtocol.setEmptyMk(true);
staProtocol.setInEnable(true);
devpThread.write(staProtocol);
--
Gitblit v1.9.1