From f4645599f341a039673939fbe2699387ea5b48d2 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期三, 10 一月 2024 17:22:07 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/enums/RgvStatusType.java | 2
src/main/java/com/zy/core/thread/BarcodeThread.java | 2
src/main/java/com/zy/asrs/utils/RouteUtils.java | 77 ++++++
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 238 +++++++++++++++++++--
src/main/webapp/static/js/console.map.js | 42 +-
src/main/resources/mapper/WrkMastStaMapper.xml | 2
version/BarcodeThread2.java | 2
src/main/java/com/zy/core/thread/RgvThread.java | 29 +-
src/main/java/com/zy/asrs/controller/ConsoleController.java | 13
src/main/java/com/zy/asrs/entity/WrkMastSta.java | 2
src/main/java/com/zy/asrs/entity/BasRgvErrLog.java | 2
src/main/java/com/zy/core/model/protocol/RgvProtocol.java | 4
src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java | 2
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 76 +++++-
src/main/resources/application.yml | 153 +++++++++++--
src/main/java/com/zy/core/enums/RgvTaskModeType.java | 12
version/BarcodeThread1.java | 2
17 files changed, 533 insertions(+), 127 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index e80ae94..6d22e0a 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -28,14 +28,12 @@
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
+import com.zy.core.model.RgvSlave;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.properties.SystemProperties;
-import com.zy.core.thread.BarcodeThread;
-import com.zy.core.thread.MelsecCrnThread;
-import com.zy.core.thread.ScaleThread;
-import com.zy.core.thread.SiemensCrnThread;
+import com.zy.core.thread.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -102,6 +100,13 @@
stations.putAll(devpThread.getStation());
}
}
+
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ if (null != rgvThread) {
+// stations.putAll(rgvThread.getStation());
+ }
+ }
for (Map.Entry<Integer, StaProtocol> entry : stations.entrySet()) {
SiteLatestDataVo vo = new SiteLatestDataVo();
StaProtocol staProtocol = entry.getValue();
diff --git a/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java b/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
index 149170a..1d57f34 100644
--- a/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
+++ b/src/main/java/com/zy/asrs/entity/BasRgvErrLog.java
@@ -18,7 +18,7 @@
private static final long serialVersionUID = 1L;
@ApiModelProperty(value= "")
- @TableId(value = "id", type = IdType.INPUT)
+ @TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastSta.java b/src/main/java/com/zy/asrs/entity/WrkMastSta.java
index f3a2b96..ee2bcee 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastSta.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastSta.java
@@ -100,7 +100,7 @@
/**
* 宸ヤ綔绫诲瀷
*/
- @ApiModelProperty(value= "宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭斁 3锛氬彇鏀� 4锛氭媶鐩�")
+ @ApiModelProperty(value= "宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�")
@TableField("wrk_type")
private Integer wrkType;
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
index cf94005..7ece0f1 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
@@ -27,7 +27,7 @@
/*
* 鏌ヨ鎸囧畾宸ヤ綔鍙蜂换鍔�
* */
- WrkMastSta selectByWrkNo(@Param("workNo") Integer workNo);
+ WrkMastSta selectByWrkNo(@Param("workNo") Long workNo);
/*
* 鏌ヨ涓嶅共娑夌殑鍙墽琛屼换鍔�
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 f81702f..7c55bb3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -119,7 +119,7 @@
String barcode = barcodeThread.getBarcode();
if (!Cools.isEmpty(barcode)) {
- log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
continue;
}
@@ -322,7 +322,7 @@
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
// WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
- WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo());
if (wrkMast == null) {
// 鏃犳嫞鏂欐暟鎹�
continue;
@@ -449,7 +449,7 @@
// 涓嬪彂绔欑偣淇℃伅
staProtocol.setWorkNo(wrkMast.getWrkNo());
- staProtocol.setStaNo(wrkMast.getStaNo());
+ staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
continue;
}
@@ -1393,7 +1393,7 @@
CrnSlave.CrnStn crnStn = null;
for (CrnSlave.CrnStn crnStn1 : slave.getCrnInStn()){
- if(crnStn1.getStaNo() == wrkMast.getStaNo()){
+ if(crnStn1.getStaNo().equals(wrkMast.getStaNo())){
crnStn = crnStn1;
break;
} else {
@@ -1665,7 +1665,7 @@
CrnSlave.CrnStn crnStn = null;
for (CrnSlave.CrnStn crnStn1 : slave.getCrnOutStn()){
- if(crnStn1.getStaNo() == wrkMast.getSourceStaNo()){
+ if(crnStn1.getStaNo().equals(wrkMast.getSourceStaNo())){
crnStn = crnStn1;
break;
} else {
@@ -3838,11 +3838,12 @@
}
// 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
- if (rgvProtocol.getStatusType() == RgvStatusType.WAITING
+ if (rgvProtocol.getStatusType() == RgvStatusType.WORKING
&& rgvProtocol.getModeType() == RgvModeType.AUTO
+ && (rgvProtocol.getStatusType1()==RgvStatusType.WAITING || rgvProtocol.getStatusType2()==RgvStatusType.WAITING )
) {
log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
- if (rgvProtocol.getTaskNo1()!=0){
+ if (rgvProtocol.getTaskNo1()!=0&&rgvProtocol.getStatusType1()==RgvStatusType.WAITING){
if (rgvProtocol.getTaskNo1()==9999){
boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
if (!rgvComplete){
@@ -3853,7 +3854,7 @@
rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
break;
}
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().longValue());
if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=1 || wrkMastSta.getWrkSts()!=1){
log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
continue;
@@ -3868,7 +3869,7 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
- }else if (rgvProtocol.getTaskNo2()!=0){
+ }else if (rgvProtocol.getTaskNo2()!=0 && rgvProtocol.getStatusType2()==RgvStatusType.WAITING){
if (rgvProtocol.getTaskNo2()==9999){
boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
if (!rgvComplete){
@@ -3879,7 +3880,7 @@
rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
break;
}
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().intValue());
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo2().longValue());
if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getType()!=2){
log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
continue;
@@ -3966,7 +3967,7 @@
/**
* 鎵ц灏忚溅鎼繍浠诲姟
*/
- public synchronized void rgvRunWrkMastEmptyStaPut() {//鏀�
+ public synchronized void rgvRunWrkMastEmptyStaPut() {//鎷嗙洏
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -3983,7 +3984,7 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded2()==1 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+ && (rgvProtocol.getLoaded2()==3 || rgvProtocol.getLoaded2()==1 )////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛堝彧鑳芥媶鍙狅級 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛�3 1銆�2灞傞兘鏈夌墿
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
@@ -3994,12 +3995,12 @@
List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
for (WrkMastSta wrkMastSta : wrkMastStaList){
- if (wrkMastSta.getType()!=2 || (wrkMastSta.getWrkType()!=2 && wrkMastSta.getWrkType()!=4)){// 2:绌烘澘 2:鏀� 4锛氭媶鐩�
+ if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=2){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�
continue;
}
boolean sign = false;
if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//鏀�
- sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
+ sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鎷嗙洏
}else {
continue;
}
@@ -4029,7 +4030,73 @@
}
}
- public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙�
+ /**
+ * 鎵ц灏忚溅鎼繍浠诲姟
+ */
+ public synchronized void rgvRunWrkMastEmptyStaPutFull() {//婊℃斁
+ try{
+ for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
+ continue;
+ }
+
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
+ ) {
+ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+ if (basRgvMap == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+ continue;
+ }
+ basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());//鑾峰彇娲诲姩鑼冨洿
+ List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);//鏌ヨ鍙墽琛屼换鍔�
+ for (WrkMastSta wrkMastSta : wrkMastStaList){
+ if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=6){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�
+ continue;
+ }
+ boolean sign = false;
+ if (wrkMastSta.getStaStart()==0 && wrkMastSta.getStaEnd()!=0){//婊℃斁
+ sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
+ }else {
+ continue;
+ }
+ if (sign){
+ boolean signMap = rgvMapUpdate(basRgvMap, basRgvMap.getStartRoute(), wrkMastSta.getStaEnd());
+ if (signMap){
+ wrkMastSta.setWrkSts(2);
+ try{
+ wrkMastStaMapper.updateById(wrkMastSta);
+ }catch (Exception e){
+ log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+ }
+ return;
+ }else {
+ log.error("3857琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+ }
+ }else {
+ log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+ }
+ break;
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
+ log.error("3933琛�"+e);
+ }
+ }
+
+ public synchronized void rgvRunWrkMastEmptyStaTake() {//鍙犵洏
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -4046,7 +4113,7 @@
// 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
- && rgvProtocol.getLoaded2()==0 //鐜板満淇敼锛氬彔鐩樻満锛屼笉婊¢兘绠楁棤鐗╋紝鎬庝箞鍒ゆ柇闇�瑕佽窡鐢垫帶瀵规帴
+ && (rgvProtocol.getLoaded2()==0 || rgvProtocol.getLoaded2()==1 ) //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
) {
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
if (basRgvMap == null) {
@@ -4057,12 +4124,75 @@
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
for (WrkMastSta wrkMastSta : wrkMastStaList){
- if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘 1:鍙�
+ if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=1){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�
continue;
}
boolean sign = false;
if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
- sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);
+ sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//鍙犵洏
+ }else {
+ continue;
+ }
+ if (sign){
+ boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), basRgvMap.getStartRoute());
+ if (signMap){
+ wrkMastSta.setWrkSts(1);
+ try{
+ wrkMastStaMapper.updateById(wrkMastSta);
+ }catch (Exception e){
+ log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+ }
+ return;
+ }else {
+ log.error("3879琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
+ }
+ }else {
+ log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+ }
+ break;
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("3989琛屾墽琛屽皬杞﹀彇绌烘澘浠诲姟涓嬪彂澶辫触");
+ log.error("3989琛�"+e);
+ }
+ }
+
+ public synchronized void rgvRunWrkMastEmptyStaTakeFull() {//婊″彇
+ try{
+ for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
+ continue;
+ }
+
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾棤鐗�//rgv鍙敤
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && rgvProtocol.getLoaded2()==0 //鐜板満淇敼锛氬彔鐩樻満锛�////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
+ ) {
+ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+ if (basRgvMap == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
+ continue;
+ }
+ List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(), basRgvMap.getEndRoute());
+ basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+ List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
+ for (WrkMastSta wrkMastSta : wrkMastStaList){
+ if (wrkMastSta.getType()!=2 || wrkMastSta.getWrkType()!=5){// 2:绌烘澘 || 宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 5锛氭弧鍙� 6锛氭弧鏀�
+ continue;
+ }
+ boolean sign = false;
+ if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
+ sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
}else {
continue;
}
@@ -4174,14 +4304,16 @@
* */
public synchronized boolean rgvAvoidanceXY(Integer rgvId){
try{
+ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvId);
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
RgvCommand rgvCommand = new RgvCommand();
rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
rgvCommand.setAckFinish1((short) 0); // 宸ヤ綅1浠诲姟瀹屾垚纭浣�
rgvCommand.setTaskNo1((short)9999); // 宸ヤ綅1宸ヤ綔鍙�
- rgvCommand.setTaskMode1(RgvTaskModeType.GO_ORIGIN); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
+ rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
+ rgvCommand.setDestinationStaNo1(basRgvMap.getLockStartRoute().shortValue());
rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(9, rgvCommand))) {
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(9, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
return false;
@@ -4209,7 +4341,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;
@@ -4234,7 +4366,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;
@@ -4259,7 +4391,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;
@@ -4272,7 +4404,7 @@
}
/*
- * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟
+ * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 鍙犵洏
* */
public synchronized boolean rgvTakeEmpty(Integer rgvId,WrkMastSta wrkMastSta){
try{
@@ -4284,7 +4416,7 @@
rgvCommand.setTaskMode2(RgvTaskModeType.FETCH); // 宸ヤ綅2浠诲姟妯″紡: 鍙栬揣
rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣
rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
return false;
@@ -4297,7 +4429,7 @@
}
/*
- * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟
+ * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟 //鎷嗙洏
* */
public synchronized boolean rgvPutEmpty(Integer rgvId,WrkMastSta wrkMastSta){
try{
@@ -4309,7 +4441,57 @@
rgvCommand.setTaskMode2(RgvTaskModeType.PUT); // 宸ヤ綅2浠诲姟妯″紡: 鏀捐揣
rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣
rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
- if (!MessageQueue.offer(SlaveType.Crn, rgvId, new Task(5, rgvCommand))) {
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+ return false;
+ } else {
+ return true;
+ }
+ }catch (Exception e){
+ return false;
+ }
+ }
+
+ /*
+ * 灏忚溅鍙栫┖鏉胯嚦宸ヤ綅浠诲姟 婊″彇
+ * */
+ public synchronized boolean rgvTakeEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
+ try{
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ RgvCommand rgvCommand = new RgvCommand();
+ rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+ rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+ rgvCommand.setTaskMode2(RgvTaskModeType.FETCH_5); // 宸ヤ綅2浠诲姟妯″紡: 婊″彇
+ rgvCommand.setSourceStaNo2(wrkMastSta.getStaStart().shortValue()); //宸ヤ綅2璧风偣
+ rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
+ //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
+ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
+ return false;
+ } else {
+ return true;
+ }
+ }catch (Exception e){
+ return false;
+ }
+ }
+
+ /*
+ * 灏忚溅鏀剧┖鏉胯嚦杈撻�佺嚎浠诲姟 //婊℃斁
+ * */
+ public synchronized boolean rgvPutEmptyFull(Integer rgvId,WrkMastSta wrkMastSta){
+ try{
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ RgvCommand rgvCommand = new RgvCommand();
+ rgvCommand.setRgvNo(rgvId); // RGV缂栧彿
+ rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣�
+ rgvCommand.setTaskNo2(wrkMastSta.getWrkNo().shortValue()); // 宸ヤ綅2宸ヤ綔鍙�
+ rgvCommand.setTaskMode2(RgvTaskModeType.PUT_6); // 宸ヤ綅2浠诲姟妯″紡: 婊℃斁
+ rgvCommand.setDestinationStaNo2(wrkMastSta.getStaEnd().shortValue()); //宸ヤ綅2鐩爣绔欑偣
+ rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔�
log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand));
return false;
@@ -4359,7 +4541,7 @@
BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther);
List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute());
Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//鍙︿竴鍙板皬杞﹀彲娲诲姩鏈�杩滀綅缃�
- basRgvMapOther.setStartRoute(lockEndRoute);
+ basRgvMapOther.setEndRoute(lockEndRoute);
basRgvMapMapper.updateById(basRgvMapOther);
return true;
}catch (Exception e){
diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index 863b279..c8cbe52 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -29,11 +29,11 @@
// 姝e簭
public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE = new ArrayList<Integer>() {{
- add(101);add(102);add(104);add(105);add(107);add(118);add(108);add(119);add(110);add(120);add(111);add(121);add(113);add(114);add(116);add(117);
+ add(101);add(102);add(104);add(122);add(105);add(107);add(118);add(108);add(119);add(110);add(120);add(111);add(121);add(113);add(123);add(114);add(116);add(117);
}};
// 鍙嶅簭
public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE = new ArrayList<Integer>() {{
- add(117);add(116);add(114);add(113);add(121);add(111);add(120);add(110);add(119);add(108);add(118);add(107);add(105);add(104);add(102);add(101);
+ add(117);add(116);add(114);add(113);add(123);add(121);add(111);add(120);add(110);add(119);add(108);add(107);add(118);add(105);add(104);add(122);add(102);add(101);
}};
public static String zerofill(String msg, Integer count){
@@ -268,4 +268,77 @@
}
}
+ public static short RgvPosSta(Integer rgvId,Short posId){
+ switch (rgvId){
+ case 1:
+ return RgvPosStaOne(posId);
+ case 2:
+ return RgvPosStaTwo(posId);
+ default:
+ return 1;
+ }
+ }
+
+ public static short RgvPosStaOne(Short posId){
+ return 1;
+ }
+
+ public static short RgvPosStaTwo(Short posId){
+ switch (posId.intValue()){
+ case 1:
+ case 2:
+ return 116;
+ case 3:
+ case 4:
+ return 114;
+ case 5:
+ return 123;
+ case 6:
+ case 7:
+ case 8:
+ return 113;
+ case 9:
+ case 10:
+ return 121;
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ return 120;
+ case 15:
+ return 110;
+ case 16:
+ case 17:
+ case 18:
+ return 119;
+ case 19:
+ return 108;
+ case 20:
+ case 21:
+ case 22:
+ return 107;
+ case 23:
+ case 24:
+ return 105;
+ case 25:
+ return 104;
+ default:
+ return 0;
+ }
+ }
+
+ public static Integer CrnStaEnd(Integer endSta,Integer souSta) {
+ switch (souSta) {
+ case 100:
+ case 103:
+ case 106:
+ case 109:
+ case 112:
+ case 115:
+ return souSta + 1;
+ default:
+ return endSta;
+ }
+ }
+
}
diff --git a/src/main/java/com/zy/core/enums/RgvStatusType.java b/src/main/java/com/zy/core/enums/RgvStatusType.java
index 52a3179..ad2271a 100644
--- a/src/main/java/com/zy/core/enums/RgvStatusType.java
+++ b/src/main/java/com/zy/core/enums/RgvStatusType.java
@@ -10,6 +10,8 @@
PUTTING(12, "鏀捐揣涓�"),
WAITING(90, "浠诲姟瀹屾垚绛夊緟WCS纭"),
FETCHWAITING(91, "鍙栬揣浠诲姟瀹屾垚绛夊緟WCS纭"),
+ SOS99(99, "鎶ヨ99"),
+ SOS100(100, "鎶ヨ100")
;
public Integer id;
diff --git a/src/main/java/com/zy/core/enums/RgvTaskModeType.java b/src/main/java/com/zy/core/enums/RgvTaskModeType.java
index 290b43d..01c0649 100644
--- a/src/main/java/com/zy/core/enums/RgvTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/RgvTaskModeType.java
@@ -3,13 +3,13 @@
public enum RgvTaskModeType {
NONE(0), // 鏃�
- FETCH(1), // 鍙栬揣
- PUT(2), // 鏀捐揣
+ FETCH(1), // 鍙栬揣 锛堢┖鏉匡級鍗曞彇
+ PUT(2), // 鏀捐揣 锛堢┖鏉匡級鍗曟斁
FETCH_PUT(3), // 鍙栨斁璐�
-// X_MOVE(4), // 绔欎綅绉昏浆
-// Y_MOVE(5), // 绔欎綅绉昏浆
-// XY_MOVE(6), // 绔欎綅绉昏浆
- GO_ORIGIN(7), // 鍥炲師鐐�
+ X_MOVE(4), // 绔欎綅绉昏浆
+ FETCH_5(5), // 锛堢┖鏉匡級婊″彇
+ PUT_6(6), // 锛堢┖鏉匡級婊℃斁
+// GO_ORIGIN(7), // 鍥炲師鐐�
// BACK_ORIGIN(8), // 鍥炲弽鍘熺偣
// CLEAR(9), // 娓呴敊
;
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 aace472..63ba1c2 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -57,7 +57,7 @@
/**
* 宸ヤ綅1鏈夌墿
*/
- public Short loaded1;
+ public Short loaded1;//0 鏃犵墿锛�1 鏈夌墿
/**
* RGV褰撳墠浣嶇疆
@@ -94,7 +94,7 @@
/**
* 宸ヤ綅2鏈夌墿
*/
- public Short loaded2;
+ public Short loaded2; //0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗╋紙鍙兘鎷嗗彔锛� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
///////////////////////////////////////////////////////////////////////////////////////
/**
diff --git a/src/main/java/com/zy/core/thread/BarcodeThread.java b/src/main/java/com/zy/core/thread/BarcodeThread.java
index 00ffb2a..e261b2b 100644
--- a/src/main/java/com/zy/core/thread/BarcodeThread.java
+++ b/src/main/java/com/zy/core/thread/BarcodeThread.java
@@ -34,7 +34,7 @@
this.barcode.delete(0, this.barcode.length());
this.barcode.append(barcode);
if(!Cools.isEmpty(barcode)) {
- log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
+// log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
JSONObject jsonObject = new JSONObject();
jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
jsonObject.put("barcode", barcode);
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 94d8059..7f04510 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -11,6 +11,7 @@
import com.zy.asrs.entity.BasRgvOpt;
import com.zy.asrs.service.BasRgvOptService;
import com.zy.asrs.service.BasRgvService;
+import com.zy.asrs.utils.RouteUtils;
import com.zy.core.ThreadHandler;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
@@ -108,14 +109,14 @@
commandAvoidanceXY.setRgvNo(slave.getId()); // RGV缂栧彿
commandAvoidanceXY.setTaskNo1((short) 9999); // 宸ヤ綔鍙�
commandAvoidanceXY.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣�
- commandAvoidanceXY.setTaskMode1(RgvTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
+ commandAvoidanceXY.setTaskMode1(RgvTaskModeType.X_MOVE); // 浠诲姟妯″紡
commandAvoidanceXY.setSourceStaNo1((short)0); // 婧愮珯
- commandAvoidanceXY.setDestinationStaNo1((short)0); // 鐩爣绔�
+ commandAvoidanceXY.setDestinationStaNo1(slave.getId()==1? (short) 101:(short)117); // 鐩爣绔�
commandAvoidanceXY.setTaskNo2((short) 0); // 宸ヤ綔鍙�
commandAvoidanceXY.setAckFinish2((short) 1); // 浠诲姟瀹屾垚纭浣�
- commandAvoidanceXY.setTaskMode2(RgvTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
+ commandAvoidanceXY.setTaskMode2(RgvTaskModeType.X_MOVE); // 浠诲姟妯″紡
commandAvoidanceXY.setSourceStaNo2((short)0); // 婧愮珯
- commandAvoidanceXY.setDestinationStaNo2((short)0); // 鐩爣绔�
+ commandAvoidanceXY.setDestinationStaNo2(slave.getId()==1? (short) 101:(short)117); // 鐩爣绔�
commandAvoidanceXY.setCommand((short)0);
write(commandAvoidanceXY);
break;
@@ -178,7 +179,7 @@
*/
private void readStatus(){
try {
- OperateResultExOne<byte[]> result = siemensNet.Read("DB1.0", (short) 34);
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 34);
if (result.IsSuccess) {
if (null == rgvProtocol) {
rgvProtocol = new RgvProtocol();
@@ -189,7 +190,7 @@
rgvProtocol.setTaskNo1(siemensNet.getByteTransform().TransInt16(result.Content, 4));
rgvProtocol.setStatus1(siemensNet.getByteTransform().TransInt16(result.Content, 6));
rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransInt16(result.Content, 8));
- rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
+ rgvProtocol.setRgvPos(RouteUtils.RgvPosSta(slave.getId(),siemensNet.getByteTransform().TransInt16(result.Content, 10)));
rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
rgvProtocol.setTaskNo2(siemensNet.getByteTransform().TransInt16(result.Content, 14));
rgvProtocol.setStatus2(siemensNet.getByteTransform().TransInt16(result.Content, 16));
@@ -333,10 +334,10 @@
short[] array = new short[5];
array[0] = command.getAckFinish1();
array[1] = command.getTaskNo1();
- array[2] = command.getTaskMode1();
+ array[2] = command.getTaskMode1();//浠诲姟妯″紡
array[3] = command.getSourceStaNo1();
array[4] = command.getDestinationStaNo1();
- siemensNet.Write("DB100.20", command.getCommand());
+// siemensNet.Write("DB100.20", 0);
OperateResult result = siemensNet.Write("DB100.0", array);
@@ -390,12 +391,12 @@
command.setRgvNo(slave.getId());
short[] array = new short[6];
- array[0] = command.getAckFinish2();
- array[1] = command.getTaskNo2();
- array[2] = command.getTaskMode2();
- array[3] = command.getSourceStaNo2();
- array[4] = command.getDestinationStaNo2();
- array[5] = command.getCommand();
+ array[0] = command.getAckFinish2();//浠诲姟瀹屾垚纭浣�
+ array[1] = command.getTaskNo2();//浠诲姟鍙�
+ array[2] = command.getTaskMode2();//浠诲姟妯″紡
+ array[3] = command.getSourceStaNo2();//婧愮珯
+ array[4] = command.getDestinationStaNo2();//鐩爣绔�
+ array[5] = command.getCommand();//浠诲姟涓嬪彂纭
OperateResult result = siemensNet.Write("DB100.10", array);
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 7389f6f..f446c91 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -49,7 +49,7 @@
add(112);add(113);add(114);add(115);
add(116);add(117);add(118);add(119);
add(120);add(121);add(122);add(123);
- add(124);add(125);add(126);add(127);
+// add(124);add(125);add(126);add(127);
add(130);add(131);
add(132);add(133);add(134);add(135);
add(136);add(137);add(138);add(139);
@@ -65,7 +65,7 @@
add(212);
add(213);add(214);add(215);add(216);
add(217);add(218);add(219);add(220);
- add(221);add(222);
+ add(221);add(222);add(2000);
}};
/**
@@ -121,6 +121,10 @@
case 2:
write((StaProtocol)task.getData());
break;
+ // 鍐欐暟鎹� ID+鐩爣绔� 鐮佸灈瀹屾垚 缁欒緭閫佺嚎鍐欎换鍔″畬鎴�
+ case 3:
+ write3((StaProtocol)task.getData());
+ break;
default:
break;
}
@@ -173,7 +177,7 @@
}
staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙�
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8 + 4)); // 鐩爣绔�
+ staProtocol.setStaNo((int)siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔�
boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
staProtocol.setAutoing(status[0]); // 鑷姩
@@ -231,7 +235,7 @@
OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)(barcodeSize*10));
if (result2.IsSuccess) {
for (int i = 0; i < barcodeSize; i++) {
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,10, "UTF-8");
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,6, "UTF-8");
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
barcodeThread.setBarcode(barcode);
@@ -292,14 +296,63 @@
}
ArrayList<Integer> staNos = getStaNo();
int index = staNos.indexOf(staProtocol.getSiteId());
- int[] array = new int[2];
- array[0] = staProtocol.getWorkNo();
- array[1] = staProtocol.getStaNo();
- OperateResult write = siemensS7Net.Write("DB100." + index*8, array);
+// int[] array = new int[2];
+// array[0] = staProtocol.getWorkNo();
+// array[1] = staProtocol.getStaNo();
+// OperateResult write = siemensS7Net.Write("DB100." + index*8, array);
-// OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
-// Thread.sleep(500);
-// OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔�
+ OperateResult write = null;
+ OperateResult write1 = null;
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+ Thread.sleep(500);
+ write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 鐩爣绔�
+ if(write.IsSuccess || write1.IsSuccess){
+ writeCount=6;
+ }else {
+ writeCount++;
+ log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ }while (writeCount<5);
+
+ if (!write.IsSuccess || !write1.IsSuccess) {
+ staProtocol = station.get(staProtocol.getSiteId());
+ if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+ staProtocol.setPakMk(true);
+ }
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ } else {
+ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+ log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ }
+ }
+
+
+ /**
+ * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� 鐮佸灈瀹屾垚 缁欒緭閫佺嚎鍐欎换鍔″畬鎴�
+ */
+ private void write3(StaProtocol staProtocol) throws InterruptedException {
+ if (null == staProtocol) {
+ return;
+ }
+ ArrayList<Integer> staNos = getStaNo();
+ int index = staNos.indexOf(staProtocol.getSiteId());
+
+ OperateResult write = null;
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount = 0;
+ do {
+ write = siemensS7Net.Write("DB100." + index*6, (short)1); // 宸ヤ綔鍙�
+ if(write.IsSuccess){
+ writeCount=6;
+ }else {
+ writeCount++;
+ log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+ }
+ }while (writeCount<5);
if (!write.IsSuccess) {
staProtocol = station.get(staProtocol.getSiteId());
@@ -313,7 +366,6 @@
log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
}
}
-
// 鏇存柊鍏ュ嚭搴撴ā寮�
private void updateIoMode() throws InterruptedException {
if (this.ioModeOf2F != IoModeType.NONE) {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 8db6b40..477b377 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,7 +8,7 @@
name: @pom.build.finalName@
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://192.168.4.15:1433;databasename=srjtasrs
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=srjtasrs
username: sa
password: sa@123
mvc:
@@ -49,7 +49,7 @@
# 鍫嗗灈鏈�1
crn[0]:
id: 1
- ip: 192.168.4.250
+ ip: 192.168.18.13
port: 102
rack: 0
slot: 0
@@ -59,21 +59,35 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 007
+ staNo: 102
row: 3
bay: 1
lev: 1
# 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 201
+ row: 3
+ bay: 1
+ lev: 2
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 008
+ staNo: 100
row: 2
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 200
+ row: 2
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈�2
crn[1]:
id: 2
- ip: 192.168.4.250
+ ip: 192.168.18.21
port: 102
rack: 0
slot: 0
@@ -83,21 +97,35 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 005
+ staNo: 105
row: 7
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 203
+ row: 7
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 006
+ staNo: 103
+ row: 6
+ bay: 1
+ lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 202
row: 6
bay: 1
lev: 1
# 鍫嗗灈鏈�3
crn[2]:
id: 3
- ip: 192.168.4.250
+ ip: 192.168.18.29
port: 102
rack: 0
slot: 0
@@ -107,21 +135,35 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 003
+ staNo: 108
row: 11
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 205
+ row: 11
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 004
+ staNo: 106
row: 10
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 204
+ row: 10
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈�4
crn[3]:
id: 4
- ip: 192.168.4.250
+ ip: 192.168.18.37
port: 102
rack: 0
slot: 0
@@ -131,21 +173,35 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 001
+ staNo: 111
row: 15
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 207
+ row: 15
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 002
+ staNo: 109
row: 14
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 206
+ row: 14
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈�5
crn[4]:
id: 5
- ip: 192.168.4.250
+ ip: 192.168.18.45
port: 102
rack: 0
slot: 0
@@ -155,21 +211,35 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 001
- row: 15
+ staNo: 114
+ row: 19
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 209
+ row: 19
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 002
- row: 14
+ staNo: 112
+ row: 18
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 208
+ row: 18
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈�6
crn[5]:
id: 6
- ip: 192.168.4.250
+ ip: 192.168.18.53
port: 102
rack: 0
slot: 0
@@ -179,22 +249,36 @@
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 001
- row: 15
+ staNo: 117
+ row: 23
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 211
+ row: 23
+ bay: 1
+ lev: 2
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 002
- row: 14
+ staNo: 115
+ row: 22
bay: 1
lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 210
+ row: 22
+ bay: 1
+ lev: 2
# RGV绌挎杞�1
rgv[0]:
id: 1
- ip: 10.10.10.40
+ ip: 192.168.18.77
port: 502
rack: 0
slot: 0
@@ -222,7 +306,7 @@
# RGV绌挎杞�2
rgv[1]:
id: 2
- ip: 192.168.4.15
+ ip: 192.168.18.79
port: 502
rack: 0
slot: 0
@@ -251,7 +335,7 @@
# 杈撻�佺嚎
devp[0]:
id: 1
- ip: 192.168.4.250
+ ip: 192.168.18.71
port: 102
rack: 0
slot: 0
@@ -309,23 +393,30 @@
# 杈撻�佺嚎
devp[1]:
id: 2
- ip: 192.168.4.250
+ ip: 192.168.18.81
port: 102
rack: 0
slot: 0
# 鍏ュ簱鍙�1
inSta[0]:
- staNo: 15
+ staNo: 217
barcode: ${wcs-slave.barcode[0].id}
+ # 鍏ュ簱鍙�1
+ inSta[1]:
+ staNo: 221
+ barcode: ${wcs-slave.barcode[1].id}
# 绌烘澘鍏ュ簱鍙�1
emptyInSta[0]:
- staNo: 12
+ staNo: 212
# 鍑哄簱鍙�1
outSta[0]:
- staNo: 11
+ staNo: 212
+ # 鍑哄簱鍙�1
+ outSta[1]:
+ staNo: 213
# 鎷f枡鍏ュ簱鍙�1
pickSta[0]:
- staNo: 11
+ staNo: 212
barcode: ${wcs-slave.barcode[0].id}
# 鏉$爜鎵弿浠�
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index adfcb7a..6650f59 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -33,7 +33,7 @@
<select id="selectByWrkNo" resultMap="BaseResultMap">
select top 1 * from asr_wrk_mast_sta
where 1=1
- and wrk_no = #{wrkNo}
+ and wrk_no = #{workNo}
</select>
<select id="selectNoInterfere" resultMap="BaseResultMap">
diff --git a/src/main/webapp/static/js/console.map.js b/src/main/webapp/static/js/console.map.js
index ae62f51..9cbe55e 100644
--- a/src/main/webapp/static/js/console.map.js
+++ b/src/main/webapp/static/js/console.map.js
@@ -533,7 +533,7 @@
"type": "stn",
"id": "site-130",
"text": "130",
- "top": 380,
+ "top": 297,
"left": 266,
"width": 100,
"height": 20
@@ -541,15 +541,15 @@
"type": "stn",
"id": "site-131",
"text": "131",
- "top": 402,
+ "top": 319,
"left": 266,
"width": 100,
- "height": 20
+ "height": 34
}, {
"type": "stn",
"id": "site-132",
"text": "132",
- "top": 424,
+ "top": 355,
"left": 266,
"width": 100,
"height": 20
@@ -557,15 +557,15 @@
"type": "stn",
"id": "site-133",
"text": "133",
- "top": 446,
+ "top": 377,
"left": 266,
"width": 100,
- "height": 20
+ "height": 42
}, {
"type": "stn",
"id": "site-134",
"text": "134",
- "top": 468,
+ "top": 421,
"left": 266,
"width": 100,
"height": 20
@@ -573,26 +573,26 @@
"type": "stn",
"id": "site-135",
"text": "135",
- "top": 490,
+ "top": 443,
"left": 266,
"width": 100,
- "height": 20
+ "height": 34
}, {
"type": "stn",
"id": "site-136",
"text": "136",
- "top": 512,
+ "top": 479,
"left": 266,
"width": 100,
- "height": 20
+ "height": 39
}, {
"type": "stn",
"id": "site-137",
"text": "137",
- "top": 534,
+ "top": 520,
"left": 266,
"width": 100,
- "height": 20
+ "height": 34
}, {
"type": "stn",
"id": "site-138",
@@ -653,7 +653,7 @@
"type": "stn",
"id": "site-118",
"text": "118",
- "top": 380,
+ "top": 297,
"left": 368,
"width": 100,
"height": 20
@@ -661,7 +661,7 @@
"type": "stn",
"id": "site-119",
"text": "119",
- "top": 424,
+ "top": 355,
"left": 368,
"width": 100,
"height": 20
@@ -669,7 +669,7 @@
"type": "stn",
"id": "site-120",
"text": "120",
- "top": 468,
+ "top": 421,
"left": 368,
"width": 100,
"height": 20
@@ -677,7 +677,7 @@
"type": "stn",
"id": "site-121",
"text": "121",
- "top": 512,
+ "top": 479,
"left": 368,
"width": 100,
"height": 20
@@ -685,7 +685,7 @@
"type": "stn",
"id": "site-122",
"text": "122",
- "top": 534,
+ "top": 183,
"left": 368,
"width": 100,
"height": 20
@@ -710,7 +710,7 @@
"type": "stn",
"id": "site-130",
"text": "130",
- "top": 380,
+ "top": 297,
"left": 266,
"width": 100,
"height": 20
@@ -885,8 +885,8 @@
"height": 684
}, {
"type": "stn",
- "id": "site-3",
- "text": "3",
+ "id": "site-2000",
+ "text": "2000",
"top": 457,
"left": 469,
"width": 69,
diff --git a/version/BarcodeThread1.java b/version/BarcodeThread1.java
index 38ce936..04f585b 100644
--- a/version/BarcodeThread1.java
+++ b/version/BarcodeThread1.java
@@ -47,7 +47,7 @@
String s = new String(read);
if (!Cools.isEmpty(s)) {
barcode = new String(read);
- log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
+// log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
JSONObject jsonObject = new JSONObject();
jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
jsonObject.put("barcode", barcode);
diff --git a/version/BarcodeThread2.java b/version/BarcodeThread2.java
index 3f2fb52..5f97060 100644
--- a/version/BarcodeThread2.java
+++ b/version/BarcodeThread2.java
@@ -32,7 +32,7 @@
public void setBarcode(String barcode) {
this.barcode.delete(0, this.barcode.length());
this.barcode.append(barcode);
- log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
+// log.info("{}鍙锋潯鐮佸櫒锛屾绱㈡暟鎹細{}", slave.getId(), this.barcode);
JSONObject jsonObject = new JSONObject();
jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
jsonObject.put("barcode", barcode);
--
Gitblit v1.9.1