|  |  | 
 |  |  | import com.zy.asrs.service.BasRgvOptService; | 
 |  |  | import com.zy.asrs.service.BasRgvService; | 
 |  |  | import com.zy.common.utils.News; | 
 |  |  | import com.zy.core.RgvThread2; | 
 |  |  | import com.zy.core.ThreadHandler; | 
 |  |  | import com.zy.core.cache.MessageQueue; | 
 |  |  | import com.zy.core.cache.OutputQueue; | 
 |  |  | 
 |  |  |  */ | 
 |  |  | @Data | 
 |  |  | @Slf4j | 
 |  |  | public class RgvThread implements Runnable, ThreadHandler { | 
 |  |  | public class RgvThread implements Runnable, RgvThread2 { | 
 |  |  |  | 
 |  |  |     private SiemensS7Net siemensNet; | 
 |  |  |     private RgvSlave slave; | 
 |  |  | 
 |  |  |      * 工位2复位信号 | 
 |  |  |      */ | 
 |  |  |     private boolean resetFlag2 = false; | 
 |  |  |  | 
 |  |  |     //锁定标记 | 
 |  |  |     private boolean PakMk = true; | 
 |  |  |  | 
 |  |  |     public RgvThread(RgvSlave slave) { | 
 |  |  |         this.slave = slave; | 
 |  |  | 
 |  |  |             } else { | 
 |  |  |                 initRgv(); | 
 |  |  |                 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()); | 
 |  |  | //                log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |             OutputQueue.RGV.offer(MessageFormat.format("【{0}】读取RGV plc状态信息失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); | 
 |  |  |             log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
 |  |  | //            log.error("读取RGV plc状态信息失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
 |  |  |             initRgv(); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         OperateResultExOne<byte[]> result3 = siemensNet.Read("DB100.0", (short) 12); | 
 |  |  |         OperateResultExOne<byte[]> result4 = siemensNet.Read("DB100.10", (short) 2); | 
 |  |  |         if (result3.IsSuccess){ | 
 |  |  |             RgvCommand one = new RgvCommand(); | 
 |  |  | //                one.setAckFinish1(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0)); | 
 |  |  |             one.setTaskNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 2)); | 
 |  |  |             one.setTaskMode1(siemensNet.getByteTransform().TransInt16(result3.Content, 4)); | 
 |  |  |             one.setSourceStaNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 6)); | 
 |  |  |             one.setDestinationStaNo1(siemensNet.getByteTransform().TransInt16(result3.Content, 8)); | 
 |  |  |             one.setCommand(siemensNet.getByteTransform().TransInt16(result4.Content, 0)); | 
 |  |  |  | 
 |  |  |             News.error("RGV命令下发前读取状态[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         OperateResult result8 = siemensNet.Write("DB100.10", (short) 0); | 
 |  |  |         if (result8.IsSuccess){ | 
 |  |  |             News.error("下发前把车子确认位置为0"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | //        siemensNet.Write("DB100.20", command.getCommand()); | 
 |  |  |  | 
 |  |  |         command.setRgvNo(slave.getId()); | 
 |  |  | 
 |  |  |         array[2] = command.getTaskMode1(); | 
 |  |  |         array[3] = command.getSourceStaNo1(); | 
 |  |  |         array[4] = command.getDestinationStaNo1(); | 
 |  |  |         siemensNet.Write("DB100.10", command.getCommand()); | 
 |  |  | //        siemensNet.Write("DB100.10", command.getCommand()); | 
 |  |  |  | 
 |  |  |         OperateResult result = siemensNet.Write("DB100.0", array); | 
 |  |  |  |