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 | 154 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 120 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index fc659f1..84925f2 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -38,23 +38,61 @@ public class SiemensDevpThread implements Runnable, DevpThread { public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ - 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); // 渚ч潰浠� index 16寮�濮� 闀垮害12 - 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(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); // 渚ч潰浠� index 16寮�濮� 闀垮害12 + add(201); + add(202); + add(203); + add(204); + add(205); + add(206); + add(207); + add(208); + add(209); + add(210); + add(211); + add(212); }}; public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ - add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308); + add(301); + add(302); + add(303); + add(304); + add(305); + add(306); + 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); + 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); + add(202); + add(206); + add(211); }}; /** @@ -185,6 +223,8 @@ * 璇诲彇鐘舵�� ====> 鏁村潡plc */ private void read() throws InterruptedException { + // 鏇存柊鍏ュ嚭搴撴ā寮� + updateIoMode(); ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); @@ -256,21 +296,21 @@ 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()){ + if (!Cools.isEmpty()) { barcode = barcode.trim(); } List<String> barcodeList = Arrays.stream(barcode.split(";")).collect(Collectors.toList()); Iterator<String> iterator = barcodeList.iterator(); - while (iterator.hasNext()){ + while (iterator.hasNext()) { String next = iterator.next(); - if(next.length() == 6) { + if (next.length() == 6) { barcode = next; iterator.remove(); break; } } - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i+1); + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); } @@ -481,12 +521,18 @@ 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); + 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; @@ -495,6 +541,20 @@ //浠诲姟涓嬪彂鎴愬姛鏍囪瘑 boolean writeFlag = false; while (writeCount < 5) { + 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) { @@ -505,9 +565,9 @@ // 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; + writeFlag = true; + log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + break; // } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 // writeCount++; // OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", @@ -568,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()); @@ -590,7 +651,6 @@ // } // } // } - private void write2(StaProtocol staProtocol) throws InterruptedException { if (null == staProtocol) { return; @@ -678,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()); } } } -- Gitblit v1.9.1