自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-09-22 29e8cbccfba7cd77026c724d093d6a82da99e5af
#
4个文件已修改
75 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/SteTaskModeType.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/ste.html 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1655,29 +1655,12 @@
                                    steThread.setResetFlag(true);
                                }
                            } else if (wrkCharge.getWrkSts() == 25) {
                                // 25.小车行驶 ===>> 26.等待充电
                                // 25.小车去充电 ===>> 26.等待充电
                                wrkCharge.setWrkSts(26L);
                                if (!wrkChargeService.updateById(wrkCharge)) {
                                    log.error("修改充电任务状态 25.小车行驶 ===>> 26.等待充电 失败!!,工作号={}", wrkCharge.getWrkNo());
                                    log.error("修改充电任务状态 25.小车去充电 ===>> 26.等待充电 失败!!,工作号={}", wrkCharge.getWrkNo());
                                } else {
                                    steThread.setResetFlag(true);
                                }
                            } else if (wrkCharge.getWrkSts() == 27) {
                                // 给输送线下发充电任务
                                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                                SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo());
                                if (null != steChargeType) {
                                    if (devpThread.charge(steChargeType.ssbm - 1, true)) {
                                        // 修改工作档状态 27.输送线上电 ===> 28.完成充电
                                        wrkCharge.setWrkSts(28L);
                                        if (!wrkChargeService.updateById(wrkCharge)) {
                                            log.error("修改充电任务状态 27.输送线上电 ===> 28.完成充电 失败!!,工作号={}", wrkCharge.getWrkNo());
                                        } else {
                                            steThread.setResetFlag(true);
                                        }
                                    }
                                } else {
                                    log.error("获取充电桩号失败,解析库位:{}", wrkCharge.getLocNo());
                                }
                            }
                        }
@@ -2078,7 +2061,8 @@
                if (steProtocol.getMode() == 0
                        || !steProtocol.statusType.equals(SteStatusType.IDLE)
                        || basSte.getPakMk().equals("Y")
                        || steProtocol.getChargeStatus() == 1) {
//                        || steProtocol.getChargeStatus() == 1
                ) {
                    continue;
                }
                if (!steProtocol.isEnable()) {
@@ -2116,6 +2100,11 @@
                    }
                } else {
                    // filter
                    if (wrkCharge.getWrkSts() < 26 && steProtocol.getChargeStatus() == 1) {
                        continue;
                    }
                    // 22.小车待搬
                    if (wrkCharge.getWrkSts() == 22) {
                        // 搬小车至充电库位
@@ -2151,6 +2140,7 @@
                    } else if (wrkCharge.getWrkSts() == 24L) {
                        // 小车行驶至充电位
                        if (steProtocol.statusType.equals(SteStatusType.IDLE) && steProtocol.getPakMk().equals("N")) {
                            if (steProtocol.getChargeStatus() == 1) { continue; }
                            // 命令下发区 --------------------------------------------------------------------------
                            SteCommand steCommand = new SteCommand();
                            steCommand.setSteNo(wrkCharge.getSteNo()); // 穿梭车编号
@@ -2159,32 +2149,33 @@
                            if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) {
                                log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
                            } else {
                                // 修改工作档状态 24.小车到达 ===> 25.小车行驶
                                // 修改工作档状态 24.小车到达 ===> 25.小车去充电
                                wrkCharge.setWrkSts(25L);
                                Date now = new Date();
                                wrkCharge.setCrnEndTime(now);
                                wrkCharge.setModiTime(now);
                                if (!wrkChargeService.updateById(wrkCharge)) {
                                    log.error("修改充电任务状态 24.小车到达 ===> 25.小车行驶 失败!!,工作号={}", wrkCharge.getWrkNo());
                                    log.error("修改充电任务状态 24.小车到达 ===> 25.小车去充电 失败!!,工作号={}", wrkCharge.getWrkNo());
                                }
                            }
                        }
                    } else if (wrkCharge.getWrkSts() == 26) {
                        if (steProtocol.getChargeStatus() == 1) { continue; }
                        // 穿梭车充电命令下发区 --------------------------------------------------------------------------
                        SteCommand steCommand = new SteCommand();
                        steCommand.setSteNo(wrkCharge.getSteNo()); // 穿梭车编号
                        steCommand.setTaskNo(wrkCharge.getWrkNo()); // 工作号
                        steCommand.setTaskMode(SteTaskModeType.CHARGE);
                        if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) {
                            log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
                        } else {
                            // 修改工作档状态  26.等待充电 ===> 27.输送线上电
                            wrkCharge.setWrkSts(27L);
                            wrkCharge.setModiTime(new Date());
                            if (!wrkChargeService.updateById(wrkCharge)) {
                                log.error("修改充电任务状态 26.等待充电 ===> 27.输送线上电 失败!!,工作号={}", wrkCharge.getWrkNo());
                        if (steProtocol.getChargeStatus() == 0) { continue; }
                        // 给输送线下发充电任务
                        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                        SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo());
                        if (null != steChargeType) {
                            if (devpThread.charge(steChargeType.ssbm - 1, true)) {
                                // 修改工作档状态 26.等待充电 ===> 28.完成充电
                                wrkCharge.setWrkSts(28L);
                                if (!wrkChargeService.updateById(wrkCharge)) {
                                    log.error("修改充电任务状态 26.等待充电 ===> 28.完成充电 失败!!,工作号={}", wrkCharge.getWrkNo());
                                } else {
                                    steThread.setResetFlag(true);
                                }
                            }
                        } else {
                            log.error("获取充电桩号失败,解析库位:{}", wrkCharge.getLocNo());
                        }
                    }
                }
