pang.jiabao
2024-07-10 9d3db071dd08802df9ef0540720c367d766862c6
入库托盘有任务则写组托信号
1个文件已修改
41 ■■■■ 已修改文件
src/main/java/com/zy/core/thread/SiemensDevpThread.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -9,7 +9,6 @@
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.CommandInfo;
import com.zy.asrs.entity.CommandInfoLog;
@@ -29,10 +28,7 @@
import lombok.extern.slf4j.Slf4j;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -148,6 +144,9 @@
                        write2((StaProtocol)task.getData());
                        read();
                        break;
                    case 4:
                        write3((StaProtocol)task.getData());
                        break;
                    default:
                        break;
                }
@@ -161,6 +160,38 @@
        }
    }
    // 写组拓信号(没有查询到该托盘码任务)
    private void write3(StaProtocol staProtocol) {
        // 一个short=两个字节=2*byte 1byte = 8位
        // 先读一次
        OperateResultExOne<byte[]> read = siemensS7Net.Read("DB100.200", (short) 1);
        if(read.IsSuccess){
            byte[] content = read.Content;
            boolean[] array = siemensS7Net.getByteTransform().TransBool(content, 0,1);
            // 如果已经为true,则不重复写
            boolean flag = false;
            switch (staProtocol.getSiteId()) {
                case 103: if(array[0]) {
                } else array[0] = true; flag = true; break;
                case 107: if(array[1]) {
                } else array[1] = true; flag = true; break;
                case 111: if(array[2]) {
                } else array[2] = true; flag = true; break;
                case 115: if(array[3]) {
                } else array[3] = true; flag = true; break;
                case 119: if(array[4]) {
                } else array[4] = true; flag = true; break;
                case 123: if(array[5]) {
                } else array[5] = true; flag = true; break;
                default:
            }
            if (flag) {
                siemensS7Net.Write("DB100.200", array);
                log.info("写入组托信号:{}", Arrays.toString(array));
            }
        }
    }
    /**
     * 初始化站点状态
     */