From e98d4b1133ed058bfe1e6af75be9975aebfc32d8 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 16:00:35 +0800
Subject: [PATCH] 最后可运行版本
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 52 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 79e3fa9..602624a 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -13,6 +13,7 @@
import com.zy.asrs.entity.DeviceDataLog;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.DeviceDataLogService;
+import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.common.utils.News;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -25,6 +26,7 @@
import com.zy.core.model.protocol.StaProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import java.text.MessageFormat;
import java.util.*;
@@ -131,6 +133,9 @@
case 2:
write((StaProtocol)task.getData());
break;
+ case 3:
+ write1((StaProtocol)task.getData());
+ break;
default:
break;
}
@@ -233,20 +238,40 @@
}
}
- //澶栧舰妫�娴�
+ //澶栧舰妫�娴� - 甯﹂槻鎶栧鐞�
Integer[] arr={401,402};
- OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.700.0", (short) (arr.length*6));
+ OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.702.0", (short) (arr.length*6));
+
for (int i = 0; i < arr.length; i++) {
StaProtocol staProtocol1 = station.get(arr[i]);
- if(resultErr1.IsSuccess){
+ if(resultErr1.IsSuccess && staProtocol1 != null){
boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i*6, 1);
+
+ // 銆愭柊澧炪�戜繚瀛樻棫鐨勮秴楂樼姸鎬�
+ boolean oldHighError = staProtocol1.isHighError();
+
+ // 鏇存柊鎵�鏈夌姸鎬�
staProtocol1.setFrontError(status1[0]);
staProtocol1.setBackError(status1[1]);
- staProtocol1.setHighError(status1[2]);
+ staProtocol1.setHighError(status1[2]); // 瓒呴珮鐘舵��
staProtocol1.setLeftError(status1[3]);
staProtocol1.setRightError(status1[4]);
staProtocol1.setWeightError(status1[5]);
staProtocol1.setBarcodeError(status1[6]);
+
+ // 銆愭柊澧炪�戣秴楂樼姸鎬佸彉鍖栧鐞� - 鍙湁鍙樺寲鏃舵墠璋冪敤
+ if (oldHighError != status1[2]) {
+ try {
+ RcsServiceImpl rcsService = SpringUtils.getBean(RcsServiceImpl.class);
+ if (rcsService != null) {
+ rcsService.agvPause(staProtocol1);
+ log.info("瓒呴珮鐘舵�佸彉鍖� - 绔欑偣: {}, 鐘舵��: {} -> {}, 宸茶皟鐢ˋGV鎺у埗",
+ arr[i], oldHighError, status1[2]);
+ }
+ } catch (Exception e) {
+ log.error("璋冪敤agvPause澶辫触 - 绔欑偣: {}, 閿欒: {}", arr[i], e.getMessage());
+ }
+ }
}
}
@@ -340,6 +365,29 @@
}
}
+ /**
+ * 鎵爜鍣ㄨЕ鍙�
+ */
+ private void write1(StaProtocol staProtocol) throws InterruptedException {
+ if (null == staProtocol) {
+ return;
+ }
+
+ int index = 0;
+ if(staProtocol.getSiteId() == 402){
+ index = 1;
+ }
+ OperateResult writeResult1 = siemensS7Net.Write("DB100.500." + index, true); // 鎵爜鍣ㄨЕ鍙�
+ if (!writeResult1.IsSuccess) {
+
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ } else {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+ log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ }
+ }
+
// 鏇存柊鍏ュ嚭搴撴ā寮�
private void updateIoMode() throws InterruptedException {
if (this.ioModeOf2F != IoModeType.NONE) {
--
Gitblit v1.9.1