From d6a0fd27dde43c28bc37c63eac3addfb6b52926d Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期二, 13 五月 2025 10:49:25 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/model/protocol/StaProtocol.java   |  102 +---
 /dev/null                                                   |  865 ---------------------------------------
 src/main/java/com/zy/asrs/controller/SiteController.java    |   45 +-
 src/main/java/com/zy/asrs/controller/ConsoleController.java |    8 
 src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java  |   10 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   28 
 src/main/java/com/zy/common/model/LocTypeDto.java           |    9 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |  249 ++++------
 8 files changed, 185 insertions(+), 1,131 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index 122db5b..8785527 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -116,7 +116,7 @@
             SiteLatestDataVo vo = new SiteLatestDataVo();
             StaProtocol staProtocol = entry.getValue();
             vo.setSiteId(String.valueOf(entry.getKey())); // 绔欑偣缂栧彿
-            vo.setWorkNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+            vo.setWorkNo(staProtocol.getWorkNo().shortValue()); // 宸ヤ綔鍙�
             vo.setSiteStatus(SiteStatusType.process(staProtocol));  // 鐘舵��
             vos.add(vo);
         }
@@ -276,7 +276,7 @@
                         return R.error("鏁版嵁搴撶淮鎶ゅ紓甯�");
                     }
                     vo.setSiteId(siteId);   // 绔欑偣缂栧彿
-                    vo.setWorkNo(staProtocol.getWorkNo());   // 宸ヤ綔鍙�
+                    vo.setWorkNo(staProtocol.getWorkNo().shortValue());   // 宸ヤ綔鍙�
 
                     if (staProtocol.getWorkNo() > 0) {
                         TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo().intValue());
@@ -290,8 +290,8 @@
                         }
                     }
 
-                    vo.setAutoing(staProtocol.stateType == DevpStateType.AUTO ? "Y" : "N"); //  鑷姩
-//                    vo.setLoading(staProtocol.isLoading()?"Y":"N"); //  鏈夌墿
+                    vo.setAutoing(staProtocol.isAutoing() ? "Y" : "N"); //  鑷姩
+                    vo.setLoading(staProtocol.isLoading() ? "Y" : "N"); //  鏈夌墿
 
                     vo.setCanining(basDevp.getCanining());  //  鑳藉叆
                     vo.setCanouting(basDevp.getCanouting());    //  鑳藉嚭
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 8b65c43..56e7651 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -73,15 +73,15 @@
             list.add(vo);
             StaProtocol staProtocol = station.get(devp.getDevNo());
             if (null == staProtocol) { continue; }
-            vo.setWorkNo(staProtocol.getWorkNo());   //  宸ヤ綔鍙�
-            vo.setAutoing(staProtocol.stateType == DevpStateType.AUTO?"Y":"N");     //  鑷姩
-            vo.setLoading(staProtocol.workType == DevpWorkType.BUSY?"Y":"N");     // 鏈夌墿
-            vo.setInEnable(staProtocol.requestType == DevpRequestType.IN?"Y":"N");   // 鍙叆
-            vo.setOutEnable(staProtocol.requestType == DevpRequestType.OUT?"Y":"N"); // 鍙嚭
+            vo.setAutoing(staProtocol.isAutoing()?"Y":"N");     //  鑷姩
+            vo.setLoading(staProtocol.isLoading()?"Y":"N");     // 鏈夌墿
+            vo.setInEnable(staProtocol.isInEnable()?"Y":"N");   // 鍙叆
+            vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 鍙嚭
             vo.setPakMk(staProtocol.isPakMk()?"Y":"N");       // 鍏ュ簱鏍囪
-            vo.setEmptyMk(staProtocol.trayType == DevpTrayType.EMPTY?"Y":"N");     // 绌烘澘淇″彿
+            vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N");     // 绌烘澘淇″彿
             vo.setStaNo(staProtocol.getStaNo());                // 鐩爣绔�
-            vo.setLocType1(staProtocol.locType.desc);
+//            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�");     //楂樹綆搴撲綅
+            vo.setLocType1(devp.getDevNo()==102 ? "楂�" : "浣�");
         }
         return R.ok().add(list);
     }
@@ -105,14 +105,15 @@
             list.add(vo);
             StaProtocol staProtocol = station.get(devp.getDevNo());
             if (null == staProtocol) { continue; }
-            vo.setAutoing(staProtocol.stateType == DevpStateType.AUTO?"Y":"N");     //  鑷姩
-            vo.setLoading(staProtocol.workType == DevpWorkType.BUSY?"Y":"N");     // 鏈夌墿
-            vo.setInEnable(staProtocol.requestType == DevpRequestType.IN?"Y":"N");   // 鍙叆
-            vo.setOutEnable(staProtocol.requestType == DevpRequestType.OUT?"Y":"N"); // 鍙嚭
+            vo.setAutoing(staProtocol.isAutoing()?"Y":"N");     //  鑷姩
+            vo.setLoading(staProtocol.isLoading()?"Y":"N");     // 鏈夌墿
+            vo.setInEnable(staProtocol.isInEnable()?"Y":"N");   // 鍙叆
+            vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 鍙嚭
             vo.setPakMk(staProtocol.isPakMk()?"Y":"N");       // 鍏ュ簱鏍囪
-            vo.setEmptyMk(staProtocol.trayType == DevpTrayType.EMPTY?"Y":"N");     // 绌烘澘淇″彿
+            vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N");     // 绌烘澘淇″彿
             vo.setStaNo(staProtocol.getStaNo());                // 鐩爣绔�
-            vo.setLocType1(staProtocol.locType.desc);
+//            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�");     //楂樹綆搴撲綅
+            vo.setLocType1(devp.getDevNo()==102 ? "楂�" : "浣�");
         }
 
         return R.ok().add(list);
@@ -163,17 +164,15 @@
                 if (siteId.equals(entry.getKey())) {
                     StaProtocol staProtocol = entry.getValue();
                     vo.setDevNo(entry.getKey());    // 绔欑偣缂栧彿
-                    vo.setWorkNo(staProtocol.getWorkNo());   //  宸ヤ綔鍙�
-                    vo.setAutoing(staProtocol.stateType == DevpStateType.AUTO?"Y":"N");     //  鑷姩
-                    vo.setLoading(staProtocol.workType == DevpWorkType.BUSY?"Y":"N");     // 鏈夌墿
-                    vo.setInEnable(staProtocol.requestType == DevpRequestType.IN?"Y":"N");   // 鍙叆
-                    vo.setOutEnable(staProtocol.requestType == DevpRequestType.OUT?"Y":"N"); // 鍙嚭
-                    vo.setPakMk(staProtocol.isPakMk()?"Y":"N");       // 鍏ュ簱鏍囪
-                    vo.setEmptyMk(staProtocol.trayType == DevpTrayType.EMPTY?"Y":"N");     // 绌烘澘淇″彿
+                    vo.setWorkNo(staProtocol.getWorkNo().shortValue());   //  宸ヤ綔鍙�
+                    vo.setAutoing(staProtocol.isAutoing()?"Y":"N");     //  鑷姩
+                    vo.setLoading(staProtocol.isLoading()?"Y":"N");     // 鏈夌墿
+                    vo.setInEnable(staProtocol.isInEnable()?"Y":"N");   // 鍙叆
+                    vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 鍙嚭
                     vo.setPakMk(staProtocol.isPakMk()?"Y":"N");       // 闇�姹�1
-                    vo.setEmptyMk(staProtocol.trayType == DevpTrayType.EMPTY?"Y":"N");     // 绌烘澘淇″彿
+                    vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N");     // 绌烘澘淇″彿
                     vo.setStaNo(staProtocol.getStaNo());                // 鐩爣绔�
-                    vo.setLocType1(staProtocol.locType.desc);     //楂樹綆搴撲綅
+                    vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�");     //楂樹綆搴撲綅
                     return R.ok().add(vo);
                 }
             }
