| | |
| | | * 读取状态 |
| | | */ |
| | | private void readStatus(){ |
| | | OperateResultExOne<byte[]> result = siemensNet.Read("DB11.2", (short) 90); |
| | | OperateResultExOne<byte[]> result = siemensNet.Read("DB11.2", (short) 104); |
| | | if (result.IsSuccess) { |
| | | if (null == crnProtocol) { |
| | | crnProtocol = new CrnProtocol(); |
| | |
| | | crnProtocol.setDoubleLow(bool3[5]); |
| | | crnProtocol.setPlatformHigh(bool3[6]); |
| | | crnProtocol.setPlatformLow(bool3[7]); |
| | | boolean[] bool4 = siemensNet.getByteTransform().TransBool(result.Content, 64, 1); // 66 |
| | | crnProtocol.setLoaded((short) (bool4[4]?1:0)); // 有物 |
| | | |
| | | // 速度 |
| | | crnProtocol.setXSpeed((float) siemensNet.getByteTransform().TransInt16(result.Content, 22)); // 24 |
| | | crnProtocol.setYSpeed((float) siemensNet.getByteTransform().TransInt16(result.Content, 24)); // 26 |
| | | crnProtocol.setZSpeed((float) siemensNet.getByteTransform().TransInt16(result.Content, 26)); // 28 |
| | | // 累计里程、时长 |
| | | crnProtocol.setXDuration((float) siemensNet.getByteTransform().TransInt32(result.Content, 88)); // 90 |
| | | crnProtocol.setYDistance((float) siemensNet.getByteTransform().TransInt32(result.Content, 92)); // 94 |
| | | crnProtocol.setXDuration((float) siemensNet.getByteTransform().TransInt32(result.Content, 96)); // 98 |
| | | crnProtocol.setYDuration((float) siemensNet.getByteTransform().TransInt32(result.Content, 100)); // 102 |
| | | |
| | | // 增强 |
| | | if (crnProtocol.getForkHome()) { |
| | | crnProtocol.setForkPos(CrnForkPosType.HOME); |
| | |
| | | log.error("堆垛机写入命令为空"); |
| | | return false; |
| | | } |
| | | if (command.getTaskNo() == 0) { |
| | | command.setTaskNo((short) 9999); |
| | | } |
| | | // 代理 |
| | | switch (command.getSourcePosX()) { |
| | | case 1: |
| | | command.setSourcePosX((short) 4); |
| | | break; |
| | | case 2: |
| | | command.setSourcePosX((short) 3); |
| | | break; |
| | | case 3: |
| | | command.setSourcePosX((short) 2); |
| | | break; |
| | | case 4: |
| | | command.setSourcePosX((short) 1); |
| | | break; |
| | | case 5: |
| | | command.setSourcePosX((short) 4); |
| | | break; |
| | | case 6: |
| | | command.setSourcePosX((short) 3); |
| | | break; |
| | | case 7: |
| | | command.setSourcePosX((short) 2); |
| | | break; |
| | | case 8: |
| | | command.setSourcePosX((short) 1); |
| | | break; |
| | | default: |
| | | log.info("{}号堆垛机下方命令错误,源排:{}", command.getCrnNo(), command.getSourcePosX()); |
| | | } |
| | | switch (command.getDestinationPosX()) { |
| | | case 1: |
| | | command.setDestinationPosX((short) 4); |
| | | break; |
| | | case 2: |
| | | command.setDestinationPosX((short) 3); |
| | | break; |
| | | case 3: |
| | | command.setDestinationPosX((short) 2); |
| | | break; |
| | | case 4: |
| | | command.setDestinationPosX((short) 1); |
| | | break; |
| | | case 5: |
| | | command.setDestinationPosX((short) 4); |
| | | break; |
| | | case 6: |
| | | command.setDestinationPosX((short) 3); |
| | | break; |
| | | case 7: |
| | | command.setDestinationPosX((short) 2); |
| | | break; |
| | | case 8: |
| | | command.setDestinationPosX((short) 1); |
| | | break; |
| | | default: |
| | | log.info("{}号堆垛机下方命令错误,目标排:{}", command.getCrnNo(), command.getSourcePosX()); |
| | | } |
| | | command.setCrnNo(slave.getId()); |
| | | short[] array = new short[9]; |
| | | if (!command.getTaskModeType().equals(CrnTaskModeType.CLEAR)) { |