From 7068307fa5a395b2027e9dd9ce8b2a4819d8ee9d Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期六, 16 八月 2025 15:33:14 +0800
Subject: [PATCH] 修复4号堆垛机不出一个入一个情况
---
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 88 ++++++++++++++++++++++++++++++++++++++++----
1 files changed, 80 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 891c701..d8e8d66 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -156,6 +156,10 @@
case 5:
writeGzxkc((StaProtocol)task.getData());
break;
+ // 缁欑綈瑁呯嚎鍐欑綈瑁呮暟閲�
+ case 6:
+ writeGzsl((StaProtocol)task.getData());
+ break;
default:
break;
}
@@ -194,6 +198,25 @@
staProtocol.setPakMk(true);
}
}
+
+ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ try {
+ List<BasDevp> basDevps = new ArrayList<>();
+ for (Integer siteId2 : staNos) {
+ StaProtocol staProtocol2 = station.get(siteId2);
+ basDevps.add(staProtocol2.toSqlModel());
+ }
+
+ BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+ if(basDevps.size() > 0) {
+ if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
+ throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+ }
+ }
+
+ } catch (Exception e){
+
+ }
}
@Override
@@ -227,19 +250,26 @@
OperateResultExOne<byte[]> read = siemensS7Net.Read("DB101.0", (short) 64);
if (read.IsSuccess) {
// 15绉掓墦鍗颁竴涓嬫棩蹇�
- if (System.currentTimeMillis() - lastLogTime >= 15000) {
- OperateResultExOne<byte[]> readKc = siemensS7Net.Read("DB100.6", (short) 2);
- if(readKc.IsSuccess){
- short i = siemensS7Net.getByteTransform().TransInt16(readKc.Content, 0);
- log.info("璇粄}鍙风綈瑁呯嚎鍙嚭淇″彿鎴愬姛锛屽�硷細{}", slave.getId() -3, i);
- }
- lastLogTime = System.currentTimeMillis();
- }
+// if (System.currentTimeMillis() - lastLogTime >= 30000) {
+// OperateResultExOne<byte[]> readKc = siemensS7Net.Read("DB100.6", (short) 4);
+// if(readKc.IsSuccess){
+// short i = siemensS7Net.getByteTransform().TransInt16(readKc.Content, 0);
+// short wantBucketCount = siemensS7Net.getByteTransform().TransInt16(readKc.Content, 2);
+// log.info("璇粄}鍙风綈瑁呯嚎鍙嚭淇″彿鎴愬姛锛屽�硷細{}锛屽墿浣欒妗舵暟閲忥細{}", slave.getId() -3, i, wantBucketCount);
+// }
+// lastLogTime = System.currentTimeMillis();
+// }
// 鎴愬搧淇℃伅鍙嶉鍒扮綈瑁呯嚎鍑哄彛绔欑偣
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
StaProtocol staProtocol = devpThread.getStation().get(gzxResultSite.get(slave.getId()-4));
if (staProtocol != null) {
staProtocol.setWantBucketFlag(siemensS7Net.getByteTransform().TransInt16(read.Content, 0));// 缃愯绾胯妗跺瀷淇″彿
+ OperateResultExOne<byte[]> read2 = siemensS7Net.Read("DB100.8", (short) 2); // 缃愯绾跨綈瑁呮暟閲忥紙鎷栵級
+ if(read2.IsSuccess){
+ staProtocol.setWantBucketCount(siemensS7Net.getByteTransform().TransInt16(read2.Content, 0));
+ } else {
+ log.error("璇粄}鍙风綈瑁呯嚎瑕佹嫋鏁伴噺澶辫触", slave.getId() -3);
+ }
staProtocol.setWrkNo(siemensS7Net.getByteTransform().TransInt16(read.Content, 2));
double weight208l1 = siemensS7Net.getByteTransform().TransSingle(read.Content, 4); // 200L妗�1鍑�閲�
double weight208l2 = siemensS7Net.getByteTransform().TransSingle(read.Content, 8); // 200L妗�2鍑�閲�
@@ -454,6 +484,7 @@
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
News.info("SiemensDevp"+" - 5"+" - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
}
+ read();
}
/**
@@ -575,6 +606,47 @@
}
/**
+ * 缁欑綈瑁呯嚎鍐欑綈瑁呮暟閲�
+ */
+ private void writeGzsl(StaProtocol staProtocol) throws InterruptedException {
+ if (null == staProtocol) {
+ return;
+ }
+ short[] common = new short[1];
+ common[0] = (short) staProtocol.getWantBucketCount();
+
+ OperateResult write;
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write = siemensS7Net.Write("DB100.8", common);
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> read = siemensS7Net.Read("DB100.8", (short) 2);
+ if(write.IsSuccess && read.IsSuccess){
+ short i = siemensS7Net.getByteTransform().TransInt16(read.Content, 0);
+ if ( i != common[0]) {
+ writeCount++;
+ log.error("缁欑綈瑁呯嚎鍐欑綈瑁呮暟閲忔垚鍔燂紝浣嗗洖璇诲け璐ワ細璇诲彇鍊硷細{},杈撻�佺嚎plc缂栧彿={}锛屽啓鍏ユ鏁�={}", i, slave.getId(), writeCount);
+ continue;
+ }
+ break;
+ }
+ else {
+ writeCount++;
+ log.error("缁欑綈瑁呯嚎鍐欑綈瑁呮暟閲忥細{}澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛屽啓鍏ユ鏁�={}", common[0], slave.getId(), writeCount);
+ }
+ }while (writeCount<5);
+
+ if (!write.IsSuccess) {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戠粰缁欑綈瑁呯嚎鍐欑綈瑁呮暟閲忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), staProtocol.getWantBucketCount()));
+ News.error("缁欑綈瑁呯嚎鍐欑綈瑁呮暟閲忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), staProtocol.getWantBucketCount());
+ } else {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 缁欑綈瑁呯嚎鍐欑綈瑁呮暟閲忓懡浠や笅鍙戞垚鍔� [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), staProtocol.getWantBucketCount()));
+ News.info("缁欑綈瑁呯嚎鍐欑綈瑁呮暟閲忓彿鍛戒护涓嬪彂鎴愬姛 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), staProtocol.getWantBucketCount());
+ }
+ }
+
+ /**
* 蹇冭烦
*/
private void heartbeat(){
--
Gitblit v1.9.1