|  |  |  | 
|---|
|  |  |  | if (err15[5]) { crnProtocol.setAlarm4(72); } | 
|---|
|  |  |  | if (err15[6]) { crnProtocol.setAlarm4(73); } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | boolean[] bool1 = siemensNet.getByteTransform().TransBool(result.Content, 60, 1);    // 62 | 
|---|
|  |  |  | crnProtocol.setConnStatus(bool1[0]); | 
|---|
|  |  |  | crnProtocol.setCorrection(bool1[3]); | 
|---|
|  |  |  | crnProtocol.setTuError(bool1[4]); | 
|---|
|  |  |  | crnProtocol.setNoneError(bool1[5]); | 
|---|
|  |  |  | crnProtocol.setStockError(bool1[6]); | 
|---|
|  |  |  | crnProtocol.setJobInvalid(bool1[7]); | 
|---|
|  |  |  | boolean[] bool2 = siemensNet.getByteTransform().TransBool(result.Content, 61, 1);    // 63 | 
|---|
|  |  |  | crnProtocol.setIdle(bool2[0]); | 
|---|
|  |  |  | crnProtocol.setControl(bool2[1]); | 
|---|
|  |  |  | crnProtocol.setStopQuasi(bool2[2]); | 
|---|
|  |  |  | crnProtocol.setRunning(bool2[3]); | 
|---|
|  |  |  | crnProtocol.setFault(bool2[4]); | 
|---|
|  |  |  | crnProtocol.setForkHome(bool2[5]); | 
|---|
|  |  |  | crnProtocol.setForkSingleLeft(bool2[6]); | 
|---|
|  |  |  | crnProtocol.setForkSingleRight(bool2[7]); | 
|---|
|  |  |  | boolean[] bool3 = siemensNet.getByteTransform().TransBool(result.Content, 62, 1);    // 64 | 
|---|
|  |  |  | crnProtocol.setForkDoubleLeft(bool3[0]); | 
|---|
|  |  |  | crnProtocol.setForkDoubleRight(bool3[1]); | 
|---|
|  |  |  | crnProtocol.setSingleHigh(bool3[2]); | 
|---|
|  |  |  | crnProtocol.setSingleLow(bool3[3]); | 
|---|
|  |  |  | crnProtocol.setDoubleHigh(bool3[4]); | 
|---|
|  |  |  | 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));  // 有物 | 
|---|
|  |  |  | //            boolean[] bool1 = siemensNet.getByteTransform().TransBool(result.Content, 60, 1);    // 62 | 
|---|
|  |  |  | //            crnProtocol.setConnStatus(bool1[0]); | 
|---|
|  |  |  | //            crnProtocol.setCorrection(bool1[3]); | 
|---|
|  |  |  | //            crnProtocol.setTuError(bool1[4]); | 
|---|
|  |  |  | //            crnProtocol.setNoneError(bool1[5]); | 
|---|
|  |  |  | //            crnProtocol.setStockError(bool1[6]); | 
|---|
|  |  |  | //            crnProtocol.setJobInvalid(bool1[7]); | 
|---|
|  |  |  | //            boolean[] bool2 = siemensNet.getByteTransform().TransBool(result.Content, 61, 1);    // 63 | 
|---|
|  |  |  | //            crnProtocol.setIdle(bool2[0]); | 
|---|
|  |  |  | //            crnProtocol.setControl(bool2[1]); | 
|---|
|  |  |  | //            crnProtocol.setStopQuasi(bool2[2]); | 
|---|
|  |  |  | //            crnProtocol.setRunning(bool2[3]); | 
|---|
|  |  |  | //            crnProtocol.setFault(bool2[4]); | 
|---|
|  |  |  | //            crnProtocol.setForkHome(bool2[5]); | 
|---|
|  |  |  | //            crnProtocol.setForkSingleLeft(bool2[6]); | 
|---|
|  |  |  | //            crnProtocol.setForkSingleRight(bool2[7]); | 
|---|
|  |  |  | //            boolean[] bool3 = siemensNet.getByteTransform().TransBool(result.Content, 62, 1);    // 64 | 
|---|
|  |  |  | //            crnProtocol.setForkDoubleLeft(bool3[0]); | 
|---|
|  |  |  | //            crnProtocol.setForkDoubleRight(bool3[1]); | 
|---|
|  |  |  | //            crnProtocol.setSingleHigh(bool3[2]); | 
|---|
|  |  |  | //            crnProtocol.setSingleLow(bool3[3]); | 
|---|
|  |  |  | //            crnProtocol.setDoubleHigh(bool3[4]); | 
|---|
|  |  |  | //            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.setXDistance((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 | 
|---|
|  |  |  | //            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.setXDistance((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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getForkSingleLeft()) { | 
|---|
|  |  |  | crnProtocol.setForkPos(CrnForkPosType.LEFT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getForkSingleRight()) { | 
|---|
|  |  |  | crnProtocol.setForkPos(CrnForkPosType.RIGHT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getForkDoubleLeft()) { | 
|---|
|  |  |  | crnProtocol.setForkPos(CrnForkPosType._LEFT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getForkDoubleRight()) { | 
|---|
|  |  |  | crnProtocol.setForkPos(CrnForkPosType._RIGHT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getSingleHigh()) { | 
|---|
|  |  |  | crnProtocol.setLiftPos(CrnLiftPosType.UP); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getSingleLow()) { | 
|---|
|  |  |  | crnProtocol.setLiftPos(CrnLiftPosType.DOWN); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getDoubleHigh()) { | 
|---|
|  |  |  | crnProtocol.setLiftPos(CrnLiftPosType._UP); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getDoubleLow()) { | 
|---|
|  |  |  | crnProtocol.setLiftPos(CrnLiftPosType._DOWN); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (crnProtocol.getIdle()) { | 
|---|
|  |  |  | crnProtocol.setStatus(CrnStatusType.IDLE); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            // 增强 | 
|---|
|  |  |  | //            if (crnProtocol.getForkHome()) { | 
|---|
|  |  |  | //                crnProtocol.setForkPos(CrnForkPosType.HOME); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getForkSingleLeft()) { | 
|---|
|  |  |  | //                crnProtocol.setForkPos(CrnForkPosType.LEFT); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getForkSingleRight()) { | 
|---|
|  |  |  | //                crnProtocol.setForkPos(CrnForkPosType.RIGHT); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getForkDoubleLeft()) { | 
|---|
|  |  |  | //                crnProtocol.setForkPos(CrnForkPosType._LEFT); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getForkDoubleRight()) { | 
|---|
|  |  |  | //                crnProtocol.setForkPos(CrnForkPosType._RIGHT); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getSingleHigh()) { | 
|---|
|  |  |  | //                crnProtocol.setLiftPos(CrnLiftPosType.UP); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getSingleLow()) { | 
|---|
|  |  |  | //                crnProtocol.setLiftPos(CrnLiftPosType.DOWN); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getDoubleHigh()) { | 
|---|
|  |  |  | //                crnProtocol.setLiftPos(CrnLiftPosType._UP); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getDoubleLow()) { | 
|---|
|  |  |  | //                crnProtocol.setLiftPos(CrnLiftPosType._DOWN); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | //            if (crnProtocol.getIdle()) { | 
|---|
|  |  |  | //                crnProtocol.setStatus(CrnStatusType.IDLE); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 复位信号 | 
|---|
|  |  |  | if (crnProtocol.getTaskFinish() == 1) { | 
|---|
|  |  |  | if (crnProtocol.getTaskFinish() == 0) { | 
|---|
|  |  |  | if (resetFlag) { | 
|---|
|  |  |  | CrnCommand crnCommand = new CrnCommand(); | 
|---|
|  |  |  | crnCommand.setAckFinish((short)1); | 
|---|
|  |  |  | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 日志记录 | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | //        try { | 
|---|
|  |  |  | if (command.getAckFinish() != 1) { | 
|---|
|  |  |  | BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class); | 
|---|
|  |  |  | BasCrnOpt basCrnOpt = new BasCrnOpt( | 
|---|
|  |  |  | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | bean.insert(basCrnOpt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception ignore) {} | 
|---|
|  |  |  | //        } catch (Exception ignore) {} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //更新命令日志 | 
|---|
|  |  |  | CommandInfoLogService commandInfoLogService = SpringUtils.getBean(CommandInfoLogService.class); | 
|---|
|  |  |  | CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class); | 
|---|
|  |  |  | CommandInfo commandInfo = commandInfoService.selectById(command.getCommandId()); | 
|---|
|  |  |  | CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class); | 
|---|
|  |  |  | commandInfoLog.setId(null); | 
|---|
|  |  |  | CommandInfoLog commandInfoLog = new CommandInfoLog(); | 
|---|
|  |  |  | if (commandInfo != null) { | 
|---|
|  |  |  | commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class); | 
|---|
|  |  |  | commandInfoLog.setId(null); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | commandInfoLog.setCommand(JSON.toJSONString(command)); | 
|---|
|  |  |  | commandInfoLog.setCommandStatus(3); | 
|---|
|  |  |  | commandInfoLog.setStartTime(now); | 
|---|
|  |  |  | commandInfoLog.setExecuteTime(now); | 
|---|
|  |  |  | commandInfoLog.setCompleteTime(now); | 
|---|
|  |  |  | commandInfoLog.setDevice(SlaveType.Devp.toString()); | 
|---|
|  |  |  | commandInfoLog.setWrkNo(9999); | 
|---|
|  |  |  | commandInfoLog.setTaskNo("9999"); | 
|---|
|  |  |  | commandInfoLog.setCommandDesc("手动命令"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (result.IsSuccess) { | 
|---|
|  |  |  | log.warn("堆垛机命令下发[id:{},时间:{}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command)); | 
|---|