From add29c9dfe37a3147ee1a426e1dba2f42ad741e6 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期四, 05 六月 2025 18:11:46 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/core/model/protocol/StaProtocol.java | 3 src/main/java/com/zy/asrs/entity/TaskWrk.java | 4 + src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 95 ++++++++++++----------- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 87 ++++++++++++++++----- src/main/java/com/zy/asrs/entity/TaskWrkLog.java | 4 + 5 files changed, 126 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/zy/asrs/entity/TaskWrk.java b/src/main/java/com/zy/asrs/entity/TaskWrk.java index e7d2ebb..ced303e 100644 --- a/src/main/java/com/zy/asrs/entity/TaskWrk.java +++ b/src/main/java/com/zy/asrs/entity/TaskWrk.java @@ -177,6 +177,10 @@ @TableField("mark_start") private Integer markStart; + @TableField("type") + private String type; + + public TaskWrk() { } diff --git a/src/main/java/com/zy/asrs/entity/TaskWrkLog.java b/src/main/java/com/zy/asrs/entity/TaskWrkLog.java index 5aabe2f..29e06e5 100644 --- a/src/main/java/com/zy/asrs/entity/TaskWrkLog.java +++ b/src/main/java/com/zy/asrs/entity/TaskWrkLog.java @@ -167,6 +167,10 @@ @TableField("transfer_mark") private Integer transferMark; + + @TableField("type") + private String type; + public TaskWrkLog() { } diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index fd462e2..b9824bf 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -164,7 +164,7 @@ } String BoxNo = barcodeThread.getBarcode(); if (Cools.isEmpty(BoxNo)) { - log.error("{}鍙锋潯鐮佹壂鎻忓け璐ワ紝鍊硷細{}",inSta.getBarcode(),BoxNo); + log.error("{}鍙锋潯鐮佹壂鎻忓け璐ワ紝鍊硷細{}", inSta.getBarcode(), BoxNo); continue; } TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo)); @@ -181,7 +181,7 @@ log.info("缁勬墭鍏ュ簱={}", storageEscalationParam); TaskWrk taskWrk = toWmsService.getLocNoFromWms(storageEscalationParam); if (taskWrk == null) { - log.error("鍏ュ簱璇锋眰wms鍒涘缓浠诲姟宸ヤ綔妗d负绌猴細{}",storageEscalationParam); + log.error("鍏ュ簱璇锋眰wms鍒涘缓浠诲姟宸ヤ綔妗d负绌猴細{}", storageEscalationParam); continue; } if (back) { @@ -193,13 +193,13 @@ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); if (staDesc == null) { - log.error("缁勬墭鍏ュ簱璺緞涓嶅瓨鍦紝wrkNo={},crn={},stn_no={}",taskWrk.getWrkNo(),taskWrk.getCrnNo(),staProtocol.getSiteId()); + log.error("缁勬墭鍏ュ簱璺緞涓嶅瓨鍦紝wrkNo={},crn={},stn_no={}", taskWrk.getWrkNo(), taskWrk.getCrnNo(), staProtocol.getSiteId()); continue; } staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - log.info("缁勬墭鍏ュ簱鍛戒护鎺ㄩ�佽緭閫佺嚎闃熷垪鎴愬姛:{}",staProtocol); + log.info("缁勬墭鍏ュ簱鍛戒护鎺ㄩ�佽緭閫佺嚎闃熷垪鎴愬姛:{}", staProtocol); } } @@ -219,46 +219,49 @@ for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) { - try { - // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { - // 鏌ヨ宸ヤ綔妗� - TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), String.valueOf(crnStn.getStaNo()-1)); - if (taskWrk == null) { - continue; - } - log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk)); - staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); - staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint())); - boolean offer = false; - try { - offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); - } catch (Exception e) { - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e); - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer); - } - if (offer) { - log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk)); - taskWrk.setStatus(5); - taskWrk.setWrkSts(14); - taskWrk.setCompleteTime(new Date()); - taskWrkService.updateById(taskWrk); - - } else { - log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk)); - } -// } - } - } catch (Exception e) { - log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e); + try { + // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); } + if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { + // 鏌ヨ宸ヤ綔妗� + TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), String.valueOf(crnStn.getStaNo() - 1)); + if (taskWrk == null) { + continue; + } + log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk)); + staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); + staProtocol.setStaNo(Short.valueOf(taskWrk.getTargetPoint())); + if (!Cools.isEmpty(taskWrk.getType())) { + staProtocol.setHeight(taskWrk.getType()); + } + boolean offer = false; + try { + offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); + } catch (Exception e) { + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e); + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer); + } + if (offer) { + log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk)); + taskWrk.setStatus(5); + taskWrk.setWrkSts(14); + taskWrk.setCompleteTime(new Date()); + taskWrkService.updateById(taskWrk); + + } else { + log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk)); + } +// } + } + } catch (Exception e) { + log.error("鍑哄簱鍒板嚭搴撶珯寮傚父:寮傚父淇℃伅锛�" + e); + } // } } @@ -349,8 +352,8 @@ } LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint()); - if(!locMast.getLocSts().equals("O") && taskWrk.getWrkSts() == 2) { - log.error("鍏ュ簱WMS鍒嗛厤搴撲綅{}鏈夎锛屽簱浣嶇姸鎬佷负{}",locMast.getLocNo(),locMast.getLocSts()); + if (!locMast.getLocSts().equals("O") && taskWrk.getWrkSts() == 2) { + log.error("鍏ュ簱WMS鍒嗛厤搴撲綅{}鏈夎锛屽簱浣嶇姸鎬佷负{}", locMast.getLocNo(), locMast.getLocSts()); taskWrk.setWrkSts(5); taskWrk.setMemo("WMS鍒嗛厤搴撲綅鏈夎"); taskWrkService.updateById(taskWrk); @@ -449,7 +452,7 @@ log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); continue; } - } else if (flag == 2){ + } else if (flag == 2) { LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>() .eq("row1", (locMast.getRow1() - 1)) .eq("bay1", locMast.getBay1()) diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index 7281ac6..51e79dd 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -67,6 +67,9 @@ // 鐗╂枡鍙峰垪琛� private List<String> matIdList; + // 楂樺害 + private String height; + // 澶栧舰妫�娴� ------------------------------------------------------------------------ // 鍓嶈秴闄� diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 7b672a5..bfd8aa9 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); }}; /** @@ -256,14 +294,14 @@ if (result2.IsSuccess) { for (int i = 0; i < 5; i++) { String barcode = siemensS7Net.getByteTransform().TransString(result2.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; @@ -482,14 +520,14 @@ // 鐩爣绔欏湴鍧� String staNoAddress; // 楂樺害绫诲瀷鍦板潃 - String heightAddress; + String heightAddress = null; if (index < 16) { workNoAddress = "DB100." + index * 4; staNoAddress = "DB100." + (index * 4 + 2); - heightAddress = "DB104." + (index * 4 + 2); + heightAddress = "DB104." + (index * 4); } 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); } OperateResult writeResult; @@ -499,7 +537,14 @@ boolean writeFlag = false; while (writeCount < 5) { OperateResult writeResult1 = siemensS7Net.Write(workNoAddress, staProtocol.getWorkNo()); // 宸ヤ綔鍙� - OperateResult writeResult2 = siemensS7Net.Write(staNoAddress, staProtocol.getStaNo()); // 鐩爣绔� + OperateResult writeResult2 = siemensS7Net.Write(staNoAddress, staProtocol.getStaNo());// 鐩爣绔� + if (!Cools.isEmpty(staProtocol.getHeight()) && heightAddress != null) { + OperateResult writeResult3 = siemensS7Net.Write(heightAddress, Short.valueOf(staProtocol.getHeight())); // 楂樺害绫诲瀷 + if (!writeResult3.IsSuccess) { + log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触锛屽皾璇曢噸鏂板啓鍏ワ紝杈撳叆鍙傛暟={}锛岃緭鍑哄弬鏁�={}", JSON.toJSON(staProtocol), writeResult3);// 鍐欏叆杈撻�佺嚎鍛戒护澶辫触锛屽皾璇曢噸鏂板啓鍏ワ紝杈撳叆鍙傛暟={}锛岃緭鍑哄弬鏁�={}", JSON.toJSON(staProtocol), writeResult3); + writeResult3 = siemensS7Net.Write(heightAddress, staProtocol.getHeight()); // 楂樺害绫诲瀷 + } + } if (writeResult1.IsSuccess && writeResult2.IsSuccess) { Thread.sleep(200); OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 2); @@ -508,9 +553,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}", @@ -571,9 +616,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()); @@ -593,7 +639,6 @@ // } // } // } - private void write2(StaProtocol staProtocol) throws InterruptedException { if (null == staProtocol) { return; -- Gitblit v1.9.1