自动化立体仓库 - WCS系统
#
18516761980
2022-07-30 b6dcb3ed290a6b91a6c0c93b2b925a71269946f4
#
2个文件已添加
2个文件已修改
283 ■■■■■ 已修改文件
src/main/java/com/zy/core/enums/SlaveType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/SocketSlave.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SocketThread.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 148 ●●●● 补丁 | 查看 | 原始文档 | 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