*
lsh
2025-07-30 ba1fd16f681598ace796d00032d689bacc3ff972
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -39,6 +39,10 @@
    private CrnProtocol crnProtocol;
    private boolean resetFlag = false;
    public Long sign = System.currentTimeMillis();
    public boolean isRunning = true;
    /**
     * 堆垛机是否在回原点运动中标记
     */
@@ -52,7 +56,7 @@
    @SuppressWarnings("InfiniteLoopStatement")
    public void run() {
        this.connect();
        while (true) {
        while (isRunning) {
            try {
                int step = 1;
                Task task = MessageQueue.poll(SlaveType.Crn, slave.getId());
@@ -93,7 +97,8 @@
            } catch (Exception e) {
//                e.printStackTrace();
            }
//            System.out.println("第"+slave.getId()+"个堆垛机线程运行一轮:"+(System.currentTimeMillis()-sign));
            sign = System.currentTimeMillis();
        }
    }
@@ -121,6 +126,19 @@
        crnProtocol.setyDistance((short) 0);
        crnProtocol.setxDuration((short) 0);
        crnProtocol.setyDuration((short) 0);
        try {
            // 根据实时信息更新数据库
            BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
            BasCrnp basCrnp = new BasCrnp();
            basCrnp.setCrnNo(slave.getId());
            basCrnp.setCrnSts((int)crnProtocol.getMode());
            if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
                log.error("堆垛机plc数据库更新失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
            }
        } catch (Exception ignore){}
    }
    @Override
@@ -415,4 +433,9 @@
    }
    // 提供一个方法来停止线程
    public void requestStop() {
        isRunning = false;
    }
}