dubin
2025-08-26 7cf48f71577796759277ff0b413823d6131c365e
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -270,7 +270,7 @@
        ArrayList<Integer> staNosErrList = getStaNoErr();
        ArrayList<Integer> staNoWeight = getStaNoWeight();
        //int staNoSize = staNos.size();
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (500 * 8));
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8));
        OperateResultExOne<byte[]> resultWeight = null;
        /*if(staNoWeight.size()>4){
            resultWeight = siemensS7Net.Read("DB102.0", (short)  (8 * 4));
@@ -293,7 +293,7 @@
                boolean[] status = null;
                int offset = getOffsetFromSiteId(siteId);//取余获得对应db块数据
                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, offset));     // 工作号
                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i * 8));     // 工作号
                /*if (staNoWeight.contains(siteId)) {
                    if(staNoWeight.size() == 4){
                        staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(resultWeight2.Content, j));
@@ -304,8 +304,8 @@
                    }
                }*/
                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, offset+ 4));   // 目标站
                status = siemensS7Net.getByteTransform().TransBool(result.Content, offset+ 6, 2);
                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 8 + 4));   // 目标站
                status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 1);
                staProtocol.setAutoing(status[0]);  // 自动
                staProtocol.setLoading(status[1]);  // 有物
@@ -439,17 +439,17 @@
            return;
        }
        ArrayList<Integer> staNos = getStaNo();
//        int index = staNos.indexOf(staProtocol.getSiteId());
        int offset = getOffsetFromSiteId2(staProtocol.getSiteId());//取余获得对应db块数据
        int index = staNos.indexOf(staProtocol.getSiteId());
//        int offset = getOffsetFromSiteId2(staProtocol.getSiteId());//取余获得对应db块数据
        OperateResult write = null;
        OperateResult write1 = null;
        //任务下发次数
        int writeCount = 0;
        do {
            write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 工作号
            write = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo());    // 工作号
            Thread.sleep(200);
            write1 = siemensS7Net.Write("DB100." + (offset+4), staProtocol.getStaNo().shortValue());    // 目标站
            write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo().shortValue());    // 目标站
            if(write.IsSuccess && write1.IsSuccess){
                log.error("写入输送线命令成功。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                break;