|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | import com.zy.core.enums.SlaveType; | 
|---|
|  |  |  | import com.zy.core.model.Task; | 
|---|
|  |  |  | import lombok.Data; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import com.zy.core.model.protocol.StaProtocol; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 输送线线程 | 
|---|
|  |  |  | * Created by vincent on 2020/8/4 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Data | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | public class DevpThread implements Runnable, ThreadHandler { | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Slave slave; | 
|---|
|  |  |  | private SiemensS7Net siemensS7Net; | 
|---|
|  |  |  | public interface DevpThread extends ThreadHandler { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public DevpThread(Slave slave) { | 
|---|
|  |  |  | this.slave = slave; | 
|---|
|  |  |  | connect(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Map<Integer, StaProtocol> getStation(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | void setPakMk(Integer siteId, boolean pakMk); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public boolean connect() { | 
|---|
|  |  |  | boolean result = false; | 
|---|
|  |  |  | siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp()); | 
|---|
|  |  |  | OperateResult connect = siemensS7Net.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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | siemensS7Net.ConnectClose(); | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void close() { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|