自动化立体仓库 - WCS系统
Junjie
2024-12-21 802c12dcbc63ee1662c15723d27c8fc1f4fd36e6
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -170,7 +170,7 @@
            }
            vo.setXspeed(crnProtocol.getXSpeed());  //  走行速度(m/min)
            vo.setYspeed(crnProtocol.getYSpeed());  //  升降速度(m/min)
            vo.setZspeed(crnProtocol.getZSpeed());  //  叉牙速度(m/min)
//            vo.setZspeed(crnProtocol.getZSpeed());  //  叉牙速度(m/min)
            vo.setXdistance(crnProtocol.getXDistance());  //  走行距离(Km)
            vo.setYdistance(crnProtocol.getYDistance());  //  升降距离(Km)
            vo.setXduration(crnProtocol.getXDuration());    //  走行时长(H)
@@ -290,6 +290,23 @@
        return crnControl(command)?R.ok():R.error();
    }
    @ManagerAuth(memo = "移车")
    @PostMapping("/operator/steMove")
    public R crnSteMove(CrnOperatorParam param){
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
        command.setTaskNo((short) 0); // 工作号
        command.setAckFinish((short) 0);  // 任务完成确认位
        command.setTaskMode(CrnTaskModeType.STE_MOVE); // 任务模式
        command.setSourcePosX(param.getSourceRow());     // 源库位排
        command.setSourcePosY(param.getSourceBay());     // 源库位列
        command.setSourcePosZ(param.getSourceLev());     // 源库位层
        command.setDestinationPosX(param.getRow());     // 目标库位排
        command.setDestinationPosY(param.getBay());     // 目标库位列
        command.setDestinationPosZ(param.getLev());     // 目标库位层
        return crnControl(command)?R.ok():R.error();
    }
    @ManagerAuth(memo = "站到站")
    @PostMapping("/operator/siteMove")
    public R crnSiteMove(CrnOperatorParam param){
@@ -362,6 +379,21 @@
    @ManagerAuth(memo = "任务完成")
    @PostMapping("/operator/taskComplete")
    public R crnTaskComplete(CrnOperatorParam param){
        // 获取堆垛机信息
        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, param.getCrnNo());
        if (crnThread == null) {
            return R.error();
        }
        CrnProtocol crnProtocol = crnThread.getCrnProtocol();
        if (crnProtocol == null) {
            return R.error();
        }
        //堆垛机状态不是等待WCS确认时,不能下发确认位
        if (!crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.WAITING)){
            return R.error("堆垛机不是等待WCS确认状态");
        }
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
        command.setTaskNo((short) 0); // 工作号
@@ -420,6 +452,7 @@
                crnCommand.setCrnNo(crn.getId()); // 堆垛机编号
                crnCommand.setTaskMode(CrnTaskModeType.CLEAR);
                crnCommand.setAckFinish((short) 0);  // 任务完成确认位
                crnCommand.setCommand((short) 0);  // 任务完成确认位
                // 延时发送
                Thread.sleep(1000L);
                if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, crnCommand))) {