zhangchao
2024-09-01 462065efc838cdf3c2102ccdedbf59b37576ccdc
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -50,7 +50,7 @@
        add(101);
        add(102);
        add(103);
        //add(104);
        add(104);
    }};
    public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
@@ -263,13 +263,14 @@
        //条码扫描器
        Thread.sleep(200);
        //ArrayList<Integer> barcodeList = BarcodeList;
        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.200", (short) (3 * 8));
        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.200", (short) (24));
        if (result2.IsSuccess) {
            for (int i = 0; i < 3; i++) {
                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i);
                if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                    barcodeThread.setBarcode(barcode);
                    News.info(" - 7" + " - 扫码失败2 ===>> {}号条码扫描器检测条码信息:{},站点:{}", barcode);
                }
            }
        }
@@ -335,6 +336,24 @@
            }
        }
//plc故障
        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.300", (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) {
@@ -388,8 +407,8 @@
                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 4);
                OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4), (short) 2);
                if (readResult.IsSuccess && readResult1.IsSuccess) {
                    short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
                    short staNo = siemensS7Net.getByteTransform().TransInt16(readResult1.Content, 0);
                    short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
                    short staNo = siemensS7Net.getByteTransform().TransInt16(readResult1.Content, 2);
                    if (staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)) {
                        //任务命令写入成功
                        log.info("写入堆垛机命令后返回成功,并且回读成功。堆垛机plc编号={},{},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);