From d6ff18e0ff89d36e80195da43ca40bf3a8f42b2c Mon Sep 17 00:00:00 2001 From: Administrator <pjb> Date: 星期日, 15 六月 2025 09:38:14 +0800 Subject: [PATCH] wms分配库位异常 --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 460 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 330 insertions(+), 130 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index a245b82..84925f2 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -25,11 +25,9 @@ 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; +import java.util.stream.Collectors; /** * 杈撻�佺嚎绾跨▼ @@ -55,12 +53,7 @@ add(113); add(114); add(115); - add(116); - add(117); - add(118); - add(119); - add(120); - + add(116); // 渚ч潰浠� index 16寮�濮� 闀垮害12 add(201); add(202); add(203); @@ -73,11 +66,6 @@ add(210); add(211); add(212); - add(213); - add(214); - add(215); - add(216); - add(217); }}; public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ @@ -90,6 +78,23 @@ add(307); add(308); }}; + + // 姝i潰5涓潯鐮佹壂鎻忕珯 + public static final ArrayList<Integer> barcodeSite2 = new ArrayList<Integer>() {{ + add(102); + add(105); + add(108); + add(111); + add(114); + }}; + + // 渚ч潰涓変釜鏉$爜鎵弿绔� + public static final ArrayList<Integer> barcodeSite = new ArrayList<Integer>() {{ + add(202); + add(206); + add(211); + }}; + /** * 鍏ュ嚭搴撴ā寮� * 0锛氭湭鐭� @@ -119,20 +124,6 @@ public SiemensDevpThread(DevpSlave slave) { this.slave = slave; - } - - public static void main(String[] args) { - ArrayList<Integer> staNos = staNos1; - System.out.println(staNos.indexOf(129)); - System.out.println(staNos.size()); - for (int i = 0; i < staNos.size(); i++) { -// System.out.println(i*2); -// System.out.println(i*2 + 200); -// System.out.println(i); - } - int index = staNos.indexOf(128); - System.out.println(index * 2); - System.out.println(index * 2 + 200); } @@ -233,69 +224,193 @@ */ private void read() throws InterruptedException { // 鏇存柊鍏ュ嚭搴撴ā寮� -// updateIoMode(); + updateIoMode(); + ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); - OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8)); - if (result.IsSuccess) { - for (int i = 0; i < staNoSize; 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.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 8)); // 宸ヤ綔鍙� + OperateResultExOne<byte[]> result; + if (slave.getId() == 1) { + // 璇绘闈㈣揣浣嶄俊鎭弽棣� + result = siemensS7Net.Read("DB101.0", (short) (16 * 8)); + if (result.IsSuccess) { + for (int i = 0; i < 16; 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.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 8)); // 宸ヤ綔鍙� - staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 鐩爣绔� + staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 鐩爣绔� - boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 2); - 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]); // 浣庡簱浣� + boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 2); + 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.isPakMk() && !staProtocol.isLoading()) { + staProtocol.setPakMk(true); + } } } - } + // 璇讳晶闈㈣揣浣嶄俊鎭弽棣� + OperateResultExOne<byte[]> resultCm = siemensS7Net.Read("DB101.800", (short) (12 * 8)); + if (resultCm.IsSuccess) { + for (int i = 16; i < staNoSize; 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.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(resultCm.Content, (i - 16) * 8)); // 宸ヤ綔鍙� + staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(resultCm.Content, (i - 16) * 8 + 4)); // 鐩爣绔� - if (slave.getId() == 1) { - //鏉$爜 - //Thread.sleep(200); - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.848.0", (short) 8); - if (result2.IsSuccess) { - for (int i = 0; i < 1; i++) { - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8"); + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultCm.Content, (i - 16) * 8 + 6, 2); + 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); + } + } + } + + // 璇诲彇姝i潰鏉$爜 + OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB103.0", (short) (5 * 40)); + if (result3.IsSuccess) { + for (int i = 0; i < 5; i++) { + String barcode = siemensS7Net.getByteTransform().TransString(result3.Content, i * 40, 40, "UTF-8"); + if (!Cools.isEmpty()) { + barcode = barcode.trim(); + } + List<String> barcodeList = Arrays.stream(barcode.split(";")).collect(Collectors.toList()); + Iterator<String> iterator = barcodeList.iterator(); + while (iterator.hasNext()) { + String next = iterator.next(); + if (next.length() == 6) { + barcode = next; + iterator.remove(); + break; + } + } + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); + if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { + barcodeThread.setBarcode(barcode); + } + StaProtocol staProtocol = station.get(barcodeSite2.get(i)); + if (staProtocol != null) { + staProtocol.setMatIdList(barcodeList); + } + } + } + + // 璇诲彇姝i潰鏉$爜 +// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (16 * 8)); +// if (result2.IsSuccess) { +// for (int i = 0; i < 16; i++) { +// int barcodeId = 0; +// switch (i) { +// case 1: +// barcodeId = 1; +// break; +// case 4: +// barcodeId = 2; +// break; +// case 7: +// barcodeId = 3; +// break; +// case 10: +// barcodeId = 4; +// break; +// case 13: +// barcodeId = 5; +// break; +// default: +// } +// if (barcodeId != 0) { +// String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8"); +// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId); +// if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { +// barcodeThread.setBarcode(barcode); +// } +// } +// } +// } + + // 璇诲彇渚ч潰鏉$爜 + OperateResultExOne<byte[]> resultCM2 = siemensS7Net.Read("DB101.2574", (short) (3 * 4 * 6)); + if (resultCM2.IsSuccess) { + for (int i = 8; i >= 6; i--) { + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i); + List<String> barcodes = new ArrayList<>(); + for (int j = 0; j < 4; j++) { + String barcode1 = siemensS7Net.getByteTransform().TransString(resultCM2.Content, (8 - i) * 24 + j * 6, 6, "UTF-8"); + if (!Cools.isEmpty(barcode1) && !barcode1.equals("000000") && !barcode1.equals("NoRead")) { + barcodes.add(barcode1); + } + } + String barcode = String.join("#", barcodes); if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); } } } - //澶栧舰妫�娴� - OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.810.0", (short) (barcodeSize * 1)); - StaProtocol staProtocol1 = station.get(116); - boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, 0, 1); - staProtocol1.setFrontErr(status1[0]); - staProtocol1.setBackErr(status1[1]); - staProtocol1.setHighErr(status1[2]); - staProtocol1.setLeftErr(status1[3]); - staProtocol1.setRightErr(status1[4]); - staProtocol1.setWeightErr(status1[5]); - staProtocol1.setBarcodeErr(status1[6]); + // 璇诲彇姝i潰澶栧舰妫�娴� + OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.936", (short) (16 * 8)); + if (resultErr1.IsSuccess) { + for (int i = 0; i < 16; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + StaProtocol staProtocol = station.get(siteId); + boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i * 2, 1); + staProtocol.setFrontErr(status1[0]); + staProtocol.setBackErr(status1[1]); + staProtocol.setHighErr(status1[2]); + staProtocol.setLeftErr(status1[3]); + staProtocol.setRightErr(status1[4]); + staProtocol.setWeightErr(status1[5]); + staProtocol.setBarcodeErr(status1[6]); + } + } - OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4)); + // 璇诲彇渚ч潰澶栧舰妫�娴� + OperateResultExOne<byte[]> resultErrCM1 = siemensS7Net.Read("DB101.1336", (short) (12 * 8)); + if (resultErrCM1.IsSuccess) { + for (int i = 16; i < staNoSize; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + StaProtocol staProtocol = station.get(siteId); + boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErrCM1.Content, (i - 16) * 2, 1); + staProtocol.setFrontErr(status1[0]); + staProtocol.setBackErr(status1[1]); + staProtocol.setHighErr(status1[2]); + staProtocol.setLeftErr(status1[3]); + staProtocol.setRightErr(status1[4]); + staProtocol.setWeightErr(status1[5]); + staProtocol.setBarcodeErr(status1[6]); + } + } + + // 璇绘闈㈡晠闅滃弽棣� + OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (16 * 4)); if (resultErr.IsSuccess) { - for (int i = 0; i < staNoSize; i++) { + for (int i = 0; i < 16; i++) { Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1); StaProtocol staProtocol = station.get(siteId); @@ -311,8 +426,56 @@ } } - } + // 璇讳晶闈㈡晠闅滃弽棣� + OperateResultExOne<byte[]> resultErrCM = siemensS7Net.Read("DB101.2540.0", (short) (12 * 4)); + if (resultErrCM.IsSuccess) { + for (int i = 16; i < staNoSize; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrCM.Content, (i - 16) * 4, 1); + StaProtocol staProtocol = station.get(siteId); + 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]); + } + } + } else { + // 璇诲缃緭閫佺嚎璐т綅淇℃伅鍙嶉 + result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8)); + if (result.IsSuccess) { + for (int i = 0; i < staNoSize; 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.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, i * 8)); // 宸ヤ綔鍙� + + staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 鐩爣绔� + + boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 2); + 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 (result.IsSuccess) { @@ -354,6 +517,23 @@ ArrayList<Integer> staNos = getStaNo(); int index = staNos.indexOf(staProtocol.getSiteId()); + // 浠诲姟鍙峰湴鍧� + String workNoAddress; + // 鐩爣绔欏湴鍧� + String staNoAddress; + // 鐩爣绔欏湴鍧� + String heightAddress = null; + if (index < 16) { + workNoAddress = "DB100." + index * 4; + staNoAddress = "DB100." + (index * 4 + 2); + } else { + workNoAddress = "DB100." + (400 + (index - 16) * 4); + staNoAddress = "DB100." + (400 + (index - 16) * 4 + 2); + } + int i = barcodeSite2.indexOf(staProtocol.getSiteId()); + if (i != -1) { + heightAddress = "DB104." + (i * 2); + } OperateResult writeResult; //浠诲姟涓嬪彂娆℃暟 @@ -361,25 +541,39 @@ //浠诲姟涓嬪彂鎴愬姛鏍囪瘑 boolean writeFlag = false; while (writeCount < 5) { - OperateResult writeResult1 = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙� - OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo()); // 鐩爣绔� + if (!Cools.isEmpty(staProtocol.getHeight()) && heightAddress != null) { + OperateResult writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight())); + writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight())); + writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight())); + writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight())); + log.info("鍐欏叆楂樺害鍦板潃锛歿},{}", heightAddress, writeResult3); + if (!writeResult3.IsSuccess) { + //fangzhi xierukushibai,jiu duoxiejici,meixunhuan + writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight())); + if (!writeResult3.IsSuccess) { + writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight())); // 鐩爣绔� + } + } + } + OperateResult writeResult1 = siemensS7Net.Write(workNoAddress, staProtocol.getWorkNo()); // 宸ヤ綔鍙� + OperateResult writeResult2 = siemensS7Net.Write(staNoAddress, staProtocol.getStaNo()); // 鐩爣绔� if (writeResult1.IsSuccess && writeResult2.IsSuccess) { Thread.sleep(200); - OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 6); + OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 2); if (readResult.IsSuccess) { - Integer workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0); - short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4); - if (workNo.equals(staProtocol.getWorkNo().intValue()) && staProtocol.getStaNo().equals(staNo)) { - //浠诲姟鍛戒护鍐欏叆鎴愬姛 - writeFlag = true; - log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - break; - } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 - writeCount++; - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", - slave.getId(), JSON.toJSON(staProtocol), writeCount)); - log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } +// short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); +// short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2); +// if (staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)) { +// //浠诲姟鍛戒护鍐欏叆鎴愬姛 + writeFlag = true; + log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + break; +// } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 +// writeCount++; +// OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", +// slave.getId(), JSON.toJSON(staProtocol), writeCount)); +// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); +// } } else { writeCount++; OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", @@ -434,9 +628,10 @@ // array[1] = staProtocol.getStaNo(); // OperateResult write = siemensS7Net.Write("DB100." + index*4, array); // -//// OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙� -//// Thread.sleep(500); -//// OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔� + + /// / OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙� + /// / Thread.sleep(500); + /// / OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔� // // if (!write.IsSuccess) { // staProtocol = station.get(staProtocol.getSiteId()); @@ -456,7 +651,6 @@ // } // } // } - private void write2(StaProtocol staProtocol) throws InterruptedException { if (null == staProtocol) { return; @@ -544,27 +738,53 @@ // 鏇存柊鍏ュ嚭搴撴ā寮� private void updateIoMode() throws InterruptedException { if (slave.getId() == 1 && this.ioModeOf1F1 != null) { - if (!siemensS7Net.Write("DB4.2", this.ioModeOf1F1.id).IsSuccess) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎21F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={2}", slave.getId())); + if (!siemensS7Net.Write("DB105.0", this.ioModeOf1F1.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎21F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎1F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + if (slave.getId() == 1 && this.ioModeOf1F2 != null) { + if (!siemensS7Net.Write("DB105.2", this.ioModeOf1F2.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎1F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + if (slave.getId() == 1 && this.ioModeOf1F3 != null) { + if (!siemensS7Net.Write("DB105.4", this.ioModeOf1F3.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎1F3鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + if (slave.getId() == 1 && this.ioModeOf1F4 != null) { + if (!siemensS7Net.Write("DB105.6", this.ioModeOf1F4.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎1F4鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + if (slave.getId() == 1 && this.ioModeOf1F5 != null) { + if (!siemensS7Net.Write("DB105.8", this.ioModeOf1F5.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎1F5鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + + + if (slave.getId() == 1 && this.ioModeOf2F1 != null) { + if (!siemensS7Net.Write("DB105.10", this.ioModeOf2F1.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); log.error("鍐欏叆杈撻�佺嚎2F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); } } - if (slave.getId() == 1 && this.ioModeOf1F2 != null) { - if (!siemensS7Net.Write("DB4.4", this.ioModeOf1F2.id).IsSuccess) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={3}", slave.getId())); + if (slave.getId() == 1 && this.ioModeOf2F2 != null) { + if (!siemensS7Net.Write("DB105.12", this.ioModeOf2F2.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); log.error("鍐欏叆杈撻�佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); } } - if (slave.getId() == 1 && this.ioModeOf1F2 != null) { - if (!siemensS7Net.Write("DB4.2", this.ioModeOf1F2.id).IsSuccess) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={2}", slave.getId())); - log.error("鍐欏叆杈撻�佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); - } - } - if (slave.getId() == 1 && this.ioModeOf1F2 != null) { - if (!siemensS7Net.Write("DB4.4", this.ioModeOf1F2.id).IsSuccess) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={3}", slave.getId())); - log.error("鍐欏叆杈撻�佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + if (slave.getId() == 1 && this.ioModeOf2F3 != null) { + if (!siemensS7Net.Write("DB105.14", this.ioModeOf2F3.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎2F3鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); } } } @@ -586,25 +806,5 @@ siemensS7Net.ConnectClose(); } -// public static void main(String[] args) throws Exception { -// DevpSlave slave = new DevpSlave(); -// slave.setIp("192.168.2.125"); -// SiemensDevpThread devpThread = new SiemensDevpThread(slave); -// devpThread.connect(); -// devpThread.read(); -// // 鍐� -// StaProtocol staProtocol = devpThread.getStation().get(1); -// staProtocol.setWorkNo((short) 232); -// staProtocol.setStaNo((short) 6); -// staProtocol.setAutoing(true); -// staProtocol.setEmptyMk(true); -// staProtocol.setInEnable(true); -// devpThread.write(staProtocol); -// System.out.println("----------------------------------------"); -// // 璇� -// devpThread.read(); -// System.out.println(JSON.toJSONString(devpThread.station)); -// -// } } -- Gitblit v1.9.1