#
zwl
2026-02-09 ad79ba405b2d1ac96423f88f4e8a76c584b9d38a
src/main/java/com/zy/core/network/real/ZyStationRealConnect.java
@@ -99,7 +99,7 @@
        if (result.IsSuccess) {
            for (int i = 0; i < statusList.size(); i++) {
                ZyStationStatusEntity statusEntity = statusList.get(i); // 站点编号
                statusEntity.setTaskNo((int) siemensNet.getByteTransform().TransInt16(result.Content, i * 8)); // 工作号
                statusEntity.setTaskNo(siemensNet.getByteTransform().TransInt32(result.Content, i * 8)); // 工作号
                statusEntity.setTargetStaNo((int) siemensNet.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 目标站
                boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, i * 8 + 6, 2);
@@ -109,25 +109,32 @@
                statusEntity.setOutEnable(status[3]);// 可出
                statusEntity.setEmptyMk(status[4]); // 空板信号
                statusEntity.setFullPlt(status[5]); // 满托盘
                if (statusEntity.getStationId()==1015){
                    OperateResultExOne<byte[]> result1 = siemensNet.Read("DB101.3826", (short) (4));
                    if (result1.IsSuccess) {
                        statusEntity.setWeight((double) siemensNet.getByteTransform().TransSingle(result1.Content, 0));
                    }
                }
            }
        }
        // 条码扫描器
        OperateResultExOne<byte[]> result2 = siemensNet.Read("DB101.840", (short) (barcodeOriginList.size() * 8));
        OperateResultExOne<byte[]> result2 = siemensNet.Read("DB101.3760", (short) (barcodeOriginList.size() * 52));
        if (result2.IsSuccess) {
            for (int i = 0; i < barcodeOriginList.size(); i++) {
                ZyStationStatusEntity barcodeEntity = findStatusEntityByBarcodeIdx(i + 1);
                if (barcodeEntity == null) {
                    continue;
                }
                String barcode = siemensNet.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
                String barcode = siemensNet.getByteTransform().TransString(result2.Content, i * 52, 52, "UTF-8");
                barcode = barcode.trim();
                barcodeEntity.setBarcode(barcode);
            }
        }
        // 报警信息
        OperateResultExOne<byte[]> result3 = siemensNet.Read("DB101.800", (short) (barcodeOriginList.size() * 3));
        OperateResultExOne<byte[]> result3 = siemensNet.Read("DB101.2400", (short) (barcodeOriginList.size() * 3));
        if (result3.IsSuccess) {
            for (int i = 0; i < barcodeOriginList.size(); i++) {
                ZyStationStatusEntity barcodeEntity = findStatusEntityByBarcodeIdx(i + 1);
@@ -189,15 +196,17 @@
        }
        OperateResult write = null;
        OperateResult write1 = null;
        // 任务下发次数
        int writeCount = 0;
        do {
            short[] data = new short[2];
            data[0] = command.getTaskNo().shortValue();
            data[1] = command.getTargetStaNo().shortValue();
//            short[] data = new short[2];
//            data[0] = command.getTaskNo();
//            data[1] = command.getTargetStaNo().shortValue();
            write = siemensNet.Write("DB100." + index * 4, data);
            if (write.IsSuccess) {
            write = siemensNet.Write("DB100." + index * 6, command.getTaskNo());
            write1 =siemensNet.Write("DB100." + (index * 6+4), command.getTargetStaNo().shortValue());
            if (write.IsSuccess&&write1.IsSuccess) {
                log.error("写入输送线命令成功。站点编号={},站点数据={},写入次数={}", command.getStationId(), JSON.toJSON(command),
                        writeCount);
                commandResponse.setResult(true);