From 78b52c20a27a02466c8af9c0c8222b9f2f3ff20c Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期四, 18 一月 2024 19:59:47 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 101 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 11e0670..979e434 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -63,6 +63,26 @@ add(308);add(309);add(310);add(311); add(312); }}; + public static final ArrayList<Integer> staNosErr1 = new ArrayList<Integer>() {{ + add(101); add(103); add(105); + }}; + public static final ArrayList<Integer> staNosErr2 = new ArrayList<Integer>() {{ + add(201); add(203); add(205); + }}; + public static final ArrayList<Integer> staNosErr3 = new ArrayList<Integer>() {{ + add(301); add(303); add(305); + }}; + + public static final ArrayList<Integer> barcode1 = new ArrayList<Integer>() {{ + add(0); add(1); add(2); + }}; + public static final ArrayList<Integer> barcode2 = new ArrayList<Integer>() {{ + add(3); add(4); add(5); + }}; + public static final ArrayList<Integer> barcode3 = new ArrayList<Integer>() {{ + add(6); add(7); add(8); + }}; + private ArrayList<Integer> getStaNo() { switch (slave.getId()) { case 1: @@ -71,6 +91,31 @@ return staNos2; case 3: return staNos3; + default: + throw new CoolException("鑾峰彇绔欑偣澶辫触锛�"); + } + } + private ArrayList<Integer> getBarcodeList() { + switch (slave.getId()) { + case 1: + return barcode1; + case 2: + return barcode2; + case 3: + return barcode3; + default: + throw new CoolException("鑾峰彇绔欑偣澶辫触锛�"); + } + } + + private ArrayList<Integer> getStaNoErr() { + switch (slave.getId()) { + case 1: + return staNosErr1; + case 2: + return staNosErr2; + case 3: + return staNosErr3; default: throw new CoolException("鑾峰彇绔欑偣澶辫触锛�"); } @@ -173,9 +218,7 @@ // System.out.println(i); } Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 -// if(siteId==206){ -// System.out.println(1); -// } + StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { staProtocol = new StaProtocol(); @@ -195,26 +238,75 @@ staProtocol.setFullPlt(status[5]); // 婊℃墭鐩� staProtocol.setHigh(status[6]); // 楂樺簱浣� staProtocol.setLow(status[7]); // 浣庡簱浣� - + staProtocol.setWeight(status[8]); //鏄惁涓洪噸璐� if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); } + } + + // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� + try { + List<BasDevp> basDevps = new ArrayList<>(); + for (Integer siteId : staNos) { + StaProtocol staProtocol = station.get(siteId); + basDevps.add(staProtocol.toSqlModel()); + } + + BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class); + if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) { + throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�"); + } + } catch (Exception e) { + e.printStackTrace(); + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); + News.error(methodName + ":鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); + } + } + //澶栧舰妫�娴� + ArrayList<Integer> staNoErrs = getStaNoErr(); + int staNoErrsSize = staNoErrs.size(); + OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8)); + if (resultErr.IsSuccess){ + for (int i = 0;i<3;i++){ + Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿 + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1); + StaProtocol staProtocol = station.get(siteId); + staProtocol.setFrontErr(status[0]); + staProtocol.setBackErr(status[1]); + staProtocol.setHighErr(status[2]); + staProtocol.setLeftErr(status[3]); + staProtocol.setRightErr(status[4]); + staProtocol.setWeightErr(status[5]); + staProtocol.setBarcodeErr(status[6]); } } //鏉$爜鎵弿鍣� // Thread.sleep(200); - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840",(short)(barcodeSize*10)); +// OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840",(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)) { +// barcodeThread.setBarcode(barcode); +// } +// } +// } + + ArrayList<Integer> barcodeList = getBarcodeList(); + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840", (short) (barcodeList.size() * 8)); if (result2.IsSuccess) { - for (int i = 0; i < barcodeSize; i++) { + for (int i = 0; i < barcodeList.size(); i++) { + Integer barcodeId = barcodeList.get(i); String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1); if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); } } - } + //RGV灏忚溅 // Thread.sleep(200); OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.160",(short)2); @@ -285,16 +377,10 @@ return; } int index = staNos.indexOf(staProtocol.getSiteId()); -// int[] array = new int[2]; -// array[0] = staProtocol.getWorkNo(); -// array[1] = staProtocol.getStaNo(); + OperateResult write1 = siemensS7Net.Write("DB100." + (index*6+4),staProtocol.getStaNo()); OperateResult write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue()); - -// OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙� -// Thread.sleep(500); -// OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔� if (!write.IsSuccess && !write1.IsSuccess) { staProtocol = station.get(staProtocol.getSiteId()); -- Gitblit v1.9.1