From fcfe4fd1e882debbb12e2182bb6760d6da2c8172 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 16 三月 2024 10:30:36 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 67 ++++++++++++++++++++++++++-------
1 files changed, 52 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index f04abea..54a52b8 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -161,7 +161,7 @@
/**
* 璇诲彇鐘舵��
*/
- private void readStatus(){
+ private void readStatus() throws InterruptedException {
OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
if (result.IsSuccess) {
@@ -233,7 +233,7 @@
/**
* 鍐欏叆鏁版嵁
*/
- private boolean write(CrnCommand command){
+ private boolean write(CrnCommand command) throws InterruptedException {
if (null == command) {
log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
return false;
@@ -272,7 +272,7 @@
array[6] = command.getDestinationPosZ();
array[7] = command.getDestinationPosX();
array[8] = command.getDestinationPosY();
- array[9] = command.getCommand();
+// array[9] = command.getCommand();
// 浣滀笟淇℃伅
OperateResult result = siemensNet.Write("DB100.0", array);
@@ -318,7 +318,7 @@
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.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));
@@ -327,9 +327,11 @@
one.setDestinationPosY(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 (!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())
+
){
log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
@@ -345,6 +347,41 @@
}catch (Exception e){
log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
}
+
+ if (command.getAckFinish() == 0) {
+ if (result.IsSuccess) {
+ Thread.sleep(300);
+ //浠诲姟涓嬪彂娆℃暟
+ int writeCount2 = 0;
+
+ do {
+ writeCount2++;
+ short commandFinish = (short) 1;
+ result = siemensNet.Write("DB100.18", commandFinish);
+ if(result.IsSuccess){
+ //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.18", (short) 2);
+ if (resultRead.IsSuccess) {
+ commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+ if (commandFinish != 1){
+ log.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ }else{
+ //浠诲姟鍛戒护鍐欏叆鎴愬姛
+ log.info("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ break;
+ }
+ }else {
+ log.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ }
+ } else {
+ log.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+ }
+ }while (writeCount2<5);
+ }
+ }
+
+
return true;
}
@@ -468,17 +505,17 @@
//鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
Thread.sleep(200);
try{
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
+ 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));
+ 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.setTraySize(siemensNet.getByteTransform().TransBool(resultRead.Content, 22));
if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
|| !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
@@ -496,7 +533,7 @@
}
}
log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
- MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
+ MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(5, command));
Thread.sleep(100);
readStatus();
return false;
--
Gitblit v1.9.1