自动化立体仓库 - WCS系统
*
lsh
2025-04-08 a5df301fce6e16534bec1e9a9d55edd19896fe85
*
1个文件已修改
60 ■■■■ 已修改文件
src/main/java/com/zy/core/thread/SiemensCrnThread.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -539,36 +539,36 @@
        // 作业信息
        OperateResult result = siemensNet.Write("DB100.0", array);
//        int i=0;
//        do{
//            //堆垛机任务写入后,回读一次,看是否成功
//            try{
//                Thread.sleep(100L);
//            } catch (Exception e){}
//            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
//            if (resultRead.IsSuccess) {
//                CrnCommand one = new CrnCommand();
//                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
//                one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
//                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
//                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
//                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
//                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
//                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
//                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
//                if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
//                        || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
//                        || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
//                        || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
//                ){
//                    i++;
//                    log.error("堆垛机命令地址写入后回读失败[id:{}]>>>>重写[{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
//                    result = siemensNet.Write("DB100.0", array);
//                }else{
//                    break;
//                }
//            }
//        }while(i<5);
        int i=0;
        do{
            //堆垛机任务写入后,回读一次,看是否成功
            try{
                Thread.sleep(100L);
            } catch (Exception e){}
            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
            if (resultRead.IsSuccess) {
                CrnCommand one = new CrnCommand();
                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
                one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
                if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
                        || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
                        || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
                        || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
                ){
                    i++;
                    log.error("堆垛机命令地址写入后回读失败[id:{}]>>>>重写[{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
                    result = siemensNet.Write("DB100.0", array);
                }else{
                    break;
                }
            }
        }while(i<5);
        if (command.getAckFinish() == 0) {
            short commandFinish = 1;