#
Administrator
9 天以前 34879ff4b298a5b6785edced123e1371cbed5d11
#
1个文件已修改
18 ■■■■■ 已修改文件
src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
@@ -216,6 +216,7 @@
        RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
        redisUtil.set(RedisKeyType.DUAL_CRN_SEND_COMMAND_LOCK.key + deviceConfig.getDeviceNo() + "_" + command.getStation(), "lock", 1);
        CommandResponse response = new CommandResponse(false);
        boolean confirmCommand = command != null && DualCrnTaskModeType.CONFIRM.id.equals(command.getTaskMode());
         try {
             if (null == command) {
                 News.error("双工位堆垛机写入命令为空");
@@ -271,7 +272,22 @@
                    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) {
                    boolean payloadReady;
                    if (confirmCommand) {
                        // CONFIRM 命令本身不携带库位坐标,零坐标是合法值。
                        payloadReady = taskNo == command.getTaskNo().shortValue()
                                && taskMode == command.getTaskMode().shortValue();
                    } else {
                        payloadReady = taskNo != 0
                                && taskMode != 0
                                && sourcePosX != 0
                                && sourcePosY != 0
                                && sourcePosZ != 0
                                && destinationPosX != 0
                                && destinationPosY != 0
                                && destinationPosZ != 0;
                    }
                    if (!payloadReady) {
                        result = siemensNet.Write(address, array);
                    } else {
                        break;