1
pjb
2025-08-02 2b2285cce415718135b6b8dd923a772098a04e96
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -190,8 +190,6 @@
                return barcode1;
            case 2:
                return barcode2;
            case 3:
                return barcode3;
            default:
                throw new CoolException("获取条码扫描器失败!");
        }
@@ -360,8 +358,8 @@
     * 读取状态 ====> 整块plc
     */
    private void readsanqi() throws InterruptedException {
        ArrayList<Integer> staNos = getStaNo();
        int staNoSize = staNos.size();
        ArrayList<Integer> staNos = staNos3;
        int staNoSize = staNos3.size();
        //
        OperateResultExOne<byte[]> resultsanqi = siemensS7Net.Read("DB101.120", (short) (staNoSize * 8));
@@ -397,24 +395,27 @@
        //外形检测 三期
        OperateResultExOne<byte[]> resultErrsanqi = siemensS7Net.Read("DB101.160", (short) 8);
        OperateResultExOne<byte[]> resultErrsanqi = siemensS7Net.Read("DB101.160", (short) (staNoSize * 8));
        if (resultErrsanqi.IsSuccess) {
            boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrsanqi.Content, 0, 1);
            StaProtocol staProtocol = station.get(304);
            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]);
            for (int i = 0; i < staNoSize; i++) {
                Integer siteId = staNos.get(i); // 站点编号
                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrsanqi.Content, i * 4, 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]);
            }
        }
        //条码扫描器 三期
        Thread.sleep(200);
        ArrayList<Integer> barcodeListsanqi = getBarcodeList();
        OperateResultExOne<byte[]> result2siqi = siemensS7Net.Read("DB101.60", (short) (barcodeListsanqi.size() * 8));
        ArrayList<Integer> barcodeListsanqi = barcode3;
        OperateResultExOne<byte[]> result2siqi = siemensS7Net.Read("DB101.180", (short) (barcodeListsanqi.size() * 8));
        if (result2siqi.IsSuccess) {
            for (int i = 0; i < barcodeListsanqi.size(); i++) {
                Integer barcodeId = barcodeListsanqi.get(i);
@@ -476,9 +477,10 @@
        OperateResult write = null;
        OperateResult write1 = null;
        int index;
        int index2 = 0;
        if (staProtocol.getSiteId() >= 310) {
            index = staNos3.indexOf(staProtocol.getSiteId());
            index = index + 54;
            index2 = 66;
        } else {
            index = staNos.indexOf(staProtocol.getSiteId());
        }
@@ -507,10 +509,10 @@
            boolean writeFlag = false;
            while (writeCount < 5) {
                // 写2号输送线
                write = siemensS7Net.Write("DB100." + index * 4, array);    // 工作号、目标
                write = siemensS7Net.Write("DB100." + (index * 4 + index2), array);    // 工作号、目标
                if (write.IsSuccess) {
                    Thread.sleep(200);
                    OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 4);
                    OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + (index * 4 + index2), (short) 4);
                    //OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4);
                    if (readResult.IsSuccess) {
                        short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
@@ -573,14 +575,14 @@
            boolean writeFlag = false;
            while (writeCount < 5) {
                // 写2号输送线
                write = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo().intValue());    // 工作号
                write = siemensS7Net.Write("DB100." + (index * 6 + index2), staProtocol.getWorkNo().intValue());    // 工作号
                Thread.sleep(200);
                write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo());    // 目标站
                write1 = siemensS7Net.Write("DB100." + (index * 6 + 4 + index2), staProtocol.getStaNo());    // 目标站
                if (write.IsSuccess) {
                    Thread.sleep(200);
                    OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 4);
                    OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + (index * 6 + index2), (short) 4);
                    Thread.sleep(200);
                    OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4), (short) 2);
                    OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4 + index2), (short) 2);
                    //OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4);
                    if (readResult.IsSuccess && readResult1.IsSuccess) {
                        int workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);