1
zhang
23 小时以前 10ac21082bbbe92dabecdda1a98fe4539f746037
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
@@ -38,6 +38,7 @@
    public void read(StaProtocol staProtocol, SiemensS7Net siemensS7Net) {
    }
    public void writeSafe(StaProtocol staProtocol) throws InterruptedException {
        if (staProtocol == null) {
            log.warn("写入数据为空,跳过 [id:{}]", JSON.toJSONString(staProtocol));
@@ -63,22 +64,22 @@
        }
        SafeSignal safeSignal = staProtocol.getSafeSignal();
        int baseOffset =  0;
        int baseOffset = 0;
        short[] array = new short[6];
        array[0] = (short) 1;
        array[1] = (short) 0;
        array[2] = (short) 0;
        array[5] = (short) 0;
        if (safeSignal.getFlag()){
        if (safeSignal.getFlag()) {
            array[3] = (short) 0;
            array[4] =safeSignal.getValue();
             baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
        }else {
            array[4] = safeSignal.getValue();
            baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
        } else {
            array[3] = safeSignal.getValue();
            array[4] = (short) 0;
            baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() +2 + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
            baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() + 2 + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
        }
        String flagAddr = TaskField.TASK_NUMBER.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
        String flagAddr = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
                + baseOffset;
        // 任务下发重试机制
@@ -103,9 +104,6 @@
                    staProtocol.getPlcId(), staProtocol.getSiteId(), writeCount,
                    writeResult.Message);
            if (writeCount < WRITE_RETRY_MAX) {
                Thread.sleep(WRITE_RETRY_INTERVAL_MS);
            }
        }
        if (!success) {
@@ -114,7 +112,6 @@
            OutputQueue.DEVP.offer(errorMsg);
            News.error("SiemensDevp - 4 - 写入安全信号输送线站点数据失败。输送线plc编号={},站点数据={}",
                    staProtocol.getPlcId(), JSON.toJSON(staProtocol));
            log.error(errorMsg);
        }
    }