From 651e2278129bd8e07628d310e9cce1d42743da64 Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期三, 06 八月 2025 18:15:26 +0800
Subject: [PATCH] 小车取货定位精度正负50区间
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 57 ++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 38 insertions(+), 19 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 e6ceeec..483bf28 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -365,9 +365,11 @@
return;
}
+ List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().eq("status", 0));
+
LinkedList<RgvProtocol> rgvProtocolList = new LinkedList<>();
- for (int i = 1; i <= 5; i++) {
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, i);
+ for (BasCircularShuttle basCircularShuttle : basCircularShuttleList) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
continue;
@@ -384,6 +386,7 @@
}
BasDevpPosition basDevpPositions = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", rgvSstaNo)); // 绔欑偣
long position = basDevpPositions.getPlcPosition(); // 璧峰绔欎綅缃�
+ position += 50; // 灏忚溅鍙栬揣瀹氫綅绮惧害 +- 50,绔欑偣浣嶇疆10000锛屽皬杞﹀湪10050涔熸槸鍙互鍙栫殑
TreeMap<Long, RgvProtocol> map = new TreeMap<>();
for (RgvProtocol rgvProtocol : rgvProtocolList) {
long distance;
@@ -407,13 +410,14 @@
// log.info("鍙栬揣绔欑偣锛歿}锛屽悗闈㈡渶杩戝皬杞︼細{},鐘舵��:{}", basDevpPositions.getDevNo(), rgvProtocol.getRgvNo(), rgvProtocol.getStatusType().desc);
int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("rgv_no", rgvProtocol.getRgvNo()).eq("wrk_sts", 10));
if(wrkMast.getIoType() == 10 || wrkMast.getIoType() == 110 || wrkMast.getSourceStaNo() == 1034) {
- if (count != 0) {
- continue;
- }
if (rgvProtocol.modeType == RgvModeType.AUTO
&& (rgvProtocol.getStatusType() == RgvStatusType.IDLE || rgvProtocol.getStatusType() == RgvStatusType.ROAM)
&& rgvProtocol.getTaskNo1() == 0
&& rgvProtocol.getAlarm() == 0) {
+ if (count != 0) {
+ log.error("{}鍛煎彨灏忚溅锛歿}鍙峰皬杞︾┖闂诧紝浣嗗伐浣滄。鏄剧ず璇ュ皬杞︽湁浠诲姟",wrkMast.getWrkNo(),rgvProtocol.getRgvNo());
+ break ;
+ }
RgvCommand rgvCommand = new RgvCommand();
rgvCommand.setRgvNo(rgvProtocol.getRgvNo());
rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
@@ -434,33 +438,32 @@
wrkMastService.updateById(wrkMast);
break runRgv;
} else if(rgvProtocol.modeType == RgvModeType.AUTO
- && (rgvProtocol.getStatusType() == RgvStatusType.IDLE || rgvProtocol.getStatusType() == RgvStatusType.ROAM)
- && rgvProtocol.getTaskNo1() != 0
- && rgvProtocol.getAlarm() == 0){ // 褰撳墠灏忚溅鏀捐揣鐩爣浣嶇疆鍦ㄥ綋鍓嶄换鍔″彇璐х偣涔嬪悗锛岃烦杩囦换鍔″垎閰嶏紝涓嶅啀鍒欏垽鏂笅涓皬杞︾洰鏍囦綅缃�
+ && rgvProtocol.getTaskNo1() != 0){ // 褰撳墠灏忚溅鏀捐揣鐩爣浣嶇疆鍦ㄥ綋鍓嶄换鍔″彇璐х偣涔嬪悗锛岃烦杩囦换鍔″垎閰嶏紝涓嶅啀鍒欏垽鏂笅涓皬杞︾洰鏍囦綅缃�
WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1())); // 褰撳墠rgv浠诲姟
if(wrkMast1!= null && !Cools.isEmpty(wrkMast1.getRgvDstaNo())) {
// 褰撳墠rgv浠诲姟鐩爣绔欑偣
BasDevpPosition rgvDstaNoDevPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", wrkMast1.getRgvDstaNo()));
long rgvDstaNoPosition = rgvDstaNoDevPosition.getPlcPosition(); // 褰撳墠rgv浠诲姟鐩爣绔欑偣浣嶇疆
if(rgvProtocol.getRgvPos() < rgvDstaNoPosition) { // 灏忚溅褰撳墠浣嶇疆 < rgv鐩爣浣嶇疆
- if(rgvProtocol.getRgvPos() < position && position < rgvDstaNoPosition) { // 杩欎釜浠诲姟浣嶇疆鏄湪褰撳墠rgv浣嶇疆鍓嶉潰骞朵笖杩欎釜浠诲姟璧风偣鍦ㄥ綋鍓峳gv鐩爣绔欑偣涔嬪悗
+ if(!(rgvProtocol.getRgvPos() < position && position < rgvDstaNoPosition)) { // 杩欎釜浠诲姟浣嶇疆鏄湪褰撳墠rgv浣嶇疆鍓嶉潰骞朵笖杩欎釜浠诲姟璧风偣鍦ㄥ綋鍓峳gv鐩爣绔欑偣涔嬪悗
break; // 褰撳墠rgv鏀捐揣瀹屾垚鍚庯紝鍙互鍙栧綋鍓嶄换鍔�
}
} else {
- if(rgvProtocol.getRgvPos() < position || position < rgvDstaNoPosition) {
+ if(!(rgvProtocol.getRgvPos() < position || position < rgvDstaNoPosition)) {
break;
}
}
}
}
} else {
- if (count != 0) {
- break;
- }
if (rgvProtocol.modeType == RgvModeType.AUTO
&& (rgvProtocol.getStatusType() == RgvStatusType.IDLE || rgvProtocol.getStatusType() == RgvStatusType.ROAM)
&& rgvProtocol.getTaskNo1() == 0
&& rgvProtocol.getAlarm() == 0) {
+ if (count != 0) {
+ log.error("{}鍛煎彨灏忚溅锛歿}鍙峰皬杞︾┖闂诧紝浣嗗伐浣滄。鏄剧ず璇ュ皬杞︽湁浠诲姟",wrkMast.getWrkNo(),rgvProtocol.getRgvNo());
+ break;
+ }
RgvCommand rgvCommand = new RgvCommand();
rgvCommand.setRgvNo(rgvProtocol.getRgvNo());
rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
@@ -480,8 +483,23 @@
wrkMast.setRgvCreateTime(now);
wrkMastService.updateById(wrkMast);
break runRgv;
- } else {
- break ; // 鍙湅鏈�杩戠殑绗竴涓皬杞�
+ } else if(rgvProtocol.modeType == RgvModeType.AUTO
+ && rgvProtocol.getTaskNo1() != 0){ // 褰撳墠灏忚溅鏀捐揣鐩爣浣嶇疆鍦ㄥ綋鍓嶄换鍔″彇璐х偣涔嬪悗锛岃烦杩囦换鍔″垎閰嶏紝涓嶅啀鍒欏垽鏂笅涓皬杞︾洰鏍囦綅缃�
+ WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1())); // 褰撳墠rgv浠诲姟
+ if(wrkMast1!= null && !Cools.isEmpty(wrkMast1.getRgvDstaNo())) {
+ // 褰撳墠rgv浠诲姟鐩爣绔欑偣
+ BasDevpPosition rgvDstaNoDevPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("dev_no", wrkMast1.getRgvDstaNo()));
+ long rgvDstaNoPosition = rgvDstaNoDevPosition.getPlcPosition(); // 褰撳墠rgv浠诲姟鐩爣绔欑偣浣嶇疆
+ if(rgvProtocol.getRgvPos() < rgvDstaNoPosition) { // 灏忚溅褰撳墠浣嶇疆 < rgv鐩爣浣嶇疆
+ if(!(rgvProtocol.getRgvPos() < position && position < rgvDstaNoPosition)) { // 杩欎釜浠诲姟浣嶇疆鏄湪褰撳墠rgv浣嶇疆鍓嶉潰骞朵笖杩欎釜浠诲姟璧风偣鍦ㄥ綋鍓峳gv鐩爣绔欑偣涔嬪悗
+ break; // 褰撳墠rgv鏀捐揣瀹屾垚鍚庯紝鍙互鍙栧綋鍓嶄换鍔�
+ }
+ } else {
+ if(!(rgvProtocol.getRgvPos() < position || position < rgvDstaNoPosition)) {
+ break;
+ }
+ }
+ }
}
}
}
@@ -551,15 +569,16 @@
&& rgvProtocol.getModeType() == RgvModeType.AUTO
&& rgvProtocol.getTaskNo1() != 0
) {
- log.info("{}鍙峰皬杞﹀皬杞﹀彇璐ц秺浣嶏紝鐘舵�亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
- WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue()));
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue())
+ .eq("rgv_no",rgvProtocol.getRgvNo()));
if (Cools.isEmpty(wrkMast)) {
- log.error("鏈煡鍒板皬杞︽墽琛屼换鍔★紒" + rgvProtocol.getTaskNo1());
+ log.error(rgvProtocol.getRgvNo() + "灏忚溅鍙栬揣瓒婁綅鏈煡鍒板皬杞︽墽琛屼换鍔★紒" + rgvProtocol.getTaskNo1());
continue;
} else if(wrkMast.getWrkSts() != 10) {
- log.warn("鎵ц浠诲姟鐘舵�佷笉绗﹀悎锛�" + rgvProtocol.getTaskNo1());
+ log.warn(rgvProtocol.getRgvNo() + "灏忚溅鍙栬揣瓒婁綅鎵ц浠诲姟鐘舵�佷笉绗﹀悎锛�" + rgvProtocol.getTaskNo1());
continue;
}
+ log.info("{}鍙峰皬杞﹀皬杞﹀彇璐ц秺浣嶏紝鐘舵�亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
if (!rgvComplete) {
log.error("灏忚溅鍙栬揣瓒婁綅,浠诲姟鍙栨秷,澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
--
Gitblit v1.9.1