From 09358392b9c559ebbc9503f1cecea3b7ab3e6c2c Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期二, 02 十二月 2025 16:06:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/entity/BasArmMast.java                      |   15 ++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java           |  112 +++++++++++++++-
 src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinTwoParam.java |   15 ++
 src/main/java/com/zy/common/constant/AgvConstant.java                 |   16 ++
 src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java    |    2 
 src/main/java/com/zy/asrs/entity/param/ArmBarcodeTwoParam.java        |   86 ++++++++++++
 src/main/java/com/zy/core/thread/SiemensDevpThread.java               |  103 +++++++++-----
 src/main/java/com/zy/asrs/utils/PostMesDataUtils.java                 |   55 +++++++
 8 files changed, 360 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasArmMast.java b/src/main/java/com/zy/asrs/entity/BasArmMast.java
index 3e37352..4c9cc2d 100644
--- a/src/main/java/com/zy/asrs/entity/BasArmMast.java
+++ b/src/main/java/com/zy/asrs/entity/BasArmMast.java
@@ -4,6 +4,9 @@
 import com.baomidou.mybatisplus.enums.IdType;
 import com.baomidou.mybatisplus.annotations.TableField;
 
+import com.core.common.SnowflakeIdWorker;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.param.ArmBarcodeTwoParam;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import com.baomidou.mybatisplus.annotations.TableName;
@@ -148,6 +151,18 @@
         this.armMsg = armMsg;
     }
 
+
+    public BasArmMast(ArmBarcodeTwoParam param) {
+        SnowflakeIdWorker snowflakeIdWorker = SpringUtils.getBean(SnowflakeIdWorker.class);
+        this.orderNo = param.getOrderNo();
+        this.sku = param.getSku();
+        this.matnr = param.getItem();
+        this.po = param.getPo();
+        this.upc = param.getUpc();
+        this.createTime = snowflakeIdWorker.nextId();
+        this.bindingTags = snowflakeIdWorker.nextId();
+    }
+
 //    BasArmMast basArmMast = new BasArmMast(
 //            null,    // 鏈烘鑷傜紪鍙穂闈炵┖]
 //            null,    // 鎿嶄綔鏂瑰悜[闈炵┖]
