From 479d51e0c9662bebfe37a48401ec23fbd6496d0e Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 27 十月 2022 15:17:10 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/properties/SlaveProperties.java | 2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 118 +++++++++++++++++++++++----------------
src/main/resources/application.yml | 2
3 files changed, 74 insertions(+), 48 deletions(-)
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 e1bfc3f..24f1439 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1399,7 +1399,7 @@
steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
steCommand.setTaskMode(SteTaskModeType.findOriginByLoc(steProtocol.getRow().intValue())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
- steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
+ steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue());
steCommand.setBay(steProtocol.getBay());
steCommand.setLev(steProtocol.getLev());
@@ -1898,10 +1898,10 @@
steThread.setResetFlag(true);
}
} else if (wrkCharge.getWrkSts() == 25) {
- // 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數
+ // 25.灏忚溅璧拌 ===>> 26.绛夊緟鍏呯數
wrkCharge.setWrkSts(26L);
if (!wrkChargeService.updateById(wrkCharge)) {
- log.error("淇敼鍏呯數浠诲姟鐘舵�� 25.灏忚溅鍘诲厖鐢� ===>> 26.绛夊緟鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+ log.error("淇敼鍏呯數浠诲姟鐘舵�� 25.灏忚溅璧拌 ===>> 26.绛夊緟鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
} else {
steThread.setResetFlag(true);
}
@@ -2499,7 +2499,7 @@
wrkCharge.setSteNo(ste.getId());
wrkCharge.setWrkNo(commonService.getChargeWorkNo(4));
wrkCharge.setWrkSts(21L); // 21.鍑嗗鍏呯數
-// wrkCharge.setCrnNo(basSte.getCrnNo());
+ wrkCharge.setCrnNo(2); // 鍥哄畾2鍙峰爢鍨涙満
wrkCharge.setIoPri((double) 10);
wrkCharge.setLocNo(chargeLocNo);
wrkCharge.setMemo("charge");
@@ -2530,33 +2530,43 @@
// 22.灏忚溅寰呮惉
if (wrkCharge.getWrkSts() == 22) {
- // 鎼皬杞﹁嚦鍏呯數搴撲綅
- LocMast locMast = locMastService.selectById(basSte.getIdleLoc());
- // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue()); // 婧愬簱浣嶆帓
- crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
- crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue()); // 鐩爣搴撲綅鎺�
- crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
- if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
- log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
- } else {
- // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
- steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
- // 淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍
- Date now = new Date();
- wrkCharge.setWrkSts(23L);
- wrkCharge.setCrnStrTime(now);
- wrkCharge.setModiTime(now);
- if (!wrkChargeService.updateById(wrkCharge)) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+ // 鎼皬杞﹁嚦灏忚溅璧板悜閫氶亾
+ List<String> channel = slaveProperties.getChannel();
+ for (String channelLocNo : channel) {
+ Integer otherSte = existOtherSte(channelLocNo, wrkCharge.getSteNo());
+ if (null != otherSte) {
+ log.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), channelLocNo, otherSte);
+ } else {
+ LocMast channelLoc = locMastService.selectById(channelLocNo);
+
+ // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), true).shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(channelLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(channelLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
+ } else {
+ // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
+ steThread.modifyPos(Utils.getGroupRow(channelLoc.getLocNo(), true), channelLoc.getBay1(), channelLoc.getLev1());
+ // 淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍
+ Date now = new Date();
+ wrkCharge.setWrkSts(23L);
+ wrkCharge.setCrnStrTime(now);
+ wrkCharge.setModiTime(now);
+ if (!wrkChargeService.updateById(wrkCharge)) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+ }
+ }
+ break;
}
}
@@ -2568,37 +2578,49 @@
SteCommand steCommand = new SteCommand();
steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙�
steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙�
- steCommand.setTaskMode(SteTaskModeType.findChargeByLoc(steProtocol.getRow().intValue()));
+ steCommand.setTaskMode(SteTaskModeType.GO_ORIGIN); // 鍘诲彸绔�
if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) {
log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
} else {
- // 淇敼宸ヤ綔妗g姸鎬� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅鍘诲厖鐢�
+ // 淇敼宸ヤ綔妗g姸鎬� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅璧拌
wrkCharge.setWrkSts(25L);
Date now = new Date();
wrkCharge.setCrnEndTime(now);
wrkCharge.setModiTime(now);
if (!wrkChargeService.updateById(wrkCharge)) {
- log.error("淇敼鍏呯數浠诲姟鐘舵�� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅鍘诲厖鐢� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+ log.error("淇敼鍏呯數浠诲姟鐘舵�� 24.灏忚溅鍒拌揪 ===> 25.灏忚溅璧拌 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
}
}
}
} else if (wrkCharge.getWrkSts() == 26) {
- if (steProtocol.getChargeStatus() == 0) { continue; }
- // 缁欒緭閫佺嚎涓嬪彂鍏呯數浠诲姟
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo());
- if (null != steChargeType) {
- if (devpThread.charge(steChargeType.ssbm - 1, true)) {
- // 淇敼宸ヤ綔妗g姸鎬� 26.绛夊緟鍏呯數 ===> 28.瀹屾垚鍏呯數
- wrkCharge.setWrkSts(28L);
- if (!wrkChargeService.updateById(wrkCharge)) {
- log.error("淇敼鍏呯數浠诲姟鐘舵�� 26.绛夊緟鍏呯數 ===> 28.瀹屾垚鍏呯數 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
- } else {
- steThread.setResetFlag(true);
- }
- }
+ // 27.鏀捐嚦鍏呯數浣�
+ LocMast chargeLoc = locMastService.selectById(wrkCharge.getLocNo());
+
+ // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), true).shortValue()); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY(channelLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ(channelLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand));
} else {
- log.error("鑾峰彇鍏呯數妗╁彿澶辫触锛岃В鏋愬簱浣嶏細{}", wrkCharge.getLocNo());
+ // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞�
+ steThread.modifyPos(Utils.getGroupRow(channelLoc.getLocNo(), true), channelLoc.getBay1(), channelLoc.getLev1());
+ // 淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍
+ Date now = new Date();
+ wrkCharge.setWrkSts(23L);
+ wrkCharge.setCrnStrTime(now);
+ wrkCharge.setModiTime(now);
+ if (!wrkChargeService.updateById(wrkCharge)) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 22.灏忚溅寰呮惉 => 23.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo());
+ }
}
}
}
diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java
index d90276f..b40fca2 100644
--- a/src/main/java/com/zy/core/properties/SlaveProperties.java
+++ b/src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -26,6 +26,8 @@
private int groupCount;
+ private List<String> channel = new ArrayList<>();
+
private List<CrnSlave> crn = new ArrayList<>();
private List<SteSlave> ste = new ArrayList<>();
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index b715869..4e56e87 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -46,6 +46,8 @@
doubleLocs: 32
# 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
groupCount: 2
+ # 绌挎杞﹂�氶亾搴撲綅
+ channel: 0200101
# 鍫嗗灈鏈�1
crn[0]:
id: 1
--
Gitblit v1.9.1