Junjie
2023-06-20 a3460ef70c67b64cc4bd28feb957df03b19325ad
充电逻辑
4个文件已修改
31 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/ShuttleChargeType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/ShuttleThread.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1364,10 +1364,8 @@
                            wrkCharge.setWrkSts(53L);//迁移完成
                            shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING);
                            break;
                        case 56:
                            if (shuttleProtocol.getBatteryPower() == 1000) {
                                wrkCharge.setWrkSts(60L);//充电完成
                            }
                        case 56://小车去充电桩中
                            wrkCharge.setWrkSts(57L);//到达充电桩
                            break;
                        default:
                    }
@@ -2394,8 +2392,6 @@
     * 四向穿梭车电量检测 ===>> 发起充电
     */
    public synchronized void loopShuttleCharge() {
        for (DevpSlave devpSlave : slaveProperties.getDevp()) {
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devpSlave.getId());
            for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
                //获取四向穿梭车线程
                ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId());
@@ -2409,7 +2405,7 @@
                    continue;
                }
                WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.charge);
            WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttleProtocol.getShuttleNo().intValue(), WrkChargeType.charge);
                if (wrkCharge != null) {//已有充电任务
                    continue;
                }
@@ -2446,13 +2442,11 @@
            }
        }
    }
    /**
     * 执行四向穿梭车充电任务
     */
    public synchronized void executeShuttleCharge() {
        for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
        WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.charge);
        if (wrkCharge == null) {
            return;
@@ -2469,8 +2463,11 @@
        //当前穿梭车库位号
        String currentLocNo = shuttleProtocol.getCurrentLocNo();
            if (currentLocNo == null) {
                return;
            }
        //小车当前层高
        Integer currentLev = currentLocNo == null ? 0 : Utils.getLev(currentLocNo);
            Integer currentLev = Utils.getLev(currentLocNo);
        //获取提升机
        LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1);
        if (liftThread == null) {
@@ -2652,10 +2649,10 @@
                //下发任务
                MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand));
            }
        }else if (wrkCharge.getWrkSts() == 56) {
            }else if (wrkCharge.getWrkSts() == 57) {//57.小车到达充电桩
            //充电中
            //判断小车是否充满电量,满电1000或电压54V以上
            if (shuttleProtocol.getBatteryPower() >= 1000 || shuttleProtocol.getCurrentVoltage() >= 54000) {
                if (shuttleProtocol.getBatteryPower() >= 1000 && shuttleProtocol.getCurrentVoltage() >= 54000) {
                //充满,断开充电
                List<ShuttleCommand> commands = new ArrayList<>();
                ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
@@ -2680,6 +2677,7 @@
                shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING);
            }
        }
        }
    }
src/main/java/com/zy/core/enums/ShuttleChargeType.java
@@ -4,7 +4,7 @@
public enum ShuttleChargeType {
    FIRST(1, "1800102"),
    FIRST(1, "1800101"),
    SECOND(2, "1800103"),
    ;
src/main/java/com/zy/core/model/protocol/ShuttleProtocol.java
@@ -240,6 +240,7 @@
                && this.pakMk.equals(true)
                && this.errorCodeType.equals(ShuttleErrorCodeType.NORMAL)
                && this.taskNo == 0
                && this.protocolStatus.intValue() == ShuttleProtocolStatusType.IDLE.id
                ;
        if (!res) {
            return res;
src/main/java/com/zy/core/thread/ShuttleThread.java
@@ -923,6 +923,10 @@
            command = commands.get(i);
            for (Short qrCodeValue : qrCodeValues) {
                //目标位置是提升机口,或起点位置是提升机口且目标是去提升机内
                if (command.getDistCodeNum() == null || command.getStartCodeNum() == null) {
                    continue;
                }
                if (qrCodeValue.intValue() == command.getDistCodeNum().intValue() || (qrCodeValue.intValue() == command.getStartCodeNum().intValue() && command.getDistCodeNum().intValue() == liftProtocol.getBarcode().intValue())) {
                    //存在
                    step = i + 1;