@@ -199,7 +198,7 @@
                         staProtocol = staProtocol.clone();
                     }
                     if (workNo != null) {
-                        staProtocol.setWorkNo(workNo.shortValue());
+                        staProtocol.setWorkNo(workNo);
                     }
                     if (staNo != null) {
                         staProtocol.setStaNo(staNo);
diff --git a/src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java b/src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java
index ccf96a7..9f60b76 100644
--- a/src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java
+++ b/src/main/java/com/zy/asrs/domain/enums/SiteStatusType.java
@@ -27,19 +27,19 @@
         if (staProtocol == null) {
             return null;
         }
-        if (staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.BUSY && staProtocol.getWorkNo() > 0) {
+        if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0) {
             return SITE_AUTO_RUN_ID;
         }
-        if (staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.BUSY) {
+        if (staProtocol.isAutoing() && staProtocol.isLoading()) {
             return SITE_AUTO_RUN;
         }
-        if (staProtocol.stateType == DevpStateType.AUTO && staProtocol.getWorkNo() > 0) {
+        if (staProtocol.isAutoing() && staProtocol.getWorkNo() > 0) {
             return SITE_AUTO_ID;
         }
-        if (staProtocol.stateType == DevpStateType.AUTO) {
+        if (staProtocol.isAutoing()) {
             return SITE_AUTO;
         }
-        if (staProtocol.stateType != DevpStateType.AUTO) {
+        if (!staProtocol.isAutoing()) {
             return SITE_UNAUTO;
         }
         return null;
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 4817d93..95122b1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -116,7 +116,7 @@
                     } else {
                         staProtocol = staProtocol.clone();
                     }
-                    Short workNo = staProtocol.getWorkNo();
+                    Short workNo = staProtocol.getWorkNo().shortValue();
                     Short stano = staProtocol.getStaNo();
 
                     // 灏哄妫�娴嬪紓甯�
@@ -152,10 +152,10 @@
                     }
 
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                    if (staProtocol.stateType == DevpStateType.AUTO
-                            && staProtocol.workType == DevpWorkType.BUSY
-                            && staProtocol.requestType == DevpRequestType.IN
-                            && staProtocol.trayType == DevpTrayType.FULL
+                    if (staProtocol.isAutoing()
+                            && staProtocol.isLoading()
+                            && staProtocol.isInEnable()
+                            && !staProtocol.isEmptyMk()
                             && staProtocol.isPakMk()) {
                         // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                         BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
@@ -252,7 +252,7 @@
 
                             StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
                                     .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                            staProtocol.setWorkNo(taskWrk.getWrkNo());
                             staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
 
@@ -329,10 +329,7 @@
                             staProtocol = staProtocol.clone();
                         }
 
-                        if (staProtocol.stateType == DevpStateType.AUTO
-                                && staProtocol.workType == DevpWorkType.BUSY
-                                && staProtocol.requestType == DevpRequestType.OUT
-                                && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
+                        if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
                             // 鏌ヨ宸ヤ綔妗�
                             TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
                             if (taskWrk == null) {
@@ -340,7 +337,7 @@
                             }
                             log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
 //                            R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
-                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                            staProtocol.setWorkNo(taskWrk.getWrkNo());
                             staProtocol.setStaNo(staDesc.getStnNo().shortValue());
                             boolean offer = false;
                             try {
@@ -442,7 +439,8 @@
                     continue;
                 }
 
-                if (staProtocol.stateType == DevpStateType.AUTO && staProtocol.workType == DevpWorkType.BUSY && staProtocol.getWorkNo() > 0) {
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+                        && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
                     flag = true;
                 }
                 if (!flag) {
@@ -564,10 +562,8 @@
                     }
 
                     // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                    if (staProtocol.stateType == DevpStateType.AUTO
-                            && staProtocol.workType == DevpWorkType.IDLE
-                            && staProtocol.requestType == DevpRequestType.OUT
-                            && staProtocol.getWorkNo() == 0) {
+                    if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+                    ) {
                         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
                         // 鍫嗗灈鏈烘帶鍒惰繃婊�
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index e768cad..7506895 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -32,12 +32,15 @@
     }
 
     public LocTypeDto(StaProtocol staProtocol) {
-        if (staProtocol.locType.id.shortValue()!=1 && staProtocol.locType.id.shortValue()!=2 && staProtocol.locType.id.shortValue()!=3) {
+        if (staProtocol.isHigh() == staProtocol.isLow()) {
             throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
         }
-        this.locType1 = staProtocol.locType.id.shortValue();
+        if (staProtocol.isLow()) {
+            this.locType1 = 1; // 浣庡簱浣�
+        } else {
+            this.locType1 = 2; // 楂樺簱浣�
+        }
     }
-
     /**
      * 搴撲綅绫诲瀷瑙f瀽
      */
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 1cb666f..8883efe 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -1,11 +1,7 @@
 package com.zy.core.model.protocol;
 
 import com.zy.asrs.entity.BasDevp;
-import com.zy.core.enums.DevpType.*;
 import lombok.Data;
-
-import java.util.ArrayList;
-import java.util.List;
 
 /**
  * 杈撻�佺嚎plc鍗曚釜绔欑偣璇︾粏淇℃伅
@@ -19,68 +15,36 @@
 
     // ----------------------------------------------------------------
     // 宸ヤ綔鍙�
-    private Short workNo = 0;
+    private Integer workNo = 0;
 
     // ----------------------------------------------------------------
     // 鐩爣绔�
     private Short staNo;
 
-    //鎸囦护ID
-    private Integer commandId;
-
     // ----------------------------------------------------------------
-    //妯″紡
-    private Short mode;
-    public DevpModeType modeType;
-    //鐘舵��
-    private Short state;
-    public DevpStateType stateType;
-    //宸ヤ綔鐘舵��
-    private Short workIo;
-    public DevpWorkType workType;
-    //璇锋眰淇″彿
-    private Short requestIo;
-    public DevpRequestType requestType;
-    //鎵樼洏鐘舵��
-    private Short trayIo;
-    public DevpTrayType trayType;
-    //搴撲綅鐘舵��
-    private Short locIo;
-    public DevpLocType locType;
-    //鏉$爜淇℃伅
-    private String barcode;
-    //閲嶉噺淇℃伅
-    private Double weightIo;
-    //澶囩敤
-    private Short spare;
+    // 鑷姩
+    private boolean autoing;
 
-    public void setMode(Short mode) {
-        this.mode = mode;
-        this.modeType = DevpModeType.get(mode);
-    }
-    public void setState(Short state) {
-        this.state = state;
-        this.stateType = DevpStateType.get(state);
-    }
-    public void setWorkIo(Short workIo) {
-        this.workIo = workIo;
-        this.workType = DevpWorkType.get(workIo);
-    }
-    public void setRequestIo(Short requestIo) {
-        this.requestIo = requestIo;
-        this.requestType = DevpRequestType.get(requestIo);
-    }
-    public void setTrayIo(Short trayIo) {
-        this.trayIo = trayIo;
-        this.trayType = DevpTrayType.get(trayIo);
-    }
-    public void setLocIo(Short locIo) {
-        this.locIo = locIo;
-        this.locType = DevpLocType.get(locIo);
-    }
+    // 鏈夌墿
+    private boolean loading;
 
+    // 鍙叆
+    private boolean inEnable;
 
+    // 鍙嚭
+    private boolean outEnable;
 
+    // 绌烘澘淇″彿
+    private boolean emptyMk;
+
+    // 婊℃墭鐩�
+    private boolean fullPlt;
+
+    // 楂�
+    private boolean high;
+
+    // 浣�
+    private boolean low;
 
     // 閿佸畾鏍囪
     private boolean pakMk = true;
@@ -88,9 +52,14 @@
     // 鍏ュ簱鏆傚瓨鏁�
     private Short inQty;
 
+    // 闅斿绔欑偣锛堝彴杞︿綅缃級
+    private String nearbySta;
 
+    //lfd鍏ュ簱鍗拌  褰搒tamp>=2鏃舵墠鍏ュ簱
+    private Integer stamp = 0;
 
-
+    //鎸囦护ID
+    private Integer commandId;
 
     // 澶栧舰妫�娴� ------------------------------------------------------------------------
 
@@ -140,26 +109,19 @@
         }
     }
 
-    public Boolean isPakReset(){
-        if (workNo == 0 && workType == DevpWorkType.BUSY && requestType != DevpRequestType.IN){
-            return true;
-        }
-        return false;
-    }
-
     public BasDevp toSqlModel(){
         BasDevp basDevp = new BasDevp();
         basDevp.setDevNo(siteId);
         basDevp.setWrkNo(workNo.intValue());
-        basDevp.setAutoing(stateType == DevpStateType.AUTO?"Y":"N");
-        basDevp.setLoading(workType == DevpWorkType.BUSY?"Y":"N");
-        basDevp.setInEnable(requestType == DevpRequestType.IN?"Y":"N");
-        basDevp.setOutEnable(requestType == DevpRequestType.OUT?"Y":"N");
+        basDevp.setAutoing(autoing?"Y":"N");
+        basDevp.setLoading(loading?"Y":"N");
+        basDevp.setInEnable(inEnable?"Y":"N");
+        basDevp.setOutEnable(outEnable?"Y":"N");
         basDevp.setLocType1((short) 0);  // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿
         basDevp.setLocType2((short) 0);  // 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿
         basDevp.setLocType3((short) 0);  // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿
-        basDevp.setLocType1(DevpLocType.get(locIo).id.shortValue());
-//        basDevp.setInQty(inQty !=null ?(int)inQty : 0);
+        basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2);
+        basDevp.setInQty(inQty !=null ?(int)inQty : 0);
         return basDevp;
     }
 
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 47a26e4..e4132da 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -5,6 +5,7 @@
 import HslCommunication.Profinet.Siemens.SiemensPLCS;
 import HslCommunication.Profinet.Siemens.SiemensS7Net;
 import com.alibaba.fastjson.JSON;
+import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
@@ -14,7 +15,7 @@
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
-import com.zy.core.enums.DevpType.DevpWorkType;
+import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.IoModeType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.DevpSlave;
@@ -42,8 +43,9 @@
     private SiemensS7Net siemensS7Net;
     private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
     private short heartBeatVal = 1;
-    public static boolean is = true;
-
+//    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
+//
+//    }};
     public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
         add(101);add(102);add(103);add(104);
         add(105);add(106);add(107);add(108);
@@ -51,16 +53,20 @@
         add(206);add(207);add(208);add(209);add(210);
         add(211);add(212);
     }};
-//    public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
-//       add(1040);add(1041);add(1042);add(1043);add(1044);add(1045);add(1046);add(1047);
-//       add(2010);add(2011);add(2012);add(2013);add(2014);add(2015);add(2016);add(2017);
-//       add(3010);add(3011);add(3012);add(3013);add(3014);add(3015);add(3016);add(3017);
-//    }};
+
+    public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
+        add(1);add(2);add(3);add(4);
+        add(5);add(6);add(7);add(8);
+    }};
+
+    public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
+        add(106); add(107); add(159);
+    }};
 
     /**
      * 鏉$爜鏁伴噺
      */
-    private int barcodeSize = 8;
+    private int barcodeSize = 6;
 
     /**
      * 鍏ュ嚭搴撴ā寮�
@@ -83,8 +89,6 @@
         switch (slave.getId()) {
             case 1:
                 return staNos1;
-//            case 2:
-//                return staNos2;
             default:
                 throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
         }
@@ -108,8 +112,8 @@
                         break;
                     // 鍐欐暟鎹� ID+鐩爣绔�
                     case 2:
-                        writeD((StaProtocol)task.getData(),1);
-//                        log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo());
+                        write((StaProtocol)task.getData());
+                        log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo());
                         break;
                     default:
                         break;
@@ -136,18 +140,15 @@
                 staProtocol.setSiteId(siteId);
                 station.put(siteId, staProtocol);
             }
-            staProtocol.setWorkNo((short) 0);     // 宸ヤ綔鍙�
-            staProtocol.setStaNo((short) 0);   // 鐩爣绔�
-            staProtocol.setState((short) 0);  // 妯″紡鐘舵�� 0鍋滄満锛�=1鎵嬪姩锛�=2鑷姩锛�=3鏁呴殰
-            staProtocol.setWorkIo((short) 0);
-            staProtocol.setRequestIo((short) 0);
-            staProtocol.setTrayIo((short) 0);
-            staProtocol.setLocIo((short) 0);
-            staProtocol.setBarcode("-");
-            staProtocol.setWeightIo(0.0);
-            staProtocol.setMode((short) 0);
+            staProtocol.setWorkNo(0);    // ID
+            staProtocol.setAutoing(false);      // 鑷姩
+            staProtocol.setLoading(false);      // 鏈夌墿
+            staProtocol.setInEnable(false);     // 鍙叆
+            staProtocol.setOutEnable(false);    // 鍙嚭
+            staProtocol.setEmptyMk(false);      // 绌烘澘淇″彿
+            staProtocol.setStaNo((short) 0);     // 鐩爣绔�
 
-            if (!staProtocol.isPakMk() && staProtocol.workType == DevpWorkType.IDLE) {
+            if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                 staProtocol.setPakMk(true);
             }
         }
@@ -181,35 +182,91 @@
 //        updateIoMode();
         ArrayList<Integer> staNos = getStaNo();
         int staNoSize = staNos.size();
-        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*66));
+        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB107.0", (short) (staNoSize*8));
         if (result.IsSuccess) {
             for (int i = 0; i < staNoSize; i++) {
                 Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
                 StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
                     staProtocol = new StaProtocol();
+                    staProtocol.setSiteId(siteId);
                     station.put(siteId, staProtocol);
                 }
-                staProtocol.setSiteId(siteId);
-                staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i*66 + 8));     // 宸ヤ綔鍙�
-                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 12));   // 鐩爣绔�
-                staProtocol.setState(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 14));  // 妯″紡鐘舵�� 0鍋滄満锛�=1鎵嬪姩锛�=2鑷姩锛�=3鏁呴殰
-                staProtocol.setWorkIo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 16));
-                staProtocol.setRequestIo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 18));
-                staProtocol.setTrayIo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 20));
-                staProtocol.setLocIo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 22));
-                staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content,i*66 + 24,16, "UTF-8").trim());
-//                staProtocol.setWeightIo(siemensS7Net.getByteTransform().TransDouble(result.Content,i*66 + 40));
-                staProtocol.setMode(siemensS7Net.getByteTransform().TransInt16(result.Content, i*66 + 44));
+                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8));     // 宸ヤ綔鍙�
 
-                if (!staProtocol.isPakMk() && (staProtocol.workType == DevpWorkType.IDLE  || staProtocol.isPakReset())) {
+                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4));   // 鐩爣绔�
+
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
+                staProtocol.setAutoing(status[0]);  // 鑷姩
+                staProtocol.setLoading(status[1]);  // 鏈夌墿
+                staProtocol.setInEnable(status[2]); // 鍙叆
+                staProtocol.setOutEnable(status[3]);// 鍙嚭
+                staProtocol.setEmptyMk(status[4]);  // 绌烘澘淇″彿
+                staProtocol.setFullPlt(status[5]);  // 婊℃墭鐩�
+                staProtocol.setHigh(status[6]);     // 楂樺簱浣�
+                staProtocol.setLow(status[7]);      // 浣庡簱浣�
+
+                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                     staProtocol.setPakMk(true);
                 }
             }
         }
 
+        //鏉$爜鎵弿鍣�
+        ArrayList<Integer> barcodeList = BarcodeList;
+        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB107.840", (short) (barcodeList.size() * 8));
+        if (result2.IsSuccess) {
+            for (int i = 0; i < barcodeList.size(); i++) {
+                Integer barcodeId = barcodeList.get(i);
+                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
+                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                    barcodeThread.setBarcode(barcode);
+                }
+            }
+        }
+        //澶栧舰妫�娴�
+        ArrayList<Integer> staNoErrs = staNosErrList;
+        int staNoErrsSize = staNoErrs.size();
+        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB107.800", (short) (staNoErrsSize*8));
+        if (resultErr.IsSuccess){
+            for (int i = 0;i<3;i++){
+                Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1);
+                StaProtocol staProtocol = station.get(siteId);
+                staProtocol.setFrontErr(status[0]);
+                staProtocol.setBackErr(status[1]);
+                staProtocol.setHighErr(status[2]);
+                staProtocol.setLeftErr(status[3]);
+                staProtocol.setRightErr(status[4]);
+                staProtocol.setWeightErr(status[5]);
+                staProtocol.setBarcodeErr(status[6]);
+            }
+        }
+
+        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB13.2", (short) (staNoSize*4));
+        if (resultErr2.IsSuccess) {
+            for (int i = 0; i < staNoSize; i++) {
+                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4, 1);
+                StaProtocol staProtocol = station.get(siteId);
+                staProtocol.setBreakerErr(status[0]);
+                staProtocol.setInfraredErr(status[1]);
+                staProtocol.setOutTimeErr(status[2]);
+                staProtocol.setSeizeSeatErr(status[3]);
+                staProtocol.setWrkYgoodsN(status[4]);
+                staProtocol.setInverterErr(status[5]);
+                staProtocol.setContactErr(status[6]);
+                staProtocol.setUpcontactErr(status[7]);
+
+            }
+        }
+
+
         if (result.IsSuccess) {
+
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+
             // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
             try {
                 List<BasDevp> basDevps = new ArrayList<>();
@@ -217,6 +274,7 @@
                     StaProtocol staProtocol = station.get(siteId);
                     basDevps.add(staProtocol.toSqlModel());
                 }
+
                 BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
                 if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
                     throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
@@ -245,14 +303,14 @@
         int index = staNos.indexOf(staProtocol.getSiteId());
         OperateResult write = null;
         OperateResult write1 = null;
-        OperateResult write2 = null;
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            write = siemensS7Net.Write("DB100." + index*66, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+            write = siemensS7Net.Write("DB108." + index*6, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
             Thread.sleep(200);
-            write1 = siemensS7Net.Write("DB100." + (index*66+4), staProtocol.getStaNo());    // 鐩爣绔�
+            write1 = siemensS7Net.Write("DB108." + (index*6+4), staProtocol.getStaNo().shortValue());    // 鐩爣绔�
             if(write.IsSuccess && write1.IsSuccess){
+                log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                 break;
             }
             else {
@@ -274,114 +332,15 @@
         }
     }
 
-    private void writeD(StaProtocol staProtocol,Integer count)throws InterruptedException{
-
-        boolean reset = true;
-        if (null == staProtocol) {
-            return;
-        }
-        staProtocol = staProtocol.clone();
-        short oriWrkNo = staProtocol.getWorkNo();
-        short oriStaNo = staProtocol.getStaNo();
-        ArrayList<Integer> staNos = getStaNo();
-        int index = staNos.indexOf(staProtocol.getSiteId());
-
-
-        if(writeWrk(staProtocol,1)){
-
-            int whileCount = 0;
-            OperateResult write3 = siemensS7Net.Write("DB100." + (index*66+6), (short) 1);
-            if (write3.IsSuccess){
-                News.info("杈撻�佺嚎鍛戒护涓嬪彂[id:"+slave.getId()+"] >>>>>"+"["+1+"]");
-                Thread.sleep(100);
-                do {
-                    OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100." + (index * 66 + 6), (short) 2);
-                    short mk = siemensS7Net.getByteTransform().TransInt16(result2.Content, 0);
-                    if (mk == 2) {
-                        OperateResult write5 = siemensS7Net.Write("DB100." + index * 66, 0);    // 宸ヤ綔鍙�
-                        Thread.sleep(100);
-                        OperateResult write6 = siemensS7Net.Write("DB100." + (index * 66 + 4), (short) 0);    // 鐩爣绔�
-                        Thread.sleep(100);
-                        OperateResult write4 = siemensS7Net.Write("DB100." + (index * 66 + 6), (short) 0);
-                        reset = false;
-                        if (write4.IsSuccess && write5.IsSuccess && write6.IsSuccess) {
-                            News.info("杈撻�佺嚎鍛戒护涓嬪彂[id:" + slave.getId() + "] >>>>>" + "[" + "0,0,0" + "]");
-                            OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100." + (index * 66), (short) 8);
-                            Integer wrkNo1 = siemensS7Net.getByteTransform().TransInt32(result1.Content, 0);
-                            short staNo1 = siemensS7Net.getByteTransform().TransInt16(result1.Content, 4);
-                            short mk1 = siemensS7Net.getByteTransform().TransInt16(result1.Content, 6);
-                            if (wrkNo1 != 0 || staNo1 != 0 || mk1 != 0) {
-                                whileCount++;
-                                News.info("澶嶄綅澶辫触,杈撻�佺嚎鍛戒护涓嬪彂[id:" + slave.getId() + "] >>>>>" + "[" + "0,0,0" + "]");
-                            } else {
-                                News.info("杈撻�佺嚎澶嶄綅瀹屾垚");
-                                break;
-                            }
-
-                        }
-                    } else if (reset && mk == 0) {
-                        OperateResult write7 = siemensS7Net.Write("DB100." + (index * 66 + 6), (short) 1);
-                        News.info("鍥炶1澶辫触锛岃緭閫佺嚎鍛戒护涓嬪彂[id:" + slave.getId() + "] >>>>>" + "[" + "1" + "]");
-                        Thread.sleep(100);
-                        whileCount++;
-                    } else {
-                        whileCount++;
-                    }
-                } while (whileCount < 10);
+    // 鏇存柊鍏ュ嚭搴撴ā寮�
+    private void updateIoMode() throws InterruptedException {
+        if (this.ioModeOf2F != IoModeType.NONE) {
+            if (!siemensS7Net.Write("DB107.180", this.ioModeOf2F.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                News.error("SiemensDevp"+" - 6"+" - 鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
             }
-        }else {
-            log.error("杈撻�佸懡浠や笅鍙戝け璐�"+JSON.toJSONString(staProtocol));
         }
-
-
-
     }
-
-    private boolean writeWrk(StaProtocol staProtocol,Integer count)throws InterruptedException {
-
-        if (null == staProtocol) {
-            return false;
-        }
-        short oriWrkNo = staProtocol.getWorkNo();
-        short oriStaNo = staProtocol.getStaNo();
-
-        ArrayList<Integer> staNos = getStaNo();
-        int index = staNos.indexOf(staProtocol.getSiteId());
-        do {
-            log.info("杈撻�侀�掑綊娆℃暟:" + count);
-            OperateResult write1 = siemensS7Net.Write("DB100." + index * 66, staProtocol.getWorkNo().intValue());    // 宸ヤ綔鍙�
-            Thread.sleep(100);
-            OperateResult write2 = siemensS7Net.Write("DB100." + (index * 66 + 4), staProtocol.getStaNo());    // 鐩爣绔�
-            if (write1.IsSuccess && write2.IsSuccess) {
-                News.info("杈撻�佺嚎鍛戒护涓嬪彂[id:" + slave.getId() + "] >>>>>" + "[" + staProtocol.getWorkNo() + "," + staProtocol.getStaNo() + "]");
-                OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100." + (index * 66), (short) 6);
-                Integer wrkNo = siemensS7Net.getByteTransform().TransInt32(result.Content, 0);
-                short staNo = siemensS7Net.getByteTransform().TransInt16(result.Content, 4);
-                if (!(oriWrkNo == wrkNo) || oriStaNo != staNo) {
-                    if (count >= 5) {
-                        log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), count);
-                        return false;
-                    }
-                    count++;
-                }else {
-                    return true;
-                }
-            }
-        }while (count <=5);
-
-
-        return true;
-    }
-
-//    // 鏇存柊鍏ュ嚭搴撴ā寮�
-//    private void updateIoMode() throws InterruptedException {
-//        if (this.ioModeOf2F != IoModeType.NONE) {
-//            if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) {
-//                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
-//                News.error("SiemensDevp"+" - 6"+" - 鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
-//            }
-//        }
-//    }
 
     /**
      * 蹇冭烦
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread2.java b/src/main/java/com/zy/core/thread/SiemensDevpThread2.java
deleted file mode 100644
index 4c5cade..0000000
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread2.java
+++ /dev/null
@@ -1,865 +0,0 @@
-//package com.zy.core.thread;
-//
-//import HslCommunication.Core.Types.OperateResult;
-//import HslCommunication.Core.Types.OperateResultExOne;
-//import HslCommunication.Profinet.Siemens.SiemensPLCS;
-//import HslCommunication.Profinet.Siemens.SiemensS7Net;
-//import com.alibaba.fastjson.JSON;
-//import com.core.common.Cools;
-//import com.core.common.DateUtils;
-//import com.core.common.SpringUtils;
-//import com.core.exception.CoolException;
-//import com.zy.asrs.entity.BasDevp;
-//import com.zy.asrs.service.*;
-//import com.zy.core.DevpThread;
-//import com.zy.core.cache.MessageQueue;
-//import com.zy.core.cache.OutputQueue;
-//import com.zy.core.cache.SlaveConnection;
-//import com.zy.core.enums.IoModeType;
-//import com.zy.core.enums.SlaveType;
-//import com.zy.core.model.DevpSlave;
-//import com.zy.core.model.Task;
-//import com.zy.core.model.protocol.Cycle;
-//import com.zy.core.model.protocol.StaProtocol;
-//import lombok.Data;
-//import lombok.extern.slf4j.Slf4j;
-//
-//import java.text.MessageFormat;
-//import java.util.ArrayList;
-//import java.util.Date;
-//import java.util.List;
-//import java.util.Map;
-//import java.util.concurrent.ConcurrentHashMap;
-//
-///**
-// * 杈撻�佺嚎绾跨▼
-// * Created by vincent on 2020/8/4
-// */
-//@Data
-//@Slf4j
-//public class SiemensDevpThread2 implements Runnable, DevpThread {
-//
-//    private DevpSlave slave;
-//    private SiemensS7Net siemensS7Net;
-//    private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
-//    private short heartBeatVal = 1;
-//    public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
-//        add(101);add(102);add(103);add(104);
-//        add(105);add(106);add(107);add(108);
-//        add(201);add(202);add(203);add(204);add(205);
-//        add(206);add(207);add(208);add(209);add(210);
-//        add(211);add(212);
-//    }};
-//    /*public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
-//        add(200);add(201);add(202);add(203);
-//        add(204);add(205);add(206);add(207);
-//        add(208);add(209);add(210);add(211);
-//        add(212);add(213);add(214);add(215);
-//        add(216);add(217);add(218);add(219);
-//        add(220);add(221);add(222);add(223);
-//        add(224);add(225);add(226);add(227);
-//        add(228);add(229);add(230);add(231);
-//        add(232);add(233);add(234);add(235);
-//    }};
-//    public static final ArrayList<Integer> staNos3 = new ArrayList<Integer>() {{
-//        add(300);add(301);add(302);add(303);
-//        add(304);add(305);add(306);add(307);
-//    }};
-//    public static final ArrayList<Integer> staNos4 = new ArrayList<Integer>() {{
-//        add(400);add(401);add(402);add(403);
-//        add(404);add(405);add(406);add(407);
-//    }};*/
-//
-//    /**
-//     * 鏉$爜鏁伴噺
-//     */
-//    private int barcodeSize = 1;
-//
-//    /**
-//     * 鍏ュ嚭搴撴ā寮�
-//     * 0锛氭湭鐭�
-//     * 1锛氬叆搴撳惎鍔ㄤ腑
-//     * 2.鍏ュ簱妯″紡
-//     * 3.鍑哄簱鍚姩涓� 锛堜笉鑳界敓鎴愬叆搴撳伐浣滄。锛�
-//     * 4.鍑哄簱妯″紡
-//     */
-//    public IoModeType ioModeOf2F = IoModeType.NONE;
-////    public IoModeType ioMode = IoModeType.NONE;
-//    private ArrayList<Integer> getStaNo() {
-//        switch (slave.getId()) {
-//            case 1:
-//                return staNos1;
-//            /*case 2:
-//                return staNos2;
-//            case 3:
-//                return staNos3;
-//            case 4:
-//                return staNos4;*/
-//            default:
-//                throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
-//        }
-//    }
-//
-//    public SiemensDevpThread(DevpSlave slave) {
-//        this.slave = slave;
-//    }
-//
-//    @Override
-//    @SuppressWarnings("InfiniteLoopStatement")
-//    public void run() {
-//        connect();
-//        while (true) {
-//            try {
-//                int step = 1;
-//                Task task = MessageQueue.poll(SlaveType.Devp, slave.getId());
-//                if (task != null) {
-//                    step = task.getStep();
-//                }
-//                switch (step) {
-//                    // 璇绘暟鎹�
-//                    case 1:
-//                        read();
-//                        break;
-//                    // 鍐欐暟鎹� ID+鐩爣绔�
-//                    case 2:
-//                        write((StaProtocol)task.getData());
-//                        read();
-//                        break;
-//                    // 鍐欐暟鎹� ID+鐩爣绔�
-//                    case 4:
-//                        writeCycle((StaProtocol)task.getData());
-//                        read();
-//                        break;
-//                   /* case 3:
-//                        write2((StaProtocol)task.getData());
-//                        read();
-//                        break;*/
-//                    default:
-//                        break;
-//                }
-//                // 蹇冭烦
-////                heartbeat();
-//                Thread.sleep(400);
-//            } catch (Exception e) {
-//                e.printStackTrace();
-//            }
-//
-//        }
-//    }
-//
-//    /**
-//     * 鍒濆鍖栫珯鐐圭姸鎬�
-//     */
-//    private void initSite() {
-//        ArrayList<Integer> staNos = getStaNo();
-//        // 绔欑偣缂栧彿
-//        for (Integer siteId : staNos) {
-//            StaProtocol staProtocol = station.get(siteId);
-//            if (null == staProtocol) {
-//                staProtocol = new StaProtocol();
-//                staProtocol.setSiteId(siteId);
-//                station.put(siteId, staProtocol);
-//            }
-//            staProtocol.setWorkNo((short) 0);    // ID
-//            staProtocol.setAutoing(false);      // 鑷姩
-//            staProtocol.setLoading(false);      // 鏈夌墿
-//            staProtocol.setInEnable(false);     // 鍙叆
-//            staProtocol.setOutEnable(false);    // 鍙嚭
-//            staProtocol.setEmptyMk(false);      // 绌烘澘淇″彿
-//            staProtocol.setStaNo((short) 0);     // 鐩爣绔�
-//
-//            if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
-//                staProtocol.setPakMk(true);
-//            }
-//        }
-//    }
-//
-//    @Override
-//    public boolean connect() {
-//        boolean result = false;
-//        siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
-//        siemensS7Net.setRack(slave.getRack().byteValue());
-//        siemensS7Net.setSlot(slave.getSlot().byteValue());
-//        OperateResult connect = siemensS7Net.ConnectServer();
-//        if(connect.IsSuccess){
-//            result = true;
-//            OutputQueue.DEVP.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("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-//        } else {
-//            OutputQueue.DEVP.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("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-////            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-////            deviceErrorService.addDeviceError("devp", slave.getId(), "杈撻�佺嚎plc杩炴帴澶辫触");
-//            initSite();
-//        }
-//        siemensS7Net.ConnectClose();
-//        return result;
-//    }
-//
-//    /**
-//     * 璇诲彇鐘舵�� ====> 鏁村潡plc
-//     */
-//    private void read() throws InterruptedException {
-////        // 鏇存柊鍏ュ嚭搴撴ā寮�
-////        updateIoMode();
-//        ArrayList<Integer> staNos = getStaNo();
-//        int staNoSize = staNos.size();
-//        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
-//        if (result.IsSuccess) {
-//            for (int i = 0; i < staNoSize; i++) {
-//                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-//                StaProtocol staProtocol = station.get(siteId);
-//                if (null == staProtocol) {
-//                    staProtocol = new StaProtocol();
-//                    staProtocol.setSiteId(siteId);
-//                    station.put(siteId, staProtocol);
-//                }
-//                staProtocol.setWorkNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, i*8));     // 宸ヤ綔鍙�
-//
-//                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4));   // 鐩爣绔�
-//
-//                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
-//                staProtocol.setAutoing(status[0]);  // 鑷姩
-//                staProtocol.setLoading(status[1]);  // 鏈夌墿
-//                staProtocol.setInEnable(status[2]); // 鍙叆
-//                staProtocol.setOutEnable(status[3]);// 鍙嚭
-//                staProtocol.setEmptyMk(status[4]);  // 绌烘澘淇″彿
-//                staProtocol.setFullPlt(status[5]);  // 婊℃墭鐩�
-//                staProtocol.setHigh(status[6]);     // 楂樺簱浣�
-//                staProtocol.setLow(status[7]);      // 浣庡簱浣�
-//
-//                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
-//                    staProtocol.setPakMk(true);
-//                }
-//            }
-//        }
-//
-////        OperateResultExOne<byte[]> resultAgvAndPlc = siemensS7Net.Read("DB102.0", (short) 30);
-////        if (resultAgvAndPlc.IsSuccess) {
-////            for (int i = 0; i < staNoSize; i++) {
-////                int sign =(i+2)/2-1;
-////                if ((i+2)%2!=0){
-////                    Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-////                    StaProtocol staProtocol = station.get(siteId);
-////                    if (null == staProtocol) {
-////                        staProtocol = new StaProtocol();
-////                        staProtocol.setSiteId(siteId);
-////                        station.put(siteId, staProtocol);
-////                    }
-////                    staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4));     // 鍏佽鍙栬揣
-////                    staProtocol.setAgvStartPlace((short)0);   // 鍏佽鏀捐揣
-////                    continue;
-////                }
-////                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-////                StaProtocol staProtocol = station.get(siteId);
-////                if (null == staProtocol) {
-////                    staProtocol = new StaProtocol();
-////                    staProtocol.setSiteId(siteId);
-////                    station.put(siteId, staProtocol);
-////                }
-////                staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6));     // 鍏佽鍙栬揣
-////                staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2));   // 鍏佽鏀捐揣
-////            }
-////        }
-//
-////        OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30);
-////        if (resultAgvAndPlcOk.IsSuccess) {
-////            for (int i = 0; i < staNoSize; i++) {
-////                int sign =(i+2)/2-1;
-////                if ((i+2)%2!=0){
-////                    Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-////                    StaProtocol staProtocol = station.get(siteId);
-////                    if (null == staProtocol) {
-////                        staProtocol = new StaProtocol();
-////                        staProtocol.setSiteId(siteId);
-////                        station.put(siteId, staProtocol);
-////                    }
-////                    staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4));     // 鍏佽鍙栬揣
-////                    staProtocol.setAgvTargetPlace((short)0);   // 鍏佽鏀捐揣
-////                    continue;
-////                }
-////                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-////                StaProtocol staProtocol = station.get(siteId);
-////                if (null == staProtocol) {
-////                    staProtocol = new StaProtocol();
-////                    staProtocol.setSiteId(siteId);
-////                    station.put(siteId, staProtocol);
-////                }
-////                try{
-////                    staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6));     // 鍙栬揣瀹屾垚
-////                    if (staProtocol.getAgvTargetPick()!=0){
-////                        System.out.println(staProtocol.getAgvTargetPick());
-////                    }
-////                    staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2));   // 鏀捐揣瀹屾垚
-////                    if (staProtocol.getAgvTargetPlace()!=0){
-////                        System.out.println(staProtocol.getAgvTargetPlace());
-////                    }
-////                }catch (Exception e){
-////                    log.error(""+e);
-////                }
-////            }
-////        }
-//
-//
-//        if (slave.getId() == 1) {
-//            //鏉$爜
-//            //Thread.sleep(200);
-//            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.848.0", (short) 8);
-//            if (result2.IsSuccess) {
-//                for (int i = 0; i < 1; i++) {
-//                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
-//                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
-//                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-//                        barcodeThread.setBarcode(barcode);
-//                    }
-//                }
-//            }
-//
-//            //澶栧舰妫�娴�
-//            OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.810.0", (short) (barcodeSize*1));
-//            StaProtocol staProtocol1 = station.get(116);
-//            boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, 0, 1);
-//            staProtocol1.setFrontErr(status1[0]);
-//            staProtocol1.setBackErr(status1[1]);
-//            staProtocol1.setHighErr(status1[2]);
-//            staProtocol1.setLeftErr(status1[3]);
-//            staProtocol1.setRightErr(status1[4]);
-//            staProtocol1.setWeightErr(status1[5]);
-//            staProtocol1.setBarcodeErr(status1[6]);
-//
-//            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4));
-//            if (resultErr.IsSuccess) {
-//                for (int i = 0; i < staNoSize; i++) {
-//                    Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-//                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1);
-//                    StaProtocol staProtocol = station.get(siteId);
-//                    staProtocol.setBreakerErr(status[0]);
-//                    staProtocol.setInfraredErr(status[1]);
-//                    staProtocol.setOutTimeErr(status[2]);
-//                    staProtocol.setSeizeSeatErr(status[3]);
-//                    staProtocol.setWrkYgoodsN(status[4]);
-//                    staProtocol.setInverterErr(status[5]);
-//                    staProtocol.setContactErr(status[6]);
-//                    staProtocol.setUpcontactErr(status[7]);
-//
-//                }
-//            }
-//
-//        }
-//
-//
-////        //RGV鍙拌溅浣嶇疆
-////        Thread.sleep(200);
-////        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4);
-////        if (result3.IsSuccess) {
-////            for (int i = 0; i < 2; i++) {
-////                Integer siteId = i==0 ? 1 : 2; // 绔欑偣缂栧彿
-////                StaProtocol staProtocol = station.get(siteId);
-////                if (null == staProtocol) {
-////                    staProtocol = new StaProtocol();
-////                    staProtocol.setSiteId(siteId);
-////                    station.put(siteId, staProtocol);
-////                }
-////                staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2)));
-//////                String aa = staProtocol.getNearbySta();
-//////                System.out.println(siteId + "===>>" + staProtocol.getNearbySta());
-////            }
-////        }
-//
-////        OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0");
-////        if (result2.IsSuccess) {
-////            this.ioMode = IoModeType.get(result2.Content);
-////        }
-//
-//        if (result.IsSuccess ) {
-//
-//            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-//
-//            // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
-//            try {
-//                List<BasDevp> basDevps = new ArrayList<>();
-//                for (Integer siteId : staNos) {
-//                    StaProtocol staProtocol = station.get(siteId);
-//                    basDevps.add(staProtocol.toSqlModel());
-//                }
-//
-//                BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
-//                if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
-//                    throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
-//                }
-//            } catch (Exception e) {
-//                e.printStackTrace();
-//                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [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("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-//            }
-//
-//            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-//            deviceErrorService.deleteDeviceError("devp", slave.getId());
-//        } else {
-//            OutputQueue.DEVP.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("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-//            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-//            deviceErrorService.addDeviceError("devp", slave.getId(), "璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐�");
-//        }
-//    }
-//
-//    /**
-//     * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
-//     */
-//    private void writeAgvOk(StaProtocol staProtocol) throws InterruptedException {
-//        if (null == staProtocol) {
-//            return;
-//        }
-//        ArrayList<Integer> staNos = getStaNo();
-//        int index = staNos.indexOf(staProtocol.getSiteId());
-//        if (staProtocol.getAgvTypeSign()==0 || staProtocol.getAgvTypeSign()==2 ){  //0鍙栬揣
-//            switch (staProtocol.getSiteId()){
-//                case 100:
-//                    index=32;
-//                    break;
-//                case 101:
-//                    index=34;
-//                    break;
-//                case 102:
-//                    index=38;
-//                    break;
-//                case 103:
-//                    index=40;
-//                    break;
-//                case 104:
-//                    index=44;
-//                    break;
-//                case 105:
-//                    index=46;
-//                    break;
-//                case 106:
-//                    index=50;
-//                    break;
-//                case 107:
-//                    index=52;
-//                    break;
-//                default:
-//                    return;
-//            }
-//        }else {
-//            switch (staProtocol.getSiteId()){
-//                case 100:
-//                    index=30;
-//                    break;
-//                case 102:
-//                    index=36;
-//                    break;
-//                case 104:
-//                    index=42;
-//                    break;
-//                case 106:
-//                    index=48;
-//                    break;
-//                default:
-//                    return;
-//            }
-//        }
-//
-//        OperateResult write = null;
-//        //浠诲姟涓嬪彂娆℃暟
-//        int writeCount = 0;
-//        do {
-//            short textWrite = 1;// 浠诲姟瀹屾垚
-//            if (staProtocol.getAgvTypeSign()>1){
-//                textWrite = 0;// 浠诲姟澶嶄綅
-//            }
-//            write = siemensS7Net.Write("DB102." + index, textWrite);
-//            if(write.IsSuccess){
-//                writeCount=6;
-//            }else {
-//                writeCount++;
-//                log.error("鍐欏叆杈撻�佺嚎鍙栨斁璐у畬鎴愬懡浠ゅ悗璇诲彇澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-//            }
-//        }while (writeCount<5);
-//
-//        if (!write.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 write(StaProtocol staProtocol) throws InterruptedException {
-//        if (staProtocol == null) {
-//            return;
-//        }
-//
-//        ArrayList<Integer> staNos = getStaNo();
-//        int index = staNos.indexOf(staProtocol.getSiteId());
-//
-//        if (index == -1) {
-//            log.error("绔欑偣缂栧彿 {} 涓嶅湪宸茬煡鍒楄〃涓紝鏃犳硶鍐欏叆浠诲姟锛�", staProtocol.getSiteId());
-//            return;
-//        }
-//
-//        int writeCount = 0; // 浠诲姟涓嬪彂灏濊瘯娆℃暟
-//        boolean writeFlag = false; // 浠诲姟涓嬪彂鎴愬姛鏍囪
-//        String plcAddressWorkNo = "DB100." + index * 6;
-//        String plcAddressStaNo = "DB100." + (index * 6 + 4);
-//
-//        while (writeCount < 5) {
-//            // **璇诲彇褰撳墠PLC鐘舵�侊紝閬垮厤涓嶅繀瑕佺殑鍐欏叆**
-//            OperateResultExOne<byte[]> readResult = siemensS7Net.Read(plcAddressWorkNo, (short) 6);
-//            if (readResult.IsSuccess) {
-//                int currentWorkNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
-//                short currentStaNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
-//
-//                if (currentWorkNo == staProtocol.getWorkNo().intValue() && currentStaNo == staProtocol.getStaNo()) {
-//                    log.info("绔欑偣 {} 褰撳墠鐘舵�佸凡鍖归厤锛屾棤闇�閲嶅鍐欏叆", staProtocol.getSiteId());
-//                    return;
-//                }
-//            }
-//
-//            // **娓呴浂骞剁‘璁�**
-//            if (!clearPLCData(plcAddressWorkNo, plcAddressStaNo, staProtocol.getSiteId())) {
-//                writeCount++;
-//                continue; // 閲嶆柊灏濊瘯娓呴浂
-//            }
-//
-//            // **鍐欏叆鏂颁换鍔�**
-//            if (writeTaskToPLC(plcAddressWorkNo, plcAddressStaNo, staProtocol)) {
-//                writeFlag = true;
-//                log.info("杈撻�佺嚎鍛戒护鍐欏叆鎴愬姛锛孭LC缂栧彿={}锛岀珯鐐规暟鎹�={}锛屽皾璇曟鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-//                break;
-//            }
-//
-//            log.warn("杈撻�佺嚎鍛戒护鍐欏叆澶辫触锛孭LC缂栧彿={}锛岀珯鐐规暟鎹�={}锛屽皾璇曟鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-//            writeCount++;
-//        }
-//
-//        // **鍐欏叆澶辫触澶勭悊**
-//        handleWriteFailure(staProtocol, writeFlag);
-//    }
-//
-//    private void writeCycle(StaProtocol staProtocol) throws InterruptedException {
-//        if (staProtocol == null) {
-//            return;
-//        }
-//
-//        ArrayList<Integer> staNos = getStaNo();
-//        int index = staNos.indexOf(staProtocol.getSiteId());
-//
-//        if (index == -1) {
-//            log.error("绔欑偣缂栧彿 {} 涓嶅湪宸茬煡鍒楄〃涓紝鏃犳硶鍐欏叆浠诲姟锛�", staProtocol.getSiteId());
-//            return;
-//        }
-//
-//        int writeCount = 0; // 浠诲姟涓嬪彂灏濊瘯娆℃暟
-//        boolean writeFlag = false; // 浠诲姟涓嬪彂鎴愬姛鏍囪
-//        String plcAddressWorkNo = "";
-//        String plcAddressStaNo = "" ;
-//        switch (staProtocol.getSiteId()){
-//            case 105:
-//                plcAddressWorkNo = "DB73." + 0;
-//                plcAddressStaNo = "DB73." + 4;
-//                break;
-//            case 106:
-//                plcAddressWorkNo = "DB73." + 6;
-//                plcAddressStaNo = "DB73." + (6 + 4);
-//                break;
-//            case 108:
-//                plcAddressWorkNo = "DB73." + 2 * 6;
-//                plcAddressStaNo = "DB73." + (2 * 6 + 4);
-//                break;
-//            case 110:
-//                plcAddressWorkNo = "DB73." + 3 * 6;
-//                plcAddressStaNo = "DB73." + (3 * 6 + 4);
-//                break;
-//            case 112:
-//                plcAddressWorkNo = "DB73." + 4 * 6;
-//                plcAddressStaNo = "DB73." + (4 * 6 + 4);
-//                break;
-//        }
-//
-//
-//        // **鍐欏叆鏂颁换鍔�**
-//        if (writeTaskToPLC(plcAddressWorkNo, plcAddressStaNo, staProtocol)) {
-//            writeFlag = true;
-//            log.info("杈撻�佺嚎鍛戒护鍐欏叆鎴愬姛锛孭LC缂栧彿={}锛岀珯鐐规暟鎹�={}锛屽皾璇曟鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-//        }
-//
-//        // **鍐欏叆澶辫触澶勭悊**
-//        handleWriteFailure(staProtocol, writeFlag);
-//    }
-//
-//    /**
-//     * 娓呴浂 PLC 鏁版嵁骞堕獙璇佹竻闆舵槸鍚︽垚鍔�
-//     */
-//    private boolean clearPLCData(String plcAddressWorkNo, String plcAddressStaNo, int siteId) throws InterruptedException {
-//        siemensS7Net.Write(plcAddressWorkNo, 0);
-//        siemensS7Net.Write(plcAddressStaNo, (short) 0);
-//        Thread.sleep(100); // 绛夊緟PLC璇嗗埆
-//
-//        OperateResultExOne<byte[]> readResult = siemensS7Net.Read(plcAddressWorkNo, (short) 6);
-//        if (readResult.IsSuccess) {
-//            int readWorkNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
-//            short readStaNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
-//            if (readWorkNo == 0 && readStaNo == 0) {
-//                return true; // 娓呴浂鎴愬姛
-//            }
-//        }
-//
-//        log.warn("绔欑偣 {} 娓呴浂澶辫触锛屽皾璇曢噸鏂版竻闆�...", siteId);
-//        return false;
-//    }
-//
-//    /**
-//     * 鍐欏叆鏂颁换鍔″埌 PLC 骞堕獙璇佹槸鍚︽垚鍔�
-//     */
-//    private boolean writeTaskToPLC(String plcAddressWorkNo, String plcAddressStaNo, StaProtocol staProtocol) throws InterruptedException {
-//        OperateResult writeResult2 = siemensS7Net.Write(plcAddressStaNo, staProtocol.getStaNo());
-//
-//        OperateResult writeResult1 = siemensS7Net.Write(plcAddressWorkNo, staProtocol.getWorkNo().intValue());
-//
-//        if (writeResult1.IsSuccess && writeResult2.IsSuccess) {
-//            Thread.sleep(200); // 绛夊緟 PLC 璇嗗埆鏂板��
-//            OperateResultExOne<byte[]> readResult = siemensS7Net.Read(plcAddressWorkNo, (short) 6);
-//            if (readResult.IsSuccess) {
-//                int workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
-//                short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
-//                return workNo == staProtocol.getWorkNo().intValue() && staNo == staProtocol.getStaNo();
-//            }
-//        }
-//        return false;
-//    }
-//
-//    private boolean writeTaskToPLC(String plcAddressWorkNo, String plcAddressStaNo, Cycle cycle) throws InterruptedException {
-//        OperateResult writeResult1 = siemensS7Net.Write(plcAddressWorkNo, cycle.getWorkNo().intValue());
-//        OperateResult writeResult2 = siemensS7Net.Write(plcAddressStaNo, cycle.getStaNo());
-//
-//        if (writeResult1.IsSuccess && writeResult2.IsSuccess) {
-//            Thread.sleep(200); // 绛夊緟 PLC 璇嗗埆鏂板��
-//            OperateResultExOne<byte[]> readResult = siemensS7Net.Read(plcAddressWorkNo, (short) 6);
-//            if (readResult.IsSuccess) {
-//                int workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
-//                short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
-//                return workNo == cycle.getWorkNo().intValue() && staNo == cycle.getStaNo();
-//            }
-//        }
-//        return false;
-//    }
-//
-//    /**
-//     * 澶勭悊鍐欏叆澶辫触鐨勬儏鍐�
-//     */
-//    private void handleWriteFailure(StaProtocol staProtocol, boolean writeFlag) {
-//        if (!writeFlag) {
-//            StaProtocol currentStaProtocol = station.get(staProtocol.getSiteId());
-//            if (currentStaProtocol.getWorkNo() == 0 && currentStaProtocol.getStaNo() == 0) {
-//                currentStaProtocol.setPakMk(true);
-//            }
-//            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎鍛戒护灏濊瘯5娆″け璐ャ�侾LC缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
-//                    slave.getId(), JSON.toJSON(currentStaProtocol)));
-//            log.error("杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ワ紝PLC缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(currentStaProtocol));
-//        } 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 write2(StaProtocol staProtocol) throws InterruptedException {
-//        if (null == staProtocol) {
-//            return;
-//        }
-//        ArrayList<Integer> staNos = getStaNo();
-//
-//        int index = staNos.indexOf(staProtocol.getSiteId());
-//        short[] array = new short[2];
-//        array[0] = staProtocol.getWorkNo();
-//        array[1] = staProtocol.getStaNo();
-//
-//        OperateResult writeResult;
-//        //浠诲姟涓嬪彂娆℃暟
-//        int writeCount = 0;
-//        //浠诲姟涓嬪彂鎴愬姛鏍囪瘑
-//        boolean writeFlag = false;
-//        while(writeCount < 5){
-//            writeResult = siemensS7Net.Write("DB100." + index*4, array);    // 宸ヤ綔鍙枫�佺洰鏍囩珯
-//
-//            if(writeResult.IsSuccess){
-//                Thread.sleep(200);
-//                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index*4, (short)4);
-//                if(readResult.IsSuccess){
-//                    short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
-//                    short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);
-//                    if(staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)){
-//                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
-//                        writeFlag = true;
-//                        log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-//
-//                        Date now = new Date();
-//                        break;
-//                    } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
-//                        writeCount++;
-//                        OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
-//                                slave.getId(), JSON.toJSON(staProtocol),writeCount));
-//                        log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-//
-//                    }
-//                } else {
-//                    writeCount++;
-//                    OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
-//                            slave.getId(), JSON.toJSON(staProtocol), writeCount));
-//                    log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-//
-//                }
-//            } else {
-//                writeCount++;
-//                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
-//                        slave.getId(), JSON.toJSON(staProtocol),writeCount));
-//                log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-//
-//            }
-//            Thread.sleep(200);
-//        }
-//
-//        //鍐欏懡浠ゅ皾璇曚簡5娆¤繕鏄け璐ヤ簡
-//        if(!writeFlag){
-//            staProtocol = station.get(staProtocol.getSiteId());
-//            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
-//                staProtocol.setPakMk(true);
-//            }
-//            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
-//            log.error("鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
-//
-//            //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒�
-//            boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(3, staProtocol));
-//            read();//璇诲彇1娆¤澶囩姸鎬�
-//            return;
-//        } 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));
-//
-//            Integer siteId = staProtocol.getSiteId();
-//            staProtocol = station.get(siteId);
-//            if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) {
-//                staProtocol.setPakMk(true);
-//            }
-//
-//        }
-//
-//    }
-//
-////    /**
-////     * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
-////     */
-////    private void write(StaProtocol staProtocol) throws InterruptedException {
-////        if (null == staProtocol) {
-////            return;
-////        }
-////        int index = staNos.indexOf(staProtocol.getSiteId());
-////        short[] array = new short[2];
-////        array[0] = staProtocol.getWorkNo();
-////        array[1] = staProtocol.getStaNo();
-////        OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
-////
-//////        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
-//////        Thread.sleep(500);
-//////        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 鐩爣绔�
-////
-////        if (!write.IsSuccess) {
-////            staProtocol = station.get(staProtocol.getSiteId());
-////            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
-////                staProtocol.setPakMk(true);
-////            }
-////            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));
-////
-////            Integer siteId = staProtocol.getSiteId();
-////            staProtocol = station.get(siteId);
-////            if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) {
-////                staProtocol.setPakMk(true);
-////            }
-////        }
-////    }
-//
-//    // 鏇存柊鍏ュ嚭搴撴ā寮�
-//    private void updateIoMode() throws InterruptedException {
-//        if (this.ioModeOf2F != IoModeType.NONE) {
-//            if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) {
-//                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
-//                log.error("鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
-//            }
-//        }
-//    }
-//
-//    /**
-//     * 蹇冭烦
-//     */
-//    private void heartbeat(){
-//        if (heartBeatVal == 1) {
-//            heartBeatVal = 2;
-//        } else {
-//            heartBeatVal = 1;
-//        }
-//        OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal);
-//        if (!write.IsSuccess) {
-//            log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
-//        }
-//    }
-//
-//    /**
-//     * 璁剧疆鍏ュ簱鏍囪
-//     */
-//    @Override
-//    public void setPakMk(Integer siteId, boolean pakMk) {
-//        StaProtocol staProtocol = station.get(siteId);
-//        if (null != staProtocol) {
-//            staProtocol.setPakMk(pakMk);
-//        }
-//    }
-//
-//    @Override
-//    public void close() {
-//        siemensS7Net.ConnectClose();
-//    }
-//
-//    public static void main(String[] args) {
-//        ArrayList<Integer> staNos = staNos1;
-//        System.out.println(staNos.indexOf(129));
-//        System.out.println(staNos.size());
-//        for (int i = 0; i<staNos.size(); i++) {
-////            System.out.println(i*2);
-////            System.out.println(i*2 + 200);
-////            System.out.println(i);
-//        }
-//        int index = staNos.indexOf(128);
-//        System.out.println(index*2);
-//        System.out.println(index*2 + 200);
-//    }
-//
-////    public static void main(String[] args) throws Exception {
-////        DevpSlave slave = new DevpSlave();
-////        slave.setIp("192.168.2.125");
-////        SiemensDevpThread devpThread = new SiemensDevpThread(slave);
-////        devpThread.connect();
-////        devpThread.read();
-////        // 鍐�
-////        StaProtocol staProtocol = devpThread.getStation().get(1);
-////        staProtocol.setWorkNo((short) 232);
-////        staProtocol.setStaNo((short) 6);
-////        staProtocol.setAutoing(true);
-////        staProtocol.setEmptyMk(true);
-////        staProtocol.setInEnable(true);
-////        devpThread.write(staProtocol);
-////        System.out.println("----------------------------------------");
-////        // 璇�
-////        devpThread.read();
-////        System.out.println(JSON.toJSONString(devpThread.station));
-////
-////    }
-//
-//}

--
Gitblit v1.9.1