From fb74f60f1d8397acf5251ae289e80ab8a056857f Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期四, 09 十月 2025 09:08:05 +0800
Subject: [PATCH] #和得服务器
---
src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java | 9
src/main/java/com/zy/asrs/entity/BasRgv.java | 29 ++
src/main/java/com/zy/asrs/controller/RgvController.java | 8
src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java | 12 +
src/main/java/com/zy/asrs/utils/RouteUtils.java | 2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 307 +++++++++++++++++++-----------
src/main/webapp/views/rgv.html | 36 ++-
src/main/java/com/zy/asrs/service/BasRgvService.java | 1
src/main/java/com/zy/asrs/service/WrkMastStaService.java | 4
src/main/resources/mapper/WrkMastStaMapper.xml | 9
src/main/java/com/zy/core/thread/RgvThread.java | 57 ++++-
src/main/java/com/zy/core/MainProcess.java | 2
src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java | 4
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 100 +++++++--
src/main/resources/application.yml | 2
15 files changed, 407 insertions(+), 175 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 380b8ca..35ede00 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -98,6 +98,14 @@
vo.setRgvPos1(rgvProtocol.getRgvPosI2());
vo.setWalkPos(Objects.equals(rgvProtocol.getWalkPos(), 1) ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅");
vo.setPakMk(rgvThread.isPakMk() ? "鏃犻攣" : "閿佸畾");
+// vo.setPakIn(rgvThread.isPakIn() ? "鍙叆" : "涓嶅彲鍏�");
+// vo.setPakOut(rgvThread.isPakOut() ? "鍙嚭" : "涓嶅彲鍑�");
+// vo.setPakRgv(rgvThread.isPakRgv() ? "鏃犻攣" : "閿佸畾");
+ vo.setPaking(rgvThread.isPaking()? "鏃犻攣" : "閿佸畾");
+// vo.setPakAll(rgvThread.isPakAll() ? "鏃犻攣" : "閿佸畾");
+// vo.setPakToCrn(rgvThread.isPakToCrn() ? "鏃犻攣" : "閿佸畾");
+
+
vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 宸ヤ綅2浠诲姟鍙�
// vo.setStatus2(rgvProtocol.getStatusType2().desc); // 宸ヤ綅2鐘舵��
vo.setLoading2(rgvProtocol.getLoaded2() ? "鏈夌墿" : "鏃犵墿"); // 宸ヤ綅2鏈夌墿
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 020f874..2d9ba0f 100644
--- a/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/RgvStateTableVo.java
@@ -49,5 +49,17 @@
private Integer RgvPos1 = 0;
private String pakMk="-";
+ private String pakIn="-";
+
+ private String pakOut="-";
+
+ private String pakRgv="-";
+
+ private String pakToCrn="-";
+
+ private String paking="-";
+
+ private String pakAll="-";
+
}
diff --git a/src/main/java/com/zy/asrs/entity/BasRgv.java b/src/main/java/com/zy/asrs/entity/BasRgv.java
index 6cbfd58..499ec7f 100644
--- a/src/main/java/com/zy/asrs/entity/BasRgv.java
+++ b/src/main/java/com/zy/asrs/entity/BasRgv.java
@@ -118,9 +118,30 @@
@ApiModelProperty(value= "澶囨敞")
private String memo;
+
+ @ApiModelProperty(value = "鍏ュ簱鏍囪(1=鍚敤,0=绂佺敤)")
+ private String pakIn;
+
+ @ApiModelProperty(value = "鍑哄簱鏍囪(1=鍚敤,0=绂佺敤)")
+ private String pakOut;
+
+ @ApiModelProperty(value = "璺濈璺宠繃鍙栬揣鏍囪(1=鍚敤,0=绂佺敤)")
+ private String pakRgv;
+
+ @ApiModelProperty(value = "鎺ラ┏鏍囪(1=鍚敤,0=绂佺敤)")
+ private String pakToCrn;
+
+ @ApiModelProperty(value = "鎺ラ┏鏍囪(1=鍚敤,0=绂佺敤)")
+ private String paking;
+
+ @ApiModelProperty(value = "鎺ラ┏鏍囪(1=鍚敤,0=绂佺敤)")
+ private String pakAll;
+
+
public BasRgv() {}
- public BasRgv(Integer rgvNo, String inEnable, String outEnable, Integer rgvSts, Integer wrkNo1, Integer wrkNo2, Long rgvErr, String pakMk, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
+ public BasRgv(Integer rgvNo, String inEnable, String outEnable, Integer rgvSts, Integer wrkNo1, Integer wrkNo2, Long rgvErr, String pakMk, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo,
+ String pakIn, String pakOut,String pakRgv,String pakToCrn,String paking,String pakAll) {
this.rgvNo = rgvNo;
this.inEnable = inEnable;
this.outEnable = outEnable;
@@ -135,6 +156,12 @@
this.updateBy = updateBy;
this.updateTime = updateTime;
this.memo = memo;
+ this.pakIn = pakIn;
+ this.pakOut = pakOut;
+ this.pakRgv = pakRgv;
+ this.pakToCrn = pakToCrn;
+ this.paking = paking;
+ this.pakAll = pakAll;
}
// BasRgv basRgv = new BasRgv(
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
index 8fcaed7..035f082 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
@@ -40,5 +40,7 @@
List<WrkMastSta> selectByWorkStaList(@Param("workSta") Integer workSta, @Param("rgvNo") Short rgvNo);
WrkMastSta selectByWorkSta(@Param("workSta") Integer workSta, @Param("rgvNo") Integer rgvNo);
- List<WrkMastSta> selectLockWrk(@Param("rgvNo") Integer rgvNo);
+ List<WrkMastSta> selectLockWrk();
+ List<WrkMastSta> selectLockWrkT();
+
}
diff --git a/src/main/java/com/zy/asrs/service/BasRgvService.java b/src/main/java/com/zy/asrs/service/BasRgvService.java
index 29dac13..69e0167 100644
--- a/src/main/java/com/zy/asrs/service/BasRgvService.java
+++ b/src/main/java/com/zy/asrs/service/BasRgvService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.service.IService;
import com.zy.asrs.entity.BasRgv;
+import com.zy.common.utils.RedisUtil;
public interface BasRgvService extends IService<BasRgv> {
diff --git a/src/main/java/com/zy/asrs/service/WrkMastStaService.java b/src/main/java/com/zy/asrs/service/WrkMastStaService.java
index cd5e055..7d643f6 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastStaService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastStaService.java
@@ -6,5 +6,7 @@
import java.util.List;
public interface WrkMastStaService extends IService<WrkMastSta> {
- List<WrkMastSta> selectLockWrk(Integer rgvNo);
+ List<WrkMastSta> selectLockWrk();
+ List<WrkMastSta> selectLockWrkT();
+
}
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 3192f64..d770187 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
+import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.ArmOrderAssignmentParam;
@@ -197,7 +198,9 @@
wrkNo++;
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
+ staProtocol.setPakMk(false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ System.out.println(staProtocol);
log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
}
@@ -244,6 +247,11 @@
int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo()));
if (wrkNo1 != 0){
News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+ StaProtocol staProtocolNew = new StaProtocol();
+ staProtocolNew.setWorkNo(wrkNo1);
+ staProtocolNew.setStaNo(RouteUtils.SouStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
+ staProtocolNew.setSiteId(staProtocol.getSiteId());
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew));
if (ledThread != null) {
News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�="+ wrkMast.getWrkNo()));
@@ -1351,7 +1359,7 @@
// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
// && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
- if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+ if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && !staProtocol.isLoading()
) {
// if (slave.getId() == 1 || slave.getId() == 2){
// if (staProtocol.isLoading() || staProtocol.getWorkNo() != 0 || !staProtocol.isOutEnable()){
@@ -3053,18 +3061,21 @@
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
continue;
}
+ if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
+ rgvThread.setPaking(true);
+ }
//灏忚溅鏃犱换鍔℃椂璺宠繃
if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){
continue;
}
if(!rgvThread.isPaking()){
continue;
+
}
- List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(rgv.getId());
- if(wrkMastStaLock.size() == 1){
+ if(!basRgv.getPakAll().equals("1")){
continue;
}
- if(rgvThread.isPakIn()){
+ if(basRgv.getPakIn().equals("1")){
for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣
boolean flag = false;
@@ -3121,9 +3132,11 @@
}
}
+ basRgv.setPakRgv("1");
+ basRgvService.updateById(basRgv);
}
//鍑哄簱鏀捐揣
- if( rgvThread.isPakOut()){
+ if( basRgv.getPakOut().equals("1")){
for(RgvSlave.RgvStn rgvStn : rgv.getRgvOutPStn()){//鍏ュ簱鏀捐揣绔欑偣
boolean flag = false;
@@ -3155,7 +3168,7 @@
BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
Integer workNo = 0;
- if(rgvThread.isPakToCrn()){
+ if(basRgv.getPakToCrn().equals("1")){
workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2(); //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀�
}else{
workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2():rgvProtocol.getTaskNo1(); //鎺ラ┏鎯呭喌浼樺厛宸ヤ綅2鏀�
@@ -3183,8 +3196,9 @@
}
}
+ basRgv.setPakRgv("1");
+ basRgvService.updateById(basRgv);
}
- rgvThread.setPakRgv(true);//浼樺厛鏀捐揣瀹屾垚锛屽紑鍚璋冨害
}
}
/**
@@ -3196,6 +3210,11 @@
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgv.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
continue;
}
Long taskNo1 = Long.valueOf(rgvProtocol.getTaskNo1());
@@ -3221,11 +3240,22 @@
&& rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
&& !rgvProtocol.isLoaded1ing()
&& !rgvProtocol.isLoaded2ing()){
- rgvThread.setPakRgv(true);
+ List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk();
+ List<WrkMastSta> wrkMastStaLockT = wrkMastStaService.selectLockWrkT();
+
+ if(wrkMastStaLock.size() > 0 && rgvProtocol.getRgvNo() == 1){
+ continue ;
+ }
+ if(wrkMastStaLockT.size() > 0 && rgvProtocol.getRgvNo() == 2){
+ continue ;
+ }
+ basRgv.setPakRgv("1");
+ basRgv.setPakToCrn("1");
+ basRgv.setPakIn("1");
+ basRgv.setPakOut("1");
+ basRgv.setPakAll("1");
+ basRgvService.updateById(basRgv);
rgvThread.setPakMk(true);
- rgvThread.setPakIn(true);
- rgvThread.setPakOut(true);
- rgvThread.setPakToCrn(true);
}
}
@@ -3243,39 +3273,53 @@
if (rgvProtocol == null) {
continue;
}
+
BasRgv basRgv = basRgvService.selectById(rgv.getId());
if (basRgv == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId());
continue;
}
if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){
-// log.error("瑙i攣");
rgvThread.setPaking(true);
}
+ if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){
+ basRgv.setPakAll("1");
+ basRgvService.updateById(basRgv);
+ }
// 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn() && rgvThread.isPaking()) {
+ if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE &&
+ rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk()
+ && basRgv.getPakToCrn().equals("1") && rgvThread.isPaking()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�");
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
// rgvRunWrkMastInTest();
if (rgvProtocol.getLastIo().equals("I")) {
- if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) {
+ if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) {
//mark - 1 - ....
- this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
+ if (rgvProtocol.getTaskNo1()==0){
+ this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
+ }
rgvProtocol.setLastIo("O");
- } else if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) {
+ } else if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) {
//mark - 2 - ....
- this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱
+ if (rgvProtocol.getTaskNo2()==0){
+ this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱
+ }
rgvProtocol.setLastIo("I");
}
}
// 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
else if (rgvProtocol.getLastIo().equals("O")) {
- if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) {
- this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱
+ if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) {
+ if (rgvProtocol.getTaskNo2()==0){
+ this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱
+ }
rgvProtocol.setLastIo("I");
- } else if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) {
- this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
+ } else if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) {
+ if (rgvProtocol.getTaskNo1()==0){
+ this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱
+ }
rgvProtocol.setLastIo("O");
}
}
@@ -3285,9 +3329,9 @@
if(wrkMastSta1 != null && wrkMastSta2 != null){
rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹�
}
- if(!rgvThread.isPakToCrn()){
- rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
- }
+// if(!rgvThread.isPakToCrn()){
+// rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟
+// }
// if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){
// rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣
// }
@@ -3344,6 +3388,11 @@
public synchronized void rgvRunWrkMastIn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark) {
for (RgvSlave.RgvStn rgvStn : slave.getRgvInTStn()) {//rgv鍏ュ簱鍙栬揣绔欑偣
boolean flag = false;
+ BasRgv basRgv = basRgvService.selectById(slave.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId());
+ continue;
+ }
//閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
@@ -3409,7 +3458,10 @@
result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
}
if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
- rgvThread.setPakRgv(false);
+ basRgv.setPakRgv("0");
+ basRgvService.updateById(basRgv);
+
+// rgvThread.setPakRgv(false);
continue;
}
wrkMastSta.setWorkSta(wrkMastSta2 !=null ? 1 : 2);
@@ -3419,6 +3471,9 @@
if (sign){
if(wrkMastSta3 != null){
wrkMastSta3.setMk(1);
+ basRgv.setPakAll("0");
+ basRgvService.updateById(basRgv);
+
try{
wrkMastStaMapper.updateById(wrkMastSta3);
log.error("閿佸畾鐩搁殧绔欑偣浠诲姟");
@@ -3427,8 +3482,12 @@
}
}
+ basRgv.setPakOut("0");
+ basRgvService.updateById(basRgv);
rgvThread.setPaking(false);
- rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
+// rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁�
+// basRgvService.updateById(basRgv);
+
try{
wrkMastSta.setWrkSts(1);
wrkMastStaMapper.updateById(wrkMastSta);
@@ -3453,6 +3512,11 @@
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+ BasRgv basRgv = basRgvService.selectById(slave.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId());
+ continue;
+ }
StaProtocol staProtocol2 = null;
WrkMastSta wrkMastSta3 = null;
@@ -3515,7 +3579,10 @@
result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
}
if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
- rgvThread.setPakRgv(false);
+ basRgv.setPakRgv("0");
+ basRgvService.updateById(basRgv);
+
+// rgvThread.setPakRgv(false);
continue;
}
wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
@@ -3524,7 +3591,10 @@
sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
if (sign){
if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){
- rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
+ basRgv.setPakToCrn("0");
+ basRgvService.updateById(basRgv);
+
+// rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔�
}
if(wrkMastSta3 != null){
wrkMastSta3.setMk(1);
@@ -3536,8 +3606,11 @@
}
}
+ basRgv.setPakIn("0");
+ basRgvService.updateById(basRgv);
+
rgvThread.setPaking(false);
- rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
+// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
try{
wrkMastSta.setWrkSts(1);
wrkMastStaMapper.updateById(wrkMastSta);
@@ -3556,94 +3629,94 @@
/**
* 灏忚溅鍑哄簱鎺ラ┏浠诲姟鍙栬揣涓嬪彂
*/
- public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){
- for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣
- boolean flag = false;
- //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
- RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
- StaProtocol staProtocol2 = null;
- if(rgvStn.getStaNo2()!= null ){
- staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
- if (staProtocol2 == null) {
- News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
- continue;
- } else {
- staProtocol2 = staProtocol2.clone();
- }
- BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
- if (staDetl2 == null) {
- News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
- continue;
- }
- }
- if (staProtocol == null) {
- News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
- continue;
- } else {
- staProtocol = staProtocol.clone();
- }
-
- // 鏌ヨ绔欑偣璇︾粏淇℃伅
- BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
- if (staDetl == null) {
- News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
- continue;
- }
-
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
- && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
- flag = true;
- }
- if (!flag) {
- News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
- + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
- + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable()
- + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting());
- continue;
- }
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
- List<Integer> route = new ArrayList<>();
- switch (rgvProtocol.getRgvNo()){
- case 1: route = RouteUtils.getRouteOne();break;
- case 2: route = RouteUtils.getRouteTwo();break;
- }
- basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
- if( null == wrkMastSta ) {
- News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
- continue;
- }
- WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
- boolean result = false;
- if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
- result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
- }
- if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
- rgvThread.setPakRgv(false);
- continue;
- }
- wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
- wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
- boolean sign = false;
- sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
- if (sign){
- rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
- try{
- wrkMastSta.setWrkSts(1);
- wrkMastStaMapper.updateById(wrkMastSta);
- log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
- }catch (Exception e){
- log.error("鏇存柊灏忚溅浠诲姟澶辫触");
- }
- } else {
- log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
- }
-
-
- }
- }
+// public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){
+// for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣
+// boolean flag = false;
+// //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId());
+// StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo());
+// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo());
+// StaProtocol staProtocol2 = null;
+// if(rgvStn.getStaNo2()!= null ){
+// staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2());
+// if (staProtocol2 == null) {
+// News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+// continue;
+// } else {
+// staProtocol2 = staProtocol2.clone();
+// }
+// BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2());
+// if (staDetl2 == null) {
+// News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+// continue;
+// }
+// }
+// if (staProtocol == null) {
+// News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+//
+// // 鏌ヨ绔欑偣璇︾粏淇℃伅
+// BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo());
+// if (staDetl == null) {
+// News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo());
+// continue;
+// }
+//
+// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0
+// && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+// flag = true;
+// }
+// if (!flag) {
+// News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):"
+// + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
+// + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable()
+// + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting());
+// continue;
+// }
+// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+// List<Integer> route = new ArrayList<>();
+// switch (rgvProtocol.getRgvNo()){
+// case 1: route = RouteUtils.getRouteOne();break;
+// case 2: route = RouteUtils.getRouteTwo();break;
+// }
+// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙�
+// WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。
+// if( null == wrkMastSta ) {
+// News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+// continue;
+// }
+// WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1());
+// boolean result = false;
+// if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠�
+// result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣
+// }
+// if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣
+// rgvThread.setPakRgv(false);
+// continue;
+// }
+// wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣�
+// wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo());
+// boolean sign = false;
+// sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
+// if (sign){
+// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁�
+// try{
+// wrkMastSta.setWrkSts(1);
+// wrkMastStaMapper.updateById(wrkMastSta);
+// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛");
+// }catch (Exception e){
+// log.error("鏇存柊灏忚溅浠诲姟澶辫触");
+// }
+// } else {
+// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo());
+// }
+//
+//
+// }
+// }
/**
* 鎵ц灏忚溅鎼繍浠诲姟
*
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
index 32717ff..4c0ffab 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
@@ -11,8 +11,11 @@
@Service("wrkMastStaService")
public class WrkMastStaServiceImpl extends ServiceImpl<WrkMastStaMapper, WrkMastSta> implements WrkMastStaService {
@Override
- public List<WrkMastSta> selectLockWrk(Integer rgvNo){
- Integer rgvNo1 = rgvNo;
- return this.baseMapper.selectLockWrk(rgvNo);
+ public List<WrkMastSta> selectLockWrk(){
+ return this.baseMapper.selectLockWrk();
+ }
+ @Override
+ public List<WrkMastSta> selectLockWrkT(){
+ return this.baseMapper.selectLockWrkT();
}
}
diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index aa3e001..a472b6e 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -50,7 +50,7 @@
//1妤兼垬绔欑偣
public static final List<Integer> TRACK_POSITION_ONE = Arrays.asList(
1004, 1007, 1010, 1014, 1018, 1021, 1024, 1028, 1031, 1035,1042,1105,1106,1041,
- 1038,1036
+ 1038,1036,1108,1109
);
//2妤兼垬绔欑偣
public static final List<Integer> TRACK_POSITION_TWO = Arrays.asList(
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 85c5b9f..1502c9b 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -132,7 +132,7 @@
try{
//RGV灏忚溅鍑哄叆搴撳彇璐т笅鍙�
mainService.rgvIoExecute(11);
- if(k > 2){
+ if(k > 3){
mainService.rgvOutExecute();
k = 0;
}
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index c41d911..988a264 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -5,6 +5,7 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
@@ -35,6 +36,7 @@
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import java.sql.Wrapper;
import java.text.MessageFormat;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -64,15 +66,17 @@
//閿佸畾鏍囪
private boolean PakMk = true;
//鍏ュ簱鏍囪
- private boolean PakIn = true;
- //鍑哄簱鏍囪
- private boolean PakOut = true;
- //鏍规嵁璺濈璺宠繃鍙栬揣
- private boolean PakRgv = true;
- //鎺ラ┏鏍囪
- private boolean PakToCrn = true;
+// private boolean PakIn = true;
+// //鍑哄簱鏍囪
+// private boolean PakOut = true;
+// //鏍规嵁璺濈璺宠繃鍙栬揣
+// private boolean PakRgv = true;
+// //鎺ラ┏鏍囪
+// private boolean PakToCrn = true;
// 浠诲姟閿佸畾
- private boolean Paking = true;
+ private boolean Paking = true;
+// //杩炵画浠诲姟涓嬪彂
+// private boolean PakAll = true;
public RgvThread(RgvSlave slave) {
this.slave = slave;
@@ -234,6 +238,40 @@
buffer[byteIndex] &= ~(1 << bitIndex); // 娓呴浂
}
}
+ private void updateFlagInDb(String field, boolean value) {
+ try {
+ BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class);
+
+ EntityWrapper<BasRgv> wrapper = new EntityWrapper<>();
+ wrapper.eq("rgv_no", slave.getId());
+
+ BasRgv entity = new BasRgv();
+ switch (field) {
+ case "pak_mk": entity.setPakMk(value ? "1" : "0"); break;
+ case "pak_in": entity.setPakIn(value ? "1" : "0"); break;
+ case "pak_out": entity.setPakOut(value ? "1" : "0"); break;
+ case "pak_rgv": entity.setPakRgv(value ? "1" : "0"); break;
+ case "pak_to_crn":entity.setPakToCrn(value ? "1" : "0"); break;
+ case "paking":entity.setPaking(value ? "1" : "0"); break;
+ case "pak_all":entity.setPakAll(value ? "1" : "0"); break;
+ default:
+ log.warn("鏈煡鏍囧織浣嶅瓧娈�: {}", field);
+ return;
+ }
+
+ basRgvService.update(entity, wrapper);
+// log.info("RGV鏍囧織浣嶆洿鏂版垚鍔� [rgv_no:{}] {}={}", slave.getId(), field, value ? "1" : "0");
+
+ } catch (Exception e) {
+ log.error("鏇存柊RGV鏍囧織浣嶅紓甯� [rgv_no:{}] {}={} 閿欒锛歿}", slave.getId(), field, value, e.getMessage());
+ }
+ }
+
+
+ public void setPakMk(boolean pakMk) {
+ this.PakMk = pakMk;
+ updateFlagInDb("pak_mk", pakMk);
+ }
/**
* 璇诲彇鐘舵��
@@ -274,8 +312,7 @@
rgvProtocol.setErr10(status3[1]);
rgvProtocol.setErr11(status3[2]);
rgvProtocol.setErr12(status3[3]);
- BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class);
-
+// BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class);
OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
try {
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index f146152..8a804a7 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -107,7 +107,17 @@
put(1101, 2508);put(1102, 2600);put(1103, 2692);put(1104, 2784);put(1105, 2876);
put(1106, 2968);put(1107, 3060);put(1108, 3152);put(1109, 3244);put(1110, 3336);
+ put(2001, 392);put(2002, 116);put(2003, 208);put(2004, 0);put(2005, 300);
+ put(2006, 508);put(2007, 692);put(2008, 600);put(2009, 808);put(2010, 992);
+ put(2011, 900);put(2012, 1108);put(2013, 1500);put(2014, 1292);put(2015, 1200);
+ put(2016, 1384);put(2017, 1616);put(2018, 1708);put(2019, 1800);put(2020, 1916);
+ put(2021, 2008);put(2022, 2100);put(2023, 2216);put(2024, 2308);put(2025, 2400);
+ put(2026, 2516);put(2027, 2608);put(2028, 2792);put(2029, 2700);put(2030, 2908);
+ put(2031, 464);put(2032, 348);put(2033, 556);put(2034, 92);put(2035, 0);
+ put(2037, 256);
+ put(4001, 0);put(4002, 116);put(4003, 508);put(4004, 392);put(4005, 300);
+ put(4006, 208);
// 鍏朵粬绔欑偣鍚岀悊缁х画鍔�
}};
@@ -118,11 +128,11 @@
// 鐗规畩绔欑偣闆嗗悎
private static final Set<Integer> specialSites = new HashSet<>(
- Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039));
+ Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039,2004,2001,2007,2010,2016,2013,2019,2022,2025,2030,4001,4004));
// 鐗规畩绔欑偣闆嗗悎
private static final Set<Integer> specialSites2 = new HashSet<>(
- Arrays.asList(1051,1055,1057,1065,1067,1069,1077,1081,1083,1086,1089,1092,1095,1097,1100));
+ Arrays.asList(1051,1055,1057,1065,1067,1069,1077,1081,1083,1086,1089,1092,1095,1097,1100,2034));
private static final Set<Integer> specialSites3 = new HashSet<>(//鏈烘鑷傜珯鐐�
Arrays.asList(1098,1093,1087,1082,1074,1071,1061,1058));
@@ -250,7 +260,7 @@
staProtocol.setEmptyMk(false); // 绌烘澘淇″彿
staProtocol.setStaNo((short) 0); // 鐩爣绔�
- if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+ if (!staProtocol.isPakMk() && staProtocol.isLoading()) {
staProtocol.setPakMk(true);
}
}
@@ -287,12 +297,25 @@
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
OperateResultExOne<byte[]> result = null;
- OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037
- OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB104.0", (short) (1268));//1042-1053
- OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079
- OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110
- OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB3.0", (short) (536));//1080-1110
+ OperateResultExOne<byte[]> result1 = null;
+ OperateResultExOne<byte[]> result2 = null;//1029-1037
+ OperateResultExOne<byte[]> result3 = null;//1042-1053
+ OperateResultExOne<byte[]> result4 = null;//1054-1079
+ OperateResultExOne<byte[]> result5 = null;//1080-1110
+ OperateResultExOne<byte[]> resultErr = null;//1080-1110
+ if(staNoSize == 99){
+ result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028
+ result2 = siemensS7Net.Read("DB101.0", (short) (1268));//1029-1037
+ result3 = siemensS7Net.Read("DB104.0", (short) (1268));//1042-1053
+ result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079
+ result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110
+ resultErr = siemensS7Net.Read("DB3.0", (short) (536));//1080-1110
+ }else{
+ result1 = siemensS7Net.Read("DB200.0", (short) (3000));//2001-2030
+ result2 = siemensS7Net.Read("DB201.0", (short) (720));//2031-2037
+ result3 = siemensS7Net.Read("DB400.0", (short) (600));//4001-4006
+ }
+
@@ -305,16 +328,26 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- if(siteId < 1029){
- result = result1;
- }else if(siteId < 1042){
- result = result2;
- }else if(siteId < 1054){
- result = result3;
- }else if(siteId < 1080){
- result = result4;
- }else if(siteId < 1111){
- result = result5;
+ if (staNoSize == 99) {
+ if (siteId < 1029) {
+ result = result1;
+ } else if (siteId < 1042) {
+ result = result2;
+ } else if (siteId < 1054) {
+ result = result3;
+ } else if (siteId < 1080) {
+ result = result4;
+ } else if (siteId < 1111) {
+ result = result5;
+ }
+ }else{
+ if (siteId < 2031) {
+ result = result1;
+ } else if (siteId < 4001) {
+ result = result2;
+ } else {
+ result = result3;
+ }
}
// 鑾峰彇璇ョ珯鐐瑰搴旂殑鍋忕Щ閲�
Integer offset = siteOffsetMap.get(siteId);
@@ -367,7 +400,7 @@
// staProtocol.setHigh(status[6]); // 楂樺簱浣�
// staProtocol.setLow(status[7]); // 浣庡簱浣�
- if (!staProtocol.isPakMk() && (!staProtocol.isLoading() || !staProtocol.isInEnable())) {
+ if (!staProtocol.isPakMk() && (!staProtocol.isLoading() || staProtocol.getWorkNo()==0)) {
staProtocol.setPakMk(true);
}
}
@@ -490,7 +523,32 @@
write1 = siemensS7Net.Write("DB102." + (offset + offset2 + 48), staProtocol.getStaNo().intValue()); // 鐩爣绔�
}else{
write1 = siemensS7Net.Write("DB102." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔�
- } }
+ }
+ }else if(siteId < 2031){
+ write = siemensS7Net.Write("DB200." + (offset + offset2), staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+ Thread.sleep(200);
+ if(specialSites2.contains(siteId)){
+ write1 = siemensS7Net.Write("DB200." + (offset + offset2 + 48), staProtocol.getStaNo().intValue()); // 鐩爣绔�
+ }else{
+ write1 = siemensS7Net.Write("DB200." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔�
+ }
+ }else if(siteId < 4000){
+ write = siemensS7Net.Write("DB201." + (offset + offset2), staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+ Thread.sleep(200);
+ if(specialSites2.contains(siteId)){
+ write1 = siemensS7Net.Write("DB201." + (offset + offset2 + 48), staProtocol.getStaNo().intValue()); // 鐩爣绔�
+ }else{
+ write1 = siemensS7Net.Write("DB201." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔�
+ }
+ }else{
+ write = siemensS7Net.Write("DB400." + (offset + offset2), staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+ Thread.sleep(200);
+ if(specialSites2.contains(siteId)){
+ write1 = siemensS7Net.Write("DB400." + (offset + offset2 + 48), staProtocol.getStaNo().intValue()); // 鐩爣绔�
+ }else{
+ write1 = siemensS7Net.Write("DB400." + (offset + offset2 + 12), staProtocol.getStaNo().intValue()); // 鐩爣绔�
+ }
+ }
if(write.IsSuccess && write1.IsSuccess){
log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
break;
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 51ba1fa..a53a9ec 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -477,7 +477,7 @@
# 杈撻�佺嚎1
devp[1]:
id: 2
- ip: 10.10.10.50
+ ip: 10.10.10.61
port: 102
rack: 0
slot: 0
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index 81852a1..749f852 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -153,8 +153,13 @@
</select>
<select id="selectLockWrk" resultMap="BaseResultMap">
select * from asr_wrk_mast_sta
- where mk = 1
- and rgv_no = #{rgvNo}
+ where wrk_sts > 0
+ and sta_end < 2000
+ </select>
+ <select id="selectLockWrkT" resultMap="BaseResultMap">
+ select * from asr_wrk_mast_sta
+ where wrk_sts > 0
+ and sta_end > 2000
</select>
diff --git a/src/main/webapp/views/rgv.html b/src/main/webapp/views/rgv.html
index a36ad90..1fad76a 100644
--- a/src/main/webapp/views/rgv.html
+++ b/src/main/webapp/views/rgv.html
@@ -91,18 +91,19 @@
<tr>
<th>RGV</th>
<th>褰撳墠妯″紡</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>璧拌瀹氫綅</th>-->
<th>鏁呴殰浠g爜</th>
<th>鏁呴殰鎻忚堪</th>
- <th>閿佸畾鐘舵��</th>
+ <th>鍏ュ簱鏍囪</th>
+ <th>鍑哄簱鏍囪</th>
+ <th>浼樺厛鏀捐揣</th>
+<!-- <th>鎺ラ┏鏍囪</th>-->
+ <th>杩炵画鍙栬揣</th>
</tr>
</thead>
<tbody>
@@ -326,7 +327,7 @@
headers: {'token': localStorage.getItem('token')},
method: 'POST',
success: function (res) {
- // console.log(res)
+ // console.log(res);
if (res.code === 200){
var table = res.data;
if (table.length > rgvStateTableBlankRows && table.length !== rgvStateTableFullRows) {
@@ -337,18 +338,21 @@
var tr = tableEl.find("tr").eq(i);
setVal(tr.children("td").eq(0), table[i-1].rgvNo);
setVal(tr.children("td").eq(1), table[i-1].statusType);
- setVal(tr.children("td").eq(2), table[i-1].status);
- 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].rgvPos1);
- setVal(tr.children("td").eq(7), table[i-1].walkPos);
+ setVal(tr.children("td").eq(2), table[i-1].workNo1);
+ setVal(tr.children("td").eq(3), table[i-1].status1);
+ setVal(tr.children("td").eq(4), table[i-1].loading1);
+ setVal(tr.children("td").eq(5), table[i-1].rgvPos1);
+ // setVal(tr.children("td").eq(6), 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(8), table[i-1].warnCode);
- setVal(tr.children("td").eq(9), table[i-1].alarm);
- setVal(tr.children("td").eq(10), table[i-1].pakMk);
+ setVal(tr.children("td").eq(6), table[i-1].warnCode);
+ setVal(tr.children("td").eq(7), table[i-1].alarm);
+ setVal(tr.children("td").eq(8), table[i-1].pakIn);
+ setVal(tr.children("td").eq(9), table[i-1].pakOut);
+ setVal(tr.children("td").eq(10), table[i-1].pakRgv);
+ setVal(tr.children("td").eq(11), table[i-1].pakAll);
+
}
} else if (res.code === 403){
window.location.href = baseUrl+"/login";
--
Gitblit v1.9.1