| | |
| | | import HslCommunication.Profinet.Siemens.SiemensPLCS; |
| | | import HslCommunication.Profinet.Siemens.SiemensS7Net; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | 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; |
| | |
| | | @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(); |
| | |
| | | Thread.sleep(1000); |
| | | if(!connectRgv){ |
| | | try { |
| | | // 根据实时信息更新数据库 |
| | | BasCircularShuttleService basCircularShuttleService = SpringUtils.getBean(BasCircularShuttleService.class); |
| | | BasCircularShuttle basCircularShuttle = basCircularShuttleService.getOne(new QueryWrapper<BasCircularShuttle>().eq("rgv_no", slave.getId())); |
| | | if (basCircularShuttle.getStatus() != 0){ |
| | | continue; |
| | | } |
| | | } catch (Exception ignore) { |
| | | |
| | | } |
| | | try { |
| | | connectRgv = this.connect(); |
| | | Thread.sleep(100); |
| | | } catch (Exception e){ |
| | |
| | | continue; |
| | | } |
| | | Thread.sleep(40); |
| | | readStatus(); |
| | | |
| | | // readStatus(); |
| | | initRgv(); |
| | | } catch (Exception e) { |
| | | log.error("RGV读线程异常"+e.getMessage()); |
| | | |
| | |
| | | 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); |
| | |
| | | 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); |
| | |
| | | if (!alarmChangeSign && !alarmList.isEmpty()){ |
| | | BasRgvErrLogService basRgvErrLogService = SpringUtils.getBean(BasRgvErrLogService.class); |
| | | BasRgvErrLog basRgvErrLog = new BasRgvErrLog(rgvProtocol.getAlarmList(), rgvProtocol.getTaskNo1(), rgvProtocol.getRgvNo()); |
| | | basRgvErrLogService.insert(basRgvErrLog); |
| | | basRgvErrLogService.save(basRgvErrLog); |
| | | } |
| | | } catch (Exception e){ |
| | | log.error("RGV异常信息保存失败!!"); |
| | |
| | | BasRgvOptService basRgvOptService = SpringUtils.getBean(BasRgvOptService.class); |
| | | BasRgvOpt basRgvOpt = new BasRgvOpt(rgvProtocol.getTaskNo1().intValue(), rgvProtocol.getRgvNo(), rgvProtocol.getRgvPosInt(), command); |
| | | log.info(rgvProtocol.getRgvNo()+"号小车写入命令定位值:"+rgvProtocol.getRgvPosInt()); |
| | | basRgvOptService.insert(basRgvOpt); |
| | | basRgvOptService.save(basRgvOpt); |
| | | }catch (Exception e){ |
| | | log.error("RGV写入命令保存失败!!"); |
| | | } |
| | |
| | | try{ |
| | | BasRgvOptService basRgvOptService = SpringUtils.getBean(BasRgvOptService.class); |
| | | BasRgvOpt basRgvOpt = new BasRgvOpt(rgvProtocol.getTaskNo1().intValue(), rgvProtocol.getRgvNo(), rgvProtocol.getRgvPosI(), command); |
| | | basRgvOptService.insert(basRgvOpt); |
| | | basRgvOptService.save(basRgvOpt); |
| | | }catch (Exception e){ |
| | | log.error("RGV写入命令保存失败!!"); |
| | | } |
| | |
| | | new Date(), |
| | | null |
| | | ); |
| | | bean.insert(basRgvOpt); |
| | | bean.save(basRgvOpt); |
| | | } catch (Exception ignore) {} |
| | | |
| | | if (result != null && result.IsSuccess) { |
| | |
| | | new Date(), |
| | | null |
| | | ); |
| | | bean.insert(basRgvOpt); |
| | | bean.save(basRgvOpt); |
| | | } catch (Exception ignore) {} |
| | | |
| | | if (result != null && result.IsSuccess) { |
| | |
| | | new Date(), |
| | | null |
| | | ); |
| | | bean.insert(basRgvOpt); |
| | | bean.save(basRgvOpt); |
| | | } catch (Exception ignore) {} |
| | | |
| | | if (result != null && result.IsSuccess) { |