自动化立体仓库 - WCS系统
#
zjj
2024-01-19 c5c1d3745bed9021ce4f90dcaa15c5b25cf4c05c
#
4个文件已修改
91 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/LocTypeDto.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/ServerBootstrap.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2169,6 +2169,7 @@
     */
    public synchronized void rgvCompleteWrkMastSta() {
        try{
            for (DevpSlave devp : slaveProperties.getDevp()) {
            for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
                RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
@@ -2209,7 +2210,7 @@
                            log.error("小车复位失败,小车号{}!",rgvProtocol.getRgvNo());
                            break;
                        }
                        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                        DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                        StaProtocol staProtocol = devpThread.getStation().get(wrkMastSta.getStaEnd());
                        WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue());
                        if (!Cools.isEmpty(wrkMast)){
@@ -2220,7 +2221,7 @@
                            staProtocol.setWorkNo(wrkMast.getWrkNo());
                            staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            if (!MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol))) {
                            if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
                                continue;
                            }
                        }
@@ -2235,6 +2236,7 @@
                        log.error("小车复位失败,小车号{},等待wcs确认但是没有工作号!",rgvProtocol.getRgvNo());
                    }
                }
            }
            }
        }catch (Exception e){
            log.error("小车复位线程报错!"+e);
@@ -2294,6 +2296,7 @@
                        break;
                    }
                }
            }
        }catch (Exception e){
            log.error("3875行执行小车搬运任务下发失败");
src/main/java/com/zy/common/model/LocTypeDto.java
@@ -32,11 +32,11 @@
//        if (staProtocol.isHigh() == staProtocol.isLow()) {
//            throw new CoolException("plc高低检测异常");
//        }
//        if (staProtocol.isLow()) {
        if (staProtocol.getSiteId() == 106){
            this.locType1 = 2; // 高库位
        }else {
            this.locType1 = 1; // 低库位
//        } else {
//            this.locType1 = 2; // 高库位
//        }
        }
    }
    /**
src/main/java/com/zy/core/ServerBootstrap.java
@@ -134,40 +134,40 @@
    public void destroy() {
    }
    @Component
    class killThread {
//    @Component
//    class killThread {
//
//        @Scheduled(cron = "0/3 * * * * ? ")
//        public void kill() {
//            int i = 0;
//            for (Map.Entry<CrnThread, Thread> entry : map.entrySet()) {
//                i++;
//                SiemensCrnThread key = (SiemensCrnThread) entry.getKey();
////                System.out.println("第"+i+"个堆垛机线程重启线程条件:"+(System.currentTimeMillis() - key.getSign()));
//                if (System.currentTimeMillis() - key.getSign() > 120000) {
//                    System.out.println("第"+i+"个堆垛机线程被重启");
//
//                    // 请求线程安全停止
//                    key.requestStop();
//
//                    // 等待线程完成停止, 可以这样做也可以选择不这么做,取决于是否需要等待线程结束
//                    try {
//                        entry.getValue().join(20000); // 等待最多20秒
//                    } catch (InterruptedException e) {
////                        // 可适当处理中断
////                        Thread.currentThread().interrupt(); // 保留中断状态
//                        entry.getValue().stop();
//                    }
//
//                    // 重新启动线程
//                    Thread thread = new Thread((Runnable) key); // 假设CrnThread实现了Runnable
//                    thread.start();
//
//                    // 替换映射关系中的旧线程
//                    map.put(entry.getKey(), thread);
//                }
//            }
//        }
        @Scheduled(cron = "0/3 * * * * ? ")
        public void kill() {
            int i = 0;
            for (Map.Entry<CrnThread, Thread> entry : map.entrySet()) {
                i++;
                SiemensCrnThread key = (SiemensCrnThread) entry.getKey();
//                System.out.println("第"+i+"个堆垛机线程重启线程条件:"+(System.currentTimeMillis() - key.getSign()));
                if (System.currentTimeMillis() - key.getSign() > 120000) {
                    System.out.println("第"+i+"个堆垛机线程被重启");
                    // 请求线程安全停止
                    key.requestStop();
                    // 等待线程完成停止, 可以这样做也可以选择不这么做,取决于是否需要等待线程结束
                    try {
                        entry.getValue().join(20000); // 等待最多20秒
                    } catch (InterruptedException e) {
//                        // 可适当处理中断
//                        Thread.currentThread().interrupt(); // 保留中断状态
                        entry.getValue().stop();
                    }
                    // 重新启动线程
                    Thread thread = new Thread((Runnable) key); // 假设CrnThread实现了Runnable
                    thread.start();
                    // 替换映射关系中的旧线程
                    map.put(entry.getKey(), thread);
                }
            }
        }
    }
//    }
}
src/main/resources/application.yml
@@ -294,21 +294,21 @@
    ip: 10.10.10.249
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 101
    staArr: 100
  # LED2
  led[1]:
    id: 2
    ip: 10.10.10.248
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 108
    staArr: 106
  # LED3
  led[2]:
    id: 3
    ip: 10.10.10.247
    port: 5005
    devpPlcId: ${wcs-slave.devp[0].id}
    staArr: 117
    staArr: 107
  # LED4
  led[3]:
    id: 4