#
1
17 小时以前 09358392b9c559ebbc9503f1cecea3b7ab3e6c2c
#
6个文件已修改
2个文件已添加
404 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/BasArmMast.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinTwoParam.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AgvTaskAssignmentParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/ArmBarcodeTwoParam.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/PostMesDataUtils.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/AgvConstant.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,    // 操作方向[非空]
src/main/java/com/zy/asrs/entity/param/AgvBindCtnrAndBinTwoParam.java
New file
@@ -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;
}
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:
src/main/java/com/zy/asrs/entity/param/ArmBarcodeTwoParam.java
New file
@@ -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;
    }
}
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容器绑定解绑",
                                            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){
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("请求接口失败!!!url:{};request:{};response:{}", URL+"/"+mesPath, JSON.toJSONString(combParam), response);
                    throw new CoolException(name);
                }
            } catch (Exception e) {
                log.error("请求接口失败!!!url:{};request:{};response:{}", 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);
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";//容器绑定
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);
//