luxiaotao1123
2020-08-19 4ceb4a8697b05d3176c30e00191296969a98016d
src/main/java/com/zy/core/thread/DevpThread.java
@@ -5,15 +5,19 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
import com.core.common.DateUtils;
import com.zy.core.Slave;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.Task;
import com.zy.core.model.protocol.StaProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.text.MessageFormat;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -56,6 +60,9 @@
                    default:
                        break;
                }
                // 心跳
                heartbeat();
                Thread.sleep(400);
            } catch (Exception e) {
                e.printStackTrace();
@@ -73,8 +80,10 @@
        OperateResult connect = siemensS7Net.ConnectServer();
        if(connect.IsSuccess){
            result = true;
            OutputQueue.CRN.offer(MessageFormat.format( "【{0}】输送线plc连接成功 ===>> [id:{}] [ip:{}] [port:{}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
            log.info("输送线plc连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        } else {
            OutputQueue.CRN.offer(MessageFormat.format( "【{0}】输送线plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
            log.error("输送线plc连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        }
        siemensS7Net.ConnectClose();
@@ -82,7 +91,7 @@
    }
    /**
     * 读取状态
     * 读取状态 ====> 整块plc
     */
    private void read(){
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 40);
@@ -111,7 +120,7 @@
    }
    /**
     * 写入
     * 写入 =====> 单站点写入
     */
    private void write(StaProtocol staProtocol){
        if (null == staProtocol) {
@@ -131,6 +140,16 @@
        }
    }
    /**
     * 心跳
     */
    private void heartbeat(){
        OperateResult write = siemensS7Net.Write("DB100.50", (short) 1);
        if (!write.IsSuccess) {
            log.error("输送线plc编号={} 心跳失败", slave.getId());
        }
    }
    @Override
    public void close() {
        siemensS7Net.ConnectClose();