|  |  | 
 |  |  | package com.zy.core.thread; | 
 |  |  |  | 
 |  |  | import com.zy.common.HslCommunication.Core.Types.OperateResult; | 
 |  |  | import com.zy.common.HslCommunication.Profinet.Siemens.SiemensPLCS; | 
 |  |  | import com.zy.common.HslCommunication.Profinet.Siemens.SiemensS7Net; | 
 |  |  | import com.zy.core.Slave; | 
 |  |  | import com.zy.core.ThreadHandler; | 
 |  |  | import com.zy.core.cache.MessageQueue; | 
 |  |  | 
 |  |  | @Slf4j | 
 |  |  | public class CrnThread implements Runnable, ThreadHandler { | 
 |  |  |  | 
 |  |  |     SiemensS7Net siemensNet; | 
 |  |  |     private Slave slave; | 
 |  |  |  | 
 |  |  |     public CrnThread(Slave slave) { | 
 |  |  | 
 |  |  |     public void run() { | 
 |  |  |         while (true) { | 
 |  |  |             try { | 
 |  |  |                 Task task = MessageQueue.poll(SlaveType.Crn, slave.getId()); | 
 |  |  |                 int step = 1; | 
 |  |  |                 Task task = MessageQueue.poll(SlaveType.Devp, slave.getId()); | 
 |  |  |                 if (task != null) { | 
 |  |  |                     System.out.println("任务"+task.getId()); | 
 |  |  |                     step = task.getStep(); | 
 |  |  |                 } | 
 |  |  |                 switch (step) { | 
 |  |  |                     // 读数据 | 
 |  |  |                     case 1: | 
 |  |  |                         readStatus();   // 读取状态 | 
 |  |  |                         break; | 
 |  |  |                     case 2: | 
 |  |  |                         break; | 
 |  |  |                     case 3: | 
 |  |  |                         break; | 
 |  |  |                     case 4: | 
 |  |  |                         break; | 
 |  |  |                     default: | 
 |  |  |                         break; | 
 |  |  |                 } | 
 |  |  |                 Thread.sleep(3000); | 
 |  |  |             } catch (Exception e) { | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public boolean connect() { | 
 |  |  |         return false; | 
 |  |  |         boolean result = false; | 
 |  |  |         siemensNet = new SiemensS7Net(SiemensPLCS.S1200,slave.getIp()); | 
 |  |  |         OperateResult connect = siemensNet.ConnectServer(); | 
 |  |  |         if(connect.IsSuccess){ | 
 |  |  |             result = true; | 
 |  |  |             log.info("堆垛机plc连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
 |  |  |         } else { | 
 |  |  |             log.info("堆垛机plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); | 
 |  |  |         } | 
 |  |  |         siemensNet.ConnectClose(); | 
 |  |  |         return result; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     private void readStatus(){ | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override |