自动化立体仓库 - WCS系统
#
Junjie
2023-09-26 58365ea8a02e8adee1b56948085998107f9a80b3
src/main/java/com/zy/core/thread/LiftThread.java
@@ -125,14 +125,14 @@
        try {
            readStatus();
            //提升机处于运行状态,将标记置为true
            //提升机处于运行状态,将标记置为false
            if (liftProtocol.getBusy()) {
                liftProtocol.setPakMk(true);
                liftProtocol.setPakMk(false);
            }
            //提升机处于未运行、就绪、标记true、有任务号
            if (!liftProtocol.getBusy()
                    && liftProtocol.getPakMk()
                    && !liftProtocol.getPakMk()
                    && liftProtocol.getTaskNo() != 0) {
                //还有未完成的命令
                executeWork(liftProtocol.getTaskNo());
@@ -184,7 +184,13 @@
                //已完成任务号
                liftProtocol.setCompleteTaskNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, 6));
                //当前楼层
                liftProtocol.setLev(siemensS7Net.getByteTransform().TransInt16(result1.Content, 8));
                short lev = siemensS7Net.getByteTransform().TransInt16(result1.Content, 8);
                if (lev >= 7 && lev <= 9) {
                    lev -= 2;
                } else if (lev >= 12 && lev <= 14) {
                    lev -= 4;
                }
                liftProtocol.setLev(lev);
                //将提升机状态保存至数据库
                BasLiftService liftService = SpringUtils.getBean(BasLiftService.class);
@@ -355,10 +361,11 @@
            return false;
        }
        liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);
        News.info("提升机命令下发成功,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command));
        //将标记置为false(防止重发)
        liftProtocol.setPakMk(false);
        //将标记置为true(防止重发)
        liftProtocol.setPakMk(true);
        //保存数据到数据库做流水
        BasLiftOptService liftOptService = SpringUtils.getBean(BasLiftOptService.class);
@@ -372,7 +379,6 @@
                    null,
                    null,
                    JSON.toJSONString(command),
                    JSON.toJSONString(commandArr),
                    JSON.toJSONString(liftProtocol)
            );
            liftOptService.insert(opt);
@@ -396,6 +402,18 @@
            News.info("提升机任务执行下发完成等待执行结束,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command));
        }
        if (redisCommand.getAssignCommand().getTaskMode() == NyLiftTaskModelType.RESET.id.shortValue()) {
            //复位命令
            //工作号清零
            liftProtocol.setTaskNo((short) 0);
            //令牌清零
            liftProtocol.setToken(0);
            //设置提升机为空闲状态
            liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE);
            //任务指令清零
            liftProtocol.setAssignCommand(null);
        }
        return true;
    }