From c1b67de0ca0a2ba434b5601f6a8d930adb902e0d Mon Sep 17 00:00:00 2001 From: LSH Date: 星期一, 23 十月 2023 08:41:06 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 138 ++++++++++++++++++++-------------------------- 1 files changed, 60 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index afeead4..5008cf0 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -47,18 +47,23 @@ // // }}; public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ - add(101);add(102);add(103); - add(104);add(105);add(106); - }}; - - public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ - add(201);add(202);add(203); - add(204);add(205);add(206); - }}; - - public static final ArrayList<Integer> staNos3 = new ArrayList<Integer>() {{ - add(301);add(302);add(303); - add(304);add(305);add(306); + add(100);add(101);add(102);add(103); + add(104);add(105);add(106);add(107); + add(108);add(109);add(110);add(111); + add(112);add(113);add(114);add(115); + add(116);add(117);add(118);add(119); + add(120);add(121);add(122);add(123); + add(124);add(125);add(126);add(127); + add(128);add(129);add(130);add(131); + add(132);add(133);add(134);add(135); + add(136);add(137);add(138);add(139); + add(140);add(141);add(142);add(143); + add(144);add(145);add(146);add(147); + add(148);add(149);add(150);add(151); + add(152);add(153);add(154);add(155); + add(156);add(157);add(158);add(159); + add(160);add(161); + add(200);add(201);add(202); }}; @@ -90,10 +95,6 @@ switch (slave.getId()) { case 1: return staNos1; - case 2: - return staNos2; - case 3: - return staNos3; default: throw new CoolException("鏈嶅姟鍣ㄥ紓甯�"); } @@ -190,9 +191,9 @@ // updateIoMode(); ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); - OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*2)); - OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB100.0", (short) (staNoSize*2)); - if (result.IsSuccess && result4.IsSuccess) { + OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*4)); +// OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB100.2", (short) (staNoSize*2)); + if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 StaProtocol staProtocol = station.get(siteId); @@ -201,65 +202,18 @@ staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } - staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*2)); // 宸ヤ綔鍙� + staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 宸ヤ綔鍙� - staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result4.Content, i*2)); // 鐩爣绔� - } - } -// Thread.sleep(200); -// OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 186); -// if (result0.IsSuccess) { -// for (int i = 0; i < 93; i++) { -// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 -// StaProtocol staProtocol = station.get(siteId); -// if (null == staProtocol) { -// staProtocol = new StaProtocol(); -// staProtocol.setSiteId(siteId); -// station.put(siteId, staProtocol); -// } -// staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2)); // 鐩爣绔� -// } -// } - //鏉$爜鎵弿鍣� - Thread.sleep(200); - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.0",(short)(barcodeSize/3*8)); - if (result2.IsSuccess && 1!=1) { - if (slave.getId()==1){ - for (int i = 0; i < barcodeSize/3; i++) { - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); - if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){ -// && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) { - barcodeThread.setBarcode(barcode); - } - } - }else if (slave.getId()==2){ - for (int i = barcodeSize/3; i < barcodeSize; i++) { - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,(i-barcodeSize/3)*8,8, "UTF-8"); - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); - if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){ -// && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) { - barcodeThread.setBarcode(barcode); - } - } - }else if (slave.getId()==3){ - for (int i = barcodeSize/3+1; i < barcodeSize; i++) { - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,(i-(barcodeSize/3)*2)*8,8, "UTF-8"); - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); - if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){ -// && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) { - barcodeThread.setBarcode(barcode); - } - } + staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4 + 2)); // 鐩爣绔� } } Thread.sleep(200); - OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (staNoSize * 2)); + OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB101.0", (short) (staNoSize * 4)); if (result1.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1); + boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*4, 1); StaProtocol staProtocol = station.get(siteId); staProtocol.setAutoing(status[0]); // 鑷姩 staProtocol.setLoading(status[1]); // 鏈夌墿 @@ -279,6 +233,34 @@ }else if (staProtocol.getStamp()<2 && staProtocol.isLoading()){ //lfd鍏ュ簱鍗拌 褰搒tamp>=2鏃舵墠鍏ュ簱 staProtocol.setStamp(staProtocol.getStamp()+1); + } + } + } + +// Thread.sleep(200); +// OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 186); +// if (result0.IsSuccess) { +// for (int i = 0; i < 93; i++) { +// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 +// StaProtocol staProtocol = station.get(siteId); +// if (null == staProtocol) { +// staProtocol = new StaProtocol(); +// staProtocol.setSiteId(siteId); +// station.put(siteId, staProtocol); +// } +// staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2)); // 鐩爣绔� +// } +// } + //鏉$爜鎵弿鍣� + Thread.sleep(200); + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0",(short)(barcodeSize*8)); + if (result2.IsSuccess) { + for (int i = 0; i < barcodeSize; i++) { + String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); + if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){ +// && !Cools.isEmpty(barcode) && Cools.isEmpty(barcodeThread.getBarcode())) { + barcodeThread.setBarcode(barcode); } } } @@ -327,17 +309,17 @@ // OperateResult write = siemensS7Net.Write("DB100." + index*4, array); OperateResult write = null; - OperateResult write1 = null; //浠诲姟涓嬪彂娆℃暟 int writeCount = 0; do { - write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙� - Thread.sleep(500); - write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔� - if(write.IsSuccess || write1.IsSuccess){ +// write = siemensS7Net.Write("DB100.0" + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙� +// Thread.sleep(500); +// write1 = siemensS7Net.Write("DB100.0" + index*2+2, staProtocol.getStaNo()); // 鐩爣绔� + write = siemensS7Net.Write("DB100." + index*4, array); + if(write.IsSuccess){ Thread.sleep(200); - OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index*2, (short) 2); - OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB101." + index*2, (short) 2); + OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100.0" + index*2, (short) 2); + OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100.0" + index*2+2, (short) 2); if(readResult.IsSuccess && readResult1.IsSuccess){ short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); short staNo = siemensS7Net.getByteTransform().TransInt16(readResult1.Content, 0); @@ -360,7 +342,7 @@ } }while (writeCount<5); - if (!write.IsSuccess || !write1.IsSuccess) { + if (!write.IsSuccess) { staProtocol = station.get(staProtocol.getSiteId()); if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { staProtocol.setPakMk(true); -- Gitblit v1.9.1