pang.jiabao
2024-07-10 9d3db071dd08802df9ef0540720c367d766862c6
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;
                }
@@ -158,6 +157,38 @@
                e.printStackTrace();
            }
        }
    }
    // 写组拓信号(没有查询到该托盘码任务)
    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));
            }
        }
    }
@@ -480,14 +511,14 @@
                    Integer siteId = staNos.get(i); // 站点编号
                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4, 1);
                    StaProtocol staProtocol = station.get(siteId);
                    staProtocol.setBreakerErr(status[0]);
                    staProtocol.setInfraredErr(status[1]);
                    staProtocol.setBreakerErr(status[0]); //提升机 上升极限
                    staProtocol.setInfraredErr(status[1]); //提升机 下降极限
                    staProtocol.setOutTimeErr(status[2]);
                    staProtocol.setSeizeSeatErr(status[3]);
                    staProtocol.setWrkYgoodsN(status[4]);
                    staProtocol.setInverterErr(status[5]);
                    staProtocol.setContactErr(status[6]);
                    staProtocol.setUpcontactErr(status[7]);
                    staProtocol.setContactErr(status[6]); //提升机 左超限
                    staProtocol.setUpcontactErr(status[7]); //提升机 右超限
                }
            }