From 8dad82eb9bc7f51e0d22f6e92106733d4386627c Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期日, 06 七月 2025 16:13:31 +0800
Subject: [PATCH] 读取更新罐装线要桶数量

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   68 ++++++++++++++++++++++++++++++----
 1 files changed, 60 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..4072c4a 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;
                 }
@@ -227,19 +231,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鍑�閲�
@@ -575,6 +586,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