#
cpT
9 天以前 e96fdab4d2a7f7aa86dec7047a3874af28ebe9de
src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
@@ -58,7 +58,7 @@
    @Override
    public ZyDualCrnStatusEntity getStatus() {
        try {
            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 66);
            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 70);
            if (result.IsSuccess) {
                ZyDualCrnStatusEntity crnStatus = new ZyDualCrnStatusEntity();
                crnStatus.setCrnNo(deviceConfig.getDeviceNo());
@@ -67,37 +67,94 @@
                //工位1
                crnStatus.setTaskNo((int) siemensNet.getByteTransform().TransInt16(result.Content, 2));
                crnStatus.setStatus((int) siemensNet.getByteTransform().TransInt16(result.Content, 4));
                crnStatus.setForkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 6));
                crnStatus.setLoaded((int) siemensNet.getByteTransform().TransInt16(result.Content, 8));
                crnStatus.setTaskReceive((int) siemensNet.getByteTransform().TransInt16(result.Content, 10));
                crnStatus.setBay((int) siemensNet.getByteTransform().TransInt16(result.Content, 6));
                crnStatus.setLevel((int) siemensNet.getByteTransform().TransInt16(result.Content, 8));
                crnStatus.setForkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 10));
                crnStatus.setLoaded((int) siemensNet.getByteTransform().TransInt16(result.Content, 12));
                crnStatus.setTaskReceive((int) siemensNet.getByteTransform().TransInt16(result.Content, 14));
                //工位2
                crnStatus.setTaskNoTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 12));
                crnStatus.setStatusTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 14));
                crnStatus.setForkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 16));
                crnStatus.setLoadedTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 18));
                crnStatus.setTaskReceiveTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 20));
                crnStatus.setTaskNoTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 16));
                crnStatus.setStatusTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 18));
                crnStatus.setBayTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 20));
                crnStatus.setLevelTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 22));
                crnStatus.setForkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 24));
                crnStatus.setLoadedTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 26));
                crnStatus.setTaskReceiveTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 28));
                crnStatus.setBay((int) siemensNet.getByteTransform().TransInt16(result.Content, 22));
                crnStatus.setLevel((int) siemensNet.getByteTransform().TransInt16(result.Content, 24));
                crnStatus.setLiftPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 26));
                crnStatus.setWalkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 28));
                crnStatus.setAlarm((int) siemensNet.getByteTransform().TransInt16(result.Content, 30));
                crnStatus.setTemp1((int) siemensNet.getByteTransform().TransInt16(result.Content, 34));
                crnStatus.setTemp2((int) siemensNet.getByteTransform().TransInt16(result.Content, 36));
                crnStatus.setTemp3((int) siemensNet.getByteTransform().TransInt16(result.Content, 38));
                crnStatus.setTemp4((int) siemensNet.getByteTransform().TransInt16(result.Content, 40));
                crnStatus.setXSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 42));
                crnStatus.setYSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 44));
                crnStatus.setZSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 46));
                crnStatus.setXDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 48));
                crnStatus.setYDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 50));
                crnStatus.setXDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 52));
                crnStatus.setYDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 54));
                crnStatus.setGoodsType((int) siemensNet.getByteTransform().TransInt16(result.Content, 56));
                crnStatus.setWalkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 30));
                crnStatus.setWalkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 32));
                crnStatus.setLiftPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 34));
                crnStatus.setAlarm((int) siemensNet.getByteTransform().TransInt16(result.Content, 36));
                crnStatus.setXSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 38));
                crnStatus.setYSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 42));
                crnStatus.setZSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 46));
                crnStatus.setZSpeedTwo((double) siemensNet.getByteTransform().TransSingle(result.Content, 50));
                crnStatus.setXDistance((double) siemensNet.getByteTransform().TransSingle(result.Content, 54));
                crnStatus.setYDistance((double) siemensNet.getByteTransform().TransSingle(result.Content, 58));
                crnStatus.setXDuration((double) siemensNet.getByteTransform().TransSingle(result.Content, 62));
                crnStatus.setYDuration((double) siemensNet.getByteTransform().TransSingle(result.Content, 66));
                String barcode = siemensNet.getByteTransform().TransString(result.Content, 58, 8, "UTF-8");
                crnStatus.setBarcode(barcode);
                if (crnStatus.getStatus() == 0 && crnStatus.getTaskReceive() == 0) {
                    OperateResultExOne<byte[]> taskResult = siemensNet.Read("DB100.0", (short) 18);
                    if (taskResult.IsSuccess) {
                        short taskNo = siemensNet.getByteTransform().TransInt16(taskResult.Content, 0);
                        short taskMode = siemensNet.getByteTransform().TransInt16(taskResult.Content, 2);
                        short sourcePosX = siemensNet.getByteTransform().TransInt16(taskResult.Content, 4);
                        short sourcePosY = siemensNet.getByteTransform().TransInt16(taskResult.Content, 6);
                        short sourcePosZ = siemensNet.getByteTransform().TransInt16(taskResult.Content, 8);
                        short destinationPosX = siemensNet.getByteTransform().TransInt16(taskResult.Content, 10);
                        short destinationPosY = siemensNet.getByteTransform().TransInt16(taskResult.Content, 12);
                        short destinationPosZ = siemensNet.getByteTransform().TransInt16(taskResult.Content, 14);
                        short confirm = siemensNet.getByteTransform().TransInt16(taskResult.Content, 16);
                        if(taskNo != 0 || taskMode != 0 || sourcePosX != 0 || sourcePosY != 0 || sourcePosZ != 0 || destinationPosX != 0 || destinationPosY != 0 || destinationPosZ != 0 || confirm != 0) {
                            short[] array = new short[10];
                            array[0] = (short) 0;
                            array[1] = (short) 0;
                            array[2] = (short) 0;
                            array[3] = (short) 0;
                            array[4] = (short) 0;
                            array[5] = (short) 0;
                            array[6] = (short) 0;
                            array[7] = (short) 0;
                            array[8] = (short) 0;
                            array[9] = (short) 0;
                            OperateResult taskClearResult = siemensNet.Write("DB100.0", array);
                        }
                    }
                }
                if (crnStatus.getStatusTwo() == 0 && crnStatus.getTaskReceiveTwo() == 0) {
                    OperateResultExOne<byte[]> taskResult = siemensNet.Read("DB100.18", (short) 18);
                    if (taskResult.IsSuccess) {
                        short taskNo = siemensNet.getByteTransform().TransInt16(taskResult.Content, 0);
                        short taskMode = siemensNet.getByteTransform().TransInt16(taskResult.Content, 2);
                        short sourcePosX = siemensNet.getByteTransform().TransInt16(taskResult.Content, 4);
                        short sourcePosY = siemensNet.getByteTransform().TransInt16(taskResult.Content, 6);
                        short sourcePosZ = siemensNet.getByteTransform().TransInt16(taskResult.Content, 8);
                        short destinationPosX = siemensNet.getByteTransform().TransInt16(taskResult.Content, 10);
                        short destinationPosY = siemensNet.getByteTransform().TransInt16(taskResult.Content, 12);
                        short destinationPosZ = siemensNet.getByteTransform().TransInt16(taskResult.Content, 14);
                        short confirm = siemensNet.getByteTransform().TransInt16(taskResult.Content, 16);
                        if(taskNo != 0 || taskMode != 0 || sourcePosX != 0 || sourcePosY != 0 || sourcePosZ != 0 || destinationPosX != 0 || destinationPosY != 0 || destinationPosZ != 0 || confirm != 0) {
                            short[] array = new short[10];
                            array[0] = (short) 0;
                            array[1] = (short) 0;
                            array[2] = (short) 0;
                            array[3] = (short) 0;
                            array[4] = (short) 0;
                            array[5] = (short) 0;
                            array[6] = (short) 0;
                            array[7] = (short) 0;
                            array[8] = (short) 0;
                            array[9] = (short) 0;
                            OperateResult taskClearResult = siemensNet.Write("DB100.18", array);
                        }
                    }
                }
                return crnStatus;
            } else {
                OutputQueue.CRN.offer(MessageFormat.format("【{0}】读取双工位堆垛机plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
@@ -161,14 +218,14 @@
             do {
                 OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 18);
                 if (resultRead.IsSuccess) {
                    short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2);
                    short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4);
                    short sourcePosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 6);
                    short sourcePosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 8);
                    short sourcePosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10);
                    short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12);
                    short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14);
                    short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 16);
                    short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
                    short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2);
                    short sourcePosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4);
                    short sourcePosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 6);
                    short sourcePosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 8);
                    short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10);
                    short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12);
                    short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14);
                    if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
                        result = siemensNet.Write(address, array);
                    } else {