| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{ |
| | | add(100);add(101);add(102);add(103); |
| | | add(104);add(105);add(106);add(107); |
| | | add(200);add(201);add(202);add(203);add(210); |
| | | add(300);add(301);add(302);add(303);add(304);add(305); |
| | | add(1101);add(1102); |
| | | add(200);add(201);add(202);add(203);add(2101);add(2102);add(2103);add(2104);add(210); |
| | | add(300);add(301);add(302);add(303);add(304);add(305);add(1200);add(1201);add(1202); |
| | | }}; |
| | | |
| | | public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{ |
| | | add(1); add(2); |
| | | add(1); add(2);add(3); |
| | | }}; |
| | | public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{ |
| | | add(101); add(103); |
| | | add(101); add(103);add(1102); |
| | | }}; |
| | | |
| | | /** |
| | | * 条码数量 |
| | | */ |
| | | private int barcodeSize = 2; |
| | | private int barcodeSize = 3; |
| | | |
| | | /** |
| | | * 入出库模式 |
| | |
| | | booleans[1] = true; // 关门信号 |
| | | booleans[0] = false; |
| | | siemensS7Net.Write("DB100.826",booleans); |
| | | log.info("下发关门信号成功:" + Arrays.toString(booleans)); |
| | | } |
| | | } else if(flag == 1) { |
| | | OperateResultExOne<byte[]> readOpenResult = siemensS7Net.Read("DB100.826", (short) 1); |
| | |
| | | booleans[0] = true; // 开门信号 |
| | | booleans[1] = false; |
| | | siemensS7Net.Write("DB100.826",booleans); |
| | | log.info("下发开门信号成功:" + Arrays.toString(booleans)); |
| | | } |
| | | } |
| | | Thread.sleep(500); |
| | |
| | | staProtocol.setCloseAskDoor(booleans[1]); |
| | | staProtocol.setIfOpenDoor(booleans[2]); |
| | | staProtocol.setIfCloseDoor(booleans[3]); |
| | | log.info("下发开关门后回读:" + Arrays.toString(booleans)); |
| | | } |
| | | } |
| | | |
| | |
| | | // 读一楼连续8个站点 |
| | | OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (8*8)); |
| | | if (result.IsSuccess) { |
| | | for (int i = 0; i < 8; i++) { |
| | | for (int i = 0; i < 10; i++) { |
| | | Integer siteId = staNos.get(i); // 站点编号 |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null == staProtocol) { |
| | |
| | | // 读二楼连续4个站点 |
| | | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.800", (short) (4*8)); |
| | | if (result2.IsSuccess) { |
| | | for (int i = 8; i < 12; i++) { |
| | | for (int i = 10; i < 18; i++) { |
| | | Integer siteId = staNos.get(i); // 站点编号 |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null == staProtocol) { |
| | |
| | | // 读二楼210 |
| | | OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB101.880", (short) (8)); |
| | | if (result3.IsSuccess) { |
| | | Integer siteId = staNos.get(12); // 站点编号210 |
| | | Integer siteId = staNos.get(18); // 站点编号210 |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null == staProtocol) { |
| | | staProtocol = new StaProtocol(); |
| | |
| | | // 读二楼3区 |
| | | OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.1600", (short) (6*8)); |
| | | if (result2.IsSuccess) { |
| | | for (int i = 13; i < staNos.size(); i++) { |
| | | for (int i = 19; i < staNos.size(); i++) { |
| | | Integer siteId = staNos.get(i); // 站点编号 |
| | | StaProtocol staProtocol = station.get(siteId); |
| | | if (null == staProtocol) { |
| | |
| | | OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.1652", (short) ((staNosErrList.size()+1)*4)); // 不连续,多读中间一个 |
| | | if (resultErr.IsSuccess){ |
| | | for (int i = 0;i<staNosErrList.size();i++){ |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*9+2, 1); |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*8+2, 1); |
| | | StaProtocol staProtocol = station.get(staNosErrList.get(i)); |
| | | staProtocol.setFrontErr(status[0]); |
| | | staProtocol.setBackErr(status[1]); |
| | |
| | | // 读一楼连续8个站点,故障信息反馈 |
| | | OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.3312", (short) (8*2)); |
| | | if (resultErr2.IsSuccess) { |
| | | for (int i = 0; i < 8; i++) { |
| | | for (int i = 0; i < 10; i++) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*2 + 1, 1); |
| | | StaProtocol staProtocol = station.get(staNos.get(i)); // 站点编号 |
| | | staProtocol.setBreakerErr(status[0]); |
| | |
| | | // 读二楼连续4个站点,故障信息反馈 |
| | | OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB101.3512", (short) (4*2)); |
| | | if (resultErr3.IsSuccess) { |
| | | for (int i = 8; i < 12; i++) { |
| | | for (int i = 10; i < 18; i++) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, (i-8) * 2 + 1, 1); |
| | | StaProtocol staProtocol = station.get(staNos.get(i)); // 站点编号 |
| | | staProtocol.setBreakerErr(status[0]); |
| | |
| | | // 读三区故障信息反馈 |
| | | OperateResultExOne<byte[]> resultErr4 = siemensS7Net.Read("DB101.2096", (short) (6*2)); |
| | | if (resultErr4.IsSuccess) { |
| | | for (int i = 13; i < staNos.size(); i++) { |
| | | for (int i = 19; i < staNos.size(); i++) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr4.Content, (i-13) * 2 + 1, 1); |
| | | StaProtocol staProtocol = station.get(staNos.get(i)); // 站点编号 |
| | | staProtocol.setBreakerErr(status[0]); |