From 06e1ebee3ec23ceed20477eba43b2925ef6bb0c3 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期二, 08 四月 2025 15:33:46 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 255 +++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 199 insertions(+), 56 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 3bd2c0a..1e2cff0 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -336,7 +336,7 @@
// crnCommand.setDestinationStaNo(command.getDestinationStaNo());
crnCommand.setCommand(command.getCommand());
if (command.getTaskNo() == 0 && command.getAckFinish() == 0 && command.getAuto() != 1) {
- command.setTaskNo((short) 9999);
+ command.setTaskNo((short) 999);
}
command.setCrnNo(slave.getId());
@@ -348,17 +348,72 @@
}
array[1] = command.getTaskNo();
array[2] = command.getTaskMode();
- array[3] = command.getSourcePosZ();
- array[4] = command.getSourcePosX();
- array[5] = command.getSourcePosY();
- array[6] = command.getDestinationPosZ();
- array[7] = command.getDestinationPosX();
- array[8] = command.getDestinationPosY();
+ 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 result18 = siemensNet.Write("DB100.18", (short)0);
+ try{
+ Thread.sleep(100L);
+ } catch (Exception e){}
// 浣滀笟淇℃伅
OperateResult result = siemensNet.Write("DB100.0", array);
+// int i=0;
+// do{
+// //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+// try{
+// Thread.sleep(100L);
+// } catch (Exception e){}
+// 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{
+// break;
+// }
+// }
+// }while(i<5);
+ if (command.getAckFinish() == 0) {
+ short commandFinish = 1;
+ try{
+ Thread.sleep(100L);
+ } catch (Exception e){}
+ result = siemensNet.Write("DB100.18", commandFinish);
+ int signFinish = 1;
+ while (signFinish<5){
+ OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2);
+ short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0);
+ if (transInt16 != commandFinish){
+ log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "commandFinish:"+commandFinish);
+ log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array));
+ result = siemensNet.Write("DB100.18", commandFinish);
+ signFinish++;
+ }else {
+ log.info("涓嬪彂DB100.18" + "commandFinish:"+commandFinish);
+ log.info("涓嬪彂DB100.18" + "array:"+ JSON.toJSONString(array));
+ break;
+ }
+ }
+ }
if (command.getAckFinish() != 1) {
BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
BasCrnOpt basCrnOpt = new BasCrnOpt(
@@ -401,19 +456,22 @@
one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
//one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
- one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
- one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
- one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
- one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
- one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
- one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+ 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));
// one.setSourceStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
// one.setDestinationStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
- if (!crnCommand.getTaskNo().equals(one.getTaskNo()) && !crnCommand.getAckFinish().equals(one.getAckFinish())
- && !crnCommand.getSourcePosZ().equals(one.getSourcePosZ()) && !crnCommand.getSourcePosX().equals(one.getSourcePosX()) && !crnCommand.getSourcePosY().equals(one.getSourcePosY())
- && !crnCommand.getDestinationPosZ().equals(one.getDestinationPosZ()) && !crnCommand.getDestinationPosX().equals(one.getDestinationPosX()) && !crnCommand.getDestinationPosY().equals(one.getDestinationPosY())
+ if (!one.getTaskNo().equals(array[1]) || !one.getAckFinish().equals(array[0])
+ || !one.getSourcePosZ().equals(array[5]) || !one.getSourcePosX().equals(array[3])
+ || !one.getSourcePosY().equals(array[4])
+ || !one.getDestinationPosZ().equals(array[8]) || !one.getDestinationPosX().equals(array[6])
+ || !one.getDestinationPosY().equals(array[7])
){
- log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+ log.error("浼犲弬==鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+ log.error("瀹炲彂==鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(5, crnCommand));
Thread.sleep(100);
@@ -426,6 +484,7 @@
}
}catch (Exception e){
log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+ log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�:寮傚父淇℃伅锛�"+e);
}
return true;
}
@@ -454,7 +513,7 @@
// crnCommand.setDestinationStaNo(command.getDestinationStaNo());
crnCommand.setCommand(command.getCommand());
if (command.getTaskNo() == 0 && command.getAckFinish() == 0 && command.getAuto() != 1) {
- command.setTaskNo((short) 9999);
+ command.setTaskNo((short) 999);
}
command.setCrnNo(slave.getId());
@@ -466,38 +525,95 @@
}
array[1] = command.getTaskNo();
array[2] = command.getTaskMode();
- array[3] = command.getSourcePosZ();
- array[4] = command.getSourcePosX();
- array[5] = command.getSourcePosY();
- array[6] = command.getDestinationPosZ();
- array[7] = command.getDestinationPosX();
- array[8] = command.getDestinationPosY();
+ 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 result18 = siemensNet.Write("DB100.18", (short)0);
+ try{
+ Thread.sleep(100L);
+ } catch (Exception e){}
// 浣滀笟淇℃伅
OperateResult result = siemensNet.Write("DB100.0", array);
- // 鏃ュ織璁板綍
-// try {
- 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);
+
+ int i=0;
+ do{
+ //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+ try{
+ Thread.sleep(100L);
+ } catch (Exception e){}
+ 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{
+ break;
+ }
}
+ }while(i<5);
+
+ if (command.getAckFinish() == 0) {
+ short commandFinish = 1;
+ try{
+ Thread.sleep(100L);
+ } catch (Exception e){}
+ result = siemensNet.Write("DB100.18", commandFinish);
+ int signFinish = 1;
+ while (signFinish<5){
+ OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2);
+ short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0);
+ if (transInt16 != commandFinish){
+ log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "commandFinish:"+commandFinish);
+ log.info("涓嬪彂DB100.18 鍥炶澶辫触" + "array:"+ JSON.toJSONString(array));
+ result = siemensNet.Write("DB100.18", commandFinish);
+ signFinish++;
+ }else {
+ log.info("涓嬪彂DB100.18" + "commandFinish:"+commandFinish);
+ log.info("涓嬪彂DB100.18" + "array:"+ JSON.toJSONString(array));
+ break;
+ }
+ }
+ }
+ // 鏃ュ織璁板綍
+ 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) {}
//鏇存柊鍛戒护鏃ュ織
@@ -567,22 +683,49 @@
//鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
Thread.sleep(500);
OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
+ /*
+ *
+ * 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 (resultRead.IsSuccess) {
CrnCommand one = new CrnCommand();
one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
//one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
- one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
- one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
- one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
- one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
- one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
- one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+ 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));
// one.setSourceStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
// one.setDestinationStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
- if (!crnCommand.getTaskNo().equals(one.getTaskNo()) && !crnCommand.getAckFinish().equals(one.getAckFinish())
- && !crnCommand.getSourcePosZ().equals(one.getSourcePosZ()) && !crnCommand.getSourcePosX().equals(one.getSourcePosX()) && !crnCommand.getSourcePosY().equals(one.getSourcePosY())
- && !crnCommand.getDestinationPosZ().equals(one.getDestinationPosZ()) && !crnCommand.getDestinationPosX().equals(one.getDestinationPosX()) && !crnCommand.getDestinationPosY().equals(one.getDestinationPosY())
+ if (!one.getTaskNo().equals(array[1]) || !one.getAckFinish().equals(array[0])
+ || !one.getSourcePosZ().equals(array[5]) || !one.getSourcePosX().equals(array[3])
+ || !one.getSourcePosY().equals(array[4])
+ || !one.getDestinationPosZ().equals(array[8]) || !one.getDestinationPosX().equals(array[6])
+ || !one.getDestinationPosY().equals(array[7])
){
log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
--
Gitblit v1.9.1