diff --git a/src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinTwoParam.java b/src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinTwoParam.java
new file mode 100644
index 0000000..89549c1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinTwoParam.java
@@ -0,0 +1,15 @@
+package com.zy.asrs.entity.param;
+import lombok.Data;
+
+/*
+ *  Created by Monkey D. Luffy on 2025.09.09
+ * */
+@Data
+public class AgvBindCtnrAndBinTwoParam {
+
+    private String reqCode;
+    private String podcode;//鎵樼洏鐮�
+    private String positionCode = "2034";//绔欑偣
+    private String indBind;
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java b/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
index ea8c94f..f3af272 100644
--- a/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java
@@ -47,7 +47,7 @@
                 return;
             case 1:
                 getAgvTaskAssignmentParam1(basAgvMast);
-                taskTyp = basAgvMast.getDevpId()==1?"1FYK":"";
+                taskTyp = basAgvMast.getFloorNo()==1?"1FYK":"4FYK1";
                 ctnrTyp = "1";
                 return;
             case 2:
diff --git a/src/main/java/com/zy/asrs/entity/param/ArmBarcodeTwoParam.java b/src/main/java/com/zy/asrs/entity/param/ArmBarcodeTwoParam.java
new file mode 100644
index 0000000..e8d4cf9
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/ArmBarcodeTwoParam.java
@@ -0,0 +1,86 @@
+package com.zy.asrs.entity.param;
+
+import com.core.common.Cools;
+import com.zy.asrs.entity.BasArmMast;
+import lombok.Data;
+
+/*
+ *  Created by Monkey D. Luffy on 2025.09.09
+ * */
+@Data
+public class ArmBarcodeTwoParam {
+
+    private String orderNo;
+    private String po;
+    private String item;
+    private String sku;
+    private String upc;
+
+    public ArmBarcodeTwoParam() {}
+
+    public ArmBarcodeTwoParam(String[][] barcodeArr) {
+        for (String[] barcodes : barcodeArr){
+            if (barcodes[0].equals("orderNo")){
+                this.orderNo = barcodes[1];
+            }
+            if (barcodes[0].equals("po")){
+                this.po = barcodes[1];
+            }
+            if (barcodes[0].equals("item")){
+                this.item = barcodes[1];
+            }
+            if (barcodes[0].equals("sku")){
+                this.sku = barcodes[1];
+            }
+            if (barcodes[0].equals("upc")){
+                this.upc = barcodes[1];
+            }
+        }
+    }
+
+    public ArmBarcodeTwoParam(String orderNo, String po, String item, String sku, String upc) {
+        this.orderNo = orderNo;
+        this.po = po;
+        this.item = item;
+        this.sku = sku;
+        this.upc = upc;
+    }
+
+    public boolean allBool(){
+        if (Cools.isEmpty(orderNo)){
+            return false;
+        }
+        if (Cools.isEmpty(po)){
+            return false;
+        }
+        if (Cools.isEmpty(item)){
+            return false;
+        }
+        if (Cools.isEmpty(sku)){
+            return false;
+        }
+        if (Cools.isEmpty(upc)){
+            return false;
+        }
+        return true;
+    }
+
+    public boolean allBool(BasArmMast basArmMast){
+        if (!basArmMast.getOrderNo().equals(orderNo)){
+            return false;
+        }
+//        if (!basArmMast.getPo().equals(po)){
+//            return false;
+//        }
+//        if (!basArmMast.getSku().equals(sku)){
+//            return false;
+//        }
+        if (!basArmMast.getMatnr().equals(item)){
+            return false;
+        }
+//        if (!basArmMast.getUpc().equals(upc)){
+//            return false;
+//        }
+        return true;
+    }
+}
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 d6a8159..29fd386 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -83,6 +83,8 @@
     @Autowired
     private BasDevpService basDevpService;
     @Autowired
+    private SnowflakeIdWorker snowflakeIdWorker;
+    @Autowired
     private LocDetlService locDetlService;
     @Autowired
     private BasErrLogService basErrLogService;
@@ -923,16 +925,23 @@
      */
     public synchronized void connectWrk(Integer mark) {
         for (DevpSlave devp : slaveProperties.getDevp()) {
-            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-            StaProtocol staProtocolIn = devpThread.getStation().get(4001);
+            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+
+            StaProtocol staProtocolIn = devpThread2.getStation().get(4001);
             if (staProtocolIn == null) {
                 continue;
             } else {
                 staProtocolIn = staProtocolIn.clone();
             }
-            int[] outStaNos = {1015, 2016}; //琛旀帴鍏ュ簱鐐�
+            int[] outStaNos = {1015,2016}; //琛旀帴鍏ュ簱鐐�
             for (int outStaNo : outStaNos) {
-                StaProtocol staProtocolOut = devpThread.getStation().get(outStaNo);// 鐩樼偣鍑哄簱琛旀帴绔欑偣锛堝彲鑳芥槸 1015锛屼篃鍙兘鏄� 2016锛�
+                StaProtocol staProtocolOut =null;
+                if(outStaNo == 2016){
+                    staProtocolOut = devpThread2.getStation().get(outStaNo);
+                }else{
+                    staProtocolOut = devpThread.getStation().get(outStaNo);
+                }
                 if (staProtocolOut == null) {
                     continue;
                 } else {
@@ -2861,6 +2870,8 @@
 
     public synchronized void autoEmptyOut() {
         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+        SiemensDevpThread devpThread2 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+
         List<Integer> list = new ArrayList<>();
         list.add(1108);list.add(2031);
         for (Integer site:list){
@@ -2874,7 +2885,7 @@
             //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
             switch (site){
                 case 1108:staProtocol = devpThread.getStation().get(site - 2);break;
-                case 2031:staProtocol = devpThread.getStation().get(site);break;
+                case 2031:staProtocol = devpThread2.getStation().get(site);break;
             }
             if (staProtocol == null) {
                 return;
@@ -4414,13 +4425,84 @@
                     }
                     String barcode = staProtocol.getBarcode();
                     if(!Cools.isEmpty(barcode)) {
-                        if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                        if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "0".equals(barcode) || barcode.length()<5) {
                             armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
                             continue;
                         }
                     } else {
                         armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false);
                         continue;
+                    }
+                    String[] barcodeList = barcode.split(";");
+                    String[][] barcodeArr = new String[barcodeList.length / 2][2];
+                    int i = 0;
+                    for (String[] barcodes : barcodeArr){
+                        barcodes[0]=barcodeList[i];
+                        i++;
+                        barcodes[1]=barcodeList[i];
+                        i++;
+                    }
+                    ArmBarcodeTwoParam armBarcodeTwoParam = new ArmBarcodeTwoParam(barcodeArr);
+                    if (!armBarcodeTwoParam.allBool()){
+                        continue;
+                    }
+
+
+                    List<BasArmMast> basArmMastList = basArmMastService.selectList(
+                            new EntityWrapper<BasArmMast>()
+                                    .eq("arm_no", armSta.getArmNo())
+                                    .lt("status", 2)
+                    );
+                    if (!basArmMastList.isEmpty()){
+                        armTaskAssignmentCallApiLogSave(staProtocol, armSta.getArmNo()+"鍙锋満姊拌噦瀛樺湪鏈畬鎴愪换鍔�", staProtocol.getSiteId()+"鏈烘鑷傦紝===銆嬪瓨鍦ㄦ湭瀹屾垚浠诲姟", false);
+                        continue;
+                    }
+                    List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().eq("arm_no",armSta.getArmNo()));
+                    boolean sign = true;
+                    for (BasArm basArm : basArmList){
+                        if (basArm.getStaNo()==2){//NG
+                            continue;
+                        }
+                        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
+                        if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){
+                            continue;
+                        }
+                        List<BasArmMast> basArmMastList2 = basArmMastService.selectList(
+                                new EntityWrapper<BasArmMast>()
+                                        .eq("arm_no", basArm.getArmNo())
+                                        .eq("sorting_line", basArm.getSortingLineSou())
+                                        .eq("sta_no", basArm.getStaNoSou())
+                                        .eq("status", 2)
+                        );
+                        if (!basArmMastList2.isEmpty()){
+                            BasArmMast basArmMast2 = basArmMastList2.get(0);
+                            if (!armBarcodeTwoParam.allBool(basArmMast2)){
+                                continue;
+                            }
+                        }
+                        BasArmMast basArmMast = new BasArmMast(armBarcodeTwoParam);
+                        basArmMast.setArmNo(basArm.getArmNo());
+                        basArmMast.setStaNo(basArm.getStaNoSou());
+                        basArmMast.setSortingLine(basArm.getSortingLineSou());
+                        basArmMastService.insert(basArmMast);
+                        sign = false;
+                        break;
+                    }
+                    if (sign){
+                        for (BasArm basArm : basArmList){
+                            if (basArm.getStaNo()==2){//NG
+                                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
+                                if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("D")){
+                                    continue;
+                                }
+                                BasArmMast basArmMast = new BasArmMast(armBarcodeTwoParam);
+                                basArmMast.setArmNo(basArm.getArmNo());
+                                basArmMast.setStaNo(basArm.getStaNoSou());
+                                basArmMast.setSortingLine(basArm.getSortingLineSou());
+                                basArmMastService.insert(basArmMast);
+                                break;
+                            }
+                        }
                     }
                 }
             }
