From 770d716304e32d4da8e74bb70c8907d7e0fd922b Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期二, 24 十二月 2024 16:19:12 +0800
Subject: [PATCH] 完善wcs
---
src/main/webapp/static/wcs/js/common.js | 2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 597 +++++-------
src/main/resources/application-prod.yml | 164 ++
src/main/java/com/zy/asrs/controller/CrnController.java | 14
pom.xml | 4
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 319 +----
src/main/java/com/zy/core/enums/CrnModeType.java | 8
src/main/java/com/zy/core/ServerBootstrap.java | 31
src/main/webapp/static/wms/js/common.js | 2
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 5
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 506 ++++-----
src/main/java/com/zy/asrs/controller/ConsoleController.java | 8
src/main/java/com/zy/core/enums/CrnStatusType.java | 44
src/main/java/com/zy/core/model/DevpSlave.java | 2
src/main/webapp/static/wcs/js/console.map.js | 661 +++++++------
src/main/java/com/zy/common/utils/News.java | 183 +++
src/main/java/com/zy/core/MainProcess.java | 2
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 293 +----
src/main/resources/application.yml | 6
19 files changed, 1,326 insertions(+), 1,525 deletions(-)
diff --git a/pom.xml b/pom.xml
index 7a47d8d..b5cbd78 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zy</groupId>
- <artifactId>jdzwcs</artifactId>
+ <artifactId>dtwcs</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
@@ -200,7 +200,7 @@
</dependencies>
<build>
- <finalName>jdzwcs</finalName>
+ <finalName>dtwcs</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index d56f44d..1c05208 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -147,7 +147,7 @@
/**
* 鍫嗗灈鏈虹姸鎬佸垽鏂�
*/
- if (crnProtocol.getAlarm1() > 0) {
+ if (crnProtocol.getAlarm() > 0) {
vo.setCrnStatus(CrnStatusType.MACHINE_ERROR);
} else {
if (crnProtocol.getTaskNo()>0) {
@@ -223,7 +223,7 @@
map.put("device", "鍫嗗灈鏈�");
map.put("deviceId", crn.getId());
map.put("battery", "");
- map.put("error", crnProtocol.getFault());
+ map.put("error", crnProtocol.getAlarm());
map.put("status", crnProtocol.getStatusType().desc);
list.add(map);
}
@@ -324,8 +324,8 @@
vo.setWorkNo(crnProtocol.getTaskNo());
vo.setCrnStatus(crnProtocol.getStatusType().desc);
- if (crnProtocol.getAlarm1() > 0) {
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
+ if (crnProtocol.getAlarm() > 0) {
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
vo.setError(crnError == null ? "鏈煡寮傚父" : crnError.getErrName());
}
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 4844ff3..2bb0d19 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -130,7 +130,7 @@
vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆
vo.setLiftPos(crnProtocol.getLiftPosType().desc);
vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
- vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1()));
+ vo.setWarnCode(String.valueOf(crnProtocol.getAlarm()));
if (crnProtocol.getAlarm() > 0) {
BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName());
@@ -165,9 +165,9 @@
vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆
vo.setLiftPos(crnProtocol.getLiftPosType().desc);
vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
- vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1()));
- if (crnProtocol.getAlarm1() > 0) {
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
+ vo.setWarnCode(String.valueOf(crnProtocol.getAlarm()));
+ if (crnProtocol.getAlarm() > 0) {
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName());
}
return R.ok().add(vo);
@@ -307,9 +307,9 @@
vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆
vo.setLiftPos(crnProtocol.getLiftPosType().desc);
vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
- vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1()));
- if (crnProtocol.getAlarm1() > 0) {
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
+ vo.setWarnCode(String.valueOf(crnProtocol.getAlarm()));
+ if (crnProtocol.getAlarm() > 0) {
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName());
}
vo.setInEnable(basCrnp.getInEnable());
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 1a45968..ce25be1 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -22,6 +22,7 @@
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.News;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -36,6 +37,7 @@
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
+import com.zy.core.thread.LedThread;
import com.zy.core.thread.SiemensDevpThread;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
@@ -110,12 +112,14 @@
public void generateStoreWrkFile1() throws IOException, InterruptedException {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
try {
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鍏ュ簱鍙�
for (DevpSlave.Sta inSta : devp.getInSta()) {
StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
// 鑾峰彇鍏ュ簱绔欎俊鎭�
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
@@ -127,54 +131,39 @@
Short workNo = staProtocol.getWorkNo();
Short stano = staProtocol.getStaNo();
- // 灏哄妫�娴嬪紓甯�
- boolean back = false;
- String errMsg = "";
- if (staProtocol.isFrontErr()) {
- errMsg = "鍓嶈秴闄�";
- back = true;
- }
- if (!back && staProtocol.isBackErr()) {
- errMsg = "鍚庤秴闄�";
- back = true;
- }
- if (!back && staProtocol.isHighErr()) {
- errMsg = "楂樿秴闄�";
- back = true;
- }
- if (!back && staProtocol.isLeftErr()) {
- errMsg = "宸﹁秴闄�";
- back = true;
- }
- if (!back && staProtocol.isRightErr()) {
- errMsg = "鍙宠秴闄�";
- back = true;
- }
- if (!back && staProtocol.isWeightErr()) {
- errMsg = "瓒呴噸";
- back = true;
- }
- if (!back && staProtocol.isBarcodeErr()) {
- errMsg = "鎵爜澶辫触";
- back = true;
- }
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing() && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && workNo >= 9790
- && staProtocol.isPakMk()) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && workNo >= 9790 && staProtocol.isPakMk()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
if (barcodeThread == null) {
continue;
+ }
+ String barcode = barcodeThread.getBarcode();
+
+ boolean back = false;
+ if (!Cools.isEmpty(barcode) && (staProtocol.getWorkNo() != 9998 || staProtocol.getWorkNo() != 9996)) {
+ log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+ if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ String errorMsg = "15绔欐壂鐮佸け璐ワ紝宸查��鍥�14绔�";
+ staProtocol.setWorkNo((short) 9998);
+ staProtocol.setStaNo((short) 14);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ storageEscalationParam.setWCSStatus(1);
+ storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errorMsg);
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+ }
+ back = true;
+ }
}
String BoxNo = barcodeThread.getBarcode();
TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
if (!Cools.isEmpty(taskWrk1)) {
log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
if (Cools.isEmpty(staDesc)) {
return;
} else {
@@ -182,36 +171,17 @@
}
}
}
- if (back) {
- storageEscalationParam.setWCSStatus(1);
- storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
- }
log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
storageEscalationParam.setBoxNo(BoxNo);
String response = "";
Boolean success = false;
try {
- response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath(inboundTaskApplyPath)
- .setJson(JSON.toJSONString(storageEscalationParam))
- .build()
- .doPost();
+ response = new HttpHandler.Builder().setUri(wmsUrl).setPath(inboundTaskApplyPath).setJson(JSON.toJSONString(storageEscalationParam)).build().doPost();
JSONObject jsonObject = JSON.parseObject(response);
- if(back){
- if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
- staProtocol.setStaNo((short)105);
- } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
- staProtocol.setStaNo((short)107);
- }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
- staProtocol.setStaNo((short)109);
- }else{
- staProtocol.setStaNo((short)110);
- }
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ if (back) {
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- }else{
- if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
+ } else {
+ if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
// 鍒涙柊涓�涓叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
@@ -221,58 +191,43 @@
log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
} else {
taskWrkService.insert(taskWrk);
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
HashMap<String, Object> hashMap = new HashMap<>();
- hashMap.put("TaskNo",taskWrk.getTaskNo());
+ hashMap.put("TaskNo", taskWrk.getTaskNo());
try {
//寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
- response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(hashMap))
- .build()
- .doPost();
+ response = new HttpHandler.Builder().setUri(wmsUrl).setPath(taskStatusFeedbackPath).setJson(JSON.toJSONString(hashMap)).build().doPost();
JSONObject jsonObject1 = JSON.parseObject(response);
Boolean bool = false;
- if(jsonObject1.get("ReturnStatus").equals(0)){
+ if (jsonObject1.get("ReturnStatus").equals(0)) {
bool = true;
}
- apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
- , wmsUrl + TaskExecCallback
- , null
- , "127.0.0.1"
- , JSON.toJSONString(hashMap)
- , response
- , bool
- );
+ apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms", wmsUrl + TaskExecCallback, null, "127.0.0.1", JSON.toJSONString(hashMap), response, bool);
} catch (Exception e) {
}
}
} else {
-// staProtocol.setWorkNo((short) 9991);
- if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
- staProtocol.setStaNo((short)105);
- } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
- staProtocol.setStaNo((short)107);
- }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
- staProtocol.setStaNo((short)109);
- }else{
- staProtocol.setStaNo((short)110);
- }
+ staProtocol.setWorkNo((short) 9998);
+ staProtocol.setStaNo((short) 14);
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
}
} else {
-// staProtocol.setWorkNo((short) 9991);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
+ staProtocol.setWorkNo((short) 9998);
+ staProtocol.setStaNo((short) 14);
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ if (ledThread != null) {
+ String errorMsg = jsonObject.getString("msg");
+ if (!Cools.isEmpty(errorMsg)) {
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+ }
+ }
}
}
} catch (Exception e) {
@@ -291,14 +246,7 @@
log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1);
}
} finally {
- apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
- , wmsUrl + inboundTaskApplyPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(storageEscalationParam)
- , response
- , success
- );
+ apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛", wmsUrl + inboundTaskApplyPath, null, "127.0.0.1", JSON.toJSONString(storageEscalationParam), response, success);
}
log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo));
log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response));
@@ -383,10 +331,7 @@
continue;
}
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing() && staProtocol.isLoading()
- && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && (workNo >= 9899)
- && staProtocol.isPakMk()) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (workNo >= 9899) && staProtocol.isPakMk()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
if (barcodeThread == null) {
@@ -400,8 +345,7 @@
if (!Cools.isEmpty(taskWrk1)) {
log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
if (Cools.isEmpty(staDesc)) {
log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
return;
@@ -420,11 +364,7 @@
try {
response = new HttpHandler.Builder()
// .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(inboundTaskApplyPath)
- .setJson(JSON.toJSONString(toWmsDTO))
- .build()
- .doPost();
+ .setUri(wmsUrl).setPath(inboundTaskApplyPath).setJson(JSON.toJSONString(toWmsDTO)).build().doPost();
} catch (Exception e) {
log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
log.error("寮傚父淇℃伅鎵撳嵃锛�" + e);
@@ -470,9 +410,7 @@
log.error("绔欑偣鍙峰紓甯�2" + inSta.getStaNo());
throw new CoolException("绔欑偣鍙峰紓甯�2,绔欑偣鍙蜂笉瀛樺湪" + inSta.getStaNo());
} else {
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("crn_no", staNoCrnNo.longValue())
- .eq("loc_no", getWmsDto.getLocNo()));
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", staNoCrnNo.longValue()).eq("loc_no", getWmsDto.getLocNo()));
if (Cools.isEmpty(locMast)) {
basDevp.setStaErr(1);
basDevpService.updateById(basDevp);
@@ -498,9 +436,7 @@
continue;
}
//鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_sts", "O")
- .eq("loc_no", getWmsDto.getLocNo()));
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("loc_no", getWmsDto.getLocNo()));
if (Cools.isEmpty(locMast)) {
try {
HashMap<String, Object> headParam1 = new HashMap<>();
@@ -511,20 +447,9 @@
String response2;
response2 = new HttpHandler.Builder()
// .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(headParam1))
- .build()
- .doPost();
+ .setUri(wmsUrl).setPath(taskStatusFeedbackPath).setJson(JSON.toJSONString(headParam1)).build().doPost();
JSONObject jsonObject1 = JSON.parseObject(response2);
- apiLogService.save("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms"
- , wmsUrl + taskStatusFeedbackPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(headParam1)
- , response
- , true
- );
+ apiLogService.save("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms", wmsUrl + taskStatusFeedbackPath, null, "127.0.0.1", JSON.toJSONString(headParam1), response, true);
} catch (Exception e) {
log.error("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms", getWmsDto.getWrkNo());
throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触,娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==锛屽紓甯镐俊鎭細" + e);
@@ -539,8 +464,7 @@
log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛歿}", getWmsDto.getTargetLocationCode());
} else {
taskWrkService.insert(taskWrk);
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -550,14 +474,7 @@
} else {
continue;
}
- apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
- , wmsUrl + inboundTaskApplyPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(toWmsDTO)
- , response
- , true
- );
+ apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛", wmsUrl + inboundTaskApplyPath, null, "127.0.0.1", JSON.toJSONString(toWmsDTO), response, true);
} else {
// 閫�鍥�
@@ -603,33 +520,54 @@
} else {
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
// 鏌ヨ宸ヤ綔妗�
TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
if (taskWrk == null) {
continue;
}
- log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
-// R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
- staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
- staProtocol.setStaNo(staDesc.getStnNo().shortValue());
- boolean offer = false;
- try {
- offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
- } catch (Exception e) {
- log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
- log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
- }
-// JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
- if (offer) {
- log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
- taskWrk.setStatus(5);
- taskWrk.setWrkSts(14);
- taskWrkService.updateById(taskWrk);
- } else {
- log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
+ // 鍒ゆ柇宸ヤ綔妗f潯浠�
+ if (taskWrk.getIoType() < 100 || taskWrk.getTargetPoint() == null || taskWrk.getStartPoint() == null) {
+ continue;
+ }
+ // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, taskWrk.getCrnNo());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) {
+ // 绉诲姩涓�
+ continue;
+ }
+
+ // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁�
+ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(taskWrk.getWrkNo().shortValue()) && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.forkPosType == CrnForkPosType.HOME) {
+
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+ log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
+// R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
+ staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+ staProtocol.setStaNo((short) 11);
+ boolean offer = false;
+ try {
+ offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+ } catch (Exception e) {
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
+ }
+// JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(r));
+ if (offer) {
+ log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
+ taskWrk.setStatus(5);
+ taskWrk.setWrkSts(14);
+ taskWrkService.updateById(taskWrk);
+ // 澶嶄綅鍫嗗灈
+ crnThread.setResetFlag(true);
+ } else {
+ log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
// log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯镐俊鎭�:"+JSON.toJSONString(r));
+ }
+
}
}
} catch (Exception e) {
@@ -660,8 +598,7 @@
// 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
- if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
- && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
+ if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
if (crnProtocol.getLastIo().equals("I")) {
if (basCrnp.getInEnable().equals("Y")) {
@@ -693,7 +630,7 @@
/**
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
*/
- public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
+ public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", slave.getId()).eq("crn_stn", crnStn.getStaNo()));
for (StaDesc staDesc : staDescs) {
@@ -712,8 +649,7 @@
log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
continue;
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
- && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
flag = true;
}
if (!flag) {
@@ -747,18 +683,18 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(staDesc.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
- crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶅垪
- crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅眰
- crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+ crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+ crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞�
crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺�
crnCommand.setCommand((short) 1);
- log.info("鍫嗗灈鏈哄叆搴撲换鍔′笅鍙�={}",crnCommand);
+ log.info("鍫嗗灈鏈哄叆搴撲换鍔′笅鍙�={}", crnCommand);
if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand), false)) {
log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
@@ -778,7 +714,7 @@
* 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
* 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
*/
- public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
+ public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol) {
List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(slave.getId(), null);
if (taskWrksInitial.size() == 0) {
return;
@@ -798,24 +734,18 @@
continue;
}
- LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
+ LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
//鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐�
- if(locMast.getRow1()==1||locMast.getRow1()==5){
- LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("row1", (locMast.getRow1()+1))
- .eq("bay1",locMast.getBay1())
- .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
- if (!Cools.isEmpty(locMast1)){
- log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
+ if (locMast.getRow1() == 1 || locMast.getRow1() == 5) {
+ LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", (locMast.getRow1() + 1)).eq("bay1", locMast.getBay1()).eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
+ if (!Cools.isEmpty(locMast1)) {
+ log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
continue;
}
- }else if(locMast.getRow1()==4||locMast.getRow1()==8){
- LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("row1", (locMast.getRow1()-1))
- .eq("bay1",locMast.getBay1())
- .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
- if (!Cools.isEmpty(locMast1)){
- log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
+ } else if (locMast.getRow1() == 4 || locMast.getRow1() == 8) {
+ LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", (locMast.getRow1() - 1)).eq("bay1", locMast.getBay1()).eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
+ if (!Cools.isEmpty(locMast1)) {
+ log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
continue;
}
}
@@ -837,8 +767,7 @@
}
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
- && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -854,7 +783,7 @@
command.setCrnNo(taskWrk.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
command.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
+ command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
command.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓
command.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪
command.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰
@@ -863,32 +792,20 @@
command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
command.setCommand((short) 1);
- if(Cools.isEmpty(taskWrk.getMarkStart())||taskWrk.getMarkStart()==0){
+ if (Cools.isEmpty(taskWrk.getMarkStart()) || taskWrk.getMarkStart() == 0) {
HashMap<String, Object> hashMap = new HashMap<>();
- hashMap.put("TaskNo",taskWrk.getTaskNo());
+ hashMap.put("TaskNo", taskWrk.getTaskNo());
String response = "";
try {
//寮�濮嬩笂鎶�,鍑哄簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
- response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(hashMap))
- .build()
- .doPost();
+ response = new HttpHandler.Builder().setUri(wmsUrl).setPath(taskStatusFeedbackPath).setJson(JSON.toJSONString(hashMap)).build().doPost();
JSONObject jsonObject = JSON.parseObject(response);
Boolean bool = false;
- if(jsonObject.get("ReturnStatus").equals(0)){
+ if (jsonObject.get("ReturnStatus").equals(0)) {
bool = true;
taskWrk.setMarkStart(1);
}
- apiLogService.save("wcs寮�濮嬩换鍔′笂鎶ms"
- , wmsUrl + TaskExecCallback
- , null
- , "127.0.0.1"
- , JSON.toJSONString(hashMap)
- , response
- , bool
- );
+ apiLogService.save("wcs寮�濮嬩换鍔′笂鎶ms", wmsUrl + TaskExecCallback, null, "127.0.0.1", JSON.toJSONString(hashMap), response, bool);
} catch (Exception e) {
}
}
@@ -950,11 +867,7 @@
public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
// 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑绉诲簱宸ヤ綔妗�
- List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>()
- .eq("crn_no", slave.getId())
- .eq("wrk_sts", 11)
- .eq("io_type", 3)
- .orderBy("io_pri", false));
+ List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>().eq("crn_no", slave.getId()).eq("wrk_sts", 11).eq("io_type", 3).orderBy("io_pri", false));
for (TaskWrk taskWrk : taskWrks) {
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
@@ -1017,20 +930,9 @@
String response;
response = new HttpHandler.Builder()
// .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
+ .setUri(wmsUrl).setPath(taskStatusFeedbackPath).setJson(JSON.toJSONString(headParam)).build().doPost();
JSONObject jsonObject = JSON.parseObject(response);
- apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms"
- , wmsUrl + taskStatusFeedbackPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(headParam)
- , response
- , true
- );
+ apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms", wmsUrl + taskStatusFeedbackPath, null, "127.0.0.1", JSON.toJSONString(headParam), response, true);
} catch (Exception e) {
log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk);
// throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触");
@@ -1102,10 +1004,8 @@
if (crnProtocol == null) {
continue;
}
-
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
- if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
- //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+ if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(), crnProtocol.getTaskNo().intValue());
if (Cools.isEmpty(taskWrk) && crnProtocol.getTaskNo() != 999) {
log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
@@ -1116,7 +1016,7 @@
crnOperatorParam.setCrnNo(crn.getId());
R r = crnController.crnTaskComplete(crnOperatorParam);
Thread.sleep(1000);
- if(!r.get("code").equals(200)){
+ if (!r.get("code").equals(200)) {
return;
}
if (!Cools.isEmpty(taskWrk)) {
@@ -1168,120 +1068,120 @@
/**
* 鍫嗗灈鏈哄紓甯镐俊鎭褰�
*/
- public void recCrnErr() {
- Date now = new Date();
- for (CrnSlave crn : slaveProperties.getCrn()) {
- // 鑾峰彇鍫嗗灈鏈轰俊鎭�
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
- CrnProtocol crnProtocol = crnThread.getCrnProtocol();
- if (crnProtocol == null) {
- continue;
- }
- if (false) {
-// if (crnProtocol.getModeType() != CrnModeType.STOP) {
- // 鏈変换鍔�
- if (crnProtocol.getTaskNo() != 0) {
- BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
- // 鏈夊紓甯�
- if (latest == null) {
- if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
- WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
- if (wrkMast == null) {
- continue;
- }
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
- BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
- wrkMast.getWrkNo(), // 宸ヤ綔鍙�
- now, // 鍙戠敓鏃堕棿
- null, // 缁撴潫鏃堕棿
- wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
- wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
- crn.getId(), // 鍫嗗灈鏈�
- null, // plc
- wrkMast.getLocNo(), // 鐩爣搴撲綅
- wrkMast.getStaNo(), // 鐩爣绔�
- wrkMast.getSourceStaNo(), // 婧愮珯
- wrkMast.getSourceLocNo(), // 婧愬簱浣�
- wrkMast.getBarcode(), // 鏉$爜
- (int) crnProtocol.getAlarm1(), // 寮傚父鐮�
- errName, // 寮傚父
- 1, // 寮傚父鎯呭喌
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- "浠诲姟涓紓甯�" // 澶囨敞
- );
- if (!basErrLogService.insert(basErrLog)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
- }
- }
- } else {
- // 寮傚父淇
- if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) {
- latest.setEndTime(now);
- latest.setUpdateTime(now);
- latest.setStatus(2);
- if (!basErrLogService.updateById(latest)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
- }
- }
- }
- // 鏃犱换鍔�
- } else {
- BasErrLog latest = basErrLogService.findLatest(crn.getId());
- // 鏈夊紓甯�
- if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm() > 0) {
- // 璁板綍鏂板紓甯�
- if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
- String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
- BasErrLog basErrLog = new BasErrLog(
- null, // 缂栧彿
- null, // 宸ヤ綔鍙�
- now, // 鍙戠敓鏃堕棿
- null, // 缁撴潫鏃堕棿
- null, // 宸ヤ綔鐘舵��
- null, // 鍏ュ嚭搴撶被鍨�
- crn.getId(), // 鍫嗗灈鏈�
- null, // plc
- null, // 鐩爣搴撲綅
- null, // 鐩爣绔�
- null, // 婧愮珯
- null, // 婧愬簱浣�
- null, // 鏉$爜
- (int) crnProtocol.getAlarm1(), // 寮傚父鐮�
- errName, // 寮傚父
- 1, // 寮傚父鎯呭喌
- now, // 娣诲姞鏃堕棿
- null, // 娣诲姞浜哄憳
- now, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- "鏃犱换鍔″紓甯�" // 澶囨敞
- );
- if (!basErrLogService.insert(basErrLog)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
- }
- }
- // 鏃犲紓甯�
- } else {
- // 寮傚父淇
- if (latest != null && latest.getStatus() == 1) {
- latest.setEndTime(now);
- latest.setUpdateTime(now);
- latest.setStatus(2);
- if (!basErrLogService.updateById(latest)) {
- log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
- }
- }
- }
- }
- }
-
- }
- }
+// public void recCrnErr() {
+// Date now = new Date();
+// for (CrnSlave crn : slaveProperties.getCrn()) {
+// // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+// CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+// if (crnProtocol == null) {
+// continue;
+// }
+// if (false) {
+//// if (crnProtocol.getModeType() != CrnModeType.STOP) {
+// // 鏈変换鍔�
+// if (crnProtocol.getTaskNo() != 0) {
+// BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
+// // 鏈夊紓甯�
+// if (latest == null) {
+// if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
+// WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
+// if (wrkMast == null) {
+// continue;
+// }
+// BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
+// String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
+// BasErrLog basErrLog = new BasErrLog(
+// null, // 缂栧彿
+// wrkMast.getWrkNo(), // 宸ヤ綔鍙�
+// now, // 鍙戠敓鏃堕棿
+// null, // 缁撴潫鏃堕棿
+// wrkMast.getWrkSts(), // 宸ヤ綔鐘舵��
+// wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨�
+// crn.getId(), // 鍫嗗灈鏈�
+// null, // plc
+// wrkMast.getLocNo(), // 鐩爣搴撲綅
+// wrkMast.getStaNo(), // 鐩爣绔�
+// wrkMast.getSourceStaNo(), // 婧愮珯
+// wrkMast.getSourceLocNo(), // 婧愬簱浣�
+// wrkMast.getBarcode(), // 鏉$爜
+// (int) crnProtocol.getAlarm1(), // 寮傚父鐮�
+// errName, // 寮傚父
+// 1, // 寮傚父鎯呭喌
+// now, // 娣诲姞鏃堕棿
+// null, // 娣诲姞浜哄憳
+// now, // 淇敼鏃堕棿
+// null, // 淇敼浜哄憳
+// "浠诲姟涓紓甯�" // 澶囨敞
+// );
+// if (!basErrLogService.insert(basErrLog)) {
+// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+// }
+// }
+// } else {
+// // 寮傚父淇
+// if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) {
+// latest.setEndTime(now);
+// latest.setUpdateTime(now);
+// latest.setStatus(2);
+// if (!basErrLogService.updateById(latest)) {
+// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+// }
+// }
+// }
+// // 鏃犱换鍔�
+// } else {
+// BasErrLog latest = basErrLogService.findLatest(crn.getId());
+// // 鏈夊紓甯�
+// if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm() > 0) {
+// // 璁板綍鏂板紓甯�
+// if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
+// BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
+// String errName = crnError == null ? String.valueOf(crnProtocol.getAlarm()) : crnError.getErrName();
+// BasErrLog basErrLog = new BasErrLog(
+// null, // 缂栧彿
+// null, // 宸ヤ綔鍙�
+// now, // 鍙戠敓鏃堕棿
+// null, // 缁撴潫鏃堕棿
+// null, // 宸ヤ綔鐘舵��
+// null, // 鍏ュ嚭搴撶被鍨�
+// crn.getId(), // 鍫嗗灈鏈�
+// null, // plc
+// null, // 鐩爣搴撲綅
+// null, // 鐩爣绔�
+// null, // 婧愮珯
+// null, // 婧愬簱浣�
+// null, // 鏉$爜
+// (int) crnProtocol.getAlarm1(), // 寮傚父鐮�
+// errName, // 寮傚父
+// 1, // 寮傚父鎯呭喌
+// now, // 娣诲姞鏃堕棿
+// null, // 娣诲姞浜哄憳
+// now, // 淇敼鏃堕棿
+// null, // 淇敼浜哄憳
+// "鏃犱换鍔″紓甯�" // 澶囨敞
+// );
+// if (!basErrLogService.insert(basErrLog)) {
+// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", crn.getId(), errName);
+// }
+// }
+// // 鏃犲紓甯�
+// } else {
+// // 寮傚父淇
+// if (latest != null && latest.getStatus() == 1) {
+// latest.setEndTime(now);
+// latest.setUpdateTime(now);
+// latest.setStatus(2);
+// if (!basErrLogService.updateById(latest)) {
+// log.error("鍫嗗灈鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", crn.getId(), latest.getId());
+// }
+// }
+// }
+// }
+// }
+//
+// }
+// }
//鑷姩娲惧彂浠诲姟
public void autoDistribute() {
@@ -1456,24 +1356,11 @@
taskOverToWms.setTaskStatus("executing"); //浠诲姟鐘舵��
String response = null;
try {
- response = new HttpHandler.Builder()
- .setHeaders(map)
- .setUri(wmsUrl)
- .setPath("wcsManager/wcsInterface/taskStatusFeedback")
- .setJson(JSON.toJSONString(taskOverToWms))
- .build()
- .doPost();
+ response = new HttpHandler.Builder().setHeaders(map).setUri(wmsUrl).setPath("wcsManager/wcsInterface/taskStatusFeedback").setJson(JSON.toJSONString(taskOverToWms)).build().doPost();
} catch (Exception e) {
log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
}
- apiLogService.save("鍫嗗灈鏈哄紑濮嬭繍琛�"
- , wmsUrl + "wcsManager/wcsInterface/taskStatusFeedback"
- , null
- , "127.0.0.1"
- , JSON.toJSONString(taskOverToWms)
- , response
- , true
- );
+ apiLogService.save("鍫嗗灈鏈哄紑濮嬭繍琛�", wmsUrl + "wcsManager/wcsInterface/taskStatusFeedback", null, "127.0.0.1", JSON.toJSONString(taskOverToWms), response, true);
return response;
}
diff --git a/src/main/java/com/zy/common/utils/News.java b/src/main/java/com/zy/common/utils/News.java
new file mode 100644
index 0000000..df02171
--- /dev/null
+++ b/src/main/java/com/zy/common/utils/News.java
@@ -0,0 +1,183 @@
+package com.zy.common.utils;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.lang.reflect.Array;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * news stories for zoneyung
+ * Created by vincent on 2022/12/22
+ */
+@Slf4j
+public class News {
+
+ public static void main(String[] args) {
+ News.info("info{}", 1);
+ News.warn("warn{}", 2);
+ News.error("error{}", 3);
+ System.out.println(News.print());
+ }
+
+ interface NewsSupport<T> { boolean execute(T t); }
+
+ private static final NewsQueue<NewsDomain> NEWS_QUEUE = new NewsQueue<>(NewsDomain.class, 1024);
+
+ @SuppressWarnings({"unchecked"})
+ static class NewsQueue<T> {
+
+ private final transient Class<T> cls;
+ private final T[] arr;
+ private final int capacity;
+ private int head;
+ private int tail;
+
+ { this.head = 0; this.tail = 0; }
+
+ public NewsQueue(Class<T> cls, int capacity) {
+ this.cls = cls;
+ this.arr = (T[]) Array.newInstance(cls, capacity);
+ this.capacity = capacity;
+ }
+
+ public synchronized boolean offer(T t) {
+ if (this.tail == this.capacity) {
+ this.peek();
+ }
+ this.reform();
+ this.arr[this.tail] = t;
+ this.tail ++;
+ return true;
+ }
+
+ public synchronized boolean put(T t) {
+ if (this.tail == this.capacity) {
+ return false;
+ } else {
+ this.reform();
+ }
+ this.arr[this.tail] = t;
+ this.tail ++;
+ return true;
+ }
+
+ public synchronized T peek() {
+ if (this.head == this.tail) {
+ return null;
+ }
+ T t = this.arr[this.head];
+ this.head ++;
+ this.reform();
+ return t;
+ }
+
+ private void reform() {
+ for (int i = this.head; i < this.tail; i++) {
+ this.arr[i-this.head] = this.arr[i];
+ }
+ this.tail -= this.head;
+ this.head = 0;
+ }
+
+ public synchronized int size() {
+ return this.tail - this.head;
+ }
+
+ public synchronized List<T> data() {
+ T[] ts = (T[]) Array.newInstance(this.cls, size());
+ if (this.tail - this.head >= 0) {
+ System.arraycopy(this.arr, this.head, ts, 0, this.tail - this.head);
+ }
+ return Arrays.asList(ts);
+ }
+
+ }
+
+ public static void info(String format, Object... arguments) {
+ log.info(format, arguments);
+ offer(NewsLevel.INFO, format, arguments);
+ }
+
+ public static void warn(String format, Object... arguments) {
+ log.warn(format, arguments);
+ offer(NewsLevel.WARN, format, arguments);
+ }
+
+ public static void error(String format, Object... arguments) {
+ log.error(format, arguments);
+ offer(NewsLevel.ERROR, format, arguments);
+ }
+
+ public static String printStr() {
+ StringBuilder sb = new StringBuilder("[");
+ List<NewsDomain> domains = NEWS_QUEUE.data();
+ for (int i = 0; i < domains.size(); i++) {
+ NewsDomain domain = domains.get(i);
+ sb.append("{");
+ sb.append("\"l\":").append(domain.level.idx).append(",");
+ sb.append("\"v\":\"").append(domain.content).append("\"").append(",");
+ sb.append("\"t\":\"").append(domain.date).append("\"");
+ sb.append("}");
+ if (i < domains.size() - 1) {
+ sb.append(",");
+ }
+ }
+ sb.append("]");
+ return sb.toString();
+ }
+
+ public static List<Map<String, Object>> print() {
+ List<Map<String, Object>> res = new ArrayList<>();
+ for (NewsDomain datum : NEWS_QUEUE.data()) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("l", datum.level.idx);
+ map.put("v", datum.content);
+ map.put("t", datum.date);
+ res.add(map);
+ }
+ return res;
+ }
+
+ private static boolean offer(NewsLevel level, String msg, Object[] args) {
+ return NEWS_QUEUE.offer(new NewsDomain(level, replace(msg, args), (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date())));
+ }
+
+ private static String replace(String str, Object[] objs){
+ if (null == objs || objs.length == 0 || null == str || "".equals(str.trim())) {
+ return str;
+ } else {
+ StringBuilder sb = new StringBuilder(str);
+ for (Object obj : objs) {
+ int idx = sb.indexOf("{}");
+ if (idx == -1) { break; }
+ sb.replace(idx, idx + 2, String.valueOf(obj));
+ }
+ return sb.toString();
+ }
+ }
+
+ static class NewsDomain {
+ public NewsLevel level;
+ public String content;
+ public String date;
+
+ public NewsDomain(NewsLevel level, String content, String date) {
+ this.level = level;
+ this.content = content;
+ this.date = date;
+ }
+ }
+
+ enum NewsLevel {
+ INFO(1),
+ WARN(2),
+ ERROR(3),
+ ;
+ public int idx;
+ NewsLevel(int idx) {
+ this.idx = idx;
+ }
+ }
+
+}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 91070ff..6e54ad8 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -55,7 +55,7 @@
mainService.storeFinished();
// 鍫嗗灈鏈哄紓甯镐俊鎭褰�
- mainService.recCrnErr();
+// mainService.recCrnErr();
// 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
// mainService.storeEmptyPlt();
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index a97d9a0..d7e9ccd 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -1,5 +1,6 @@
package com.zy.core;
+import com.zy.common.utils.News;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
@@ -75,39 +76,39 @@
private void initThread(){
// 鍒濆鍖栧爢鍨涙満绾跨▼
- log.info("鍒濆鍖栧爢鍨涙満绾跨▼...................................................");
+ News.info("鍒濆鍖栧爢鍨涙満绾跨▼...................................................");
for (CrnSlave crn : slaveProperties.getCrn()) {
CrnThread crnThread = new SiemensCrnThread(crn);
new Thread((Runnable) crnThread).start();
SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
}
// 鍒濆鍖栬緭閫佺嚎绾跨▼
- log.info("鍒濆鍖栬緭閫佺嚎绾跨▼...................................................");
+ News.info("鍒濆鍖栬緭閫佺嚎绾跨▼...................................................");
for (DevpSlave devp : slaveProperties.getDevp()) {
DevpThread devpThread = new SiemensDevpThread(devp);
new Thread((Runnable) devpThread).start();
SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread);
}
// 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼
- log.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
+ News.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
for (Slave barcode : slaveProperties.getBarcode()) {
BarcodeThread barcodeThread = new BarcodeThread(barcode);
// new Thread(barcodeThread).start();
SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
}
-// // 鍒濆鍖朙ED绾跨▼
-// log.info("鍒濆鍖朙ED绾跨▼...................................................");
-// for (LedSlave led : slaveProperties.getLed()) {
-// LedThread ledThread = new LedThread(led);
-// new Thread(ledThread).start();
-// SlaveConnection.put(SlaveType.Led, led.getId(), ledThread);
-// }
-// // 鍒濆鍖栫绉ょ嚎绋�
-// log.info("鍒濆鍖栫绉ょ嚎绋�...................................................");
+ // 鍒濆鍖朙ED绾跨▼
+ News.info("鍒濆鍖朙ED绾跨▼...................................................");
+ for (LedSlave led : slaveProperties.getLed()) {
+ LedThread ledThread = new LedThread(led);
+ new Thread(ledThread).start();
+ SlaveConnection.put(SlaveType.Led, led.getId(), ledThread);
+ }
+ // 鍒濆鍖栫绉ょ嚎绋�
+// News.info("鍒濆鍖栫绉ょ嚎绋�...................................................");
// for (Slave scale : slaveProperties.getScale()) {
-// ScaleThread scaleThread = new ScaleThread(scale);
-// new Thread(scaleThread).start();
-// SlaveConnection.put(SlaveType.Scale, scale.getId(), scaleThread);
+// ScaleThread barcodeThread = new ScaleThread(scale);
+// new Thread(barcodeThread).start();
+// SlaveConnection.put(SlaveType.Scale, scale.getId(), barcodeThread);
// }
}
diff --git a/src/main/java/com/zy/core/enums/CrnModeType.java b/src/main/java/com/zy/core/enums/CrnModeType.java
index d7b6111..7f2d84a 100644
--- a/src/main/java/com/zy/core/enums/CrnModeType.java
+++ b/src/main/java/com/zy/core/enums/CrnModeType.java
@@ -2,11 +2,11 @@
public enum CrnModeType {
- NONE(0, "鍏虫満"),
- AUTO(3, "鑷姩"),
- HALF_AUTO(2, "鍗婅嚜鍔�"),
+ NONE(-1, "绂荤嚎"),
+ STOP(0, "缁翠慨"),
HAND(1, "鎵嬪姩"),
- STOP(4, "缁翠慨"),
+ HALF_AUTO(2, "鍗婅嚜鍔�"),
+ AUTO(3, "鑷姩"),
;
public Integer id;
diff --git a/src/main/java/com/zy/core/enums/CrnStatusType.java b/src/main/java/com/zy/core/enums/CrnStatusType.java
index 87c6e53..371c87f 100644
--- a/src/main/java/com/zy/core/enums/CrnStatusType.java
+++ b/src/main/java/com/zy/core/enums/CrnStatusType.java
@@ -2,36 +2,20 @@
public enum CrnStatusType {
-// NONE(-1, "绂荤嚎"),
-// IDLE(0, "绌洪棽"),
-// FETCH_MOVING(1, "鍙栬揣琛岃蛋"),
-// FETCH_WAITING(2, "鍙栬揣绛夊緟"),
-// FETCHING(3, "鍙栬揣涓�"),
-// PUT_MOVING(4, "鏀捐揣璧拌"),
-// PUT_WAITING(5, "鏀捐揣绛夊緟"),
-// PUTTING(6, "鏀捐揣涓�"),
-// ORIGIN_GO(7, "鍥炲師鐐�"),
-// ORIGIN_BACK(8, "鍥炲弽鍘熺偣"),
-// MOVING(9, "璧拌涓�"),
-// WAITING(10, "浠诲姟瀹屾垚绛夊緟WCS纭"),
-// PAUSE(11, "浠诲姟鏆傚仠"),
-// SOS(99, "鎶ヨ"),
-// ;
-
- IDLE(0, "绌洪棽锛屾棤浠诲姟"),
- NONE_MOVING(1, "鍙栬揣瀹氫綅"),
- FETCHING(2, "鍙栬揣绛夊緟"),
- MOVING(3, "鍙栬揣涓�"),
- PUTTING(4, "鏀捐揣璧拌"),
- HOMING(5, "鏀捐揣绛夊緟"),
- ANTI_ORIGIN(6, "鏀捐揣涓�"),
- PUT_COMPLETE(7, "鍥炲師鐐�"),
-// MOVE_THE_SHIPPING_LOCATION(8, "绉诲姩鍒版斁璐т綅缃�"),
-// PUTTING(9, "鏀捐揣涓�"),
- HANDLING_COMPLETED(10, "鎼繍瀹屾垚绛夊緟WCS纭"),
- EMPTY_AVOIDANCE(11, "绌鸿浇閬胯"),
+ NONE(-1, "绂荤嚎"),
+ IDLE(0, "绌洪棽"),
+ FETCH_MOVING(1, "鍙栬揣琛岃蛋"),
+ FETCH_WAITING(2, "鍙栬揣绛夊緟"),
+ FETCHING(3, "鍙栬揣涓�"),
+ PUT_MOVING(4, "鏀捐揣璧拌"),
+ PUT_WAITING(5, "鏀捐揣绛夊緟"),
+ PUTTING(6, "鏀捐揣涓�"),
+ ORIGIN_GO(7, "鍥炲師鐐�"),
+ ORIGIN_BACK(8, "鍥炲弽鍘熺偣"),
+ MOVING(9, "璧拌涓�"),
+ WAITING(10, "浠诲姟瀹屾垚绛夊緟WCS纭"),
+ PAUSE(11, "浠诲姟鏆傚仠"),
SOS(99, "鎶ヨ"),
- OTHER(100, "鍏朵粬"),
;
public Integer id;
@@ -50,7 +34,7 @@
return type;
}
}
- return null;
+ return NONE;
}
public static CrnStatusType get(CrnStatusType type) {
diff --git a/src/main/java/com/zy/core/model/DevpSlave.java b/src/main/java/com/zy/core/model/DevpSlave.java
index 799cab2..147c10a 100644
--- a/src/main/java/com/zy/core/model/DevpSlave.java
+++ b/src/main/java/com/zy/core/model/DevpSlave.java
@@ -37,6 +37,8 @@
private Integer scale;
private Integer backSta;
+
+ private Integer led;
}
}
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 baa789a..a63b90b 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -1,7 +1,10 @@
package com.zy.core.model.protocol;
import com.zy.asrs.entity.BasCrnp;
-import com.zy.core.enums.*;
+import com.zy.core.enums.CrnForkPosType;
+import com.zy.core.enums.CrnLiftPosType;
+import com.zy.core.enums.CrnModeType;
+import com.zy.core.enums.CrnStatusType;
import lombok.Data;
/**
@@ -9,6 +12,8 @@
*/
@Data
public class CrnProtocol {
+
+ private Integer crnNo;
/**
* 1 = 鎵嬪姩妯″紡
@@ -20,19 +25,14 @@
public CrnModeType modeType;
/**
- * 鍫嗗灈鏈轰换鍔″畬鎴�
- */
- public Short taskFinish;
-
- /**
- * 鏍¢獙缁撴灉 1琛ㄧず妫�楠屾垚鍔�
- */
- public Short valid;
-
- /**
* 1 = 鎬ュ仠
*/
public Short eStop;
+
+ /**
+ * 寮傚父鐮�
+ */
+ public Short alarm;
/**
* 浠诲姟鍙�
@@ -54,8 +54,6 @@
*/
public Short status;
- public Short alarm = 0;
-
/**
* 鐘舵�佹灇涓�
*/
@@ -72,175 +70,45 @@
public Short level;
/**
- * 鍫嗗灈鏈哄綋鍓嶆帓
- */
- public Short row;
-
- /**
- * 鍫嗗灈鏈哄綋鍓嶅贩閬撳彿
- */
- public Short lane;
-
- /**
- * 鍫嗗灈鏈洪�氳鐘舵��
- */
- public Boolean connStatus;
-
- /**
- * 鐢宠鍏ュ簱淇
- */
- public Boolean correction;
-
- /**
- * 鎵樼洏鍙烽敊
- */
- public Boolean tuError;
-
- /**
- * 鍙栬揣鏃犵
- */
- public Boolean noneError;
-
- /**
- * 鍙岄噸鍏ュ簱
- */
- public Boolean stockError;
-
- /**
- * 浣滀笟鏁版嵁鏃犳晥
- */
- public Boolean jobInvalid;
-
- /**
- * 绌洪棽鐘舵��
- */
- public Boolean idle;
-
- /**
- * 鎺у埗鏌滀娇鑳�
- */
- public Boolean control;
-
- /**
- * 鍋滃噯
- */
- public Boolean stopQuasi;
-
- /**
- * 杩愯
- */
- public Boolean running;
-
- /**
- * 鏁呴殰
- */
- public Boolean fault;
-
- /**
- * 璐у弶涓綅
- */
- public Boolean forkHome;
- /**
- * 鍗曚几浣嶈揣鍙夊乏浣�
- */
- public Boolean forkSingleLeft;
- /**
- * 鍗曚几浣嶈揣鍙夊彸浣�
- */
- public Boolean forkSingleRight;
- /**
- * 鍙屼几浣嶈揣鍙夊乏浣�
- */
- public Boolean forkDoubleLeft;
- /**
- * 鍙屼几浣嶈揣鍙夊彸浣�
- */
- public Boolean forkDoubleRight;
- /**
- * 鍗曚几浣嶉珮浣�
- */
- public Boolean singleHigh;
- /**
- * 鍗曚几浣嶄綆浣�
- */
- public Boolean singleLow;
- /**
- * 鍙屼几浣嶉珮浣�
- */
- public Boolean doubleHigh;
- /**
- * 鍙屼几浣嶄綆浣�
- */
- public Boolean doubleLow;
- /**
- * 绔欏彴楂樹綅
- */
- public Boolean platformHigh;
- /**
- * 绔欏彴浣庝綅
- */
- public Boolean platformLow;
-
- /**
* 褰撳墠璐у弶浣嶇疆
* 0 = 璐у弶鍘熶綅
* 1 = 璐у弶鍦ㄥ乏渚�
* 2 = 璐у弶鍦ㄥ彸渚�
*/
- public Short forkPos = -1;
+ public Short forkPos;
- public CrnForkPosType forkPosType = CrnForkPosType.NONE;
+ public CrnForkPosType forkPosType;
/**
* 褰撳墠杞借揣鍙颁綅缃�
* 0 = 涓嬪畾浣�
* 1 = 涓婂畾浣�
*/
- public Short liftPos = -1;
+ public Short liftPos;
- public CrnLiftPosType liftPosType = CrnLiftPosType.ERROR;
+ public CrnLiftPosType liftPosType;
/**
* 璧拌鍦ㄥ畾浣�
* 0 = 鍦ㄥ畾浣�
* 1 = 涓嶅湪瀹氫綅
*/
- public Short walkPos = 0;
-
- /**
- * 鎷ㄦ寚浣嶇疆
- * 0 = 涓嶅湪瀹氫綅
- * 1 = 涓婂畾浣�
- * 2 = 涓嬪畾浣�
- */
- public Short fingerPos;
-
- public CrnFingerPosType fingerPosType;
+ public Short walkPos;
/**
* 杞借揣鍙版湁鐗�
*/
public Short loaded;
- /**
- * 鍫嗗灈鏈哄瀭鐩存晠闅滀唬鐮侊紙鏁板�兼樉绀猴級
- */
- private Integer alarm1 = 0;
+ private Short temp1;
- /**
- * 鍫嗗灈鏈烘按骞虫晠闅滀唬鐮侊紙鏁板�兼樉绀猴級
- */
- private Integer alarm2 = 0;;
+ private CrnTemp1 crnTemp1;
- /**
- * 鍫嗗灈鏈鸿揣鍙夋晠闅滀唬鐮侊紙鏁板�兼樉绀猴級
- */
- private Integer alarm3 = 0;;
+ private Short temp2;
- /**
- * 鍫嗗灈鏈虹姸鎬佹晠闅滀唬鐮侊紙鏁板�兼樉绀猴級
- */
- private Integer alarm4 = 0;;
+ private Short temp3;
+
+ private Short temp4;
/**
* 寮傚父1
@@ -271,42 +139,53 @@
private CrnError4 crnError4;
/**
+ * 寮傚父5
+ */
+ private boolean[] error5;
+
+ private CrnError5 crnError5;
+
+ /**
+ * 寮傚父6
+ */
+ private boolean[] error6;
+
+ private CrnError6 crnError6;
+
+ /**
* X琛岃蛋绾块�熷害m/min
*/
- private Float xSpeed = 0F;
+ private Float xSpeed;
/**
* Y琛岃蛋绾块�熷害m/min
*/
- private Float ySpeed = 0F;
+ private Float ySpeed;
/**
* Z琛岃蛋绾块�熷害m/min
*/
- private Float zSpeed = 0F;
+ private Float zSpeed;
/**
* 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯m
*/
- public Float xDistance = 0F;
+ public Float xDistance;
/**
* 鍫嗗灈鏈虹疮璁″崌闄嶈窛绂籯m
*/
- public Float yDistance = 0F;
+ public Float yDistance;
/**
* 鍫嗗灈鏈虹疮璁¤蛋琛屾椂闀縣
*/
- public Float xDuration = 0F;
+ public Float xDuration;
- /**w
+ /**
* 鍫嗗灈鏈虹疮璁″崌闄嶆椂闀縣
*/
- public Float yDuration = 0F;
-
- //鎸囦护ID
- private Integer commandId;
+ public Float yDuration;
public void setMode(Short mode) {
this.mode = mode;
@@ -348,81 +227,12 @@
this.status = CrnStatusType.get(type).id.shortValue();
}
- public void setFingerPos(Short type) {
- this.fingerPos = type;
- this.fingerPosType = CrnFingerPosType.get(type);
+ public Short getTemp1() {
+ return temp1;
}
- public void setError1(boolean[] error1){
- this.error1 = error1;
- this.crnError1 = new CrnError1();
- this.crnError1.remoteStop = error1[0];
- this.crnError1.mainStop = error1[1];
- this.crnError1.controlStop = error1[2];
- this.crnError1.xCoverErr = error1[3];
- this.crnError1.yCoverErr = error1[4];
- this.crnError1.zCoverErr = error1[5];
- this.crnError1.laserErr = error1[6];
- this.crnError1.barcodeErr = error1[7];
- this.crnError1.xFrontLimitErr = error1[8];
- this.crnError1.xBackLimitErr = error1[9];
- this.crnError1.yUpLimitErr = error1[10];
- this.crnError1.yDownLimitErr = error1[11];
- this.crnError1.zLeftLimitErr = error1[12];
- this.crnError1.zRightLimitErr = error1[13];
- this.crnError1.leftOverWidthErr1 = error1[14];
- this.crnError1.leftOverWidthErr2 = error1[15];
- }
-
- public void setError2(boolean[] error2){
- this.error2 = error2;
- this.crnError2 = new CrnError2();
- this.crnError2.leftOverLenErr1 = error2[0];
- this.crnError2.leftOverLenErr2 = error2[1];
- this.crnError2.leftOverHighErr = error2[2];
- this.crnError2.rightOverWidthErr1 = error2[3];
- this.crnError2.rightOverWidthErr2 = error2[4];
- this.crnError2.rightOverLenErr1 = error2[5];
- this.crnError2.rightOverLenErr2 = error2[6];
- this.crnError2.rightOverHighErr = error2[7];
- this.crnError2.leftLooseRopeErr = error2[8];
- this.crnError2.rightLooseRopeErr = error2[9];
- this.crnError2.frontDoorErr = error2[10];
- this.crnError2.backDoorErr = error2[11];
- this.crnError2.startupErr = error2[12];
- this.crnError2.xFrontLocaUpErr = error2[13];
- this.crnError2.xFrontLocaDownErr = error2[14];
- this.crnError2.xBackLocaUpErr = error2[15];
- }
-
- public void setError3(boolean[] error3) {
- this.error3 = error3;
- this.crnError3 = new CrnError3();
- this.crnError3.xBackLocaDownErr = error3[0];
- this.crnError3.yUpLocaUpErr = error3[1];
- this.crnError3.yUpLocaDownErr = error3[2];
- this.crnError3.yDownLocaUpErr = error3[3];
- this.crnError3.yDownLocaDownErr = error3[4];
- this.crnError3.zLeftLocaUpErr = error3[5];
- this.crnError3.zLeftLocaDownErr = error3[6];
- this.crnError3.zRightLocaUpErr = error3[7];
- this.crnError3.zRightLocaDownErr = error3[8];
- this.crnError3.leftTakeNoneErr = error3[9];
- this.crnError3.rightTakeNoneErr = error3[10];
- this.crnError3.leftTakeThenLoadErr = error3[11];
- this.crnError3.rightTakeThenLoadErr = error3[12];
- this.crnError3.leftPutAndLoadErr = error3[13];
- this.crnError3.rightPutAndLoadErr = error3[14];
- this.crnError3.leftPutThenNoneErr = error3[15];
- }
-
- public void setError4(boolean[] error4) {
- this.error4 = error4;
- this.crnError4 = new CrnError4();
- this.crnError4.rightPutThenNoneErr = error4[0];
- this.crnError4.xLooseBrakeTimeout = error4[1];
- this.crnError4.yLooseBrakeTimeout = error4[2];
- this.crnError4.zLooseBrakeTimeout = error4[3];
+ public void setTemp1(Short temp1) {
+ this.temp1 = temp1;
}
/**
@@ -434,8 +244,39 @@
public BasCrnp toSqlModel(BasCrnp basCrnp){
- basCrnp.setCrnErr(alarm.longValue());
+ if (alarm!=null) {
+ basCrnp.setCrnErr(alarm.longValue());
+ }
basCrnp.setWrkNo(taskNo.intValue());
return basCrnp;
}
+
+ public void setxSpeed(Short xSpeed) {
+ this.xSpeed = Float.valueOf(xSpeed);
+ }
+
+ public void setySpeed(Short ySpeed) {
+ this.ySpeed = Float.valueOf(ySpeed);
+ }
+
+ public void setzSpeed(Short zSpeed) {
+ this.zSpeed = Float.valueOf(zSpeed);
+ }
+
+ public void setxDistance(Short xDistance) {
+ this.xDistance = Float.valueOf(xDistance);
+ }
+
+ public void setyDistance(Short yDistance) {
+ this.yDistance = Float.valueOf(yDistance);
+ }
+
+ public void setxDuration(Short xDuration) {
+ this.xDuration = Float.valueOf(xDuration);
+ }
+
+ public void setyDuration(Short yDuration) {
+ this.yDuration = Float.valueOf(yDuration);
+ }
+
}
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index 4182f70..5f6ad0b 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -62,6 +62,9 @@
// 闅斿绔欑偣锛堝彴杞︿綅缃級
private String nearbySta;
+ //鍏佽绌烘墭鍑哄簱
+ private String allowEmptyOut;
+
//鎸囦护ID
private Integer commandId;
@@ -118,6 +121,8 @@
private List<Integer> alarm;
+
+
public List<Integer> getAlarm(){
List<Integer> alarm = new ArrayList<>();
if (breakerErr){
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index b0cd878..bbf7db0 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -14,6 +14,7 @@
import com.zy.asrs.entity.param.TaskOverToWms;
import com.zy.asrs.service.*;
import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.News;
import com.zy.core.CrnThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
@@ -43,6 +44,11 @@
private CrnSlave slave;
private CrnProtocol crnProtocol;
private boolean resetFlag = false;
+
+ /**
+ * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪
+ */
+ private boolean backHpFlag = false;
@Value("${wms.url}")
private String wmsUrl;
@@ -124,16 +130,26 @@
* 鍒濆鍖栧爢鍨涙満
*/
private void initCrnProtocol(){
- crnProtocol = new CrnProtocol();
- crnProtocol.setMode((short) 0);
- crnProtocol.setStatus((short) 0);
- crnProtocol.setTaskNo((short) 0);
- crnProtocol.setTaskFinish((short) 0);
- crnProtocol.setValid((short) 0);
- crnProtocol.setBay((short) 0);
- crnProtocol.setLevel((short) 0);
- crnProtocol.setRow((short) 0);
- crnProtocol.setLane((short) 0);
+ if (null == crnProtocol) {
+ crnProtocol = new CrnProtocol();
+ }
+ crnProtocol.setMode((short) -1);
+// crnProtocol.setTaskNo((short)0);
+ crnProtocol.setStatus((short)-1);
+ crnProtocol.setBay((short)0);
+ crnProtocol.setLevel((short)0);
+ crnProtocol.setForkPos((short) -1);
+ crnProtocol.setLiftPos((short) -1);
+ crnProtocol.setWalkPos((short)0);
+ crnProtocol.setLoaded((short)0);
+ crnProtocol.setAlarm((short)0);
+ crnProtocol.setxSpeed((short) 0);
+ crnProtocol.setySpeed((short) 0);
+ crnProtocol.setzSpeed((short) 0);
+ crnProtocol.setxDistance((short) 0);
+ crnProtocol.setyDistance((short) 0);
+ crnProtocol.setxDuration((short) 0);
+ crnProtocol.setyDuration((short) 0);
}
@Override
@@ -162,153 +178,74 @@
* 璇诲彇鐘舵��
*/
private void readStatus(){
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
- OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
- if (result.IsSuccess) {
- if (null == crnProtocol) {
- crnProtocol = new CrnProtocol();
- }
- crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
- crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2));
- crnProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 4));
- crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6));
- crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8));
- crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
- crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
- crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14));
- crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16));
- crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18));
-// crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20));
-// 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().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));
+ try {
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
+ if (result.IsSuccess) {
+ if (null == crnProtocol) {
+ crnProtocol = new CrnProtocol();
+ crnProtocol.setCrnNo(slave.getId());
+ }
+ crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
+ crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2));
+ crnProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 4));
+ crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6));
+ crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8));
+ crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
+ crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
+ crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14));
+ crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16));
+ crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18));
+ crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20));
+ 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));
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
- // 澶嶄綅淇″彿
- if (crnProtocol.getTaskFinish() == 0) {
- if (resetFlag) {
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setAckFinish((short)1);
- if (write(crnCommand)) {
- resetFlag = false;
-
- //鍫嗗灈鏈轰换鍔″畬鎴愬悗璁块棶wms璇锋眰浠诲姟瀹屾垚 locationDone 璐т綅澶勭悊瀹屾垚
- TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
- TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no",crnProtocol.getTaskNo()));
- String tasktype = null;
- switch (taskWrk.getIoType()){
- case 1:
- tasktype= "RK";
- break;
- case 2:
- tasktype= "CK";
- break;
- case 3:
- tasktype= "YK";
- break;
- default:
- tasktype= "鏈煡";
+ // 澶嶄綅淇″彿
+ if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
+ if (resetFlag) {
+ if(crnProtocol.getTaskNo()==9999){
+ backHpFlag = false;
}
- Map<String, Object> map = new HashMap<>();
- map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
- TaskOverToWms taskOverToWms = new TaskOverToWms();
- taskOverToWms.setFeedbackFrom("WCS"); //鏉ユ簮
- taskOverToWms.setWarehouseId("1688469798893297665"); //浠撳簱鏍囪瘑
- taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙�
- taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷
- taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜
- if (taskWrk.getIoType() ==1){
- taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
- taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
- }else if (taskWrk.getIoType() ==2){
- Map<Integer,String> map1 = new HashMap<>();
- map1.put(102,"J-1101");
- map1.put(106,"J-1103");
- map1.put(110,"J-1105");
- map1.put(114,"J-1107");
- map1.put(118,"J-1109");
- map1.put(122,"J-1111");
- map1.put(305,"H-1101");
- map1.put(405,"G-1101");
- taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //璁惧缂栫爜
- taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣�
- } else if (taskWrk.getIoType() == 3) {
- taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
- taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint());
- taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setAckFinish((short)1);
+ if (write(crnCommand)) {
+ resetFlag = false;
}
- taskOverToWms.setTaskStatus("location_done"); //浠诲姟鐘舵��
- String response = null;
- try {
- response = new HttpHandler.Builder()
- .setHeaders(map)
- .setUri("10.32.53.195:8080")
- .setPath("wcsManager/wcsInterface/taskStatusFeedback")
- .setJson(JSON.toJSONString(taskOverToWms))
- .build()
- .doPost();
- }catch (Exception e){
- log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
- }
- ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
- apiLogService.save("Wms浠诲姟瀹屾垚鎺ュ彛"
- ,"10.32.53.195:8080"+"/wcsManager/wcsInterface/taskStatusFeedback"
- ,null
- ,"127.0.0.1"
- ,JSON.toJSONString(taskOverToWms)
- ,response
- ,true
- );
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)){
- if (taskWrk.getIoType() == 3){
- taskWrk.setWrkSts(4);
- }
- taskWrk.setStatus(5);
- if (!taskWrkService.update(taskWrk,new EntityWrapper<TaskWrk>().eq("wrk_no",crnProtocol.getTaskNo()))){
- log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�");
- }
-
- log.info("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛鎴愬姛");
- }else {
- log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛瀹屾垚锛屼絾杩斿洖澶辫触");
- }
-
}
-
-
-
}
+
+ try {
+ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+ BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+ BasCrnp basCrnp = new BasCrnp();
+ basCrnp.setCrnNo(slave.getId());
+ basCrnp.setCrnSts((int)crnProtocol.getMode());
+ if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
+ News.error(methodName + ":鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ }
+ } catch (Exception ignore){}
+
+ } else {
+ initCrnProtocol();
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+ News.error(methodName + ":璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
-
- try {
- // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
- BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
- BasCrnp basCrnp = new BasCrnp();
- basCrnp.setCrnNo(slave.getId());
- basCrnp.setCrnSts((int)crnProtocol.getMode());
- if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
- log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
- }
- } catch (Exception ignore){}
-
- DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
- deviceErrorService.deleteDeviceError("crn", slave.getId());
- } else {
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
- DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
- deviceErrorService.addDeviceError("crn", slave.getId(), "璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐�");
+ } catch (Exception e) {
+ e.printStackTrace();
+ OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ News.error(methodName + ":璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ initCrnProtocol();
}
}
@@ -374,7 +311,7 @@
String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
if (null == command) {
- log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+ News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
return false;
}
// convertRow(command);
@@ -392,38 +329,35 @@
// array[9] = command.getSourceStaNo();
// array[10] = command.getDestinationStaNo();
array[9] = command.getCommand();
-
OperateResult result = siemensNet.Write("DB100.0", array);
- int i=0;
- do{
- //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
- Thread.sleep(200);
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
- if (resultRead.IsSuccess) {
- CrnCommand one = new CrnCommand();
- one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
- one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
- one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
- one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
- one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
- one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
- one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
- one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
- if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
- || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
- || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
- || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
- ){
- i++;
- log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}]>>>>閲嶅啓[{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
- result = siemensNet.Write("DB100.0", array);
- }else{
- i=5;
- }
+ //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
+ if (resultRead.IsSuccess) {
+ CrnCommand one = new CrnCommand();
+ one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+ one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+ one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+ one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+ one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+ one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+ one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+ one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+ if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
+ || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
+ || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
+ || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
+ ){
+ News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
}
- }while(i<5);
+ }
+ if (command.getAckFinish() == 0) {
+ short commandFinish = 1;
+ Thread.sleep(100L);
+ result = siemensNet.Write("DB100.18", commandFinish);
+ }
try {
// 鏃ュ織璁板綍
@@ -451,12 +385,12 @@
if (result != null && result.IsSuccess) {
Thread.sleep(200);
this.readStatus();
- log.info(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+ News.info(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
return true;
} else {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
- log.error(methodName + ":鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ News.error(methodName + ":鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
return false;
}
}
@@ -464,112 +398,112 @@
/**
* 鍐欏叆鏁版嵁
*/
- private boolean write2(CrnCommand command){
- if (null == command) {
- log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
- return false;
- }
- //杞崲鍓嶅厠闅嗕竴浠�
- CrnCommand crnCommand = new CrnCommand();
- crnCommand.setCrnNo(command.getCrnNo());
- crnCommand.setAckFinish(command.getAckFinish());
- crnCommand.setTaskNo(command.getTaskNo());
- crnCommand.setTaskMode(command.getTaskMode());
- crnCommand.setSourcePosX(command.getSourcePosX());
- crnCommand.setSourcePosY(command.getSourcePosY());
- crnCommand.setSourcePosZ(command.getSourcePosZ());
- crnCommand.setDestinationPosX(command.getDestinationPosX());
- crnCommand.setDestinationPosY(command.getDestinationPosY());
- crnCommand.setDestinationPosZ(command.getDestinationPosZ());
-// crnCommand.setSourceStaNo(command.getSourceStaNo());
-// crnCommand.setDestinationStaNo(command.getDestinationStaNo());
- crnCommand.setCommand(command.getCommand());
- if (command.getTaskNo() == 0 && command.getAckFinish() == 0 && command.getAuto() != 1) {
- command.setTaskNo((short) 999);
- }
-
- command.setCrnNo(slave.getId());
- short[] array = new short[10];
- if (Cools.isEmpty(command.getAckFinish())) {
- array[0] = 5;
- } else {
- array[0] = command.getAckFinish();
- }
- array[1] = command.getTaskNo();
- array[2] = command.getTaskMode();
- array[3] = command.getSourcePosX();
- array[4] = command.getSourcePosY();
- array[5] = command.getSourcePosZ();
- array[6] = command.getDestinationPosX();
- array[7] = command.getDestinationPosY();
- array[8] = command.getDestinationPosZ();
- array[9] = command.getCommand();
- // 浣滀笟淇℃伅
- OperateResult result = siemensNet.Write("DB100.0", array);
- // 鏃ュ織璁板綍
- if (command.getAckFinish() != 1) {
- BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
- BasCrnOpt basCrnOpt = new BasCrnOpt(
- command.getTaskNo().intValue(), // 浠诲姟鍙�
- command.getCrnNo(), // 鍫嗗灈鏈篬闈炵┖]
- new Date(), // 涓嬪彂鏃堕棿
- command.getTaskModeType() == null ? null : command.getTaskModeType().toString(), // 妯″紡
- command.getSourcePosX().intValue(), // 婧愭帓
- command.getSourcePosY().intValue(), // 婧愬垪
- command.getSourcePosZ().intValue(), // 婧愬眰
- null, // 婧愮珯
- command.getDestinationPosX().intValue(), // 鐩爣鎺�
- command.getDestinationPosY().intValue(), // 鐩爣鍒�
- command.getDestinationPosZ().intValue(), // 鐩爣灞�
- null, // 鐩爣绔�
- null, // 鍝嶅簲缁撴灉
- null, // 淇敼鏃堕棿
- null // 淇敼浜哄憳
- );
- bean.insert(basCrnOpt);
- }
-// } catch (Exception ignore) {}
-
- //鏇存柊鍛戒护鏃ュ織
- CommandInfoLogService commandInfoLogService = SpringUtils.getBean(CommandInfoLogService.class);
- CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
- CommandInfo commandInfo = commandInfoService.selectById(command.getCommandId());
- if (Cools.isEmpty(commandInfo)){
- commandInfo = commandInfoService.selectOne(new EntityWrapper<CommandInfo>()
- .eq("wrk_no",crnProtocol.getTaskNo())
- .eq("device","Crn"));
- }
- CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
- commandInfoLog.setId(null);
- if (result.IsSuccess) {
- Date now = new Date();
- //鏇存柊鎸囦护鏃ュ織
- commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛");
- commandInfoLogService.insert(commandInfoLog);
-
- //绾跨▼鏆傚瓨鎸囦护ID
- crnProtocol.setCommandId(command.getCommandId());
-
- //鏇存柊鎸囦护鐘舵��
- commandInfo.setCommandStatus(CommandStatusType.EXECUTE.id);//鎵ц涓�
- commandInfo.setExecuteTime(now);
- commandInfoService.updateById(commandInfo);
-
- //鏇存柊浠诲姟姝ュ簭
- TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
- TaskWrk taskWrk = taskWrkService.selectByWrkNo(command.getTaskNo().intValue());
- if (taskWrk != null) {
- taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//鏇存柊鎸囦护姝ュ簭
- taskWrkService.updateById(taskWrk);
- }
-
-
- } else {
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
- }
- return true;
- }
+// private boolean write2(CrnCommand command){
+// if (null == command) {
+// log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+// return false;
+// }
+// //杞崲鍓嶅厠闅嗕竴浠�
+// CrnCommand crnCommand = new CrnCommand();
+// crnCommand.setCrnNo(command.getCrnNo());
+// crnCommand.setAckFinish(command.getAckFinish());
+// crnCommand.setTaskNo(command.getTaskNo());
+// crnCommand.setTaskMode(command.getTaskMode());
+// crnCommand.setSourcePosX(command.getSourcePosX());
+// crnCommand.setSourcePosY(command.getSourcePosY());
+// crnCommand.setSourcePosZ(command.getSourcePosZ());
+// crnCommand.setDestinationPosX(command.getDestinationPosX());
+// crnCommand.setDestinationPosY(command.getDestinationPosY());
+// crnCommand.setDestinationPosZ(command.getDestinationPosZ());
+//// crnCommand.setSourceStaNo(command.getSourceStaNo());
+//// crnCommand.setDestinationStaNo(command.getDestinationStaNo());
+// crnCommand.setCommand(command.getCommand());
+// if (command.getTaskNo() == 0 && command.getAckFinish() == 0 && command.getAuto() != 1) {
+// command.setTaskNo((short) 999);
+// }
+//
+// command.setCrnNo(slave.getId());
+// short[] array = new short[10];
+// if (Cools.isEmpty(command.getAckFinish())) {
+// array[0] = 5;
+// } else {
+// array[0] = command.getAckFinish();
+// }
+// array[1] = command.getTaskNo();
+// array[2] = command.getTaskMode();
+// array[3] = command.getSourcePosX();
+// array[4] = command.getSourcePosY();
+// array[5] = command.getSourcePosZ();
+// array[6] = command.getDestinationPosX();
+// array[7] = command.getDestinationPosY();
+// array[8] = command.getDestinationPosZ();
+// array[9] = command.getCommand();
+// // 浣滀笟淇℃伅
+// OperateResult result = siemensNet.Write("DB100.0", array);
+// // 鏃ュ織璁板綍
+// if (command.getAckFinish() != 1) {
+// BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
+// BasCrnOpt basCrnOpt = new BasCrnOpt(
+// command.getTaskNo().intValue(), // 浠诲姟鍙�
+// command.getCrnNo(), // 鍫嗗灈鏈篬闈炵┖]
+// new Date(), // 涓嬪彂鏃堕棿
+// command.getTaskModeType() == null ? null : command.getTaskModeType().toString(), // 妯″紡
+// command.getSourcePosX().intValue(), // 婧愭帓
+// command.getSourcePosY().intValue(), // 婧愬垪
+// command.getSourcePosZ().intValue(), // 婧愬眰
+// null, // 婧愮珯
+// command.getDestinationPosX().intValue(), // 鐩爣鎺�
+// command.getDestinationPosY().intValue(), // 鐩爣鍒�
+// command.getDestinationPosZ().intValue(), // 鐩爣灞�
+// null, // 鐩爣绔�
+// null, // 鍝嶅簲缁撴灉
+// null, // 淇敼鏃堕棿
+// null // 淇敼浜哄憳
+// );
+// bean.insert(basCrnOpt);
+// }
+//// } catch (Exception ignore) {}
+//
+// //鏇存柊鍛戒护鏃ュ織
+// CommandInfoLogService commandInfoLogService = SpringUtils.getBean(CommandInfoLogService.class);
+// CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
+// CommandInfo commandInfo = commandInfoService.selectById(command.getCommandId());
+// if (Cools.isEmpty(commandInfo)){
+// commandInfo = commandInfoService.selectOne(new EntityWrapper<CommandInfo>()
+// .eq("wrk_no",crnProtocol.getTaskNo())
+// .eq("device","Crn"));
+// }
+// CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
+// commandInfoLog.setId(null);
+// if (result.IsSuccess) {
+// Date now = new Date();
+// //鏇存柊鎸囦护鏃ュ織
+// commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛");
+// commandInfoLogService.insert(commandInfoLog);
+//
+// //绾跨▼鏆傚瓨鎸囦护ID
+// crnProtocol.setCommandId(command.getCommandId());
+//
+// //鏇存柊鎸囦护鐘舵��
+// commandInfo.setCommandStatus(CommandStatusType.EXECUTE.id);//鎵ц涓�
+// commandInfo.setExecuteTime(now);
+// commandInfoService.updateById(commandInfo);
+//
+// //鏇存柊浠诲姟姝ュ簭
+// TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
+// TaskWrk taskWrk = taskWrkService.selectByWrkNo(command.getTaskNo().intValue());
+// if (taskWrk != null) {
+// taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//鏇存柊鎸囦护姝ュ簭
+// taskWrkService.updateById(taskWrk);
+// }
+//
+//
+// } else {
+// OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+// log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+// }
+// return true;
+// }
private boolean writeAuto(CrnCommand command){
if (null == command) {
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index a8f5b06..53f6ee8 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -205,11 +205,13 @@
* 璇诲彇鐘舵�� ====> 鏁村潡plc
*/
private void read() throws InterruptedException {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
// // 鏇存柊鍏ュ嚭搴撴ā寮�
// updateIoMode();
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*4));
if (result.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
@@ -219,11 +221,32 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setWorkNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙�
+ staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4)); // 宸ヤ綔鍙�
- staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔�
-
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*4 + 2)); // 鐩爣绔�
+ }
+ }
+// Thread.sleep(200);
+// OperateResultExOne<byte[]> result0 = siemensS7Net.Read("DB101.0", (short) 186);
+// if (result0.IsSuccess) {
+// for (int i = 0; i < 93; i++) {
+// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+// StaProtocol staProtocol = station.get(siteId);
+// if (null == staProtocol) {
+// staProtocol = new StaProtocol();
+// staProtocol.setSiteId(siteId);
+// station.put(siteId, staProtocol);
+// }
+// staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result0.Content, i*2)); // 鐩爣绔�
+// }
+// }
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.100", (short) (staNoSize * 2));
+ if (result1.IsSuccess) {
+ for (int i = 0; i < staNoSize; i++) {
+ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, i*2, 1);
+ StaProtocol staProtocol = station.get(siteId);
staProtocol.setAutoing(status[0]); // 鑷姩
staProtocol.setLoading(status[1]); // 鏈夌墿
staProtocol.setInEnable(status[2]); // 鍙叆
@@ -239,144 +262,52 @@
}
}
-// OperateResultExOne<byte[]> resultAgvAndPlc = siemensS7Net.Read("DB102.0", (short) 30);
-// if (resultAgvAndPlc.IsSuccess) {
-// for (int i = 0; i < staNoSize; i++) {
-// int sign =(i+2)/2-1;
-// if ((i+2)%2!=0){
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4)); // 鍏佽鍙栬揣
-// staProtocol.setAgvStartPlace((short)0); // 鍏佽鏀捐揣
-// continue;
-// }
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6)); // 鍏佽鍙栬揣
-// staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2)); // 鍏佽鏀捐揣
-// }
-// }
-
-// OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30);
-// if (resultAgvAndPlcOk.IsSuccess) {
-// for (int i = 0; i < staNoSize; i++) {
-// int sign =(i+2)/2-1;
-// if ((i+2)%2!=0){
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4)); // 鍏佽鍙栬揣
-// staProtocol.setAgvTargetPlace((short)0); // 鍏佽鏀捐揣
-// continue;
-// }
-// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// try{
-// staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6)); // 鍙栬揣瀹屾垚
-// if (staProtocol.getAgvTargetPick()!=0){
-// System.out.println(staProtocol.getAgvTargetPick());
-// }
-// staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2)); // 鏀捐揣瀹屾垚
-// if (staProtocol.getAgvTargetPlace()!=0){
-// System.out.println(staProtocol.getAgvTargetPlace());
-// }
-// }catch (Exception e){
-// log.error(""+e);
-// }
-// }
-// }
-
-
- if (slave.getId() == 1) {
- //鏉$爜
- //Thread.sleep(200);
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.848.0", (short) 8);
- if (result2.IsSuccess) {
- for (int i = 0; i < 1; i++) {
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
- if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
- barcodeThread.setBarcode(barcode);
- }
- }
- }
-
- //澶栧舰妫�娴�
- OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.810.0", (short) (barcodeSize*1));
- StaProtocol staProtocol1 = station.get(116);
- boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, 0, 1);
- staProtocol1.setFrontErr(status1[0]);
- staProtocol1.setBackErr(status1[1]);
- staProtocol1.setHighErr(status1[2]);
- staProtocol1.setLeftErr(status1[3]);
- staProtocol1.setRightErr(status1[4]);
- staProtocol1.setWeightErr(status1[5]);
- staProtocol1.setBarcodeErr(status1[6]);
-
- OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4));
- if (resultErr.IsSuccess) {
- for (int i = 0; i < staNoSize; i++) {
- Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
- boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1);
- StaProtocol staProtocol = station.get(siteId);
- staProtocol.setBreakerErr(status[0]);
- staProtocol.setInfraredErr(status[1]);
- staProtocol.setOutTimeErr(status[2]);
- staProtocol.setSeizeSeatErr(status[3]);
- staProtocol.setWrkYgoodsN(status[4]);
- staProtocol.setInverterErr(status[5]);
- staProtocol.setContactErr(status[6]);
- staProtocol.setUpcontactErr(status[7]);
-
+ //鏉$爜鎵弿鍣�
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.150",(short)(barcodeSize*8));
+ if (result2.IsSuccess) {
+ for (int i = 0; i < barcodeSize; i++) {
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
+ if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ barcodeThread.setBarcode(barcode);
}
}
}
+ //RGV灏忚溅
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.160",(short)2);
+ if (result3.IsSuccess) {
+ Integer siteId = 16;
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
+ }
+ staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 0)));
+ }
+
+ /**
+ * 姣嶆墭鐩樺嚭搴�
+ */
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB100.172",(short)2);
+ if (result4.IsSuccess) {
+ Integer siteId = 12;
+ StaProtocol staProtocol = station.get(siteId);
+ if (null == staProtocol) {
+ staProtocol = new StaProtocol();
+ staProtocol.setSiteId(siteId);
+ station.put(siteId, staProtocol);
+ }
+ staProtocol.setAllowEmptyOut(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result4.Content, 0)));
+ }
-// //RGV鍙拌溅浣嶇疆
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4);
-// if (result3.IsSuccess) {
-// for (int i = 0; i < 2; i++) {
-// Integer siteId = i==0 ? 1 : 2; // 绔欑偣缂栧彿
-// StaProtocol staProtocol = station.get(siteId);
-// if (null == staProtocol) {
-// staProtocol = new StaProtocol();
-// staProtocol.setSiteId(siteId);
-// station.put(siteId, staProtocol);
-// }
-// staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2)));
-//// String aa = staProtocol.getNearbySta();
-//// System.out.println(siteId + "===>>" + staProtocol.getNearbySta());
-// }
-// }
-// OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0");
-// if (result2.IsSuccess) {
-// this.ioMode = IoModeType.get(result2.Content);
-// }
-
- if (result.IsSuccess ) {
+ if (result.IsSuccess && result1.IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
@@ -395,16 +326,12 @@
} catch (Exception e) {
e.printStackTrace();
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
- log.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+ log.error(methodName + ":鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
- DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
- deviceErrorService.deleteDeviceError("devp", slave.getId());
} else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-// log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
- DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
- deviceErrorService.addDeviceError("devp", slave.getId(), "璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐�");
+// News.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
}
}
@@ -412,85 +339,33 @@
* 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
*/
private void writeAgvOk(StaProtocol staProtocol) throws InterruptedException {
+ String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+
if (null == staProtocol) {
return;
}
ArrayList<Integer> staNos = getStaNo();
int index = staNos.indexOf(staProtocol.getSiteId());
- if (staProtocol.getAgvTypeSign()==0 || staProtocol.getAgvTypeSign()==2 ){ //0鍙栬揣
- switch (staProtocol.getSiteId()){
- case 100:
- index=32;
- break;
- case 101:
- index=34;
- break;
- case 102:
- index=38;
- break;
- case 103:
- index=40;
- break;
- case 104:
- index=44;
- break;
- case 105:
- index=46;
- break;
- case 106:
- index=50;
- break;
- case 107:
- index=52;
- break;
- default:
- return;
- }
- }else {
- switch (staProtocol.getSiteId()){
- case 100:
- index=30;
- break;
- case 102:
- index=36;
- break;
- case 104:
- index=42;
- break;
- case 106:
- index=48;
- break;
- default:
- return;
- }
- }
+ short[] array = new short[2];
+ array[0] = staProtocol.getWorkNo();
+ array[1] = staProtocol.getStaNo();
+ OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
- OperateResult write = null;
- //浠诲姟涓嬪彂娆℃暟
- int writeCount = 0;
- do {
- short textWrite = 1;// 浠诲姟瀹屾垚
- if (staProtocol.getAgvTypeSign()>1){
- textWrite = 0;// 浠诲姟澶嶄綅
- }
- write = siemensS7Net.Write("DB102." + index, textWrite);
- if(write.IsSuccess){
- writeCount=6;
- }else {
- writeCount++;
- log.error("鍐欏叆杈撻�佺嚎鍙栨斁璐у畬鎴愬懡浠ゅ悗璇诲彇澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
- }
- }while (writeCount<5);
+// OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+// Thread.sleep(500);
+// OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔�
if (!write.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));
+ log.error(methodName + ":鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎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));
+ log.info(methodName + ":杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
}
-
-
}
private void write(StaProtocol staProtocol) throws InterruptedException {
if (null == staProtocol) {
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 9af468b..bcbe85f 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -2,72 +2,144 @@
doubleDeep: true #鍙屾繁
doubleLocs: 1,4,5,8 #鍙屾繁搴撲綅鎺掑彿 1,4,5,8
groupCount: 4 #涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
- crn[0]: #鍫嗗灈鏈�1
+ # 鍫嗗灈鏈�1
+ crn[0]:
id: 1
ip: 10.10.10.110
- slot: 0
- demo: false
- rack: 0
- offset: 2 #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
port: 102
- crnOutStn[0]: #鍫嗗灈鏈哄嚭搴撶珯鐐�
- staNo: 125
+ rack: 0
+ slot: 0
+ # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+ offset: 2
+ demo: false
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 007
row: 3
bay: 1
- lev: 2
+ lev: 1
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- crnInStn[0]: #鍫嗗灈鏈哄叆搴撶珯鐐�1
- staNo: 100
+ staNo: 008
row: 2
bay: 1
- lev: 2
- backSta: 102
- devpPlcId: ${wcs-slave.devp[0].id}
- crn[1]: #鍫嗗灈鏈�2
+ lev: 1
+ # 鍫嗗灈鏈�2
+ crn[1]:
id: 2
ip: 10.10.10.120
- slot: 0
- demo: false
- rack: 0
- offset: 2 #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
port: 102
- crnOutStn[0]: #鍫嗗灈鏈哄嚭搴撶珯鐐�
- staNo: 115
+ rack: 0
+ slot: 0
+ # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+ offset: 2
+ demo: false
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 005
row: 7
bay: 1
- lev: 2
+ lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- crnInStn[0]: #鍫嗗灈鏈哄叆搴撶珯鐐�1
- staNo: 120
+ staNo: 006
row: 6
bay: 1
- lev: 2
- backSta: 106
- devpPlcId: ${wcs-slave.devp[0].id}
- devp[0]: #杈撻�佺嚎
- id: 1
+ lev: 1
+ # 鍫嗗灈鏈�3
+ crn[2]:
+ id: 3
ip: 10.10.10.130
- rack: 0
port: 102
+ rack: 0
slot: 0
- emptyInSta[0]: #绌烘澘鍏ュ簱鍙�0
- staNo: 116
- inSta[0]: #鍏ュ簱鍙�1
- staNo: 116
- backSta: 110
- barcode: ${wcs-slave.barcode[0].id}
- outSta[0]: #鍑哄簱鍙�1
- staNo: 105
- outSta[1]: #鍑哄簱鍙�2
- staNo: 107
- outSta[2]: #鍑哄簱鍙�2
- staNo: 109
- outSta[3]: #鍑哄簱鍙�1
- staNo: 110
- barcode[0]: #鏉$爜鎵弿浠�
- port: 51236
- ip: 172.17.91.39
+ # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+ offset: 2
+ demo: false
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 003
+ row: 11
+ bay: 1
+ lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 004
+ row: 10
+ bay: 1
+ lev: 1
+ # 鍫嗗灈鏈�4
+ crn[3]:
+ id: 4
+ ip: 10.10.10.140
+ port: 102
+ rack: 0
+ slot: 0
+ # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+ offset: 2
+ demo: false
+ # 鍫嗗灈鏈哄叆搴撶珯鐐�
+ crnInStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 001
+ row: 15
+ bay: 1
+ lev: 1
+ # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+ crnOutStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 002
+ row: 14
+ bay: 1
+ lev: 1
+ # 杈撻�佺嚎
+ devp[0]:
id: 1
+ ip: 10.10.10.30
+ port: 102
+ rack: 0
+ slot: 0
+ # 鍏ュ簱鍙�1
+ inSta[0]:
+ staNo: 15
+ barcode: ${wcs-slave.barcode[0].id}
+ led: ${wcs-slave.led[0].id}
+ # 绌烘澘鍏ュ簱鍙�1
+ emptyInSta[0]:
+ staNo: 15
+ # 鍑哄簱鍙�1
+ outSta[0]:
+ staNo: 11
+ # 鎷f枡鍏ュ簱鍙�1
+ pickSta[0]:
+ staNo: 15
+ barcode: ${wcs-slave.barcode[0].id}
+
+ # 鏉$爜鎵弿浠�
+ barcode[0]:
+ id: 1
+ ip: 10.10.10.55
+ port: 51236
+ # LED1
+ led[0]:
+ id: 1
+ ip: 10.10.10.81
+ port: 5005
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staArr: 15
+ # LED2
+ led[1]:
+ id: 2
+ ip: 10.10.10.202
+ port: 5005
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staArr: 11
# crn[0]: #鍫嗗灈鏈�1
# rack: 0
# offset: 2 #鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 3f61057..e5ad29d 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
- port: 8080
+ port: 8081
servlet:
context-path: /@pom.build.finalName@
@@ -8,7 +8,7 @@
name: @pom.build.finalName@
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://127.0.0.1:1433;databasename=rywxasrs
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=sxdtasrs
username: sa
password: sa@123
mvc:
@@ -37,7 +37,7 @@
#License鐩稿叧閰嶇疆
license:
- subject: jdzwcs
+ subject: dtwcs
publicAlias: publicCert
storePass: public_zhongyang_123456789
licensePath: license.lic
diff --git a/src/main/webapp/static/wcs/js/common.js b/src/main/webapp/static/wcs/js/common.js
index 44a248f..39fd058 100644
--- a/src/main/webapp/static/wcs/js/common.js
+++ b/src/main/webapp/static/wcs/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/jdzwcs";
+var baseUrl = "/dtwcs";
// 璧嬪��
function setVal(el, val) {
diff --git a/src/main/webapp/static/wcs/js/console.map.js b/src/main/webapp/static/wcs/js/console.map.js
index b77d4bd..6aaa765 100644
--- a/src/main/webapp/static/wcs/js/console.map.js
+++ b/src/main/webapp/static/wcs/js/console.map.js
@@ -1,382 +1,399 @@
mapInfo = {
- "mapName": "jdzwcs",
- "rackCount": 13,
+ "mapName": "dtwcs",
+ "rackCount": 16,
"crnCount": 4,
- "stbCount": 4,
+ "stbCount": 16,
"hpPosition": 0,
- "minBayNo": 1,
+ "minBayNo": 2,
"floors": 1,
"racks": [{
"type": "rack",
- "id": "rack7",
- "top": 326,
- "left": 800,
- "width": 795,
- "height": 23,
- "minBayNo": 1,
- "maxBayNo": 22,
- "hiddenArr": [1,22]
- }, {
- "type": "rack",
- "id": "rack6",
- "top": 303,
- "left": 800,
- "width": 795,
- "height": 23,
- "minBayNo": 1,
- "maxBayNo": 22,
- "hiddenArr": [1,22]
- }, {
- "type": "rack",
- "id": "rack5",
- "top": 209,
- "left": 800,
- "width": 795,
- "height": 23,
- "minBayNo": 1,
- "maxBayNo": 22,
- "hiddenArr": [1,22]
- },{
- "type": "rack",
"id": "rack4",
- "top": 232,
- "left": 800,
- "width": 795,
- "height": 23,
- "minBayNo": 1,
- "maxBayNo": 22,
- "hiddenArr": [1,22]
- }, {
- "type": "rack",
- "id": "rack3",
- "top": 182,
- "left": 800,
- "width": 795,
- "height": 23,
- "minBayNo": 1,
- "maxBayNo": 22,
- "hiddenArr": [1,22]
- }, {
- "type": "rack",
- "id": "rack2",
- "top": 159,
- "left": 800,
- "width": 795,
- "height": 23,
- "minBayNo": 1,
- "maxBayNo": 22,
- "hiddenArr": [1,22]
+ "top": 547,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
}, {
"type": "rack",
"id": "rack1",
- "top": 98,
- "left": 800,
- "width": 795,
- "height": 23,
- "minBayNo": 1,
- "maxBayNo": 22,
- "hiddenArr": [1,22]
+ "top": 639,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
}, {
"type": "rack",
- "id": "rack0",
- "top": 75,
- "left": 800,
- "width": 795,
- "height": 23,
- "minBayNo": 1,
- "maxBayNo": 22,
- "hiddenArr": [1,22]
+ "id": "rack2",
+ "top": 617,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack3",
+ "top": 569,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack8",
+ "top": 433,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack5",
+ "top": 525,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack6",
+ "top": 503,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack7",
+ "top": 455,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack12",
+ "top": 320,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack9",
+ "top": 411,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack10",
+ "top": 389,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack11",
+ "top": 342,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack16",
+ "top": 204,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack13",
+ "top": 298,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack15",
+ "top": 226,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }, {
+ "type": "rack",
+ "id": "rack14",
+ "top": 276,
+ "left": 412,
+ "width": 917,
+ "height": 22,
+ "minBayNo": 2,
+ "maxBayNo": 31
+ }],
+ "rackDescs": [{
+ "type": "rackDescs",
+ "id": "lb_desc16",
+ "text": "#1",
+ "top": 663,
+ "left": 1228,
+ "width": 30,
+ "height": 23
+ }, {
+ "type": "rackDescs",
+ "id": "lb_desc1",
+ "text": "#16",
+ "top": 181,
+ "left": 1217,
+ "width": 41,
+ "height": 23
}],
"crns": [{
"type": "crane",
- "id": "crn-2",
- "text": "2",
- "top": 268,
- "left": 855,
+ "id": "crn-1",
+ "text": "1",
+ "top": 252,
+ "left": 501,
"width": 93,
"height": 22
}, {
+ "type": "track",
+ "id": "lb_track1",
+ "text": "",
+ "top": 605,
+ "left": 332,
+ "width": 1042,
+ "height": 2
+ }, {
"type": "crane",
- "id": "crn-1",
- "text": "1",
- "top": 132,
- "left": 855,
+ "id": "crn-2",
+ "text": "2",
+ "top": 367,
+ "left": 512,
"width": 93,
"height": 22
}, {
"type": "track",
"id": "lb_track2",
"text": "",
- "top": 278,
- "left": 769,
- "width": 850,
+ "top": 489,
+ "left": 332,
+ "width": 1043,
+ "height": 2
+ }, {
+ "type": "crane",
+ "id": "crn-3",
+ "text": "3",
+ "top": 481,
+ "left": 501,
+ "width": 93,
+ "height": 22
+ }, {
+ "type": "track",
+ "id": "lb_track5",
+ "text": "",
+ "top": 376,
+ "left": 333,
+ "width": 1045,
"height": 2
}, {
"type": "track",
- "id": "lb_track1",
+ "id": "lb_track4",
"text": "",
- "top": 143,
- "left": 769,
- "width": 850,
+ "top": 260,
+ "left": 335,
+ "width": 1046,
"height": 2
+ }, {
+ "type": "crane",
+ "id": "crn-4",
+ "text": "4",
+ "top": 595,
+ "left": 501,
+ "width": 93,
+ "height": 22
}],
"areas": [{
"type": "Control_floor",
"id": "tabControl_floor1",
"text": "妤煎眰",
- "top": 66,
- "left": 580,
- "width": 334,
- "height": 714,
+ "top": 68,
+ "left": 80,
+ "width": 1400,
+ "height": 680,
"floors": [{
"type": "floor",
"id": "page_floor1",
"text": "1F",
"top": 4,
- "left": 422,
- "width": 308,
- "height": 706,
+ "left": 22,
+ "width": 1374,
+ "height": 672,
"stns": [{
"type": "stn",
- "id": "site-100",
- "text": "100",
- "top": 99,
- "left": 771,
- "width": 62,
- "height": 23
- },{
+ "id": "site-016",
+ "text": "016",
+ "top": 457,
+ "left": 239,
+ "width": 69,
+ "height": 20
+ }, {
+ "type": "track",
+ "id": "lb_trCart21",
+ "text": "",
+ "top": 93,
+ "left": 243,
+ "width": 6,
+ "height": 569
+ }, {
+ "type": "track",
+ "id": "lb_trCart22",
+ "text": "",
+ "top": 93,
+ "left": 297,
+ "width": 6,
+ "height": 569
+ }, {
"type": "stn",
- "id": "site-101",
- "text": "101",
- "top": 99,
- "left": 707,
- "width": 62,
- "height": 23
- },{
+ "id": "site-015",
+ "text": "015",
+ "top": 95,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-102",
- "text": "102",
- "top": 99,
- "left": 643,
- "width": 62,
- "height": 23
- },{
+ "id": "site-014",
+ "text": "014",
+ "top": 95,
+ "left": 412,
+ "width": 92,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-103",
- "text": "103",
- "top": 99,
- "left": 579,
- "width": 62,
- "height": 23
- },{
+ "id": "site-013",
+ "text": "013",
+ "top": 117,
+ "left": 412,
+ "width": 92,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-104",
- "text": "104",
- "top": 124,
- "left": 579,
- "width": 62,
- "height": 34
- },{
+ "id": "site-012",
+ "text": "012",
+ "top": 139,
+ "left": 412,
+ "width": 92,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-125",
- "text": "125",
- "top": 160,
- "left": 771,
- "width": 62,
- "height": 23
- },{
+ "id": "site-011",
+ "text": "011",
+ "top": 161,
+ "left": 412,
+ "width": 92,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-124",
- "text": "124",
- "top": 160,
- "left": 707,
- "width": 62,
- "height": 23
- },{
+ "id": "site-010",
+ "text": "010",
+ "top": 183,
+ "left": 412,
+ "width": 92,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-123",
- "text": "123",
- "top": 160,
- "left": 643,
- "width": 62,
- "height": 23
- },{
+ "id": "site-009",
+ "text": "009",
+ "top": 183,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-122",
- "text": "122",
- "top": 160,
- "left": 579,
- "width": 62,
- "height": 23
- },{
+ "id": "site-008",
+ "text": "008",
+ "top": 228,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-121",
- "text": "121",
- "top": 186,
- "left": 579,
- "width": 62,
- "height": 42
- },{
+ "id": "site-007",
+ "text": "007",
+ "top": 278,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-120",
- "text": "120",
- "top": 231,
- "left": 771,
- "width": 62,
- "height": 23
- },{
+ "id": "site-006",
+ "text": "006",
+ "top": 344,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-119",
- "text": "119",
- "top": 231,
- "left": 707,
- "width": 62,
- "height": 23
- },{
+ "id": "site-005",
+ "text": "005",
+ "top": 391,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-118",
- "text": "118",
- "top": 231,
- "left": 643,
- "width": 62,
- "height": 23
- },{
+ "id": "site-004",
+ "text": "004",
+ "top": 457,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-117",
- "text": "117",
- "top": 231,
- "left": 579,
- "width": 62,
- "height": 23
- },{
+ "id": "site-003",
+ "text": "003",
+ "top": 505,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-116",
- "text": "116",
- "top": 256,
- "left": 579,
- "width": 62,
- "height": 46
- },{
+ "id": "site-002",
+ "text": "002",
+ "top": 571,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }, {
"type": "stn",
- "id": "site-115",
- "text": "115",
- "top": 304,
- "left": 771,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-114",
- "text": "114",
- "top": 304,
- "left": 707,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-113",
- "text": "113",
- "top": 304,
- "left": 643,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-112",
- "text": "112",
- "top": 304,
- "left": 579,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-105",
- "text": "105",
- "top": 99,
- "left": 515,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-106",
- "text": "106",
- "top": 124,
- "left": 515,
- "width": 62,
- "height": 34
- },{
- "type": "stn",
- "id": "site-107",
- "text": "107",
- "top": 160,
- "left": 515,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-108",
- "text": "108",
- "top": 186,
- "left": 515,
- "width": 62,
- "height": 42
- },{
- "type": "stn",
- "id": "site-109",
- "text": "109",
- "top": 231,
- "left": 515,
- "width": 62,
- "height": 70
- },{
- "type": "stn",
- "id": "site-110",
- "text": "110",
- "top": 304,
- "left": 515,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-111",
- "text": "111",
- "top": 329,
- "left": 515,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-1001",
- "text": "1001",
- "top": 99,
- "left": 451,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-1002",
- "text": "1002",
- "top": 160,
- "left": 451,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-1003",
- "text": "1003",
- "top": 231,
- "left": 451,
- "width": 62,
- "height": 23
- },{
- "type": "stn",
- "id": "site-1004",
- "text": "1004",
- "top": 304,
- "left": 451,
- "width": 62,
- "height": 23
- } ]
+ "id": "site-001",
+ "text": "001",
+ "top": 619,
+ "left": 310,
+ "width": 100,
+ "height": 20
+ }]
}]
}]
}
\ No newline at end of file
diff --git a/src/main/webapp/static/wms/js/common.js b/src/main/webapp/static/wms/js/common.js
index 4882225..2538189 100644
--- a/src/main/webapp/static/wms/js/common.js
+++ b/src/main/webapp/static/wms/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/jdzwcs";
+var baseUrl = "/dtwcs";
// 璇︽儏绐楀彛-楂樺害
var detailHeight = '80%';
--
Gitblit v1.9.1