自动化立体仓库 - WCS系统
#
LSH
2024-01-05 1b9e9f54bf084aaa6befe16cacac4092d71442fa
src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -48,6 +48,10 @@
     */
    private boolean backHpFlag = false;
    public Long sign = System.currentTimeMillis();
    public boolean isRunning = true;
    public MelsecCrnThread(CrnSlave slave) {
        this.slave = slave;
    }
@@ -55,13 +59,15 @@
    @Override
    @SuppressWarnings("InfiniteLoopStatement")
    public void run() {
        System.out.println("线程启动");
        System.out.println("crnProtocol:"+crnProtocol);
        this.connect();
//        try {
//            Thread.sleep(2000);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }
        while (true) {
        while (isRunning) {
            try {
                int step = 1;
                Task task = MessageQueue.poll(SlaveType.Crn, slave.getId());
@@ -104,7 +110,8 @@
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("第"+slave.getId()+"个堆垛机线程运行一轮:"+(System.currentTimeMillis()-sign));
            sign = System.currentTimeMillis();
        }
    }
@@ -226,6 +233,8 @@
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】读取堆垛机plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
            News.error("MelsecCrn"+" - 5"+" - 读取堆垛机plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            initCrn();
        } finally {
            sign = System.currentTimeMillis();
        }
    }
@@ -473,4 +482,17 @@
    }
    // 提供一个方法来停止线程
    public void requestStop() {
        isRunning = false;
    }
    // 提供一个方法来重启线程
    public Thread restartThread() {
        isRunning = true;
        Thread newThread = new Thread(this);
        newThread.start();
        return newThread;
    }
}