自动化立体仓库 - WCS系统
#
LSH
2022-08-25 a6ef5e6ffa2895fe2ea3ecb6f580482335089cc7
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -45,6 +45,7 @@
    @Override
    @SuppressWarnings("InfiniteLoopStatement")
    public void run() {
        initCrnProtocol();
        this.connect();
        while (true) {
            try {
@@ -91,6 +92,22 @@
        }
    }
    /**
     * 初始化堆垛机
     */
    private void initCrnProtocol(){
        crnProtocol = new CrnProtocol();
        crnProtocol.setMode((short) 0);
        crnProtocol.setStatus((short) 0);
        crnProtocol.setTaskNo((short) 0);
        crnProtocol.setTaskFinish((short) 0);
        crnProtocol.setValid((short) 0);
        crnProtocol.setBay((short) 0);
        crnProtocol.setLevel((short) 0);
        crnProtocol.setRow((short) 0);
        crnProtocol.setLane((short) 0);
    }
    @Override
    public boolean connect() {
        boolean result = false;
@@ -131,6 +148,10 @@
            crnProtocol.setLane(siemensNet.getByteTransform().TransInt16(result.Content, 20));  // 22
            // 异常
            crnProtocol.setAlarm1(0);
            crnProtocol.setAlarm2(0);
            crnProtocol.setAlarm3(0);
            crnProtocol.setAlarm4(0);
            boolean[] err1 = siemensNet.getByteTransform().TransBool(result.Content, 28, 1);    // 30
            if (err1[0]) { crnProtocol.setAlarm1(1); }
            if (err1[1]) { crnProtocol.setAlarm1(2); }
@@ -219,11 +240,6 @@
            if (err15[4]) { crnProtocol.setAlarm4(71); }
            if (err15[5]) { crnProtocol.setAlarm4(72); }
            if (err15[6]) { crnProtocol.setAlarm4(73); }
//            crnProtocol.setAlarm1(siemensNet.getByteTransform().TransInt32(result.Content, 28));    // 30
//            crnProtocol.setAlarm2(siemensNet.getByteTransform().TransInt32(result.Content, 32));    // 34
//            crnProtocol.setAlarm3(siemensNet.getByteTransform().TransInt32(result.Content, 36));    // 38
//            crnProtocol.setAlarm4(siemensNet.getByteTransform().TransInt32(result.Content, 40));    // 42
            boolean[] bool1 = siemensNet.getByteTransform().TransBool(result.Content, 60, 1);    // 62
            crnProtocol.setConnStatus(bool1[0]);
@@ -390,8 +406,7 @@
        } catch (Exception ignore) {}
        if (result.IsSuccess && result1.IsSuccess) {
            log.info("堆垛机命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
            log.warn("堆垛机命令下发[id:{},时间:{}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
            OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
            return true;
        } else {