src/main/java/com/zy/core/enums/SlaveType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/SocketSlave.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/thread/SocketThread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/core/enums/SlaveType.java
@@ -8,6 +8,7 @@ Led, Scale, Car, Socket ; public static SlaveType findInstance(String s){ src/main/java/com/zy/core/model/SocketSlave.java
New file @@ -0,0 +1,14 @@ package com.zy.core.model; import com.zy.core.Slave; import lombok.Data; import lombok.EqualsAndHashCode; /** * Created by vincent on 2020/8/10 */ @EqualsAndHashCode(callSuper = true) @Data public class SocketSlave extends Slave { } src/main/java/com/zy/core/thread/SocketThread.java
New file @@ -0,0 +1,120 @@ package com.zy.core.thread; import HslCommunication.Core.Types.OperateResult; import HslCommunication.Core.Types.OperateResultExOne; import HslCommunication.Profinet.Siemens.SiemensPLCS; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.alibaba.fastjson.JSON; import com.core.common.DateUtils; import com.core.common.SpringUtils; import com.core.exception.CoolException; 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.SocketSlave; import com.zy.core.model.Task; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.text.MessageFormat; import java.util.Date; /** * shuttle 穿梭车线程 * Created by vincent on 2020/8/4 * 不能有 槽号 和 机架号 */ @Data @Slf4j public class SocketThread implements Runnable, ThreadHandler { private SiemensS7Net siemensS7Net; private SocketSlave slave; private SteProtocol steProtocol; private short heartBeatVal = 1; private boolean resetFlag = false; private Integer lastRow; private Integer lastBay; private Integer lastLev; public SocketThread(SocketSlave slave) { this.slave = slave; } @Override @SuppressWarnings("InfiniteLoopStatement") public void run() { this.connect(); while (true) { try { int step = 1; Task task = MessageQueue.poll(SlaveType.Socket, slave.getId()); if (task != null) { step = task.getStep(); } switch (step) { // 读数据 case 1: // readStatus(); break; // 写入数据 case 2: // write((StaProtocol)task.getData()); break; default: break; } // 心跳 // heartbeat(); Thread.sleep(500); } catch (Exception e) { e.printStackTrace(); } } } @Override public boolean connect() { boolean result = false; return result; } /** * 读取状态 */ private void readStatus(){ } /** * 写入数据 */ private boolean write(){ } @Override public void close() { } /** * 心跳 */ private void heartbeat(){ } /******************************************************************************************/ /**************************************** 测试专用 *****************************************/ /*****************************************************************************************/ public static void main(String[] args) throws InterruptedException { } } src/main/resources/application.yml
@@ -66,50 +66,6 @@ row: 2 bay: 1 lev: 1 # 堆垛机2 crn[1]: id: 2 ip: 10.10.10.13 port: 8888 # 偏移量,当堆垛机站点列号=1时,偏移量=2 offset: 2 demo: false # 堆垛机入库站点 crnInStn[0]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 203 row: 7 bay: 1 lev: 1 # 堆垛机出库站点 crnOutStn[0]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 201 row: 6 bay: 1 lev: 1 # 堆垛机3 crn[2]: id: 3 ip: 10.10.10.16 port: 8888 # 偏移量,当堆垛机站点列号=1时,偏移量=2 offset: 2 demo: false # 堆垛机入库站点 crnInStn[0]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 304 row: 11 bay: 1 lev: 1 # 堆垛机出库站点 crnOutStn[0]: devpPlcId: ${wcs-slave.devp[0].id} staNo: 301 row: 10 bay: 1 lev: 1 # 输送线 devp[0]: @@ -122,55 +78,19 @@ inSta[0]: staNo: 103 barcode: ${wcs-slave.barcode[0].id} # 入库口2 inSta[1]: staNo: 203 barcode: ${wcs-slave.barcode[1].id} # 入库口3 inSta[2]: staNo: 305 barcode: ${wcs-slave.barcode[2].id} # 空板入库口1 emptyInSta[0]: staNo: 103 # 空板入库口2 emptyInSta[1]: staNo: 203 # 空板入库口3 emptyInSta[2]: staNo: 305 # 出库口1 outSta[0]: staNo: 102 # 出库口2 outSta[1]: staNo: 202 # 出库口3 outSta[2]: staNo: 303 # 拣料入库口1 pickSta[0]: staNo: 103 barcode: ${wcs-slave.barcode[0].id} # 拣料入库口2 pickSta[1]: staNo: 203 barcode: ${wcs-slave.barcode[1].id} # 拣料入库口3 pickSta[2]: staNo: 305 barcode: ${wcs-slave.barcode[2].id} # # 拣料入库口1 # pickSta[0]: # staNo: 103 # barcode: ${wcs-slave.barcode[0].id} # 条码扫描仪 barcode[0]: id: 1 ip: 10.10.10.52 port: 51236 barcode[1]: id: 2 ip: 10.10.10.52 port: 51236 barcode[2]: id: 3 ip: 10.10.10.52 port: 51236 # LED1 @@ -180,38 +100,28 @@ port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 110 # LED2 led[1]: id: 2 ip: 10.10.10.61 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 117 # LED3 led[2]: id: 3 ip: 10.10.10.61 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 124 # LED4 led[3]: id: 4 ip: 10.10.10.61 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 131 # LED5 led[4]: id: 5 ip: 10.10.10.61 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 136 # LED6 led[5]: id: 5 ip: 10.10.10.61 port: 5005 devpPlcId: ${wcs-slave.devp[0].id} staArr: 136 #socket socket[0]: id: 1 ip: 10.10.10.100 port: 10001 # tcp服务端配置 tcp: #tcp/ip协议端口 port: 51236 #心跳 s heart-seconds: 120 #最大连接数 backlog: 128 #是否开启keepAlive keep-alive: true #发送滑动窗口(256KB) sndbuf: 262144 #接受滑动窗口(2MB) rcvbuf: 2097152 #上下行日志打印 printPacLog: true #条码长度 barcodeLen: 8