| | |
| | | private MainServiceImpl mainService; |
| | | // 所属线程 |
| | | private Thread thread; |
| | | private Thread thread2; |
| | | private Thread armThread; |
| | | private Thread agvThread; |
| | | // 频率 |
| | | private int i = 0; |
| | | private int k = 0; |
| | |
| | | thread = new Thread(this::crnAndDevRun); |
| | | thread.start(); |
| | | |
| | | thread2 = new Thread(this::roboticArmDispatch); |
| | | // thread2.start(); |
| | | armThread = new Thread(this::roboticArmDispatch); |
| | | armThread.start(); |
| | | |
| | | agvThread = new Thread(this::agvDispatch); |
| | | agvThread.start(); |
| | | } |
| | | private void crnAndDevRun() { |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | |
| | | } |
| | | i++; |
| | | |
| | | // 其他 ===>> 入出库模式切换 |
| | | // i++; |
| | | // if (i > 1) { |
| | | // mainService.ioConvert(); |
| | | // i = 0; |
| | | // } |
| | | |
| | | /////////////////////////////////////RGV调度///////////////////////////////////// |
| | | // |
| | | //完成小车任务 |
| | | // mainService.rgvCompleteWrkMastSta(); |
| | | |
| | | // //执行小车空板搬运任务 |
| | | // mainService.rgvRunWrkMastEmptyStaPut();//放 |
| | | // mainService.rgvRunWrkMastEmptyStaTake();//取 |
| | | // if (rgcWrk){ |
| | | // //执行小车货物搬运任务 |
| | | // mainService.rgvRunWrkMastFullSta(); |
| | | // rgcWrk = false; |
| | | // }else { |
| | | // mainService.rgvRunWrkMastEmptyStaAvoidance();//避让 |
| | | // rgcWrk = true; |
| | | // } |
| | | |
| | | |
| | | /////////////////////////////////////RGV调度///////////////////////////////////// |
| | | /////////////////////////////////////RGV调度///////////////////////////////////// |
| | | k++; |
| | | |
| | |
| | | try{ |
| | | //RGV小车出入库取货下发 |
| | | mainService.rgvIoExecute(11); |
| | | if(k > 2){ |
| | | mainService.rgvOutExecute(); |
| | | k = 0; |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("RGV ===>> 小车任务作业下发异常"+e); |
| | | } |
| | | //完成小车任务 |
| | | mainService.rgvCompleteWrkMastSta(); |
| | | /////////////////////////////////////RGV调度///////////////////////////////////// |
| | | // //完成小车任务 |
| | | mainService.rgvTaskComplete(); |
| | | |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | try { |
| | | |
| | | // 间隔 |
| | | Thread.sleep(1000); |
| | | Thread.sleep(400); |
| | | |
| | | // 系统运行状态判断 |
| | | if (!SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | continue; |
| | | } |
| | | |
| | | //arm任务完成 |
| | | mainService.armMissionAccomplished();//4==>5 |
| | | mainService.armMissionAccomplishedScanToCheckIn();//3===》4 |
| | | |
| | | //arm任务下发 |
| | | mainService.armTaskAssignment();//0===》1 |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void agvDispatch() { |
| | | while (!Thread.currentThread().isInterrupted()) { |
| | | try { |
| | | |
| | | // 间隔 |
| | | Thread.sleep(400); |
| | | |
| | | // 系统运行状态判断 |
| | | if (!SystemProperties.WCS_RUNNING_STATUS.get()) { |
| | | continue; |
| | | } |
| | | //agv任务下发 |
| | | mainService.agvTaskAssignment0();//0===》1 AGV库位==》输送线站点 0 |
| | | mainService.agvTaskAssignment1();//0===》1 AGV库位==》AGV库位 1 |
| | | mainService.agvTaskAssignment2();//0===》1 输送线站点==》AGV库位 2 |
| | | mainService.agvTaskAssignment3();//0===》1 输送线站点==》输送线站点 3 |
| | | |
| | | |
| | | mainService.agvTaskCreateFull();//任务生成 |
| | | mainService.agvTaskCreateEmpty();//任务生成 |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | @PreDestroy |
| | | public void shutDown(){ |
| | | if (thread != null) thread.interrupt(); |
| | | if (thread2 != null) thread2.interrupt(); |
| | | if (armThread != null) armThread.interrupt(); |
| | | } |
| | | |
| | | } |