@@ -5290,7 +5372,7 @@
                             (basAgvMast.getSourceStaNo().equals(2033))){
 
                         AgvTaskAssignmentParam agvTaskAssignmentParam = new AgvTaskAssignmentParam(basAgvMast);
-                        if(basAgvMast.getFloorNo()==1 || basAgvMast.getStaNo().equals(2034)) {
+                        if(basAgvMast.getFloorNo()==1) {
 //                            WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo());
 //                            AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam(basAgvMast);
 //                            agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString());
@@ -5317,6 +5399,22 @@
                                 agvTaskAssignmentCallApiLogSave(basAgvMast, "AGV浠诲姟涓嬪彂澶辫触", "浠诲姟鍙凤細"+basAgvMast.getTaskNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false);
                             }
                         }else{
+                            if (!Cools.isEmpty(basAgvMast.getSourceStaNo())){
+                                if (basAgvMast.getSourceStaNo().equals(4006)){
+
+                                    AgvBindCtnrAndBinTwoParam agvBindCtnrAndBinTwoParam = new AgvBindCtnrAndBinTwoParam();
+                                    agvBindCtnrAndBinTwoParam.setReqCode(String.valueOf(snowflakeIdWorker.nextId()));
+                                    agvBindCtnrAndBinTwoParam.setPodcode(basAgvMast.getBarcode());
+                                    agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getSourceStaNo().toString());
+                                    agvBindCtnrAndBinTwoParam.setIndBind("1");;
+                                    ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒缁戝畾瑙g粦",
+                                            AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam);
+                                    if (resultBind.getCode()!=200){
+                                        basAgvMast.setStatus(4);
+                                        basAgvMastService.updateById(basAgvMast);
+                                    }
+                                }
+                            }
                             //浠诲姟涓嬪彂
                             ReturnT<String> result = new PostMesDataUtils().postMesDataAgv("AGV浠诲姟涓嬪彂", AgvConstant.AGV_URL, AgvConstant.AGV_ADAPTOR, agvTaskAssignmentParam);
                             if (result.getCode()==200){
diff --git a/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java b/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
index 5bb6085..0998ac1 100644
--- a/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
+++ b/src/main/java/com/zy/asrs/utils/PostMesDataUtils.java
@@ -64,6 +64,61 @@
         return SUCCESS;
     }
 