src/main/java/com/zy/core/enums/SteTaskModeType.java
@@ -19,7 +19,8 @@
    WAITING_LEFT(10, "左待机"),       // B点
//    FIT_LEFT(11, "左搬移"),   // 左搬移
//    FIT_RIGHT(12, "右搬移"),      // 右搬移
    CHARGE(13, "充电"),         // 充电
    CHARGE_LEFT(13, "左充电"),         // 左充电
    CHARGE_RIGHT(14, "右充电"),         // 左充电
//    CHECK_LEFT(14, "左盘点"),     // 左盘点
//    CHECK_RIGHT(15, "右盘点"),    // 右盘点
    CLOSE_CHARGE(17, "断开充电"),   // 断开充电
@@ -252,7 +253,7 @@
            case 16:
            case 17:
            case 18:
                return SteTaskModeType.BACK_ORIGIN;
                return SteTaskModeType.CHARGE_LEFT;
            case 4:
            case 5:
            case 6:
@@ -263,7 +264,7 @@
            case 19:
            case 20:
            case 21:
                return SteTaskModeType.GO_ORIGIN;
                return SteTaskModeType.CHARGE_RIGHT;
            default:
                throw new CoolException("解析穿梭车原点定位失败");
        }
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -273,6 +273,8 @@
        if (!write.IsSuccess) {
            log.error("输送线plc编号={} {}号充电桩{}控制失败", slave.getId(), index + 1, open?"打开":"关闭");
            return false;
        } else {
            log.error("输送线plc编号={} {}号充电桩{}控制成功", slave.getId(), index + 1, open?"打开":"关闭");
        }
        return true;
    }
src/main/webapp/views/ste.html
@@ -123,7 +123,8 @@
                            <button class="item" onclick="steOperator(9)">右待机</button>
<!--                            <button class="item" onclick="steOperator(11)">左搬移</button>-->
<!--                            <button class="item" onclick="steOperator(12)">右搬移</button>-->
                            <button class="item" onclick="steOperator(13)">开始充电</button>
                            <button class="item" onclick="steOperator(13)">左充电</button>
                            <button class="item" onclick="steOperator(14)">右充电</button>
                            <button class="item" onclick="steOperator(17)">断开充电</button>
<!--                            <button class="item" onclick="steOperator(14)">左盘点</button>-->
<!--                            <button class="item" onclick="steOperator(15)">右盘点</button>-->