From 6fbf3a85d700ee8bcfb3dc196b7c41064329c00b Mon Sep 17 00:00:00 2001
From: zhangchao <zc857179121@qq.com>
Date: 星期三, 23 十月 2024 15:12:10 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 159 ++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 114 insertions(+), 45 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 626656a..5fd4565 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -39,6 +39,7 @@
private CrnSlave slave;
private CrnProtocol crnProtocol;
private boolean resetFlag = false;
+ private boolean resetFlagTwo = false;
/**
* 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪
@@ -186,9 +187,8 @@
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
-
- // 澶嶄綅淇″彿
- if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
+ if (!Cools.isEmpty(crnProtocol.getTaskNo()) && crnProtocol.getStatusType() == CrnStatusType.WAITING_ONE) {
+ // 澶嶄綅淇″彿
if (resetFlag) {
if (crnProtocol.getTaskNo() == 9999) {
backHpFlag = false;
@@ -196,10 +196,52 @@
CrnCommand crnCommand = new CrnCommand();
crnCommand.setAckFinish((short) 1);
if (write(crnCommand)) {
+ News.info("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 涓�宸ヤ綅澶嶄綅resetFlag鏍囪鎴愬姛{}锛侊紒",
+ slave.getId(), crnProtocol.getTaskNo(), resetFlag);
resetFlag = false;
+ } else {
+ News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 涓�宸ヤ綅澶嶄綅resetFlag鏍囪澶辫触{}锛侊紒",
+ slave.getId(), crnProtocol.getTaskNo(), resetFlag);
+ }
+ }
+ } else if (!Cools.isEmpty(crnProtocol.getTaskNo()) && crnProtocol.getStatusTypeTwo() == CrnStatusType.WAITING_TWO) {
+ // 澶嶄綅淇″彿
+ if (resetFlagTwo) {
+ if (crnProtocol.getTaskNo() == 9999) {
+ backHpFlag = false;
+ }
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setAckFinish((short) 1);
+ if (write(crnCommand)) {
+ News.info("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 浜屽伐浣嶅浣峳esetFlag鏍囪鎴愬姛{}锛侊紒",
+ slave.getId(), crnProtocol.getTaskNo(), resetFlag);
+ resetFlagTwo = false;
+ } else {
+ News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 浜屽伐浣嶅浣峳esetFlag鏍囪澶辫触{}锛侊紒",
+ slave.getId(), crnProtocol.getTaskNo(), resetFlag);
+ }
+
+ }
+ } else if (!Cools.isEmpty(crnProtocol.getTaskNo()) && crnProtocol.getStatusType() == CrnStatusType.WAITING_All && crnProtocol.getStatusTypeTwo() == CrnStatusType.WAITING_All) {
+ // 澶嶄綅淇″彿
+ if (resetFlag && resetFlagTwo) {
+ if (crnProtocol.getTaskNo() == 9999) {
+ backHpFlag = false;
+ }
+ CrnCommand crnCommand = new CrnCommand();
+ crnCommand.setAckFinish((short) 1);
+ if (write(crnCommand)) {
+ News.info("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鍙屽伐浣嶅浣峳esetFlag鏍囪鎴愬姛{}锛侊紒",
+ slave.getId(), crnProtocol.getTaskNo(), resetFlag);
+ resetFlag = false;
+ resetFlagTwo = false;
+ } else {
+ News.error("---绗簩姝ャ�乕鍫嗗灈鏈哄彿锛歿}, 宸ヤ綔鍙凤細{}]==>> 鍙屽伐浣嶅浣峳esetFlag鏍囪澶辫触{}锛侊紒",
+ slave.getId(), crnProtocol.getTaskNo(), resetFlag);
}
}
}
+
try {
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
@@ -243,9 +285,6 @@
News.error("SiemensCrn" + " - 6" + " - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
return false;
}
- command.setCommand((short) 1);
- System.out.println("------------------");
- System.out.println(command);
// convertRow(command);
command.setCrnNo(slave.getId());
short[] array = new short[16];
@@ -289,50 +328,80 @@
OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 32);
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.setSourcePosXTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
- one.setSourcePosYTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
- one.setSourcePosZTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 22));
- one.setDestinationPosXTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24));
- one.setDestinationPosYTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 26));
- one.setDestinationPosZTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 28));
- one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30));
- 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.getSourcePosXTwo().equals(one.getSourcePosXTwo()) || !command.getSourcePosYTwo().equals(one.getSourcePosYTwo())
- || !command.getSourcePosZTwo().equals(one.getSourcePosZTwo()) || !command.getDestinationPosXTwo().equals(one.getDestinationPosXTwo())
- || !command.getDestinationPosYTwo().equals(one.getDestinationPosYTwo()) || !command.getDestinationPosZTwo().equals(one.getDestinationPosZTwo())
- ) {
- try {
- log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one));
- } catch (Exception e) {
+ one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
+ one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+ one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+ one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+ one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+ one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+ one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+ one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+ one.setSourcePosXTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+ one.setSourcePosYTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
+ one.setSourcePosZTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
+ one.setDestinationPosXTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 22));
+ one.setDestinationPosYTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 24));
+ one.setDestinationPosZTwo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 26));
+ one.setCommand(siemensNet.getByteTransform().TransInt16(resultRead.Content, 28));
+ one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 30));
+ if (command.getTaskMode() != 2) {
+ 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.getCommand().equals(one.getCommand()) || !command.getAckFinish().equals(one.getAckFinish())
+ ) {
try {
- log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(resultRead));
- } catch (Exception e1) {
- log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command));
+ log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one));
+ } catch (Exception e) {
+ try {
+ log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(resultRead));
+ } catch (Exception e1) {
+ log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command));
+ }
}
- }
- try {
- Thread.sleep(100);
- } catch (Exception e) {
+ try {
+ Thread.sleep(100);
+ } catch (Exception e) {
+ }
+ log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command), writeCount);
+ result = siemensNet.Write("DB100.0", array);
+ writeCount++;
+ continue;
+ } else {
+ log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one));
+ break;
}
- log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command), writeCount);
- result = siemensNet.Write("DB100.0", array);
- writeCount++;
- continue;
} else {
- log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one));
- break;
+ if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
+ || !command.getSourcePosXTwo().equals(one.getSourcePosXTwo()) || !command.getSourcePosYTwo().equals(one.getSourcePosYTwo())
+ || !command.getSourcePosZTwo().equals(one.getSourcePosZTwo()) || !command.getDestinationPosXTwo().equals(one.getDestinationPosXTwo())
+ || !command.getDestinationPosYTwo().equals(one.getDestinationPosYTwo()) || !command.getDestinationPosZTwo().equals(one.getDestinationPosZTwo())
+ || !command.getCommand().equals(one.getCommand()) || !command.getAckFinish().equals(one.getAckFinish())
+ ) {
+ try {
+ log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐�==>涓嶄竴鑷碵id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one));
+ } catch (Exception e) {
+ try {
+ log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(resultRead));
+ } catch (Exception e1) {
+ log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command));
+ }
+ }
+ try {
+ Thread.sleep(100);
+ } catch (Exception e) {
+
+ }
+ log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍥炶涓嶄竴鑷� ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command), writeCount);
+ result = siemensNet.Write("DB100.0", array);
+ writeCount++;
+ continue;
+ } else {
+ log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSONString(command), JSON.toJSONString(one));
+ break;
+ }
}
}
} catch (Exception e) {
--
Gitblit v1.9.1