自动化立体仓库 - WCS系统
*
lsh
2025-03-31 55a497c0c859009440d4edf79a9c5cac9db258f7
*
1个文件已修改
44 ■■■■ 已修改文件
src/main/java/com/zy/core/thread/SiemensCrnThread.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -393,13 +393,13 @@
//        array[10] = command.getDestinationStaNo();
        array[9] = command.getCommand();
        OperateResult result18 = siemensNet.Write("DB100.18", (short)0);
        Thread.sleep(200L);
        Thread.sleep(100L);
        OperateResult result = siemensNet.Write("DB100.0", array);
        int i=0;
        do{
            //堆垛机任务写入后,回读一次,看是否成功
            Thread.sleep(300);
            Thread.sleep(100);
            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
            if (resultRead.IsSuccess) {
                CrnCommand one = new CrnCommand();
@@ -420,28 +420,32 @@
                    log.error("堆垛机命令地址写入后回读失败[id:{}]>>>>重写[{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
                    result = siemensNet.Write("DB100.0", array);
                }else{
                    short commandFinish = 1;
                    Thread.sleep(100L);
                    result = siemensNet.Write("DB100.18", commandFinish);
                    int signFinish = 1;
                    while (signFinish<5){
                        OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2);
                        short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0);
                        if (transInt16 != commandFinish){
                            log.info("下发DB100.18  回读失败" + "commandFinish:"+commandFinish);
                            log.info("下发DB100.18  回读失败" + "array:"+ JSON.toJSONString(array));
                            result = siemensNet.Write("DB100.18", commandFinish);
                            signFinish++;
                        }else {
                            log.info("下发DB100.18" + "commandFinish:"+commandFinish);
                            log.info("下发DB100.18" + "array:"+ JSON.toJSONString(array));
                            break;
                        }
                    }
                    break;
                }
            }
        }while(i<5);
        if (command.getAckFinish() == 0) {
            short commandFinish = 1;
            Thread.sleep(100L);
            result = siemensNet.Write("DB100.18", commandFinish);
            int signFinish = 1;
            while (signFinish<5){
                OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2);
                short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0);
                if (transInt16 != commandFinish){
                    log.info("下发DB100.18  回读失败" + "commandFinish:"+commandFinish);
                    log.info("下发DB100.18  回读失败" + "array:"+ JSON.toJSONString(array));
                    result = siemensNet.Write("DB100.18", commandFinish);
                    signFinish++;
                }else {
                    log.info("下发DB100.18" + "commandFinish:"+commandFinish);
                    log.info("下发DB100.18" + "array:"+ JSON.toJSONString(array));
                    break;
                }
            }
        }
        try {
            // 日志记录
            BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);