From f4645599f341a039673939fbe2699387ea5b48d2 Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期三, 10 一月 2024 17:22:07 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 76 ++++++++++++++++++++++++++++++++------ 1 files changed, 64 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 7389f6f..f446c91 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -49,7 +49,7 @@ 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(124);add(125);add(126);add(127); add(130);add(131); add(132);add(133);add(134);add(135); add(136);add(137);add(138);add(139); @@ -65,7 +65,7 @@ add(212); add(213);add(214);add(215);add(216); add(217);add(218);add(219);add(220); - add(221);add(222); + add(221);add(222);add(2000); }}; /** @@ -121,6 +121,10 @@ case 2: write((StaProtocol)task.getData()); break; + // 鍐欐暟鎹� ID+鐩爣绔� 鐮佸灈瀹屾垚 缁欒緭閫佺嚎鍐欎换鍔″畬鎴� + case 3: + write3((StaProtocol)task.getData()); + break; default: break; } @@ -173,7 +177,7 @@ } staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙� - staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8 + 4)); // 鐩爣绔� + staProtocol.setStaNo((int)siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔� boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2); staProtocol.setAutoing(status[0]); // 鑷姩 @@ -231,7 +235,7 @@ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)(barcodeSize*10)); if (result2.IsSuccess) { for (int i = 0; i < barcodeSize; i++) { - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,10, "UTF-8"); + String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,6, "UTF-8"); BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); @@ -292,14 +296,63 @@ } ArrayList<Integer> staNos = getStaNo(); int index = staNos.indexOf(staProtocol.getSiteId()); - int[] array = new int[2]; - array[0] = staProtocol.getWorkNo(); - array[1] = staProtocol.getStaNo(); - OperateResult write = siemensS7Net.Write("DB100." + index*8, array); +// int[] array = new int[2]; +// array[0] = staProtocol.getWorkNo(); +// array[1] = staProtocol.getStaNo(); +// OperateResult write = siemensS7Net.Write("DB100." + index*8, array); -// OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙� -// Thread.sleep(500); -// OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔� + OperateResult write = null; + OperateResult write1 = null; + //浠诲姟涓嬪彂娆℃暟 + int writeCount = 0; + do { + write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo()); // 宸ヤ綔鍙� + Thread.sleep(500); + write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 鐩爣绔� + if(write.IsSuccess || write1.IsSuccess){ + writeCount=6; + }else { + writeCount++; + log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } + }while (writeCount<5); + + if (!write.IsSuccess || !write1.IsSuccess) { + staProtocol = station.get(staProtocol.getSiteId()); + if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { + staProtocol.setPakMk(true); + } + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol))); + log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); + } else { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); + log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); + } + } + + + /** + * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� 鐮佸灈瀹屾垚 缁欒緭閫佺嚎鍐欎换鍔″畬鎴� + */ + private void write3(StaProtocol staProtocol) throws InterruptedException { + if (null == staProtocol) { + return; + } + ArrayList<Integer> staNos = getStaNo(); + int index = staNos.indexOf(staProtocol.getSiteId()); + + OperateResult write = null; + //浠诲姟涓嬪彂娆℃暟 + int writeCount = 0; + do { + write = siemensS7Net.Write("DB100." + index*6, (short)1); // 宸ヤ綔鍙� + if(write.IsSuccess){ + writeCount=6; + }else { + writeCount++; + log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } + }while (writeCount<5); if (!write.IsSuccess) { staProtocol = station.get(staProtocol.getSiteId()); @@ -313,7 +366,6 @@ log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); } } - // 鏇存柊鍏ュ嚭搴撴ā寮� private void updateIoMode() throws InterruptedException { if (this.ioModeOf2F != IoModeType.NONE) { -- Gitblit v1.9.1