From 58bb9d3e0a8d8c385085f8cce3492eccf5448ec4 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 10 九月 2025 16:20:12 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/asrs/controller/SiteController.java | 3 +
src/main/java/com/zy/asrs/controller/OpenController.java | 22 +++++++++--
src/main/webapp/views/index.html | 5 +-
src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java | 28 ++++++++++++--
src/main/java/com/zy/core/CtuMainProcess.java | 4 +-
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 46 +++++++++++++++++++++-
6 files changed, 93 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 9c5c79c..8c26564 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -81,10 +81,10 @@
*/
@RequestMapping("/task/sync/v1")
public R taskSync(@RequestBody TaskReportParam param) {
- if (param == null || param.getSeqNum() == null || param.getQrCode() == null) {
+ if (param == null || param.getSeqNum() == null) {
return R.error("鍙傛暟涓虹┖");
}
- if ((param.getQrCode().equals("00001547") || param.getQrCode().equals("1001")) && param.getTaskSts() == 15) {
+ if (param.getTaskSts() == 15 && (param.getQrCode().equals("00001547") || param.getQrCode().equals("1001"))) {
log.info("1001浠诲姟鐘舵�佷笂鎶ユ帴鏀讹細{}", param);
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
Map<Integer, StaProtocol> station = devpThread.getStation();
@@ -94,6 +94,9 @@
} else {
staProtocol = staProtocol.clone();
}
+ if (!staProtocol.isLoading()) {
+ return R.error("绔欑偣鏃犵墿");
+ }
Random rand = new Random();
staProtocol.setWorkNo(rand.nextInt(1000));
staProtocol.setStaNo((short) 1004);
@@ -101,9 +104,20 @@
if (result) {
log.info("涓嬪彂鎴愬姛锛歿},{}", staProtocol.getWorkNo(), 1004);
}
- } else if (param.getQrCode().equals("00001612") && param.getTaskSts() == 5) {
+ } else if (param.getTaskSts() == 5) {
log.info("1007浠诲姟鐘舵�佷笂鎶ユ帴鏀讹細{}", param);
-
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ Map<Integer, StaProtocol> station = devpThread.getStation();
+ StaProtocol staProtocol = station.get(1007);
+ if (staProtocol == null) {
+ return R.error("鏈壘鍒扮珯鐐�");
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
+ if (result) {
+ log.info("涓嬪彂鎴愬姛锛歿},{}", staProtocol.getWorkNo(), 1007);
+ }
}
return R.ok();
}
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 3c29dc3..feeac95 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.BasRgv;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.BasRgvService;
+import com.zy.asrs.service.impl.CtuMainServiceImpl;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
@@ -43,6 +44,8 @@
@Autowired
private BasRgvService basRgvService;
+
+
@GetMapping("/io/mode/info/site")
@ManagerAuth(memo = "鍏ュ嚭搴撴ā寮�")
public R ioMode(){
diff --git a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
index ef92490..db9082c 100644
--- a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -69,11 +69,26 @@
private boolean flag1007 = false;
+ private Map<Integer, Long> staNoSet = new HashMap<>();
+
+ public Map<Integer, Long> getStaNoSet() {
+ return staNoSet;
+ }
+
+ public void setStaNoSet(Map<Integer, Long> staNoSet) {
+ this.staNoSet = staNoSet;
+ }
/**
* 鍏ュ簱锛屼粠鎷f枡绔欏埌鍏ュ簱绔欙紙CTU鍙栬揣绔欙級
*/
public synchronized void generateStoreWrkFile(Integer mark) {
+ for (Map.Entry<Integer, Long> entry : staNoSet.entrySet()) {
+ if (entry.getValue() != null && System.currentTimeMillis() - entry.getValue() > 1000 * 60 * 5) {
+ log.info("瓒呮椂锛歿}", entry.getKey());
+ staNoSet.remove(entry.getKey());
+ }
+ }
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = devpThread.getStation().get(1004);
@@ -83,9 +98,13 @@
staProtocol = staProtocol.clone();
}
// 鍒ゆ柇鏄惁婊¤冻鏉′欢
-// if (!staProtocol.isLoading()) {
-// return;
-// }
+ if (!staProtocol.isLoading()) {
+ return;
+ }
+ Long i = staNoSet.get(staProtocol.getWorkNo());
+ if (i != null) {
+ return;
+ }
// && staProtocol.isInEnable()
if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
if (staProtocol.getStaNo() == 1004) {
@@ -96,6 +115,7 @@
}
staProtocol.setStaNo((short) 1007);
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+ staNoSet.put(staProtocol.getWorkNo(), System.currentTimeMillis());
log.info("鍏ュ簱杈撻�佺嚎涓嬪彂锛歿},{}", staProtocol.getWorkNo(), 1007);
}
@@ -302,7 +322,7 @@
}
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
StaProtocol staProtocol = devpThread.getStation().get(1001);
- if (i >= 6) {
+ if (i >= 7) {
OpenBusSubmitParam openBusSubmitParam = new OpenBusSubmitParam();
openBusSubmitParam.setBatch(DateUtils.convert(new Date()));
List<TaskDto> taskList = new ArrayList<>();
diff --git a/src/main/java/com/zy/core/CtuMainProcess.java b/src/main/java/com/zy/core/CtuMainProcess.java
index 8d8633e..358c875 100644
--- a/src/main/java/com/zy/core/CtuMainProcess.java
+++ b/src/main/java/com/zy/core/CtuMainProcess.java
@@ -58,10 +58,10 @@
//1001鑷姩鍑�
- //ctuMainService.autoOut(4);
+ ctuMainService.autoOut(4);
//1007鑷姩鍏�
- //ctuMainService.autoIn(5);
+ ctuMainService.autoIn(5);
//ctuMainService.updateSta(6);
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 5abe98d..094fd26 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -121,12 +121,16 @@
// 鍐欐暟鎹� ID+鐩爣绔�
case 2:
write((StaProtocol) task.getData());
- log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
+ log.info("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
break;
// 鍐欐暟鎹� ID+鐩爣绔�
case 3:
write2((StaProtocol) task.getData());
- log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
+ log.info("杈撻�佺嚎涓嬪彂鍛戒护3锛�");
+ break;
+ case 4:
+ write4((StaProtocol) task.getData());
+ log.info("杈撻�佺嚎涓嬪彂鍛戒护4锛�");
break;
default:
break;
@@ -253,6 +257,16 @@
if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
staProtocol.setPakMk(true);
}
+ }
+ }
+
+ OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB102.0", (short) 2);
+ if (result4.IsSuccess) {
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1);
+ if (status[0] && status[1]) {
+ StaProtocol staProtocol = station.get(1007);
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
+ log.info("澶嶄綅1007");
}
}
@@ -413,7 +427,7 @@
do {
write = siemensS7Net.Write("DB102.0", array);
if (write.IsSuccess) {
- log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ log.error("鍐欏叆杈撻�佺嚎DB102.0鍛戒护鎴愬姛3銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
break;
} else {
writeCount++;
@@ -426,6 +440,32 @@
}
}
+ private void write4(StaProtocol staProtocol) throws InterruptedException {
+ if (null == staProtocol) {
+ return;
+ }
+ OperateResult write = null;
+ boolean[] array = new boolean[2];
+ array[0] = false;
+ array[1] = false;
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write = siemensS7Net.Write("DB102.0", array);
+ if (write.IsSuccess) {
+ log.error("44鍐欏叆杈撻�佺嚎DB102.0鍛戒护鎴愬姛3銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ break;
+ } else {
+ writeCount++;
+ log.error("44鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ } while (writeCount < 5);
+
+ if (!write.IsSuccess) {
+ News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ }
+ }
+
// 鏇存柊鍏ュ嚭搴撴ā寮�
private void updateIoMode() throws InterruptedException {
if (this.ioModeOf2F != IoModeType.NONE) {
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index e47b77d..d4fba38 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -22,8 +22,9 @@
<div class="sidebar">
<div class="nav">
<ul class="cl-effect-4">
- <li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li>
- <li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li>
+
+ <li><a id="pipeline" onclick="nav(this.id)" class="nav-select" href="#">杈撻�佽澶�</a></li>
+ <li><a id="console" onclick="nav(this.id)" class="nav-unselect" href="#">涓绘帶鍥�</a></li>
<li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li>
<li><a id="rgv" onclick="nav(this.id)" class="nav-unselect" href="#">RGV</a></li>
</ul>
--
Gitblit v1.9.1