自动化立体仓库 - WCS系统
Junjie
2024-11-22 a2d6371396f74e4fb30a4c79e91c6b371a77d0b5
src/main/java/com/zy/core/MainProcess.java
@@ -22,6 +22,8 @@
    private MainServiceImpl mainService;
    // 所属线程
    private Thread thread;
    // 所属线程
    private Thread agvThread;
    // 频率
    private int i = 0;
@@ -50,8 +52,12 @@
                    //初始化实时地图
                    mainService.initRealtimeBasMap();
                    // 拣料、并板、盘点再入库
                    // 拣料、并板再入库
                    mainService.stnToCrnStnPick();
//                    // 拣料、并板再入库(325、331、333、339)
//                    mainService.stnToCrnStnPick2();
                    // 盘点再入库
                    mainService.stnToCrnStnPlate();
                    // 入库  ===>>  四向穿梭车入库作业下发
                    mainService.shuttleInExecute();
                    // 出库  ===>>  四向穿梭车出库作业下发
@@ -70,8 +76,18 @@
                    mainService.recErr();
                    // 入库  ===>> 空栈板初始化入库,叉车入库站放货
                    mainService.storeEmptyPlt();
                    // AGV补货(机械臂拣料)
                    mainService.agvRestockByRobot();
//                    // AGV补货 => 生成入库通知档
//                    mainService.robotGenerateAgvTask();
//                    // AGV补货(机械臂拣料)
//                    mainService.agvRestockByRobot();
//                    // AGV补货(通知AGV取货)
//                    mainService.agvRestockInto();
//                    // AGV补货(悬挂线通知AGV取货)
//                    mainService.agvRestockIntoByHangingWire();
//                    // AGV信息更新
//                    mainService.agvCurrentContainerCodeInfoWire();
                    // 300站拣料
                    mainService.pick300();
                    // 出库  ===>> 工作档信息写入led显示器
                    mainService.ledExecute();
                    // 其他  ===>> LED显示器复位,显示默认信息
@@ -79,6 +95,9 @@
                    // 穿梭车 ===>> 小车电量检测充电
                    mainService.loopShuttleCharge();
                    mainService.executeShuttleCharge();
                    //扫描设备PakMk标记是否超时
                    mainService.scanDevicePakMk();
                    // 间隔
                    Thread.sleep(200);
@@ -90,9 +109,40 @@
        thread.start();
    }
    public void agvStart(){
        agvThread = new Thread(() -> {
            while (!Thread.currentThread().isInterrupted()) {
                try {
                    // 间隔
                    Thread.sleep(300);
                    // AGV补货 => 生成入库通知档
                    mainService.robotGenerateAgvTask();
                    // AGV补货(机械臂拣料)
                    mainService.agvRestockByRobot();
                    // AGV补货(通知AGV取货)
                    mainService.agvRestockInto();
                    // AGV补货(悬挂线通知AGV取货)
                    mainService.agvRestockIntoByHangingWire();
                    // AGV信息更新
                    mainService.agvCurrentContainerCodeInfoWire();
                    // 间隔
                    Thread.sleep(200);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        agvThread.start();
    }
    @PreDestroy
    public void shutDown(){
        if (thread != null) thread.interrupt();
        if (agvThread != null) agvThread.interrupt();
    }
}