| | |
| | | package com.zy.core; |
| | | |
| | | import com.zy.asrs.service.impl.ForkMainServiceImpl; |
| | | import com.zy.asrs.service.impl.MainServiceImpl; |
| | | import com.zy.core.properties.SystemProperties; |
| | | import lombok.Data; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.PreDestroy; |
| | |
| | | @Component |
| | | public class MainProcess { |
| | | |
| | | @Value("${deviceExecuteConfig.liftType}") |
| | | private String liftType; |
| | | @Autowired |
| | | private MainServiceImpl mainService; |
| | | @Autowired |
| | | private ForkMainServiceImpl forkMainService; |
| | | // 所属线程 |
| | | private Thread thread; |
| | | // 频率 |
| | |
| | | * =====>> 开始工作 |
| | | */ |
| | | public void start(){ |
| | | if(liftType.equals("ForkLift")){ |
| | | initForkMain(); |
| | | }else { |
| | | initMain(); |
| | | } |
| | | } |
| | | |
| | | private void initMain() { |
| | | thread = new Thread(() -> { |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | | try { |
| | |
| | | continue; |
| | | } |
| | | |
| | | // // 演示 |
| | | // mainService.demo(); |
| | | |
| | | // 入库 ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档 |
| | | mainService.generateStoreWrkFile(); // 组托 |
| | | // mainService.generateStoreWrkFile0(); // WMS入库 |
| | | |
| | | // 间隔 |
| | | Thread.sleep(500); |
| | | |
| | | //初始化实时地图 |
| | | mainService.initRealtimeBasMap(); |
| | | // //从redis中重启任务 |
| | | // mainService.restartTaskFromRedis(); |
| | | // 拣料、并板、盘点再入库 |
| | | mainService.stnToCrnStnPick(); |
| | | // // 入库 ===>> 四向穿梭车入库作业下发 |
| | | // mainService.shuttleIoInExecute(); |
| | | // // 出库 ===>> 四向穿梭车出库作业下发 |
| | | // mainService.shuttleIoOutExecute(); |
| | | |
| | | // 入库 ===>> 四向穿梭车入库作业下发 |
| | | mainService.shuttleInExecute(); |
| | | // 出库 ===>> 四向穿梭车出库作业下发 |
| | | mainService.shuttleOutExecute(); |
| | | // //四向穿梭车任务完成 |
| | | // mainService.shuttleFinished(); |
| | | //提升机任务 |
| | | mainService.liftIoExecute(); |
| | | //提升机任务完成 |
| | | mainService.liftFinished(); |
| | | //库位移转 |
| | | mainService.locToLocExecute(); |
| | | // // 异常信息记录 |
| | | // mainService.recErr(); |
| | | // 入库 ===>> 空栈板初始化入库,叉车入库站放货 |
| | | mainService.storeEmptyPlt(); |
| | | // 出库 ===>> 工作档信息写入led显示器 |
| | | mainService.ledExecute(); |
| | | // 其他 ===>> LED显示器复位,显示默认信息 |
| | | mainService.ledReset(); |
| | | //执行移库任务 |
| | | mainService.shuttleLocMoveExecute(); |
| | | //货叉提升机任务 |
| | | mainService.forkLiftIoExecute(); |
| | | //货叉提升机任务完成 |
| | | mainService.forkLiftFinished(); |
| | | //执行小车移动任务 |
| | | mainService.shuttleMoveExecute(); |
| | | // 异常信息记录 |
| | | mainService.recErr(); |
| | | // 穿梭车 ===>> 小车电量检测充电 |
| | | // mainService.loopShuttleCharge(); |
| | | // mainService.executeShuttleCharge(); |
| | | mainService.loopShuttleCharge(); |
| | | mainService.executeShuttleCharge(); |
| | | |
| | | // //出入库模式 |
| | | // i++; |
| | | // if (i > 1) { |
| | | // mainService.outAndIn(); |
| | | // i = 0; |
| | | // } |
| | | //自动切换出入库模式 |
| | | mainService.autoSwitchForkLiftIOMode(); |
| | | |
| | | // 间隔 |
| | | Thread.sleep(200); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | }); |
| | | thread.start(); |
| | | } |
| | | |
| | | private void initForkMain() { |
| | | thread = new Thread(() -> { |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | | try { |
| | | |
| | | // 间隔 |
| | | Thread.sleep(300); |
| | | |
| | | // 系统运行状态判断 |
| | | if (!SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | continue; |
| | | } |
| | | |
| | | //初始化实时地图 |
| | | forkMainService.initRealtimeBasMap(); |
| | | |
| | | //出库任务预调度提升机 |
| | | forkMainService.outTaskPreviewDispatchForkLift(); |
| | | |
| | | // 入库 ===>> 四向穿梭车入库作业下发 |
| | | forkMainService.shuttleInExecute(); |
| | | // 出库 ===>> 四向穿梭车出库作业下发 |
| | | forkMainService.shuttleOutExecute(); |
| | | // //四向穿梭车任务完成 |
| | | // mainService.shuttleFinished(); |
| | | //执行移库任务 |
| | | forkMainService.shuttleLocMoveExecute(); |
| | | //货叉提升机任务 |
| | | forkMainService.forkLiftIoExecute(); |
| | | //货叉提升机任务完成 |
| | | forkMainService.forkLiftFinished(); |
| | | //执行小车移动任务 |
| | | forkMainService.shuttleMoveExecute(); |
| | | // 异常信息记录 |
| | | forkMainService.recErr(); |
| | | // 穿梭车 ===>> 小车电量检测充电 |
| | | forkMainService.loopShuttleCharge(); |
| | | forkMainService.executeShuttleCharge(); |
| | | |
| | | //自动切换出入库模式 |
| | | forkMainService.autoSwitchForkLiftIOMode(); |
| | | |
| | | // 间隔 |
| | | Thread.sleep(200); |