+    public ReturnT<String> postMesDataArmGrating(String name, String URL, String mesPath, Object combParam){
+//        if (true){
+//            System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam);
+//            return SUCCESS;
+//        }
+        if(combParam != null){
+            String response = "";
+            boolean success = false;
+            try {
+//                Map<String, Object> map = new HashMap<>()
+//                map.put("appkey","ea1f0459efc02a79f046f982767939ae");
+                response = new HttpHandler.Builder()
+//                        .setHeaders(map)
+                        .setUri(URL)
+                        .setPath(mesPath)
+                        .setJson(JSON.toJSONString(combParam))
+                        .build()
+                        .doPost();
+                System.out.println("response:"+response);
+                JSONObject jsonObject = JSON.parseObject(response);
+
+                if (jsonObject.getInteger("code").equals(0)) {
+                    success = true;
+                } else {
+                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
+                    throw new CoolException(name);
+                }
+            } catch (Exception e) {
+                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
+//                      TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return FAIL.setMsg(e.getMessage());
+            } finally {
+                try {
+                    if (success){
+                        // 淇濆瓨鎺ュ彛鏃ュ織
+                        ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
+                        apiLogService.save(
+                                name,
+                                URL +"/"+ mesPath,
+                                null,
+                                "127.0.0.1",
+                                JSON.toJSONString(combParam),
+                                response,
+                                success
+                        );
+                    } else {
+                        postMesDataCallApiLogSave(response,success,name, URL, mesPath, combParam);
+                    }
+                } catch (Exception e) {
+                    log.error("", e); }
+            }
+        }
+        return SUCCESS;
+    }
+
     public ReturnT<String> postMesData(String name, String URL, String mesPath, Object combParam){
 //        if (true){
 //            System.out.println("name:"+name+",URL:"+URL+",mesPath:"+mesPath+",combParam:"+combParam);
diff --git a/src/main/java/com/zy/common/constant/AgvConstant.java b/src/main/java/com/zy/common/constant/AgvConstant.java
index 9e7d66c..499293a 100644
--- a/src/main/java/com/zy/common/constant/AgvConstant.java
+++ b/src/main/java/com/zy/common/constant/AgvConstant.java
@@ -5,9 +5,23 @@
  * */
 public class AgvConstant {
 
-    public static final String AGV_IP = "10.10.10.200";
     public static final String AGV_URL = "http://10.10.10.200:8181";
 
+    public static final String AGV_hikRpcService = "rcms/services/rest/hikRpcService";
+    public static final String AGV_bindPodAndBerth = "bindPodAndBerth";//bangding 2
+    public static final String AGV_bindCtnrAndBin = "bindCtnrAndBin";//bangding 1
+
+    public static String getAGVADAPTOR(int f) {
+        switch (f) {
+            case 1:
+                return AGV_bindCtnrAndBin;
+            default:
+                return AGV_bindPodAndBerth;
+        }
+    }
+
+    public static final String AGV_IP = "10.10.10.200";
+
     public static final String AGV_ADAPTOR = "rcms/services/rest/hikRpcService/genAgvSchedulingTask";//鍒涘缓璁㈠崟
     public static final String AGV_CTNRANDBING = "rcms/services/rest/hikRpcService/bindCtnrAndBin";//瀹瑰櫒缁戝畾
 
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index e11fb71..87c8c2e 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -28,6 +28,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.io.Console;
 import java.nio.charset.StandardCharsets;
 import java.text.MessageFormat;
 import java.util.*;
@@ -87,8 +88,8 @@
         add(2034);add(2035);add(2037);
 //        add(2041);add(2042);add(2043);add(2044);
 //        add(2045);add(2046);add(2047);add(2048);
-//        add(2101);add(2102);add(2103);add(2104);add(2105);add(2106);add(2107);add(2108);add(2109);add(2110);
-//        add(2111);add(2112);add(2113);add(2114);add(2115);add(2116);add(2117);add(2118);add(2119);add(2120);
+        add(2101);add(2102);add(2103);add(2104);add(2105);add(2106);add(2107);add(2108);add(2109);add(2110);
+        add(2111);add(2112);add(2113);add(2114);add(2115);add(2116);add(2117);add(2118);add(2119);add(2120);
         add(4001);add(4003);add(4004);add(4006);
     }};
 
