*
L
2026-04-20 732ea41c1bcd1623068d46db64f88e36abe3dcb9
src/main/java/com/zy/core/thread/RgvThread.java
@@ -5,11 +5,14 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasCircularShuttle;
import com.zy.asrs.entity.BasRgv;
import com.zy.asrs.entity.BasRgvErrLog;
import com.zy.asrs.entity.BasRgvOpt;
import com.zy.asrs.service.BasCircularShuttleService;
import com.zy.asrs.service.BasRgvErrLogService;
import com.zy.asrs.service.BasRgvOptService;
import com.zy.asrs.service.BasRgvService;
@@ -63,14 +66,6 @@
    @SuppressWarnings("InfiniteLoopStatement")
    public void run() {
        connectRgv = this.connect();
        while(!connectRgv){
            try {
                connectRgv = this.connect();
                Thread.sleep(100);
            } catch (Exception e){
            }
        }
        // 启动线程自动重连
        new Thread(this::rgvConnect).start();
@@ -159,6 +154,16 @@
                Thread.sleep(1000);
                if(!connectRgv){
                    try {
                        // 根据实时信息更新数据库
                        BasCircularShuttleService basCircularShuttleService = SpringUtils.getBean(BasCircularShuttleService.class);
                        BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_no",  slave.getId()));
                        if (basCircularShuttle.getStatus() != 0){
                            continue;
                        }
                    } catch (Exception ignore) {
                    }
                    try {
                        connectRgv = this.connect();
                        Thread.sleep(100);
                    } catch (Exception e){
@@ -187,8 +192,8 @@
                    continue;
                }
                Thread.sleep(40);
                readStatus();
//                readStatus();
                initRgv();
            } catch (Exception e) {
                log.error("RGV读线程异常"+e.getMessage());
@@ -209,13 +214,30 @@
            rgvProtocol = new RgvProtocol();
        }
        rgvProtocol.setRgvNo(slave.getId());
        rgvProtocol.setMode((short) -1);
        rgvProtocol.setStatus((short)-1);
//        rgvProtocol.setMode((short) -1);
//        rgvProtocol.setStatus((short)-1);
//        rgvProtocol.setTaskNo1((short)0);
//        rgvProtocol.setStatus1((short)-1);
//        rgvProtocol.setLoaded1((short)0);
//        rgvProtocol.setWalkPos((short)0);
//        rgvProtocol.setRgvPos(0L);
//        rgvProtocol.setTaskNo2((short)0);
//        rgvProtocol.setStatus2((short)-1);
//        rgvProtocol.setLoaded2((short)0);
//        rgvProtocol.setAlarm((short)0);
//        rgvProtocol.setxSpeed((short) 0);
//        rgvProtocol.setxDistance((short) 0);
//        rgvProtocol.setxDuration((short) 0);
        rgvProtocol.setMode((short) 3);
        rgvProtocol.setStatus((short)0);
        rgvProtocol.setTaskNo1((short)0);
        rgvProtocol.setStatus1((short)-1);
        rgvProtocol.setStatus1((short)0);
        rgvProtocol.setLoaded1((short)0);
        rgvProtocol.setWalkPos((short)0);
        rgvProtocol.setRgvPos(0L);
        if (rgvProtocol.getRgvPos()==null ||  rgvProtocol.getRgvPos()==0){
            rgvProtocol.setRgvPos(1L+rgvProtocol.getRgvNo()*10000);
        }
        rgvProtocol.setRgvPos(rgvProtocol.getRgvPos()+1000);
        rgvProtocol.setTaskNo2((short)0);
        rgvProtocol.setStatus2((short)-1);
        rgvProtocol.setLoaded2((short)0);
@@ -223,7 +245,7 @@
        rgvProtocol.setxSpeed((short) 0);
        rgvProtocol.setxDistance((short) 0);
        rgvProtocol.setxDuration((short) 0);
        log.error("连接中断:RGV号:"+slave.getId());
//        log.error("连接中断:RGV号:"+slave.getId());
        try {
            // 根据实时信息更新数据库
            BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class);