From ce641926a957d238b202aa0d9dac3b8f15aff153 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期三, 14 五月 2025 14:43:00 +0800
Subject: [PATCH] 123

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java |  173 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 121 insertions(+), 52 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 04f881f..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) {
@@ -344,19 +413,19 @@
         if (command.getAckFinish() == 0) {
             short commandFinish = 1;
             Thread.sleep(100L);
-            result = siemensNet.Write("DB100.30", commandFinish);
+            result = siemensNet.Write("DB100.28", commandFinish);
             int signFinish = 1;
             while (signFinish < 5) {
-                OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.30", (short) 2);
+                OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.28", (short) 2);
                 short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0);
                 if (transInt16 != commandFinish) {
-                    log.info("涓嬪彂DB100.30  鍥炶澶辫触" + "commandFinish:" + commandFinish);
-                    log.info("涓嬪彂DB100.30  鍥炶澶辫触" + "array:" + JSON.toJSONString(array));
-                    result = siemensNet.Write("DB100.18", commandFinish);
+                    log.info("涓嬪彂DB100.28  鍥炶澶辫触" + "commandFinish:" + commandFinish);
+                    log.info("涓嬪彂DB100.28  鍥炶澶辫触" + "array:" + JSON.toJSONString(array));
+                    result = siemensNet.Write("DB100.28", commandFinish);
                     signFinish++;
                 } else {
-                    log.info("涓嬪彂DB100.30" + "commandFinish:" + commandFinish);
-                    log.info("涓嬪彂DB100.30" + "array:" + JSON.toJSONString(array));
+                    log.info("涓嬪彂DB100.28" + "commandFinish:" + commandFinish);
+                    log.info("涓嬪彂DB100.28" + "array:" + JSON.toJSONString(array));
                     break;
                 }
             }

--
Gitblit v1.9.1