| | |
| | | import HslCommunication.Profinet.Siemens.SiemensPLCS; |
| | | import HslCommunication.Profinet.Siemens.SiemensS7Net; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.entity.BasCircularShuttle; |
| | |
| | | private boolean resetFlag2 = false; |
| | | private boolean connectRgv = false; |
| | | private boolean alarmChangeSign = false; |
| | | private boolean csSign = true;//测试标记 |
| | | |
| | | public RgvThread(RgvSlave slave) { |
| | | this.slave = slave; |
| | |
| | | try { |
| | | // 根据实时信息更新数据库 |
| | | BasCircularShuttleService basCircularShuttleService = SpringUtils.getBean(BasCircularShuttleService.class); |
| | | BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_no", slave.getId())); |
| | | BasCircularShuttle basCircularShuttle = basCircularShuttleService.getOne(new QueryWrapper<BasCircularShuttle>().eq("rgv_no", slave.getId())); |
| | | if (basCircularShuttle.getStatus() != 0){ |
| | | continue; |
| | | } |
| | |
| | | continue; |
| | | } |
| | | Thread.sleep(40); |
| | | readStatus(); |
| | | |
| | | // readStatus(); |
| | | initRgv(); |
| | | } catch (Exception e) { |
| | | log.error("RGV读线程异常"+e.getMessage()); |
| | | |
| | |
| | | * 初始化RGV状态 |
| | | */ |
| | | private void initRgv() { |
| | | if (csSign){ |
| | | initRgvCS(); |
| | | } else { |
| | | initRgvT(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 初始化RGV状态 |
| | | */ |
| | | private void initRgvT() { |
| | | if (null == rgvProtocol) { |
| | | rgvProtocol = new RgvProtocol(); |
| | | } |
| | |
| | | rgvProtocol.setxDistance((short) 0); |
| | | rgvProtocol.setxDuration((short) 0); |
| | | log.error("连接中断:RGV号:"+slave.getId()); |
| | | try { |
| | | // 根据实时信息更新数据库 |
| | | BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class); |
| | | BasRgv basRgv = new BasRgv(); |
| | | basRgv.setRgvNo(slave.getId()); |
| | | basRgv.setRgvSts((int)rgvProtocol.getMode()); |
| | | basRgv.setLoaded2(rgvProtocol.getLoaded2().intValue()); |
| | | if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))){ |
| | | log.error("RGV plc数据库更新失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); |
| | | } |
| | | } catch (Exception ignore) { |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 初始化RGV状态 |
| | | */ |
| | | private void initRgvCS() { |
| | | if (null == rgvProtocol) { |
| | | rgvProtocol = new RgvProtocol(); |
| | | rgvProtocol.setRgvNo(slave.getId()); |
| | | rgvProtocol.setMode((short) 3); |
| | | rgvProtocol.setStatus((short)0); |
| | | rgvProtocol.setTaskNo1((short)0); |
| | | rgvProtocol.setStatus1((short)0); |
| | | rgvProtocol.setLoaded1((short)0); |
| | | rgvProtocol.setWalkPos((short)0); |
| | | if (rgvProtocol.getRgvPos()==null || rgvProtocol.getRgvPos()==0){ |
| | | rgvProtocol.setRgvPos(1L+rgvProtocol.getRgvNo()*10000); |
| | | } |
| | | // rgvProtocol.setRgvPos(rgvProtocol.getRgvPos()+1000); |
| | | rgvProtocol.setRgvPos(rgvProtocol.getRgvPos()); |
| | | 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); |
| | | } |
| | | // 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) { |