zhangc
2025-03-15 57fa3510fe6573f70a5dfc043a775da32530fbc6
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -79,7 +79,16 @@
     * 3.出库启动中 (不能生成入库工作档)
     * 4.出库模式
     */
    public IoModeType ioModeOf2F = IoModeType.NONE;
    public IoModeType ioModeOf1F1 = IoModeType.NONE;
    public IoModeType ioModeOf1F2 = IoModeType.NONE;
    public IoModeType ioModeOf1F3 = IoModeType.NONE;
    public IoModeType ioModeOf1F4 = IoModeType.NONE;
    public IoModeType ioModeOf1F5 = IoModeType.NONE;
    public IoModeType ioModeOf2F1 = IoModeType.NONE;
    public IoModeType ioModeOf2F2 = IoModeType.NONE;
    public IoModeType ioModeOf2F3 = IoModeType.NONE;
    private DevpSlave slave;
    private SiemensS7Net siemensS7Net;
    private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
@@ -126,7 +135,7 @@
        System.out.println(index * 2 + 200);
    }
    //    public IoModeType ioMode = IoModeType.NONE;
    private ArrayList<Integer> getStaNo() {
        switch (slave.getId()) {
            case 1:
@@ -238,8 +247,8 @@
     * 读取状态 ====> 整块plc
     */
    private void read() throws InterruptedException {
//        // 更新入出库模式
//        updateIoMode();
        // 更新入出库模式
        updateIoMode();
        ArrayList<Integer> staNos = getStaNo();
        int staNoSize = staNos.size();
        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8));
@@ -719,12 +728,31 @@
    }
    // 更新入出库模式
    private void updateIoMode() throws InterruptedException {
        if (this.ioModeOf2F != IoModeType.NONE) {
            if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线2F入出库模式失败。输送线plc编号={1}", slave.getId()));
                log.error("写入输送线2F入出库模式失败。输送线plc编号={}", slave.getId());
        if (slave.getId() == 2 && this.ioModeOf2F != null) {
            if (!siemensS7Net.Write("DB4.2", this.ioModeOf2F.id).IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线21F1入出库模式失败。输送线plc编号={2}", slave.getId()));
                log.error("写入输送线2F1入出库模式失败。输送线plc编号={}", slave.getId());
            }
        }
        if (slave.getId() == 2 && this.ioModeOf2F != null) {
            if (!siemensS7Net.Write("DB4.4", this.ioModeOf2F.id).IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线2F2入出库模式失败。输送线plc编号={3}", slave.getId()));
                log.error("写入输送线2F2入出库模式失败。输送线plc编号={}", slave.getId());
            }
        }
        if (slave.getId() == 3 && this.ioModeOf2F != null) {
            if (!siemensS7Net.Write("DB4.2", this.ioModeOf2F.id).IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线3F1入出库模式失败。输送线plc编号={2}", slave.getId()));
                log.error("写入输送线3F1入出库模式失败。输送线plc编号={}", slave.getId());
            }
        }
        if (slave.getId() == 3 && this.ioModeOf2F != null) {
            if (!siemensS7Net.Write("DB4.4", this.ioModeOf2F.id).IsSuccess) {
                OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线3F2入出库模式失败。输送线plc编号={3}", slave.getId()));
                log.error("写入输送线3F2入出库模式失败。输送线plc编号={}", slave.getId());
            }
        }
    }