From 371b1f910fde7debe5f0b773b6774368d17446ff Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 15 九月 2025 09:07:09 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 80 +++++++++++++++------------------------
1 files changed, 31 insertions(+), 49 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index e08db4f..27394d2 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -157,8 +157,8 @@
if (result.IsSuccess) {
if (null == crnProtocol) {
crnProtocol = new CrnProtocol();
- crnProtocol.setCrnNo(slave.getId());
}
+ 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));
@@ -185,8 +185,8 @@
// 澶嶄綅淇″彿
if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
- News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
- slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿");
+ News.error("---绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}, 杞借揣鍙颁俊鍙�:{},鐘舵��:{}]==>> 鐘舵�佷负10锛岀瓑寰呯‘璁わ紒锛�",
+ slave.getId(),crnProtocol.getTaskNo(), crnProtocol.getLoaded()==1 ? "鏈夌墿" : "鏃犵墿",crnProtocol.getStatusType());
if (resetFlag) {
if(crnProtocol.getTaskNo()==9999){
backHpFlag = false;
@@ -196,8 +196,8 @@
crnCommand.setAckFinish((short)1);
if (write(crnCommand)) {
resetFlag = false;
- News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
- slave.getId(), wrkNo, resetFlag);
+// News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
+// slave.getId(), wrkNo, resetFlag);
}
}
}
@@ -243,36 +243,26 @@
News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
return false;
}
- // 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵��
- try{
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
- 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));
- } else {
-// News.info("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+ int writeAck = 0;
+ do {
+ OperateResult resultAck = siemensNet.Write("DB100.0", (short) 0);
+ if (resultAck.IsSuccess){
+ Thread.sleep(200);
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 2);
+ short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+ if (ack != 0) {
+ writeAck++;
+ }else {
+ News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), "ack澶嶄綅瀹屾垚");
+ break;
}
}
- }catch (Exception e){
- News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
- }
-// convertRow(command);
+ }while (writeAck <5);
+
+
command.setCrnNo(slave.getId());
// short[] array = new short[10];
- short[] array = new short[10];
+ short[] array = new short[11];
array[0] = command.getAckFinish(); // 浠诲姟瀹屾垚纭浣�
array[1] = command.getTaskNo(); // 浠诲姟鍙�
array[2] = command.getTaskMode(); // 妯″紡
@@ -283,12 +273,11 @@
array[7] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿
array[8] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿
array[9] = command.getCommand();
-// array[10] = 0; //澶囩敤1
+ array[10] = command.getTraySize(); //澶囩敤1
- boolean[] array2 = new boolean[1];
- array2[0] = command.isTraySize();
+
OperateResult result = siemensNet.Write("DB100.0", array);
- OperateResult result2 = siemensNet.Write("DB100.22", array2);
+
News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
//鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
@@ -297,11 +286,10 @@
do {
try{
- if(!result.IsSuccess || !result2.IsSuccess){
+ if(!result.IsSuccess ){
News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount1);
// MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
result = siemensNet.Write("DB100.0", array);
- result2 = siemensNet.Write("DB100.22", array2);
Thread.sleep(100);
writeCount1++;
continue;
@@ -309,6 +297,7 @@
OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
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.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
@@ -317,12 +306,14 @@
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.setTraySize(siemensNet.getByteTransform().TransBool(resultRead.Content, 22));
+ one.setCommand(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
+ one.setTraySize(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
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())
- || !command.isTraySize() == one.isTraySize()
+ || !command.getTraySize().equals(one.getTraySize()) || !command.getCommand().equals(one.getCommand())
+ || !command.getAckFinish().equals(one.getAckFinish())
){
try{
News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
@@ -333,18 +324,8 @@
News.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
}
}
-
- try{
- Thread.sleep(100);
- }catch (Exception e){
-
- }
-
-// News.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{},resetFlag={}", slave.getId(), JSON.toJSON(command),resetFlag);
-// MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount1);
result = siemensNet.Write("DB100.0", array);
- result2 = siemensNet.Write("DB100.22", array2);
writeCount1++;
continue;
@@ -373,6 +354,7 @@
if(result.IsSuccess){
//鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
Thread.sleep(200);
+ log.info("鍫嗗灈鏈轰换鍔″畬鎴愬浣嶏紝姝ゆ椂鍫嗗灈鏈虹姸鎬�:"+crnProtocol.getStatusType()+",鍫嗗灈鏈篿d:"+crnProtocol.getCrnNo());
OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.18", (short) 2);
if (resultRead.IsSuccess) {
commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
--
Gitblit v1.9.1