| | |
| | | private boolean resetFlag2 = false; |
| | | |
| | | private boolean connectRgv = false; |
| | | public Long currentTimeMilliConnectRgv= 0L; |
| | | |
| | | private boolean delRgvTask = false; |
| | | private short wrkSign = 0; |
| | | |
| | |
| | | @Override |
| | | @SuppressWarnings("InfiniteLoopStatement") |
| | | public void run() { |
| | | initRgv(); |
| | | try{ |
| | | Thread.sleep(2000); |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | connectRgv = this.connect(); |
| | | while(!connectRgv){ |
| | | try { |
| | |
| | | // OutputQueue.RGV.offer(MessageFormat.format("【{0}】RGV plc连接失败!!! ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); |
| | | log.error("RGV plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); |
| | | |
| | | try{ |
| | | DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | deviceErrorService.addDeviceError("rgv", slave.getId(), "RGVplc连接失败"); |
| | | } catch (Exception e2){ |
| | | if (System.currentTimeMillis()-currentTimeMilliConnectRgv>1000*60*10){ |
| | | try{ |
| | | DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class); |
| | | deviceErrorService.addDeviceError("rgv", slave.getId(), "RGVplc连接失败"); |
| | | } catch (Exception e2){ |
| | | // log.error("e2:"+e2.getMessage()); |
| | | } |
| | | if (currentTimeMilliConnectRgv == 0){ |
| | | currentTimeMilliConnectRgv = System.currentTimeMillis()-1000*60*10-1; |
| | | } else { |
| | | currentTimeMilliConnectRgv = System.currentTimeMillis(); |
| | | } |
| | | } |
| | | } |
| | | initRgv(); |
| | |
| | | rgvProtocol.setErr4(status[11]); |
| | | rgvProtocol.setErr5(status[12]); |
| | | rgvProtocol.setErr6(status[13]); |
| | | rgvProtocol.setErr7(status[14]); |
| | | rgvProtocol.setErr8(status[15]); |
| | | // System.out.println("读线程"+ slave.getId()+"---"+JSON.toJSONString(rgvProtocol)); |
| | | // System.out.println("读线程,小车号"+ slave.getId()+"时间戳:"+System.currentTimeMillis()+"小车数据:"+JSON.toJSONString(rgvProtocol)); |
| | | if (rgvProtocol.getRgvNo()==1){ |
| | | log.info("读线程,小车号"+ slave.getId()+"时间戳:"+System.currentTimeMillis()+"小车数据:"+JSON.toJSONString(rgvProtocol)); |
| | | } |
| | | OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功", DateUtils.convert(new Date()), slave.getId())); |
| | | // // 工位1复位信号 |
| | | // if (rgvProtocol.getStatusType().equals(RgvStatusType.WAITING) |
| | |
| | | OperateResult result2 = siemensNet.Write("DB100.6", taskProtocol.getTaskNo().intValue()); |
| | | OperateResult result3 = siemensNet.Write("DB100.10", taskProtocol.isDirection()? (short) 1 : (short) 2); // 执行方向(面朝轨道 定位值左小右大) true:左 false:右 |
| | | Thread.sleep(20L); |
| | | this.wrkSign = 1; |
| | | |
| | | OperateResult result4 = siemensNet.Write("DB100.12.0", true); |
| | | log.info("任务下发线程,小车号"+ slave.getId()+"时间戳:"+System.currentTimeMillis()); |
| | | this.wrkSign = 1; |
| | | |
| | | // log.info("任务下发线程,小车号"+ slave.getId()+"时间戳:"+System.currentTimeMillis()); |
| | | |
| | | // if (taskProtocol.getAckFinish1() == 0) { |
| | | // short commandFinish = 3; //工位1、2任务同时写入 |