From f41df488a23abd9fff472fa72a8fa3bb283c936b Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 01 三月 2024 14:41:21 +0800 Subject: [PATCH] #车锁 --- src/main/java/com/zy/core/thread/RgvThread.java | 6 + src/main/java/com/zy/asrs/utils/RouteUtils.java | 101 ++++++++++++++++++--------------- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 14 ++++ src/main/java/com/zy/core/MainProcess.java | 2 src/main/java/com/zy/core/RgvThread2.java | 6 ++ 5 files changed, 79 insertions(+), 50 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 3d0c749..9dafb82 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -2346,6 +2346,7 @@ rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴 && (rgvProtocol.getTaskNo1()==0) + &&rgvThread.isPakMk() ) { BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); @@ -2361,9 +2362,17 @@ && rgvProtocolOther.getModeType() == RgvModeType.AUTO && rgvProtocolOther.getLoaded1()==0 && (rgvProtocolOther.getTaskNo1()==0) + &&rgvThreadOther.isPakMk() ){ + //瀵瑰伐浣滄。杩涜鍒ゆ柇 basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); - rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2366"); + if (rgvProtocol.getTaskNo1() >0 && rgvProtocol.getTaskNo1()<=9000){ + WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); + rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2366"); + }else if (rgvProtocol.getTaskNo1() == 0){ + rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2366"); + } + } @@ -2413,6 +2422,7 @@ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415"); + rgvThread.setPakMk(true); break; } WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); @@ -2469,6 +2479,7 @@ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2471"); + rgvThread.setPakMk(true); } else { @@ -2523,6 +2534,7 @@ boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 wrkEnable = true; if (sign){ + rgvThread.setPakMk(false); boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526"); if (signMap){ Thread.sleep(300); diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java index e769506..32f7b51 100644 --- a/src/main/java/com/zy/asrs/utils/RouteUtils.java +++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java @@ -31,11 +31,11 @@ // 姝e簭 public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE = new ArrayList<Integer>() {{ - add(161);add(157);add(153);add(149);add(124);add(119);add(113);add(999);add(112);add(107);add(106);add(101);add(100); + add(161);add(157);add(153);add(149);add(124);add(119);add(113);add(112);add(107);add(106);add(101);add(100); }}; // 鍙嶅簭 public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE = new ArrayList<Integer>() {{ - add(100);add(101);add(106);add(107);add(112);add(999);add(113);add(119);add(124);add(149);add(153);add(157);add(161); + add(100);add(101);add(106);add(107);add(112);add(113);add(119);add(124);add(149);add(153);add(157);add(161); }}; public static String zerofill(String msg, Integer count){ @@ -257,52 +257,59 @@ public static void main(String[] arge){ - List<Integer> routeCurrent = getRoute(100, 124); //鑾峰彇褰撳墠灏忚溅璺緞 - List<Integer> routeOther = getRoute(149, 161); //鑾峰彇鍏跺畠灏忚溅璺緞 - System.out.println("褰撳墠灏忚溅璺緞:\t"+routeCurrent); - System.out.println("鍏跺畠灏忚溅璺緞:\t"+routeOther); + //{"endRoute":999,"lockEndRoute":124,"lockStartRoute":161,"nowRoute":161,"rgvNo":3,"rgvStatus":0,"startRoute":161} 3hao + Integer i = RouteIndexFarMas(112, 161, 124, 161); + System.out.println(i); + //{"endRoute":119,"lockEndRoute":112,"lockStartRoute":100,"nowRoute":112,"rgvNo":2,"rgvStatus":0,"startRoute":100} 2 + Integer i1 = RouteIndexFarMas(112, 100, 112, 100); + System.out.println(i1); - boolean routeBoolean = getRouteBoolean(routeCurrent, routeOther); //鏄惁鏈変氦闆� - System.out.println("鏄惁鏈変氦闆�:\t"+routeBoolean); - - List<Integer> routeIntersection = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.INTERSECTION);//浜ら泦 - System.out.println("璺緞浜ら泦锛歕t"+routeIntersection); - - List<Integer> routeIntersection1 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DIFFERENCESET);//宸泦 - System.out.println("璺緞宸泦锛歕t"+routeIntersection1); - - List<Integer> routeIntersection2 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.UNION);//骞堕泦 - System.out.println("璺緞骞堕泦锛歕t"+routeIntersection2); - - List<Integer> routeIntersection3 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DEDUPLICATIONUNION);//鍘婚噸骞堕泦 - System.out.println("璺緞鍘婚噸骞堕泦锛歕t"+routeIntersection3); - - /* - * a 灏忚溅褰撳墠浣嶇疆 - * b 灏忚溅浠诲姟寮�濮嬩綅缃� - * c 灏忚溅浠诲姟缁撴潫浣嶇疆 - * sign 鍙︿竴涓皬杞︾┖闂叉爣璁� - * */ - System.out.println("鏄惁鏈変氦闆嗭細\t"+RouteAutoBoolean(100,101,124,149,161,153,true)); //鏄惁鏈変氦闆� true鏃犱氦闆� false鏈変氦闆� - - /* - * a 灏忚溅褰撳墠浣嶇疆 - * b 灏忚溅浠诲姟寮�濮嬩綅缃� - * c 灏忚溅浠诲姟缁撴潫浣嶇疆 - * d 灏忚溅鍒濆浣嶇疆 - * 鑾峰彇鏈�澶ц矾寰勫樊鍊� - * */ - List<Integer> routeDIFF = RouteMapCurrentFar(100,101,124,149); - System.out.println("褰撳墠璺緞鏈�澶ч泦鍚堬細\t"+ routeDIFF); - - Integer routeFarOther= RouteMapOtherFarStnNo(routeDIFF,124); - System.out.println("鍙︿竴鍙板皬杞︽渶杩滅珯鐐癸細\t"+routeFarOther); - - - Integer[] integers = RouteIndexFarArr(100,101,124,149); - for (Integer integer:integers){ - System.out.println(integer); - } +// List<Integer> routeCurrent = getRoute(100, 124); //鑾峰彇褰撳墠灏忚溅璺緞 +// List<Integer> routeOther = getRoute(149, 161); //鑾峰彇鍏跺畠灏忚溅璺緞 +// System.out.println("褰撳墠灏忚溅璺緞:\t"+routeCurrent); +// System.out.println("鍏跺畠灏忚溅璺緞:\t"+routeOther); +// +// boolean routeBoolean = getRouteBoolean(routeCurrent, routeOther); //鏄惁鏈変氦闆� +// System.out.println("鏄惁鏈変氦闆�:\t"+routeBoolean); +// +// List<Integer> routeIntersection = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.INTERSECTION);//浜ら泦 +// System.out.println("璺緞浜ら泦锛歕t"+routeIntersection); +// +// List<Integer> routeIntersection1 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DIFFERENCESET);//宸泦 +// System.out.println("璺緞宸泦锛歕t"+routeIntersection1); +// +// List<Integer> routeIntersection2 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.UNION);//骞堕泦 +// System.out.println("璺緞骞堕泦锛歕t"+routeIntersection2); +// +// List<Integer> routeIntersection3 = getRouteIntersection(routeCurrent, routeOther, RouteCollectCountType.DEDUPLICATIONUNION);//鍘婚噸骞堕泦 +// System.out.println("璺緞鍘婚噸骞堕泦锛歕t"+routeIntersection3); +// +// /* +// * a 灏忚溅褰撳墠浣嶇疆 +// * b 灏忚溅浠诲姟寮�濮嬩綅缃� +// * c 灏忚溅浠诲姟缁撴潫浣嶇疆 +// * sign 鍙︿竴涓皬杞︾┖闂叉爣璁� +// * */ +// System.out.println("鏄惁鏈変氦闆嗭細\t"+RouteAutoBoolean(100,101,124,149,161,153,true)); //鏄惁鏈変氦闆� true鏃犱氦闆� false鏈変氦闆� +// +// /* +// * a 灏忚溅褰撳墠浣嶇疆 +// * b 灏忚溅浠诲姟寮�濮嬩綅缃� +// * c 灏忚溅浠诲姟缁撴潫浣嶇疆 +// * d 灏忚溅鍒濆浣嶇疆 +// * 鑾峰彇鏈�澶ц矾寰勫樊鍊� +// * */ +// List<Integer> routeDIFF = RouteMapCurrentFar(100,101,124,149); +// System.out.println("褰撳墠璺緞鏈�澶ч泦鍚堬細\t"+ routeDIFF); +// +// Integer routeFarOther= RouteMapOtherFarStnNo(routeDIFF,124); +// System.out.println("鍙︿竴鍙板皬杞︽渶杩滅珯鐐癸細\t"+routeFarOther); +// +// +// Integer[] integers = RouteIndexFarArr(100,101,124,149); +// for (Integer integer:integers){ +// System.out.println(integer); +// } } } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 1192aa1..3341f0a 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -37,7 +37,7 @@ try { // 闂撮殧 - Thread.sleep(500); + Thread.sleep(1000); // 绯荤粺杩愯鐘舵�佸垽鏂� if (!SystemProperties.WCS_RUNNING_STATUS.get()) { diff --git a/src/main/java/com/zy/core/RgvThread2.java b/src/main/java/com/zy/core/RgvThread2.java new file mode 100644 index 0000000..82ced52 --- /dev/null +++ b/src/main/java/com/zy/core/RgvThread2.java @@ -0,0 +1,6 @@ +package com.zy.core; + +public interface RgvThread2 extends ThreadHandler{ + + void setPakMk(boolean lock); +} diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index 3d626eb..8920a92 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -12,6 +12,7 @@ import com.zy.asrs.service.BasRgvOptService; import com.zy.asrs.service.BasRgvService; import com.zy.common.utils.News; +import com.zy.core.RgvThread2; import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; @@ -35,7 +36,7 @@ */ @Data @Slf4j -public class RgvThread implements Runnable, ThreadHandler { +public class RgvThread implements Runnable, RgvThread2 { private SiemensS7Net siemensNet; private RgvSlave slave; @@ -49,6 +50,9 @@ */ private boolean resetFlag2 = false; + //閿佸畾鏍囪 + private boolean PakMk = true; + public RgvThread(RgvSlave slave) { this.slave = slave; } -- Gitblit v1.9.1