From 50435a81915932eda06b7f1afd48f9ff1ae84f19 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期四, 10 四月 2025 17:50:28 +0800 Subject: [PATCH] 1 --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java | 116 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 71 insertions(+), 45 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java index eced132..a01dcdd 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java @@ -47,11 +47,31 @@ public static ArrayList<BasConveyorSta> stationList = new ArrayList<>(); public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ - add(1012);add(1014);add(1015);add(1022); - add(1023);add(1025);add(1026);add(1031); + add(1012); + add(1014); + add(1015); + add(1022); + add(1023); + add(1025); + add(1026); + add(1031); add(1032); + }}; - + public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ + add(1011); + add(1012); + add(1013); + add(1014); + add(1015); + add(1021); + add(1022); + add(1023); + add(1024); + add(1025); + add(1026); + add(1031); + add(1032); }}; /** @@ -84,7 +104,7 @@ BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>() .eq(BasConveyor::getDeviceId, device.getId()) .eq(BasConveyor::getHostId, device.getHostId())); - if(basConveyor != null) { + if (basConveyor != null) { List<BasConveyorSta> stations = basConveyorStaService.list(new LambdaQueryWrapper<BasConveyorSta>() .eq(BasConveyorSta::getConveyorId, basConveyor.getId()) .eq(BasConveyorSta::getHostId, device.getHostId())); @@ -128,14 +148,14 @@ if (siteId == 1015) { staProtocol.setLocNo("1200301"); - }else if (siteId == 1026) { + } else if (siteId == 1026) { staProtocol.setLocNo("1200305"); } station.put(siteId, staProtocol); } Thread.sleep(300); - boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*26, 2); + boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 26, 2); staProtocol.setAutoing(status[0]); // 鑷姩 staProtocol.setIdle(status[1]); //绌洪棽 staProtocol.setLoading(status[2]); // 鏈夌墿 @@ -151,15 +171,15 @@ staProtocol.setOutEnable(status[14]);// 鍙嚭 - staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+2)); // 宸ヤ綔鍙� - staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+6)); //宸插畬鎴愬伐浣滃彿 - staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content,i*26+10,12, "UTF-8").trim()); //鏉$爜 - staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i*26+22)); //閲嶉噺 + staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 2)); // 宸ヤ綔鍙� + staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 4)); // 鐩爣绔� + staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 6)); //宸插畬鎴愬伐浣滃彿 + staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content, i * 26 + 10, 12, "UTF-8").trim()); //鏉$爜 + staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i * 26 + 22)); //閲嶉噺 // staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 宸ヤ綔妯″紡 - staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10)); // 宸ヤ綔鍙� - staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 12)); // 鐩爣绔� + //staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10)); // 宸ヤ綔鍙� if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); @@ -170,7 +190,7 @@ OperateResultExOne<byte[]> resultBarcode = siemensS7Net.Read("DB100.166", (short) 9); if (resultBarcode.IsSuccess) { //鏉$爜鏁版嵁 - String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content,0,9, "UTF-8");// 鏉$爜 + String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content, 0, 9, "UTF-8");// 鏉$爜 BasConveyorStaService basConveyorStaService = SpringUtils.getBean(BasConveyorStaService.class); DeviceBarcodeService deviceBarcodeService = SpringUtils.getBean(DeviceBarcodeService.class); BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, 31002)); @@ -187,7 +207,7 @@ if (!Cools.isEmpty(result) && result.IsSuccess) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), device.getId())); + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), device.getId())); // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� try { @@ -224,12 +244,12 @@ siemensS7Net.setRack(device.getRack().byteValue()); siemensS7Net.setSlot(device.getSlot().byteValue()); OperateResult connect = siemensS7Net.ConnectServer(); - if(connect.IsSuccess){ + if (connect.IsSuccess) { result = true; - OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot())); + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot())); News.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort()); } else { - OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot())); + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot())); News.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort()); } // siemensS7Net.ConnectClose(); @@ -246,44 +266,45 @@ int index = staNos1.indexOf(siteId); index += 1; - OperateResult write = siemensS7Net.Write("DB83." + (index *8+6),(int) workNo); // 宸ヤ綔鍙� + OperateResult write = siemensS7Net.Write("DB83." + (index * 8 + 6), (int) workNo); // 宸ヤ綔鍙� if (!write.IsSuccess) { StaProtocol staProtocol = station.get(siteId); - if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { + if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) { staProtocol.setPakMk(true); } OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol))); log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol)); } else { OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(workNo))); - log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(workNo)); + log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(workNo)); return true; } return false; } @Override - public boolean writeStaNo(int siteId,short staNo) { + public boolean writeStaNo(int siteId, short staNo) { int index = staNos1.indexOf(siteId); index += 1; - OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4),(int) staNo); // 鐩爣绔� + OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4), (int) staNo); // 鐩爣绔� if (!write.IsSuccess) { StaProtocol staProtocol = station.get(siteId); - if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { + if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) { staProtocol.setPakMk(true); } OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol))); log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol)); } else { OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(staNo))); - log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(staNo)); + log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(staNo)); return true; } return false; } + @Override public boolean writeWorkSta(int siteId, short workNo, short staNo) { @@ -294,37 +315,42 @@ array[0] = workNo; array[1] = staNo; - String workNoAddress = "DB83." + (index * 8 + 6); String staNoAddress = "DB83." + (index * 8 + 4); + String workNoAddress = "DB83." + (index * 8 + 6); OperateResult write1 = null; // 宸ヤ綔鍙� OperateResult write2 = null; // 鐩爣绔� //浠诲姟涓嬪彂娆℃暟 int writeCount = 0; do { - write1 = siemensS7Net.Write(workNoAddress, workNo); // 宸ヤ綔鍙� + write1 = siemensS7Net.Write(workNoAddress, workNo); // 宸ヤ綔鍙� write2 = siemensS7Net.Write(staNoAddress, staNo); if ((write1.IsSuccess && write2.IsSuccess)) { - OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8); - if (readResult.IsSuccess) { - int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); - int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4); - if (workNo == workNo2 && staNo == staNo2) { - //浠诲姟鍛戒护鍐欏叆鎴愬姛 - log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); - return true; - } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 - writeCount++; - log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); - } - } else { - writeCount++; - log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},{},鍐欏叆娆℃暟={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); - } - }else { + log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); + return true; +// OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB82.14", (short) (staNos2.indexOf(siteId) * 26)); +// //OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8); +// if (readResult.IsSuccess) { +// int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2); // 宸ヤ綔鍙� +// int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4); // 鐩爣绔� +// // int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); +// //int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); +// if (workNo == workNo2 && staNo == staNo2) { +// //浠诲姟鍛戒护鍐欏叆鎴愬姛 +// log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); +// return true; +// } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 +// writeCount++; +// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); +// } +// } else { +// writeCount++; +// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},{},鍐欏叆娆℃暟={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount); +// } + } else { writeCount++; } - }while (writeCount < 5) ; + } while (writeCount < 5); // StaProtocol staProtocol = station.get(siteId); // if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) { // staProtocol.setPakMk(true); @@ -380,7 +406,7 @@ @Override public boolean switchWorkMode(int siteId, int workMode) { WorkModeTypeDto workModeTypeDto = workModeTypes.get(siteId); - if(workModeTypeDto == null) { + if (workModeTypeDto == null) { return false; } -- Gitblit v1.9.1