From e89d0cdf971ecb56d4d323f17afff2e3e139a58d Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期二, 15 七月 2025 13:00:00 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 37 ++++++++++++
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 68 ++++++++++++++++++++++
src/main/java/com/zy/core/MainProcess.java | 54 +++++++++---------
3 files changed, 132 insertions(+), 27 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 73e31c8..6f9f172 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -941,6 +941,41 @@
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) {
+ TaskWrk taskWrkNow3 = taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo());
+ if (taskWrkNow3.getWrkSts() == 3){
+ try{
+ // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈哄贩閬撶紪鍙�
+ crnCommand.setTaskNo(taskWrkNow3.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.setDestinationPosX(Utils.getRowShort(taskWrkNow3.getTargetPoint())); // 鐩爣搴撲綅鍒�
+ int bay1 = Utils.getBayShort(taskWrkNow3.getTargetPoint()) + 1;
+ crnCommand.setDestinationPosY((short)bay1); // 鐩爣搴撲綅灞�
+ crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrkNow3.getTargetPoint())); // 鐩爣搴撲綅鎺�
+// crnCommand.setCommand((short) 1);
+ try{
+ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+ deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+crnCommand.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆:"+JSON.toJSONString(crnCommand.getNowTask()));
+ } catch (Exception e2){
+ }
+ if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) {
+ log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
+ devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触");
+
+ throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
+ }
+ } catch (Exception eNow3){
+
+ }
+ }
+
devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄瓨鍦ㄥ悐杞︿换鍔�");
CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟");
continue;
@@ -1118,6 +1153,39 @@
// 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
if (taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo()) != null) {
+
+ TaskWrk taskWrkNow3 = taskWrkMapper.selectCrnWorking(crnProtocol.getLaneNo());
+ if (taskWrkNow3.getWrkSts() == 12){
+ try{
+ CrnCommand command = new CrnCommand();
+ command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+ command.setLaneNo(crnProtocol.getLaneNo()); // 鍫嗗灈鏈虹紪鍙�
+ command.setTaskNo(taskWrkNow3.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+ command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
+ command.setSourcePosX(Utils.getRowShort(taskWrkNow3.getStartPoint())); // 婧愬簱浣嶆帓
+ int bayS = Utils.getBayShort(taskWrkNow3.getStartPoint()) + 1;
+ command.setSourcePosY((short)bayS); // 婧愬簱浣嶅垪
+ command.setSourcePosZ(Utils.getLevShort(taskWrkNow3.getStartPoint())); // 婧愬簱浣嶅眰
+ command.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
+ command.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
+ command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
+// command.setCommand((short) 1);
+ try{
+ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+ deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆:"+JSON.toJSONString(command.getNowTask()));
+ } catch (Exception e2){
+ }
+ if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command))) {
+ log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command));
+ devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
+ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触");
+ throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
+ }
+ } catch (Exception eNow3){
+
+ }
+ }
devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄瓨鍦ㄥ悐杞︿换鍔�");
CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鍚婅溅浠诲姟");
break;
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 91a1d16..948d3c9 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -22,7 +22,7 @@
private MainServiceImpl mainService;
// 鎵�灞炵嚎绋�
private Thread thread;
-// private Thread thread2;
+ private Thread thread2;
/**
* =====>> 寮�濮嬪伐浣�
@@ -41,14 +41,10 @@
mainService.generateStoreWrkFile(); // 缁勬墭
// mainService.generateStoreWrkFileIsEmptyMk(); // 缁勬墭 绌烘墭
mainService.generateStoreWrkFileWalk(); // wms鍏ュ簱浠诲姟涓嬪彂
- // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
- mainService.crnStnToOutStn();
// 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
mainService.crnIoExecute();
// 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
mainService.storeFinished();
- // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
- mainService.recCrnErr();
// 浠诲姟涓嬪彂
mainService.taskStart();
// 鍑哄簱 ===>> 鍫嗗灈鏈�10鍒嗛挓鏃犱换鍔″垯鍥炲埌婧愮偣
@@ -60,33 +56,37 @@
});
thread.start();
-// thread2 = new Thread(() -> {
-// while (!Thread.currentThread().isInterrupted()) {
-// try {
-// // 闂撮殧
-// Thread.sleep(200);
-// // 绯荤粺杩愯鐘舵�佸垽鏂�
-// if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
-// continue;
-// }
-// // 杈撻�佺嚎寮傚父淇℃伅璁板綍
-//// mainService.recDevErr();
-// // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
-//// mainService.ledExecute(9);
-// // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
-//// mainService.ledReset(10);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
-// });
-// thread2.start();
+ thread2 = new Thread(() -> {
+ while (!Thread.currentThread().isInterrupted()) {
+ try {
+ // 闂撮殧
+ Thread.sleep(200);
+ // 绯荤粺杩愯鐘舵�佸垽鏂�
+ if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
+ continue;
+ }
+ // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
+ mainService.crnStnToOutStn();
+ // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
+ mainService.recCrnErr();
+ // 杈撻�佺嚎寮傚父淇℃伅璁板綍
+// mainService.recDevErr();
+ // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
+// mainService.ledExecute(9);
+ // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+// mainService.ledReset(10);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ thread2.start();
}
@PreDestroy
public void shutDown(){
if (thread != null) thread.interrupt();
-// if (thread2 != null) thread2.interrupt();
+ if (thread2 != null) thread2.interrupt();
}
}
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 6d4d560..527d5e1 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -292,6 +292,43 @@
// } catch (Exception e3){
// }
// convertRow(command);
+ if (command.getAckFinish() == 0){
+ try{
+ Thread.sleep(100L);
+ OperateResultExOne<byte[]> resultReadNOW = siemensNet.Read("DB100.0", (short) 20);
+ if (resultReadNOW.IsSuccess) {
+ CrnCommand one = new CrnCommand();
+ one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 2));
+ one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 4));
+ one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 6));
+ one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 8));
+ one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 10));
+ one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 12));
+ one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 14));
+ one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultReadNOW.Content, 16));
+ if (one.getTaskNo()>0
+ || one.getTaskMode()>0
+ || one.getSourcePosX()!=0
+ || one.getSourcePosY()!=0
+ || one.getSourcePosZ()!=0
+ || one.getDestinationPosX()!=0
+ || one.getDestinationPosY()!=0
+ || one.getDestinationPosZ()!=0
+ ){
+ try{
+ DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+ deviceErrorService.addDeviceError("CrnErr", slave.getId(), "宸烽亾鍙�"+command.getLaneNo()+";鍫嗗灈鏈哄懡浠ゅ湴鍧�琛ヤ竵閲嶆柊鍐欏叆鍙栨秷锛寃cs涓嬪彂鍦板潃瀛樺湪鏁版嵁:"+JSON.toJSONString(command.getNowTask()));
+ } catch (Exception e2){
+ }
+ return true;
+ }
+ }
+ } catch (Exception eNow){
+
+ }
+ }
+
+
command.setCrnNo(slave.getId());
short[] array = new short[10];
array[0] = command.getAckFinish();
--
Gitblit v1.9.1