pjb
2024-06-27 3160d2eb5f67ecb48b9c951b0ca974eade2040a5
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -275,6 +275,50 @@
                array[8] = command.getDestinationPosZ();
                array[9] = command.getCommand();
                result = siemensNet.Write("DB100.0", array);
                log.info(JSON.toJSONString(array));
                //堆垛机任务写入后,回读一次,看是否成功
                Thread.sleep(200);
                try{
                    OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
                    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())
                        ){
                            try{
                                News.error("堆垛机命令地址写入后回读失败[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
                            }catch (Exception e){
                                try{
                                    News.error("日志打印失败:===>>参数one报错 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead));
                                }catch (Exception e1){
                                    News.error("日志打印失败:===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
                                }
                            }
                            if(!resetFlag){
                                News.error("堆垛机命令回读失败后,重新添加任务到队列2 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
                                MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
                            }
                            Thread.sleep(100);
                            readStatus();
                            return false;
                        } else {
                            News.info("堆垛机命令地址写入后回读成功[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
                        }
                    }
                }catch (Exception e){
                    News.error("堆垛机命令地址写入后回读出错");
                }
            }
        }