From 4dcb51d65dca80b698a091f896eb1de27d7ed4e6 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期六, 21 十月 2023 08:36:29 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 173 +++++++++++++++++---------------------------------------- 1 files changed, 51 insertions(+), 122 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index b819693..252549a 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -61,15 +61,8 @@ 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); - }}; - - public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ - add(200);add(201);add(202);add(203); - add(204);add(205);add(206);add(207); - add(208);add(209);add(210);add(211); - add(212);add(213);add(214);add(215); - add(216);add(217); + add(156);add(157);add(158);add(159); + add(160); }}; @@ -101,8 +94,6 @@ switch (slave.getId()) { case 1: return staNos1; - case 2: - return staNos2; default: throw new CoolException("鏈嶅姟鍣ㄥ紓甯�"); } @@ -199,9 +190,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("DB101.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); @@ -210,11 +201,41 @@ 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)); // 鐩爣绔� + staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4 + 2)); // 鐩爣绔� } } + + Thread.sleep(200); + 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*4, 1); + StaProtocol staProtocol = station.get(siteId); + staProtocol.setAutoing(status[0]); // 鑷姩 + staProtocol.setLoading(status[1]); // 鏈夌墿 + staProtocol.setInEnable(status[2]); // 鍙叆 + staProtocol.setOutEnable(status[3]);// 鍙嚭 + staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿 + staProtocol.setFullPlt(status[5]); // 婊℃墭鐩� + staProtocol.setHigh(status[6]); // 楂樺簱浣� + staProtocol.setLow(status[7]); // 浣庡簱浣� + + if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { + staProtocol.setPakMk(true); + } + + if (staProtocol.getStamp()>=2 && !staProtocol.isLoading()){ + staProtocol.setStamp(0); + }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) { @@ -231,109 +252,17 @@ // } //鏉$爜鎵弿鍣� Thread.sleep(200); - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.200",(short)(barcodeSize/2*8)); + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0",(short)(barcodeSize*8)); if (result2.IsSuccess) { - if (slave.getId()==1){ - for (int i = 0; i < barcodeSize/2; 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)){ + 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); - } - } - }else if (slave.getId()==2){ - for (int i = barcodeSize/2; i < barcodeSize; i++) { - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,(i-barcodeSize/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); - } + barcodeThread.setBarcode(barcode); } } } - - Thread.sleep(200); - OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB102.100", (short) (staNoSize * 2)); - 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); - StaProtocol staProtocol = station.get(siteId); - staProtocol.setAutoing(status[0]); // 鑷姩 - staProtocol.setLoading(status[1]); // 鏈夌墿 - staProtocol.setInEnable(status[2]); // 鍙叆 - staProtocol.setOutEnable(status[3]);// 鍙嚭 - staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿 - staProtocol.setFullPlt(status[5]); // 婊℃墭鐩� - staProtocol.setHigh(status[6]); // 楂樺簱浣� - staProtocol.setLow(status[7]); // 浣庡簱浣� - - if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { - staProtocol.setPakMk(true); - } - - if (!staProtocol.isLoading()){ - staProtocol.setStamp(0); - } - if (staProtocol.getStamp()<2 && staProtocol.isLoading()){ - //lfd鍏ュ簱鍗拌 褰搒tamp>=2鏃舵墠鍏ュ簱 - staProtocol.setStamp(staProtocol.getStamp()+1); - } - -// //20230110锛屾棩蹇楁墦鍗帮紝纭鏀跺埌鍏ュ簱绔欏彲鍏ヤ俊鍙锋椂锛屽搴旀潯鐮佹暟鎹槸鍚﹀凡鏈� -// if ((siteId==101 || siteId==109 || siteId==117 || siteId==201 || siteId==207 || siteId==213) -// && staProtocol.isInEnable()){ -// Integer barcodeId = 0; -// switch (siteId){ -// case 101: -// barcodeId=1; -// break; -// case 109: -// barcodeId=2; -// break; -// case 117: -// barcodeId=3; -// break; -// case 201: -// barcodeId=4; -// break; -// case 207: -// barcodeId=5; -// break; -// case 213: -// barcodeId=6; -// break; -// } -// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId); -// if(barcodeThread!=null){ -// //lfd鍏ュ簱鍗拌 褰搒tamp>=2鏃舵墠鍏ュ簱 -// staProtocol.setStamp(staProtocol.getStamp()+1); -// News.info("{}绔欐湁鍙叆淇″彿鏃讹紝鏉$爜鍊间负{}", siteId, barcodeThread.getBarcode()); -// if(Cools.isEmpty(barcodeThread.getBarcode())){ -// staProtocol.setInEnable(false);//鏉$爜鏁版嵁涓虹┖鏃讹紝鍏堟竻涓�娆″唴瀛樼殑绔欑偣鍙叆淇″彿锛岀瓑寰呬笅涓�娆¤幏鍙栧彲鍏ヤ俊鍙� -// } -// } -// } - } - } - -// //RGV灏忚溅 -// Thread.sleep(200); -// OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.160",(short)2); -// if (result3.IsSuccess) { -// Integer siteId = 16; -// StaProtocol staProtocol = station.get(siteId); -// if (null == staProtocol) { -// staProtocol = new StaProtocol(); -// staProtocol.setSiteId(siteId); -// station.put(siteId, staProtocol); -// } -// staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 0))); -// } - - if (result.IsSuccess && result1.IsSuccess) { @@ -379,17 +308,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); @@ -412,7 +341,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