From 855bf7559274cbc7e3008eaac313e49e48d14e33 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 15 一月 2024 20:27:08 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/enums/RgvModeType.java | 2
src/main/java/com/zy/asrs/controller/RgvController.java | 7
src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java | 1
src/main/java/com/zy/asrs/utils/RouteUtils.java | 2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 79 +++++-----
src/main/java/com/zy/core/cache/MessageQueue.java | 15 ++
src/main/webapp/views/rgv.html | 28 ++--
src/main/java/com/zy/common/model/LocTypeDto.java | 14 +-
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 28 ++--
src/main/java/com/zy/core/ServerBootstrap.java | 40 +++++
src/main/java/com/zy/core/thread/RgvThread.java | 54 +++---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 24 ++-
src/main/java/com/zy/core/enums/CrnStatusType.java | 2
src/main/java/com/zy/core/MainProcess.java | 2
src/main/java/com/zy/core/model/protocol/RgvProtocol.java | 79 ++++++----
src/main/resources/application.yml | 32 ++--
16 files changed, 243 insertions(+), 166 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index bb6cee0..c22068e 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -84,10 +84,11 @@
vo.setStatus1(rgvProtocol.getStatusType1().desc); // 宸ヤ綅1鐘舵��
vo.setLoading1(rgvProtocol.getLoaded1()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅1鏈夌墿
vo.setRgvPos(rgvProtocol.getRgvPos());
+ vo.setRgvPos1(rgvProtocol.getRgvPosI());
vo.setWalkPos(rgvProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
- vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
- vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
- vo.setLoading2(rgvProtocol.getLoaded2()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅2鏈夌墿
+// vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
+// vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
+// vo.setLoading2(rgvProtocol.getLoaded2()==1?"鏈夌墿":"鏃犵墿"); // 宸ヤ綅2鏈夌墿
vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
if (rgvProtocol.getAlarm() > 0) {
diff --git a/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java b/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java
index 6329714..0e892c0 100644
--- a/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java
@@ -46,5 +46,6 @@
// 寮傚父鐮佹弿杩�
private String alarm = "-";
+ private Integer RgvPos1 = 0;
}
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 4505474..7c298d4 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1426,10 +1426,11 @@
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
&& staProtocol.isInEnable()
&& staProtocol.isEmptyMk()
- && (staProtocol.getWorkNo() > 9990 && staProtocol.getWorkNo() <= 9999)
- && staProtocol.isPakMk()&& staProtocol.getStamp()>=2) {
+ && staProtocol.isPakMk()
+ ) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
try {
@@ -1451,7 +1452,7 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(dto.getWorkNo());
- staProtocol.setStaNo(dto.getStaNo().shortValue());
+ staProtocol.setStaNo(staProtocol.getSiteId().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
@@ -2233,7 +2234,7 @@
&& rgvProtocol.getModeType() == RgvModeType.AUTO
&& rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
&& (rgvProtocol.getTaskNo1()==0 || rgvProtocol.getTaskNo1()==9999)
- && (rgvProtocol.getTaskNo2()==0 || rgvProtocol.getTaskNo2()==9999)
+
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
@@ -2295,33 +2296,35 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
- }else if (rgvProtocol.getTaskNo2()!=0){
- if (rgvProtocol.getTaskNo2()==9999){
- boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
- if (!rgvComplete){
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
- }
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
- break;
- }
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().intValue());
- if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=2){
- log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
- continue;
- }
- boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
- if (!rgvComplete){
- log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
- break;
- }
- wrkMastSta.setWrkSts(3);
- wrkMastStaMapper.updateById(wrkMastSta);
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
- rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
- }else {
+ }
+// else if (rgvProtocol.getTaskNo2()!=0){
+// if (rgvProtocol.getTaskNo2()==9999){
+// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+// if (!rgvComplete){
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+// }
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
+// break;
+// }
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().intValue());
+// if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=2){
+// log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
+// continue;
+// }
+// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+// if (!rgvComplete){
+// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
+// break;
+// }
+// wrkMastSta.setWrkSts(3);
+// wrkMastStaMapper.updateById(wrkMastSta);
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
+// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
+// }
+ else {
log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{},绛夊緟wcs纭浣嗘槸娌℃湁宸ヤ綔鍙凤紒",rgvProtocol.getRgvNo());
}
}
@@ -2361,7 +2364,7 @@
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
for (WrkMastSta wrkMastSta : wrkMastStaList){
- if (wrkMastSta.getType()!=1 || wrkMastSta.getWrkType()!=3){//1:婊$増 3锛氬彇鏀�
+ if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3){//1:婊$増 3锛氬彇鏀�
continue;
}
boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
@@ -2410,7 +2413,7 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded2()==1 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+ && rgvProtocol.getLoaded1()==1 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
@@ -2473,7 +2476,7 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded2()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+ && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
@@ -2545,7 +2548,7 @@
&& rgvProtocol.getModeType() == RgvModeType.AUTO
// && rgvProtocol.getLoaded1()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
&& rgvProtocol.getTaskNo1()==0
- && rgvProtocol.getTaskNo2()==0
+// && rgvProtocol.getTaskNo2()==0
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
@@ -2601,7 +2604,7 @@
rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
return false;
@@ -2626,7 +2629,7 @@
rgvCommand.setTaskMode1(RgvTaskModeType.FETCH); // 宸ヤ綅1浠诲姟妯″紡: 鍙栬揣
rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅1璧风偣
rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
return false;
@@ -2651,7 +2654,7 @@
rgvCommand.setTaskMode1(RgvTaskModeType.PUT); // 宸ヤ綅1浠诲姟妯″紡: 鏀捐揣
rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅1鐩爣绔欑偣
rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(4, rgvCommand))) {
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
return false;
diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index cba980b..00c5333 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -14,7 +14,7 @@
//闂2 鍛ㄤ繆鏉�
public static final List<Integer> MERGE_STA_NO_One = new ArrayList<Integer>() {{
-// add(116);add(117);
+ add(113);add(119);
}};
public static final List<Integer> MERGE_STA_NO_TWO = new ArrayList<Integer>() {{
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index 4cb4b14..d62d0c8 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -29,14 +29,14 @@
}
public LocTypeDto(StaProtocol staProtocol) {
- if (staProtocol.isHigh() == staProtocol.isLow()) {
- throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
- }
- if (staProtocol.isLow()) {
+// if (staProtocol.isHigh() == staProtocol.isLow()) {
+// throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
+// }
+// if (staProtocol.isLow()) {
this.locType1 = 1; // 浣庡簱浣�
- } else {
- this.locType1 = 2; // 楂樺簱浣�
- }
+// } else {
+// this.locType1 = 2; // 楂樺簱浣�
+// }
}
/**
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index e55135e..674ee1c 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -44,7 +44,7 @@
}
// 婕旂ず
-// mainService.crnDemoOfLocMove1();
+ mainService.crnDemoOfLocMove1();
//鍒锋柊RGV鍦板浘
mainService.refreshRgvMap();
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 8e6f4b4..2bff72a 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -13,10 +13,13 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
/**
* Created by vincent on 2020/8/4
@@ -29,6 +32,8 @@
private SlaveProperties slaveProperties;
@Autowired
private MainProcess mainProcess;
+
+ public static final Map<CrnThread, Thread> map = new ConcurrentHashMap<>();
/**
* PostConstruct浼氬湪鍔犺浇servlet鐨勬椂鍊欒繍琛屼竴娆�
@@ -129,5 +134,40 @@
public void destroy() {
}
+ @Component
+ class killThread {
+ @Scheduled(cron = "0/3 * * * * ? ")
+ public void kill() {
+ int i = 0;
+ for (Map.Entry<CrnThread, Thread> entry : map.entrySet()) {
+ i++;
+ SiemensCrnThread key = (SiemensCrnThread) entry.getKey();
+// System.out.println("绗�"+i+"涓爢鍨涙満绾跨▼閲嶅惎绾跨▼鏉′欢锛�"+(System.currentTimeMillis() - key.getSign()));
+ if (System.currentTimeMillis() - key.getSign() > 120000) {
+ System.out.println("绗�"+i+"涓爢鍨涙満绾跨▼琚噸鍚�");
+
+ // 璇锋眰绾跨▼瀹夊叏鍋滄
+ key.requestStop();
+
+ // 绛夊緟绾跨▼瀹屾垚鍋滄, 鍙互杩欐牱鍋氫篃鍙互閫夋嫨涓嶈繖涔堝仛锛屽彇鍐充簬鏄惁闇�瑕佺瓑寰呯嚎绋嬬粨鏉�
+ try {
+ entry.getValue().join(20000); // 绛夊緟鏈�澶�20绉�
+ } catch (InterruptedException e) {
+// // 鍙�傚綋澶勭悊涓柇
+// Thread.currentThread().interrupt(); // 淇濈暀涓柇鐘舵��
+ entry.getValue().stop();
+ }
+
+ // 閲嶆柊鍚姩绾跨▼
+ Thread thread = new Thread((Runnable) key); // 鍋囪CrnThread瀹炵幇浜哛unnable
+ thread.start();
+
+ // 鏇挎崲鏄犲皠鍏崇郴涓殑鏃х嚎绋�
+ map.put(entry.getKey(), thread);
+ }
+ }
+ }
+
+ }
}
diff --git a/src/main/java/com/zy/core/cache/MessageQueue.java b/src/main/java/com/zy/core/cache/MessageQueue.java
index 6a751f2..a2a77cb 100644
--- a/src/main/java/com/zy/core/cache/MessageQueue.java
+++ b/src/main/java/com/zy/core/cache/MessageQueue.java
@@ -28,6 +28,8 @@
// 鍙拌溅mq浜ゆ崲鏈�
private static final Map<Integer, ConcurrentLinkedQueue<Task>> CAR_EXCHANGE = new ConcurrentHashMap<>();
+ private static final Map<Integer, LinkedBlockingQueue<Task>> RGV_EXCHANGE = new ConcurrentHashMap<>();
+
/**
* mq 浜ゆ崲鏈哄垵濮嬪寲
*/
@@ -35,6 +37,9 @@
switch (type) {
case Crn:
CRN_EXCHANGE.put(slave.getId(), new LinkedBlockingQueue<>(1));
+ break;
+ case Rgv:
+ RGV_EXCHANGE.put(slave.getId(), new LinkedBlockingQueue<>(1));
break;
case Devp:
DEVP_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
@@ -64,6 +69,8 @@
switch (type) {
case Crn:
return CRN_EXCHANGE.get(id).offer(task);
+ case Rgv:
+ return RGV_EXCHANGE.get(id).offer(task);
case Devp:
return DEVP_EXCHANGE.get(id).offer(task);
case Barcode:
@@ -87,6 +94,8 @@
switch (type) {
case Crn:
return CRN_EXCHANGE.get(id).poll();
+ case Rgv:
+ return RGV_EXCHANGE.get(id).poll();
case Devp:
return DEVP_EXCHANGE.get(id).poll();
case Barcode:
@@ -109,6 +118,8 @@
switch (type) {
case Crn:
return CRN_EXCHANGE.get(id).peek();
+ case Rgv:
+ return RGV_EXCHANGE.get(id).peek();
case Devp:
return DEVP_EXCHANGE.get(id).peek();
case Barcode:
@@ -127,9 +138,11 @@
public static void clear(SlaveType type, Integer id){
switch (type) {
case Crn:
-
CRN_EXCHANGE.get(id).clear();
break;
+ case Rgv:
+ RGV_EXCHANGE.get(id).clear();
+ break;
case Devp:
DEVP_EXCHANGE.get(id).clear();
break;
diff --git a/src/main/java/com/zy/core/enums/CrnStatusType.java b/src/main/java/com/zy/core/enums/CrnStatusType.java
index 79c4b51..f02ed99 100644
--- a/src/main/java/com/zy/core/enums/CrnStatusType.java
+++ b/src/main/java/com/zy/core/enums/CrnStatusType.java
@@ -13,7 +13,7 @@
ORIGIN_GO(7, "鍥炲師鐐�"),
ORIGIN_BACK(8, "鍥炲弽鍘熺偣"),
MOVING(9, "璧拌涓�"),
- WAITING(90, "浠诲姟瀹屾垚绛夊緟WCS纭"),
+ WAITING(10, "浠诲姟瀹屾垚绛夊緟WCS纭"),
PAUSE(11, "浠诲姟鏆傚仠"),
SOS(99, "鎶ヨ"),
UNKNOW(100, "鍏朵粬"),
diff --git a/src/main/java/com/zy/core/enums/RgvModeType.java b/src/main/java/com/zy/core/enums/RgvModeType.java
index f1dbe1e..3a344bb 100644
--- a/src/main/java/com/zy/core/enums/RgvModeType.java
+++ b/src/main/java/com/zy/core/enums/RgvModeType.java
@@ -3,7 +3,7 @@
public enum RgvModeType {
NONE(-1, "绂荤嚎"),
- STOP(0, "缁翠慨"),
+ STOP(0, "鍏虫満"),
HAND(1, "鎵嬪姩"),
HALF_AUTO(2, "鍗婅嚜鍔�"),
AUTO(3, "鑷姩"),
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index a63b90b..aaa114d 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -251,32 +251,32 @@
return basCrnp;
}
- public void setxSpeed(Short xSpeed) {
- this.xSpeed = Float.valueOf(xSpeed);
+ public void setxSpeed(float xSpeed) {
+ this.xSpeed = xSpeed;
}
- public void setySpeed(Short ySpeed) {
- this.ySpeed = Float.valueOf(ySpeed);
+ public void setySpeed(float ySpeed) {
+ this.ySpeed = ySpeed;
}
- public void setzSpeed(Short zSpeed) {
- this.zSpeed = Float.valueOf(zSpeed);
+ public void setzSpeed(float zSpeed) {
+ this.zSpeed = zSpeed;
}
- public void setxDistance(Short xDistance) {
- this.xDistance = Float.valueOf(xDistance);
+ public void setxDistance(float xDistance) {
+ this.xDistance = xDistance;
}
- public void setyDistance(Short yDistance) {
- this.yDistance = Float.valueOf(yDistance);
+ public void setyDistance(float yDistance) {
+ this.yDistance = yDistance;
}
- public void setxDuration(Short xDuration) {
- this.xDuration = Float.valueOf(xDuration);
+ public void setxDuration(float xDuration) {
+ this.xDuration = xDuration;
}
- public void setyDuration(Short yDuration) {
- this.yDuration = Float.valueOf(yDuration);
+ public void setyDuration(float yDuration) {
+ this.yDuration = yDuration;
}
}
diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
index d952086..f8fd4da 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -5,6 +5,9 @@
import com.zy.core.enums.RgvStatusType;
import lombok.Data;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* Created by vincent on 2020/8/7
*/
@@ -72,29 +75,29 @@
public Short walkPos;
////////////////////// 宸ヤ綅2瀹氫箟 //////////////////////////////////////////////////
- /**
- * 宸ヤ綅2浠诲姟鍙�
- */
- public Short taskNo2 = 0;
-
- /**
- * RGV宸ヤ綅2褰撳墠鐘舵��
- * 0锛氱┖闂诧紝鏃犱换鍔�
- * 11锛氬彇璐т腑
- * 12锛氭斁璐т腑
- * 10锛氫换鍔″畬鎴愮瓑寰匴CS纭
- */
- public Short status2;
-
- /**
- * 鐘舵�佹灇涓�
- */
- public RgvStatusType statusType2;
-
- /**
- * 宸ヤ綅2鏈夌墿
- */
- public Short loaded2;
+// /**
+// * 宸ヤ綅2浠诲姟鍙�
+// */
+// public Short taskNo2 = 0;
+//
+// /**
+// * RGV宸ヤ綅2褰撳墠鐘舵��
+// * 0锛氱┖闂诧紝鏃犱换鍔�
+// * 11锛氬彇璐т腑
+// * 12锛氭斁璐т腑
+// * 10锛氫换鍔″畬鎴愮瓑寰匴CS纭
+// */
+// public Short status2;
+//
+// /**
+// * 鐘舵�佹灇涓�
+// */
+// public RgvStatusType statusType2;
+//
+// /**
+// * 宸ヤ綅2鏈夌墿
+// */
+// public Short loaded2;
///////////////////////////////////////////////////////////////////////////////////////
/**
@@ -162,15 +165,15 @@
this.status1 = RgvStatusType.get(type1).id.shortValue();
}
- public void setStatus2(Short status2){
- this.status2 = status2;
- this.statusType2 = RgvStatusType.get(status2);
- }
-
- public void setStatus2(RgvStatusType type2){
- this.statusType2 = type2;
- this.status2 = RgvStatusType.get(type2).id.shortValue();
- }
+// public void setStatus2(Short status2){
+// this.status2 = status2;
+// this.statusType2 = RgvStatusType.get(status2);
+// }
+//
+// public void setStatus2(RgvStatusType type2){
+// this.statusType2 = type2;
+// this.status2 = RgvStatusType.get(type2).id.shortValue();
+// }
/**
* 鏈�杩戜竴娆″叆鍑哄簱绫诲瀷
@@ -185,7 +188,7 @@
basRgv.setRgvErr(alarm.longValue());
}
basRgv.setWrkNo1(taskNo1.intValue());
- basRgv.setWrkNo2(taskNo2.intValue());
+// basRgv.setWrkNo2(taskNo2.intValue());
return basRgv;
}
@@ -203,8 +206,16 @@
public Integer getRgvPosI(){
//闇�瑕佹牴鎹幇鍦烘敼閫� 鏍规嵁璇诲埌鐨勫�艰幏鍙栧搴旂珯鐐逛綅缃�
+ Map<Short,Integer> map = new HashMap<>();
+ map.put((short) 1,100);map.put((short) 2,101);
+ map.put((short) 3,106);map.put((short) 4,107);
+ map.put((short) 5,112);map.put((short) 6,113);
+ map.put((short) 7,119);map.put((short) 8,124);
+ map.put((short) 9,149);map.put((short) 10,153);
+ map.put((short) 11,157);map.put((short) 12,161);
if (RgvPos==null) return 0;
- return RgvPos.intValue();
+
+ return map.get(RgvPos);
}
}
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 27b3fda..785550a 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -144,9 +144,9 @@
rgvProtocol.setLoaded1((short)0);
rgvProtocol.setWalkPos((short)0);
rgvProtocol.setRgvPos((short)0);
- rgvProtocol.setTaskNo2((short)0);
- rgvProtocol.setStatus2((short)-1);
- rgvProtocol.setLoaded2((short)0);
+// rgvProtocol.setTaskNo2((short)0);
+// rgvProtocol.setStatus2((short)-1);
+// rgvProtocol.setLoaded2((short)0);
rgvProtocol.setAlarm((short)0);
rgvProtocol.setxSpeed((short) 0);
rgvProtocol.setxDistance((short) 0);
@@ -178,7 +178,7 @@
*/
private void readStatus(){
try {
- OperateResultExOne<byte[]> result = siemensNet.Read("DB1.0", (short) 34);
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 30);
if (result.IsSuccess) {
if (null == rgvProtocol) {
rgvProtocol = new RgvProtocol();
@@ -191,16 +191,16 @@
rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransInt16(result.Content, 8));
rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
-// rgvProtocol.setTaskNo2(siemensNet.getByteTransform().TransInt16(result.Content, 14));
+ rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 14));
// rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 16));
-// rgvProtocol.setLoaded2(siemensNet.getByteTransform().TransInt16(result.Content, 18));
- rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20));
- rgvProtocol.setHeart(siemensNet.getByteTransform().TransInt16(result.Content, 22));
- rgvProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 24));
+ rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 18));
+// rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20));
+ rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 22));
+// rgvProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 24));
rgvProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 26));
- rgvProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 28));
- rgvProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 30));
- rgvProtocol.setTemp5(siemensNet.getByteTransform().TransInt16(result.Content, 32));
+// rgvProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 28));
+// rgvProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 30));
+// rgvProtocol.setTemp5(siemensNet.getByteTransform().TransInt16(result.Content, 32));
// rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
// rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
// rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
@@ -220,16 +220,16 @@
}
// 宸ヤ綅2澶嶄綅淇″彿
- if (rgvProtocol.getStatusType2().equals(RgvStatusType.WAITING)
- || rgvProtocol.getStatusType2().equals(RgvStatusType.FETCHWAITING)) {
- if (resetFlag2) {
- RgvCommand rgvCommand = new RgvCommand();
- rgvCommand.setAckFinish2((short)1);
- if (write(rgvCommand)) {
- resetFlag2 = false;
- }
- }
- }
+// if (rgvProtocol.getStatusType2().equals(RgvStatusType.WAITING)
+// || rgvProtocol.getStatusType2().equals(RgvStatusType.FETCHWAITING)) {
+// if (resetFlag2) {
+// RgvCommand rgvCommand = new RgvCommand();
+// rgvCommand.setAckFinish2((short)1);
+// if (write(rgvCommand)) {
+// resetFlag2 = false;
+// }
+// }
+// }
try {
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
@@ -281,11 +281,11 @@
array[10] = command.getCommand();
OperateResult result = siemensNet.Write("DB100.0", array);
- if (command.getAckFinish1() == 0 && command.getAckFinish2() == 0) {
- short commandFinish = 3; //宸ヤ綅1銆�2浠诲姟鍚屾椂鍐欏叆
- Thread.sleep(100L);
- result = siemensNet.Write("DB100.20", commandFinish);
- }
+// if (command.getAckFinish1() == 0 && command.getAckFinish2() == 0) {
+// short commandFinish = 3; //宸ヤ綅1銆�2浠诲姟鍚屾椂鍐欏叆
+// Thread.sleep(100L);
+// result = siemensNet.Write("DB100.20", commandFinish);
+// }
try {
// 鏃ュ織璁板綍
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index ac81663..17570b0 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -40,6 +40,10 @@
private CrnProtocol crnProtocol;
private boolean resetFlag = false;
+ public boolean isRunning = true;
+
+ public Long sign = System.currentTimeMillis();
+
/**
* 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪
*/
@@ -53,7 +57,7 @@
@SuppressWarnings("InfiniteLoopStatement")
public void run() {
this.connect();
- while (true) {
+ while (isRunning) {
try {
int step = 1;
Task task = MessageQueue.poll(SlaveType.Crn, slave.getId());
@@ -169,13 +173,13 @@
crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22));
crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24));
crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26));
- crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
- crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32));
- crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
- crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
- crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
- crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
- crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
+ crnProtocol.setxSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 28));
+ crnProtocol.setySpeed(siemensNet.getByteTransform().TransSingle(result.Content, 32));
+ crnProtocol.setzSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 36));
+ crnProtocol.setxDistance(siemensNet.getByteTransform().TransSingle(result.Content, 40));
+ crnProtocol.setyDistance(siemensNet.getByteTransform().TransSingle(result.Content, 44));
+ crnProtocol.setxDuration(siemensNet.getByteTransform().TransSingle(result.Content, 48));
+ crnProtocol.setyDuration(siemensNet.getByteTransform().TransSingle(result.Content, 52));
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
@@ -293,6 +297,10 @@
}
}
+ public void requestStop() {
+ isRunning = false;
+ }
+
@Override
public void close() {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0012b0a..ebbbb49 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -57,15 +57,15 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 103
- row: 2
+ staNo: 123
+ row: 3
bay: 1
lev: 1
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 104
- row: 3
+ staNo: 118
+ row: 2
bay: 1
lev: 1
# 鍫嗗灈鏈�2
@@ -81,15 +81,15 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 203
- row: 12
+ staNo: 128
+ row: 6
bay: 1
lev: 1
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 204
- row: 13
+ staNo: 132
+ row: 7
bay: 1
lev: 1
# 鍫嗗灈鏈�3
@@ -105,15 +105,15 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 303
- row: 22
+ staNo: 136
+ row: 12
bay: 1
lev: 1
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 304
- row: 23
+ staNo: 140
+ row: 11
bay: 1
lev: 1
# 鍫嗗灈鏈�4
@@ -129,15 +129,15 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 303
- row: 22
+ staNo: 144
+ row: 14
bay: 1
lev: 1
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 304
- row: 23
+ staNo: 148
+ row: 15
bay: 1
lev: 1
diff --git a/src/main/webapp/views/rgv.html b/src/main/webapp/views/rgv.html
index fc468d9..b679a84 100644
--- a/src/main/webapp/views/rgv.html
+++ b/src/main/webapp/views/rgv.html
@@ -90,16 +90,16 @@
<thead>
<tr>
<th>RGV</th>
- <th>妯″紡</th>
- <th>鐘舵��</th>
- <th>浠诲姟鍙�1</th>
- <th>鐘舵��1</th>
- <th>鏈夌墿1</th>
+ <th>褰撳墠妯″紡</th>
+ <th>褰撳墠鐘舵��</th>
+ <th>浠诲姟鍙�</th>
+ <th>宸ヤ綔鐘舵��</th>
+ <th>鏈夌墿</th>
<th>RGV浣嶇疆</th>
<th>璧拌瀹氫綅</th>
- <th>浠诲姟鍙�2</th>
- <th>鐘舵��2</th>
- <th>鏈夌墿2</th>
+<!-- <th>浠诲姟鍙�2</th>-->
+<!-- <th>鐘舵��2</th>-->
+<!-- <th>鏈夌墿2</th>-->
<th>鏁呴殰浠g爜</th>
<th>鏁呴殰鎻忚堪</th>
</tr>
@@ -315,13 +315,13 @@
setVal(tr.children("td").eq(3), table[i-1].workNo1);
setVal(tr.children("td").eq(4), table[i-1].status1);
setVal(tr.children("td").eq(5), table[i-1].loading1);
- setVal(tr.children("td").eq(6), table[i-1].rgvPos);
+ setVal(tr.children("td").eq(6), table[i-1].rgvPos1);
setVal(tr.children("td").eq(7), table[i-1].walkPos);
- setVal(tr.children("td").eq(8), table[i-1].workNo2);
- setVal(tr.children("td").eq(9), table[i-1].status2);
- setVal(tr.children("td").eq(10), table[i-1].loading2);
- setVal(tr.children("td").eq(11), table[i-1].warnCode);
- setVal(tr.children("td").eq(12), table[i-1].alarm);
+ // setVal(tr.children("td").eq(8), table[i-1].workNo2);
+ // setVal(tr.children("td").eq(9), table[i-1].status2);
+ // setVal(tr.children("td").eq(10), table[i-1].loading2);
+ setVal(tr.children("td").eq(8), table[i-1].warnCode);
+ setVal(tr.children("td").eq(9), table[i-1].alarm);
}
} else if (res.code === 403){
window.location.href = baseUrl+"/login";
--
Gitblit v1.9.1