@@ -121,11 +122,11 @@
         put(2031, 464);put(2032, 348);put(2033, 556);put(2034, 92);put(2035, 0);
         put(2037, 256);
 
-//        put(2101, 0);put(2102, 92);put(2103, 184);put(2104, 276);put(2105, 368);
-//        put(2106, 460);put(2107, 552);put(2108, 644);put(2109, 736);put(2110, 828);
-//        put(2111, 920);put(2112, 1012);put(2113, 1104);put(2114, 1196);put(2115, 1288);
-//        put(2116, 1380);put(2117, 1472);put(2118, 1564);put(2119, 1656);put(2120, 1748);
-//        put(2121, 1840);put(2122, 1932);
+        put(2101, 0);put(2102, 92);put(2103, 184);put(2104, 276);put(2105, 368);
+        put(2106, 460);put(2107, 552);put(2108, 644);put(2109, 736);put(2110, 828);
+        put(2111, 920);put(2112, 1012);put(2113, 1104);put(2114, 1196);put(2115, 1288);
+        put(2116, 1380);put(2117, 1472);put(2118, 1564);put(2119, 1656);put(2120, 1748);
+        put(2121, 1840);put(2122, 1932);
 
         put(4001, 0);put(4002, 116);put(4003, 508);put(4004, 392);put(4005, 300);
         put(4006, 208);
@@ -469,6 +470,9 @@
         OperateResultExOne<byte[]> resultPlc = null;
         OperateResultExOne<byte[]> resultAgv = null;
 
+        OperateResultExOne<byte[]> resultArm5 = null;//2110
+        OperateResultExOne<byte[]> resultArm6 = null;//2120
+
         if(staNoSize == 102){
             result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028
             result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037
@@ -482,10 +486,12 @@
             result1 = siemensS7Net.Read("DB200.0", (short) (3000));//2001-2030
             result2 = siemensS7Net.Read("DB201.0", (short) (720));//2031-2037
             result3 = siemensS7Net.Read("DB400.0", (short) (600));//4001-4006
-//            result6 = siemensS7Net.Read("DB400.0", (short) (7400));//2101-2122
+            result6 = siemensS7Net.Read("DB202.0", (short) (7400));//2101-2122
             resultErr = siemensS7Net.Read("DB3.0", (short) (354));
 //            resultAgv = siemensS7Net.Read("DB901.0", (short) (7)); //agv鍙栨斁璐ц姹�
 //            resultPlc = siemensS7Net.Read("DB902.0", (short) (7)); //杈撻�佺嚎纭
+            resultArm5 = siemensS7Net.Read("DB202.4328", (short) (254));//2110
+            resultArm6 = siemensS7Net.Read("DB202.6888", (short) (254));//2120
         }
 
 
@@ -519,7 +525,30 @@
                     } else if (siteId < 2040) {
                         result = result2;
                     } else if(siteId<4000){
-//                        result = result6;
+                        if (siteId == 2110) {
+                            if (resultArm5.IsSuccess) {
+                                // 杞崲涓哄瓧绗︿覆
+                                String resultString = siemensS7Net.getByteTransform().TransString(resultArm5.Content, 2, 252,"UTF-8");
+                                // 鍘婚櫎鍙兘鐨勭┖瀛楃
+//                                resultString = resultString.TrimEnd('\0');
+//                                System.out.println("2110Barcode:"+resultString);
+                                staProtocol.setBarcode(resultString);
+                            } else {
+                                staProtocol.setBarcode("");
+                            }
+                        } else if (siteId == 2120){
+                            if (resultArm6.IsSuccess) {
+                                // 杞崲涓哄瓧绗︿覆
+                                String resultString = siemensS7Net.getByteTransform().TransString(resultArm6.Content, 2, 252,"UTF-8");
+                                // 鍘婚櫎鍙兘鐨勭┖瀛楃
+//                                resultString = resultString.TrimEnd('\0');
+//                                System.out.println("2120Barcode:"+resultString);
+                                staProtocol.setBarcode(resultString);
+                            } else {
+                                staProtocol.setBarcode("");
+                            }
+                        }
+                        result = result6;
                     }
                     else {
                         result = result3;
@@ -553,11 +582,14 @@
                     }
                     staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2));     // 宸ヤ綔鍙�
                     staProtocol.setStaNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 12));   // 鐩爣绔�
