package com.zy.core.thread; import com.zy.common.HslCommunication.Core.Types.OperateResult; import com.zy.common.HslCommunication.Profinet.Melsec.MelsecMcNet; import com.zy.core.Slave; import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.enums.SlaveType; import com.zy.core.model.Task; import lombok.Data; import lombok.extern.slf4j.Slf4j; /** * 输送线线程 * Created by vincent on 2020/8/4 */ @Data @Slf4j public class DevpThread implements Runnable, ThreadHandler { private Slave slave; private MelsecMcNet melsecMcNet; public DevpThread(Slave slave) { this.slave = slave; connect(); } @Override @SuppressWarnings("InfiniteLoopStatement") public void run() { while (true) { try { Task task = MessageQueue.poll(SlaveType.Devp, slave.getId()); if (task != null) { System.out.println("任务"+task.getId()); } Thread.sleep(3000); } catch (Exception e) { e.printStackTrace(); } } } @Override public boolean connect() { melsecMcNet = new MelsecMcNet(slave.getIp(), slave.getPort()); OperateResult operateResult = melsecMcNet.ConnectServer(); if (operateResult.IsSuccess) { log.info("输送线plc连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); return true; } else { log.info("输送线plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); return false; } } @Override public void close() { } }