| | |
| | | private boolean resetFlag2 = false; |
| | | private boolean connectRgv = false; |
| | | private boolean alarmChangeSign = false; |
| | | private int rgvIII = 1; |
| | | |
| | | public RgvThread(RgvSlave slave) { |
| | | this.slave = slave; |
| | |
| | | @Override |
| | | @SuppressWarnings("InfiniteLoopStatement") |
| | | public void run() { |
| | | rgvIII = this.slave.getId(); |
| | | connectRgv = this.connect(); |
| | | while(!connectRgv){ |
| | | try { |
| | |
| | | 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 initRgv() { |
| | | // 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); |
| | | // rgvProtocol.setRgvPos(slave.getId()*100000L); |
| | | // rgvProtocol.setTaskNo2((short)0); |
| | | // rgvProtocol.setStatus2((short)0); |
| | | // rgvProtocol.setLoaded2((short)0); |
| | | // rgvProtocol.setAlarm((short)0); |
| | | // rgvProtocol.setxSpeed((short) 0); |
| | | // rgvProtocol.setxDistance((short) 0); |
| | | // rgvProtocol.setxDuration((short) 0); |
| | | // } |
| | | |
| | | @Override |
| | | public boolean connect() { |
| | |
| | | rgvProtocol.setAlarmList(alarmList); |
| | | |
| | | // rgvProtocol.setRgvPos((long) NumUtils.GetRandomIntInRange(1737000)); |
| | | rgvProtocol.setRgvPos((long) (10000*rgvIII+rgvProtocol.getRgvNo()*10000)); |
| | | if (rgvProtocol.getRgvPos()>1737000){ |
| | | rgvIII = rgvProtocol.getRgvNo(); |
| | | rgvProtocol.setRgvPos((long) (10000*rgvIII+rgvProtocol.getRgvNo()*10000)); |
| | | } |
| | | rgvIII++; |
| | | OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); |
| | | |
| | | |