-                    staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 16)));  //鏉$爜
-
+                    if (staProtocol.getSiteId()!=2110 && staProtocol.getSiteId()!=2120 ){
+                        staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 16)));  //鏉$爜
+                    }
                     if(specialSites2.contains(siteId)){
                         staProtocol.setStaNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 48));   // 鐩爣绔�
-                        staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 52)));  //鏉$爜
+                        if (staProtocol.getSiteId()!=2110 && staProtocol.getSiteId()!=2120 ){
+                            staProtocol.setBarcode(String.valueOf(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2 + 52)));  //鏉$爜
+                        }
                     }
                     if(staNosErrList.contains(siteId)){
                         Integer offsetErr = siteErrOffsetMap.get(siteId);
@@ -579,7 +611,8 @@
                     staProtocol.setAutoing(!status[0]);  // 鑷姩
                     boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 4, 3);
                     boolean[] statusErr = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 8, 3);
-                    boolean[] statusSign = siemensS7Net.getByteTransform().TransBool(resultErr.Content, offsetSign, 3);
+//                    boolean[] statusSign = siemensS7Net.getByteTransform().TransBool(resultErr.Content, offsetSign, 3);
+
                     boolean loading = false;
                     if(!status1[0])
                     {
@@ -632,28 +665,28 @@
                     staProtocol.setDataError(statusErr[18]);
 
                     //淇″彿
-                    staProtocol.setSensorGArrive(statusSign[0]);
-                    staProtocol.setSensorGDec(statusSign[1]);
-                    staProtocol.setSensorGArrive2(statusSign[2]);
-                    staProtocol.setSensorLimit(statusSign[3]);
-                    staProtocol.setEmergency(statusSign[4]);
-                    staProtocol.setSensorGLeave(statusSign[5]);
-                    staProtocol.setSensorGLeave2(statusSign[6]);
-                    staProtocol.setSensorCUp(statusSign[7]);
-                    staProtocol.setSensorCDown(statusSign[8]);
-                    staProtocol.setLiftMotorFr(statusSign[9]);
-                    staProtocol.setLineMotorFr(statusSign[10]);
-                    staProtocol.setTranMotorFr(statusSign[11]);
-                    staProtocol.setRst1(statusSign[12]);
-                    staProtocol.setRst2(statusSign[13]);
-                    staProtocol.setRst3(statusSign[14]);
-                    staProtocol.setRst4(statusSign[15]);
-                    staProtocol.setSensorArriveD(statusSign[16]);
-                    staProtocol.setSensorDecD(statusSign[17]);
-                    staProtocol.setSensorArriveL(statusSign[18]);
-                    staProtocol.setSensorDecL(statusSign[19]);
-                    staProtocol.setSensorArriveR(statusSign[20]);
-                    staProtocol.setSensorDecR(statusSign[21]);
+//                    staProtocol.setSensorGArrive(statusSign[0]);
+//                    staProtocol.setSensorGDec(statusSign[1]);
+//                    staProtocol.setSensorGArrive2(statusSign[2]);
+//                    staProtocol.setSensorLimit(statusSign[3]);
+//                    staProtocol.setEmergency(statusSign[4]);
+//                    staProtocol.setSensorGLeave(statusSign[5]);
+//                    staProtocol.setSensorGLeave2(statusSign[6]);
+//                    staProtocol.setSensorCUp(statusSign[7]);
+//                    staProtocol.setSensorCDown(statusSign[8]);
+//                    staProtocol.setLiftMotorFr(statusSign[9]);
+//                    staProtocol.setLineMotorFr(statusSign[10]);
+//                    staProtocol.setTranMotorFr(statusSign[11]);
+//                    staProtocol.setRst1(statusSign[12]);
+//                    staProtocol.setRst2(statusSign[13]);
+//                    staProtocol.setRst3(statusSign[14]);
+//                    staProtocol.setRst4(statusSign[15]);
+//                    staProtocol.setSensorArriveD(statusSign[16]);
+//                    staProtocol.setSensorDecD(statusSign[17]);
+//                    staProtocol.setSensorArriveL(statusSign[18]);
+//                    staProtocol.setSensorDecL(statusSign[19]);
+//                    staProtocol.setSensorArriveR(statusSign[20]);
+//                    staProtocol.setSensorDecR(statusSign[21]);
 
 //                    Integer offsetAgv = siteAgvOffsetMap.get(siteId);
 //

--
Gitblit v1.9.1