From 82e5d2df096e55f1142106657668b87c8cfedda3 Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期一, 23 六月 2025 09:09:01 +0800
Subject: [PATCH] aux

---
 2025年6月12日/AuxAllWCS/Scripts/Script.json |   86 +++++++++++++++++++++---------------------
 1 files changed, 43 insertions(+), 43 deletions(-)

diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Script.json" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Script.json"
index 11efd81..4517436 100644
--- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Script.json"
+++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Scripts/Script.json"
@@ -14,8 +14,8 @@
           "ID": "20250323111613779",
           "Name": "鍒濆鍖栭厤缃�,
           "Desc": "",
-          "Content": " if (Tag.Global.SettingsOver == 0)\r\n                        {\r\n                            SettingInit();\r\n                            Tag.Global.SettingsOver = 1;\r\n                        }\r\n                        else if(Settings.deviceInfos.Count == 0)\r\n                        {\r\n                            Tag.Global.SettingsOver = 0;\r\n                        }\r\n",
-          "ContentCopy": " if (Tag.Global.SettingsOver == 0)\r\n                        {\r\n                            SettingInit();\r\n                            Tag.Global.SettingsOver = 1;\r\n                        }\r\n                        else if(Settings.deviceInfos.Count == 0)\r\n                        {\r\n                            Tag.Global.SettingsOver = 0;\r\n                        }\r\n",
+          "Content": "\r\n                        Action myDelegate = () => SettingInit();\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadSettingInit\", new object[] { tag, myDelegate });",
+          "ContentCopy": "\r\n                        Action myDelegate = () => SettingInit();\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadSettingInit\", new object[] { tag, myDelegate });",
           "ParentID": "20250226153120175",
           "Children": [],
           "Type": "Program",
@@ -53,8 +53,8 @@
           "ID": "20250323151832119",
           "Name": "Program4",
           "Desc": "",
-          "Content": "//Conn.榛樿Redis.SetValue(\"瑗块棬瀛�.Param3\",\"300\",\"瑗块棬瀛�Queue\");\r\n//return;\r\nif(false){\r\n                    List<string> locs = new List<string>() { \"vxr1l\", \"vx1r\", \"vxr1c1\", \"vxr1c2\", \"vxr2l\", \"vxr2r\", \"vxr2c1\", \"vxr2c2\" };\r\n                    List<string> sites = new List<string>() { \"196365BB283162\", \"193841BB283149\", \"198756BB287300\", \"198767BB286133\", \"206987BB282931\", \"204460BB282975\", \"209405BB287057\", \"209377BB285899\" };\r\n\r\n                    LocRepository locservice = new LocRepository();\r\n                    for (int i = 0; i < locs.Count; i++)\r\n                    {\r\n                        string loccode = locs[i];\r\n                        string sitesss = sites[i];\r\n                        var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);\r\n                        if (loc == null)\r\n                        {\r\n                            locservice.Insert(new LocEntity\r\n                            {\r\n                                S_ID = Guid.NewGuid().ToString(),\r\n                                S_STATE = \"缂栬緫\",\r\n                                T_CREATE = DateTime.Now,\r\n                                T_MODIFY = DateTime.Now,\r\n                                S_DEEP = \"vxr\",\r\n\r\n                                S_LOC_CODE = loccode,\r\n                                S_AGV_SITE = sitesss,\r\n\r\n                                S_LOCK_STATE = \"鏃燶",\r\n                                N_ROW = 1,\r\n                                N_COL = 1,\r\n                                N_AGV_CODE = 0,\r\n                                N_AGV_SITE_LAYER = 0,\r\n                                N_CAPACITY = 1,\r\n                                N_CURRENT_NUM = 0,\r\n                                S_TYPE = \"\",\r\n\r\n                            });\r\n                        }\r\n                    }\r\n                   // TaskProcess.CreateTask(\"\", locs[6], locs[7], \"test\", 9, new List<string> { \"test\" }, 1, 1, 1);\r\n                   }\r\n",
-          "ContentCopy": "//Conn.榛樿Redis.SetValue(\"瑗块棬瀛�.Param3\",\"300\",\"瑗块棬瀛�Queue\");\r\n//return;\r\nif(false){\r\n                    List<string> locs = new List<string>() { \"vxr1l\", \"vx1r\", \"vxr1c1\", \"vxr1c2\", \"vxr2l\", \"vxr2r\", \"vxr2c1\", \"vxr2c2\" };\r\n                    List<string> sites = new List<string>() { \"196365BB283162\", \"193841BB283149\", \"198756BB287300\", \"198767BB286133\", \"206987BB282931\", \"204460BB282975\", \"209405BB287057\", \"209377BB285899\" };\r\n\r\n                    LocRepository locservice = new LocRepository();\r\n                    for (int i = 0; i < locs.Count; i++)\r\n                    {\r\n                        string loccode = locs[i];\r\n                        string sitesss = sites[i];\r\n                        var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);\r\n                        if (loc == null)\r\n                        {\r\n                            locservice.Insert(new LocEntity\r\n                            {\r\n                                S_ID = Guid.NewGuid().ToString(),\r\n                                S_STATE = \"缂栬緫\",\r\n                                T_CREATE = DateTime.Now,\r\n                                T_MODIFY = DateTime.Now,\r\n                                S_DEEP = \"vxr\",\r\n\r\n                                S_LOC_CODE = loccode,\r\n                                S_AGV_SITE = sitesss,\r\n\r\n                                S_LOCK_STATE = \"鏃燶",\r\n                                N_ROW = 1,\r\n                                N_COL = 1,\r\n                                N_AGV_CODE = 0,\r\n                                N_AGV_SITE_LAYER = 0,\r\n                                N_CAPACITY = 1,\r\n                                N_CURRENT_NUM = 0,\r\n                                S_TYPE = \"\",\r\n\r\n                            });\r\n                        }\r\n                    }\r\n                   // TaskProcess.CreateTask(\"\", locs[6], locs[7], \"test\", 9, new List<string> { \"test\" }, 1, 1, 1);\r\n                   }\r\n",
+          "Content": "////Conn.榛樿Redis.SetValue(\"瑗块棬瀛�.Param3\",\"300\",\"瑗块棬瀛�Queue\");\r\n////return;\r\n//if(false){\r\n//                    List<string> locs = new List<string>() { \"vxr1l\", \"vx1r\", \"vxr1c1\", \"vxr1c2\", \"vxr2l\", \"vxr2r\", \"vxr2c1\", \"vxr2c2\" };\r\n//                    List<string> sites = new List<string>() { \"196365BB283162\", \"193841BB283149\", \"198756BB287300\", \"198767BB286133\", \"206987BB282931\", \"204460BB282975\", \"209405BB287057\", \"209377BB285899\" };\r\n\r\n//                    LocRepository locservice = new LocRepository();\r\n//                    for (int i = 0; i < locs.Count; i++)\r\n//                    {\r\n//                        string loccode = locs[i];\r\n//                        string sitesss = sites[i];\r\n//                        var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);\r\n//                        if (loc == null)\r\n//                        {\r\n//                            locservice.Insert(new LocEntity\r\n//                            {\r\n//                                S_ID = Guid.NewGuid().ToString(),\r\n//                                S_STATE = \"缂栬緫\",\r\n//                                T_CREATE = DateTime.Now,\r\n//                                T_MODIFY = DateTime.Now,\r\n//                                S_DEEP = \"vxr\",\r\n\r\n//                                S_LOC_CODE = loccode,\r\n//                                S_AGV_SITE = sitesss,\r\n\r\n//                                S_LOCK_STATE = \"鏃燶",\r\n//                                N_ROW = 1,\r\n//                                N_COL = 1,\r\n//                                N_AGV_CODE = 0,\r\n//                                N_AGV_SITE_LAYER = 0,\r\n//                                N_CAPACITY = 1,\r\n//                                N_CURRENT_NUM = 0,\r\n//                                S_TYPE = \"\",\r\n\r\n//                            });\r\n//                        }\r\n//                    }\r\n//                   // TaskProcess.CreateTask(\"\", locs[6], locs[7], \"test\", 9, new List<string> { \"test\" }, 1, 1, 1);\r\n//                   }\r\n",
+          "ContentCopy": "////Conn.榛樿Redis.SetValue(\"瑗块棬瀛�.Param3\",\"300\",\"瑗块棬瀛�Queue\");\r\n////return;\r\n//if(false){\r\n//                    List<string> locs = new List<string>() { \"vxr1l\", \"vx1r\", \"vxr1c1\", \"vxr1c2\", \"vxr2l\", \"vxr2r\", \"vxr2c1\", \"vxr2c2\" };\r\n//                    List<string> sites = new List<string>() { \"196365BB283162\", \"193841BB283149\", \"198756BB287300\", \"198767BB286133\", \"206987BB282931\", \"204460BB282975\", \"209405BB287057\", \"209377BB285899\" };\r\n\r\n//                    LocRepository locservice = new LocRepository();\r\n//                    for (int i = 0; i < locs.Count; i++)\r\n//                    {\r\n//                        string loccode = locs[i];\r\n//                        string sitesss = sites[i];\r\n//                        var loc = locservice.FindEntity(x => x.S_LOC_CODE == loccode);\r\n//                        if (loc == null)\r\n//                        {\r\n//                            locservice.Insert(new LocEntity\r\n//                            {\r\n//                                S_ID = Guid.NewGuid().ToString(),\r\n//                                S_STATE = \"缂栬緫\",\r\n//                                T_CREATE = DateTime.Now,\r\n//                                T_MODIFY = DateTime.Now,\r\n//                                S_DEEP = \"vxr\",\r\n\r\n//                                S_LOC_CODE = loccode,\r\n//                                S_AGV_SITE = sitesss,\r\n\r\n//                                S_LOCK_STATE = \"鏃燶",\r\n//                                N_ROW = 1,\r\n//                                N_COL = 1,\r\n//                                N_AGV_CODE = 0,\r\n//                                N_AGV_SITE_LAYER = 0,\r\n//                                N_CAPACITY = 1,\r\n//                                N_CURRENT_NUM = 0,\r\n//                                S_TYPE = \"\",\r\n\r\n//                            });\r\n//                        }\r\n//                    }\r\n//                   // TaskProcess.CreateTask(\"\", locs[6], locs[7], \"test\", 9, new List<string> { \"test\" }, 1, 1, 1);\r\n//                   }\r\n",
           "ParentID": "20250226153120175",
           "Children": [],
           "Type": "Program",
@@ -100,8 +100,8 @@
               "ID": "20250325083325390",
               "Name": "鎹风灛鎶撹噦1",
               "Desc": "",
-              "Content": "var VERX = Settings.deviceInfos?.Find(x =>x.deviceType==2&& x.deviceName == \"Js鎹烽『1\");\r\n\r\n if (VERX != null)\r\n                        {\r\n                            if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1)\r\n                            {\r\n                                var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                {\r\n                                    requestType = 4,\r\n                                    endBit = VERX.location[0]\r\n                                }));\r\n                                LogHelper.Info($\"{VERX.location[0]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                if (str.Contains(\"true\"))\r\n                                {\r\n                                    tag.Js1.D1212_LAST = 1;\r\n                                }\r\n                            }\r\n                            if(tag.Js1.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js1.D1212_LAST = 0;\r\n                            }\r\n\t\t\t\t\t\t\tif (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\trequestType = 4,\r\n\t\t\t\t\t\t\t\t\tendBit = VERX.location[1]\r\n\t\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t\t\tLogHelper.Info($\"{VERX.location[1]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n\t\t\t\t\t\t\t\tif (str.Contains(\"true\"))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.Js1.D1213_LAST = 1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}if(tag.Js1.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js1.D1213_LAST = 0;\r\n                            }\r\n                        }",
-              "ContentCopy": "var VERX = Settings.deviceInfos?.Find(x =>x.deviceType==2&& x.deviceName == \"Js鎹烽『1\");\r\n\r\n if (VERX != null)\r\n                        {\r\n                            if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1)\r\n                            {\r\n                                var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                {\r\n                                    requestType = 4,\r\n                                    endBit = VERX.location[0]\r\n                                }));\r\n                                LogHelper.Info($\"{VERX.location[0]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                if (str.Contains(\"true\"))\r\n                                {\r\n                                    tag.Js1.D1212_LAST = 1;\r\n                                }\r\n                            }\r\n                            if(tag.Js1.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js1.D1212_LAST = 0;\r\n                            }\r\n\t\t\t\t\t\t\tif (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tvar str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\trequestType = 4,\r\n\t\t\t\t\t\t\t\t\tendBit = VERX.location[1]\r\n\t\t\t\t\t\t\t\t}));\r\n\t\t\t\t\t\t\t\tLogHelper.Info($\"{VERX.location[1]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n\t\t\t\t\t\t\t\tif (str.Contains(\"true\"))\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.Js1.D1213_LAST = 1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}if(tag.Js1.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js1.D1213_LAST = 0;\r\n                            }\r\n                        }",
+              "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadJS1\", new object[] { tag });",
+              "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadJS1\", new object[] { tag });",
               "ParentID": "20250325083047245",
               "Children": [],
               "Type": "Program",
@@ -139,8 +139,8 @@
               "ID": "20250325083326611",
               "Name": "鎹风灛鎶撹噦2",
               "Desc": "",
-              "Content": "//jsz2鎹风灛鎶撹噦2\r\n\r\n                       var VERX = Settings.deviceInfos?.Find(x =>x.deviceType==2&& x.deviceName == \"Js鎹烽『2\");\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1)\r\n                            {\r\n                                var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                {\r\n                                    requestType = 4,\r\n                                    endBit = VERX.location[0]\r\n                                }));\r\n                                LogHelper.Info($\"{VERX.location[0]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                if (str.Contains(\"true\"))\r\n                                {\r\n                                    tag.Js2.D1212_LAST = 1;\r\n                                }\r\n                            } if(tag.Js2.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js2.D1212_LAST = 0;\r\n                            }\r\n                            if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)\r\n                            {\r\n                                var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                {\r\n                                    requestType = 4,\r\n                                    endBit = VERX.location[1]\r\n                                }));\r\n                                LogHelper.Info($\"{VERX.location[1]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                if (str.Contains(\"true\"))\r\n                                {\r\n                                    tag.Js2.D1213_LAST = 1;\r\n                                }\r\n                            }if(tag.Js2.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js2.D1213_LAST = 0;\r\n                            }\r\n                        }",
-              "ContentCopy": "//jsz2鎹风灛鎶撹噦2\r\n\r\n                       var VERX = Settings.deviceInfos?.Find(x =>x.deviceType==2&& x.deviceName == \"Js鎹烽『2\");\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1)\r\n                            {\r\n                                var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                {\r\n                                    requestType = 4,\r\n                                    endBit = VERX.location[0]\r\n                                }));\r\n                                LogHelper.Info($\"{VERX.location[0]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                if (str.Contains(\"true\"))\r\n                                {\r\n                                    tag.Js2.D1212_LAST = 1;\r\n                                }\r\n                            } if(tag.Js2.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js2.D1212_LAST = 0;\r\n                            }\r\n                            if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)\r\n                            {\r\n                                var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                {\r\n                                    requestType = 4,\r\n                                    endBit = VERX.location[1]\r\n                                }));\r\n                                LogHelper.Info($\"{VERX.location[1]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                if (str.Contains(\"true\"))\r\n                                {\r\n                                    tag.Js2.D1213_LAST = 1;\r\n                                }\r\n                            }if(tag.Js2.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0){\r\n\t\t\t\t\t\t\t\ttag.Js2.D1213_LAST = 0;\r\n                            }\r\n                        }",
+              "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadJS2\", new object[] { tag });",
+              "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadJS2\", new object[] { tag });",
               "ParentID": "20250325083047245",
               "Children": [],
               "Type": "Program",
@@ -225,8 +225,8 @@
                   "ID": "20250325083149366",
                   "Name": "缁村笇灏旀姄鑷�L",
                   "Desc": "",
-                  "Content": "\r\nvar VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10)\r\n                            {\r\n                                if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n                                {\r\n                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                    {\r\n                                        requestType = 1,\r\n                                        cntrCode = traycode,\r\n                                        startBit = VERX.location[0],\r\n                                        endBit = \"\"\r\n                                    }));\r\n                                    LogHelper.Info($\"{VERX.location[0]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                    if (str.Contains(\"true\"))\r\n                                    {\r\n                                        tag.wxr1.R44_LAST = true; \r\n                                    }\r\n                                }\r\n                                else\r\n                                {\r\n                                    TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                               //TaskRepository ts = new TaskRepository();\r\n                                if (tag.wxr1.R10_LAST) //鎵樼洏鏀剧疆淇″彿銆傘�\r\n                                {\r\n                                \tif (tag.wxr1.R10)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.wxr1.R10_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))\r\n                                    {\r\n                                        //涓婃姤鏍¢獙銆俓r\n                                        ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n                                        {\r\n                                            sceneType = 1,\r\n                                            cntrCode = traycode,\r\n                                        }));\r\n                                        if (str.Contains(\"true\"))\r\n                                        {\r\n                                            //Conn.榛樿Redis.SetValue(\"缁村笇灏旀姄鑷�.R10\", \"true\", \"缁村笇灏旀姄鑷�Queue\");\r\n                                            tag.wxr1.R10 = true;\r\n                                            tag.wxr1.R44_LAST = false;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            //鎶ヨ銆俓r\n                                        }\r\n                                    }\r\n                                    else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n                                }\r\n                            }\r\n                        }",
-                  "ContentCopy": "\r\nvar VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.wxr1.R44 && !tag.wxr1.R44_LAST && tag.wxr1.R10)\r\n                            {\r\n                                if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n                                {\r\n                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                    {\r\n                                        requestType = 1,\r\n                                        cntrCode = traycode,\r\n                                        startBit = VERX.location[0],\r\n                                        endBit = \"\"\r\n                                    }));\r\n                                    LogHelper.Info($\"{VERX.location[0]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                    if (str.Contains(\"true\"))\r\n                                    {\r\n                                        tag.wxr1.R44_LAST = true; \r\n                                    }\r\n                                }\r\n                                else\r\n                                {\r\n                                    TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                               //TaskRepository ts = new TaskRepository();\r\n                                if (tag.wxr1.R10_LAST) //鎵樼洏鏀剧疆淇″彿銆傘�\r\n                                {\r\n                                \tif (tag.wxr1.R10)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.wxr1.R10_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))\r\n                                    {\r\n                                        //涓婃姤鏍¢獙銆俓r\n                                        ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n                                        {\r\n                                            sceneType = 1,\r\n                                            cntrCode = traycode,\r\n                                        }));\r\n                                        if (str.Contains(\"true\"))\r\n                                        {\r\n                                            //Conn.榛樿Redis.SetValue(\"缁村笇灏旀姄鑷�.R10\", \"true\", \"缁村笇灏旀姄鑷�Queue\");\r\n                                            tag.wxr1.R10 = true;\r\n                                            tag.wxr1.R44_LAST = false;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            //鎶ヨ銆俓r\n                                        }\r\n                                    }\r\n                                    else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n                                }\r\n                            }\r\n                        }",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr1L\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr1L\", new object[] { tag });",
                   "ParentID": "20250610002001052",
                   "Children": [],
                   "Type": "Program",
@@ -264,8 +264,8 @@
                   "ID": "20250610002047005",
                   "Name": "缁村笇灏旀姄鑷�R",
                   "Desc": "",
-                  "Content": "var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)\r\n                            {\r\n                                if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n                                {\r\n                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                    {\r\n                                        requestType = 1,\r\n                                        cntrCode = traycode,\r\n                                        startBit = VERX.location[1],\r\n                                        endBit = \"\"\r\n                                    }));\r\n                                    LogHelper.Info($\"{VERX.location[1]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                    if (str.Contains(\"true\"))\r\n                                    {\r\n                                        tag.wxr1.R46_LAST = true; \r\n                                    }\r\n                                }\r\n                                else\r\n                                {\r\n                                    TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                                if (tag.wxr1.R11_LAST) //鎵樼洏鏀剧疆淇″彿銆傘�\r\n                                {\r\n                                \tif (tag.wxr1.R11)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.wxr1.R11_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))\r\n                                    {\r\n                                        //涓婃姤鏍¢獙銆俓r\n                                        ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n                                        {\r\n                                            sceneType = 1,\r\n                                            cntrCode = traycode,\r\n                                        }));\r\n                                        if (str.Contains(\"true\"))\r\n                                        {\r\n                                            //Conn.榛樿Redis.SetValue(\"缁村笇灏旀姄鑷�.R10\", \"true\", \"缁村笇灏旀姄鑷�Queue\");\r\n                                            tag.wxr1.R11 = true;\r\n                                            tag.wxr1.R46_LAST = false;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            //鎶ヨ銆俓r\n                                        }\r\n                                    }\r\n                                    else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n                                }\r\n                            }\r\n                        }",
-                  "ContentCopy": "var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"1\"));\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)\r\n                            {\r\n                                if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n                                {\r\n                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                    {\r\n                                        requestType = 1,\r\n                                        cntrCode = traycode,\r\n                                        startBit = VERX.location[1],\r\n                                        endBit = \"\"\r\n                                    }));\r\n                                    LogHelper.Info($\"{VERX.location[1]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                    if (str.Contains(\"true\"))\r\n                                    {\r\n                                        tag.wxr1.R46_LAST = true; \r\n                                    }\r\n                                }\r\n                                else\r\n                                {\r\n                                    TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                                if (tag.wxr1.R11_LAST) //鎵樼洏鏀剧疆淇″彿銆傘�\r\n                                {\r\n                                \tif (tag.wxr1.R11)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\ttag.wxr1.R11_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))\r\n                                    {\r\n                                        //涓婃姤鏍¢獙銆俓r\n                                        ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n                                        {\r\n                                            sceneType = 1,\r\n                                            cntrCode = traycode,\r\n                                        }));\r\n                                        if (str.Contains(\"true\"))\r\n                                        {\r\n                                            //Conn.榛樿Redis.SetValue(\"缁村笇灏旀姄鑷�.R10\", \"true\", \"缁村笇灏旀姄鑷�Queue\");\r\n                                            tag.wxr1.R11 = true;\r\n                                            tag.wxr1.R46_LAST = false;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            //鎶ヨ銆俓r\n                                        }\r\n                                    }\r\n                                    else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n                                }\r\n                            }\r\n                        }",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr1R\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr1R\", new object[] { tag });",
                   "ParentID": "20250610002001052",
                   "Children": [],
                   "Type": "Program",
@@ -339,8 +339,8 @@
                   "ID": "20250325083315503",
                   "Name": "缁村笇灏旀姄鑷�L",
                   "Desc": "",
-                  "Content": "\r\nvar VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10)\r\n                            {\r\n                                if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n                                {\r\n                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                    {\r\n                                        requestType = 1,\r\n                                        cntrCode = traycode,\r\n                                        startBit = VERX.location[0],\r\n                                        endBit = \"\"\r\n                                    }));\r\n                                    LogHelper.Info($\"{VERX.location[0]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                    if (str.Contains(\"true\"))\r\n                                    {\r\n                                        tag.wxr2.R44_LAST = true; \r\n                                    }\r\n                                }\r\n                                else\r\n                                {\r\n                                    TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                                if (tag.wxr2.R10_LAST) //鎵樼洏鏀剧疆淇″彿銆傘�\r\n                                {\r\n                                \tif (tag.wxr2.R10)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ttag.wxr2.R10_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))\r\n                                    {\r\n                                        //涓婃姤鏍¢獙銆俓r\n                                        ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n                                        {\r\n                                            sceneType = 1,\r\n                                            cntrCode = traycode,\r\n                                        }));\r\n                                        if (str.Contains(\"true\"))\r\n                                        {\r\n                                            //Conn.榛樿Redis.SetValue(\"缁村笇灏旀姄鑷�.R10\", \"true\", \"缁村笇灏旀姄鑷�Queue\");\r\n                                            tag.wxr2.R10 = true;\r\n                                            tag.wxr2.R44_LAST = false;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            //鎶ヨ銆俓r\n                                        }\r\n                                    }\r\n                                    else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n                                }\r\n                            }\r\n                        }",
-                  "ContentCopy": "\r\nvar VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.wxr2.R44 && !tag.wxr2.R44_LAST && tag.wxr2.R10)\r\n                            {\r\n                                if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0], out string traycode))\r\n                                {\r\n                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                    {\r\n                                        requestType = 1,\r\n                                        cntrCode = traycode,\r\n                                        startBit = VERX.location[0],\r\n                                        endBit = \"\"\r\n                                    }));\r\n                                    LogHelper.Info($\"{VERX.location[0]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                    if (str.Contains(\"true\"))\r\n                                    {\r\n                                        tag.wxr2.R44_LAST = true; \r\n                                    }\r\n                                }\r\n                                else\r\n                                {\r\n                                    TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                                if (tag.wxr2.R10_LAST) //鎵樼洏鏀剧疆淇″彿銆傘�\r\n                                {\r\n                                \tif (tag.wxr2.R10)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ttag.wxr2.R10_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))\r\n                                    {\r\n                                        //涓婃姤鏍¢獙銆俓r\n                                        ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n                                        {\r\n                                            sceneType = 1,\r\n                                            cntrCode = traycode,\r\n                                        }));\r\n                                        if (str.Contains(\"true\"))\r\n                                        {\r\n                                            //Conn.榛樿Redis.SetValue(\"缁村笇灏旀姄鑷�.R10\", \"true\", \"缁村笇灏旀姄鑷�Queue\");\r\n                                            tag.wxr2.R10 = true;\r\n                                            tag.wxr2.R44_LAST = false;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            //鎶ヨ銆俓r\n                                        }\r\n                                    }\r\n                                    else { TcpServer.TcpServerSend(VERX.deviceNo[0], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n                                }\r\n                            }\r\n                        }",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr2L\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr2L\", new object[] { tag });",
                   "ParentID": "20250610002414741",
                   "Children": [],
                   "Type": "Program",
@@ -378,8 +378,8 @@
                   "ID": "20250610002647095",
                   "Name": "缁村笇灏旀姄鑷�R",
                   "Desc": "",
-                  "Content": "var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)\r\n                            {\r\n                                if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n                                {\r\n                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                    {\r\n                                        requestType = 1,\r\n                                        cntrCode = traycode,\r\n                                        startBit = VERX.location[1],\r\n                                        endBit = \"\"\r\n                                    }));\r\n                                    LogHelper.Info($\"{VERX.location[1]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                    if (str.Contains(\"true\"))\r\n                                    {\r\n                                        tag.wxr2.R46_LAST = true; \r\n                                    }\r\n                                }\r\n                                else\r\n                                {\r\n                                    TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                               if (tag.wxr2.R11_LAST) //鎵樼洏鏀剧疆淇″彿銆傘�\r\n                                {\r\n                                \tif (tag.wxr2.R11)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ttag.wxr2.R11_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))\r\n                                    {\r\n                                        //涓婃姤鏍¢獙銆俓r\n                                        ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n                                        {\r\n                                            sceneType = 1,\r\n                                            cntrCode = traycode,\r\n                                        }));\r\n                                        if (str.Contains(\"true\"))\r\n                                        {\r\n                                            //Conn.榛樿Redis.SetValue(\"缁村笇灏旀姄鑷�.R10\", \"true\", \"缁村笇灏旀姄鑷�Queue\");\r\n                                            tag.wxr2.R11 = true;\r\n                                            tag.wxr2.R46_LAST = false;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            //鎶ヨ銆俓r\n                                        }\r\n                                    }\r\n                                    else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n                                }\r\n                            }\r\n                        }",
-                  "ContentCopy": "var VERX = Settings.deviceInfos?.Find(x => x.deviceType == 1 && x.deviceName.Contains(\"2\"));\r\n\r\n                        if (VERX != null)\r\n                        {\r\n                            if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)\r\n                            {\r\n                                if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode))\r\n                                {\r\n                                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/200\", JsonConvert.SerializeObject(new\r\n                                    {\r\n                                        requestType = 1,\r\n                                        cntrCode = traycode,\r\n                                        startBit = VERX.location[1],\r\n                                        endBit = \"\"\r\n                                    }));\r\n                                    LogHelper.Info($\"{VERX.location[1]}鐢宠mes浠诲姟缁撴灉{str}\");\r\n                                    if (str.Contains(\"true\"))\r\n                                    {\r\n                                        tag.wxr2.R46_LAST = true; \r\n                                    }\r\n                                }\r\n                                else\r\n                                {\r\n                                    TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\"));\r\n                                }\r\n                            }\r\n                            else\r\n                            {\r\n                               if (tag.wxr2.R11_LAST) //鎵樼洏鏀剧疆淇″彿銆傘�\r\n                                {\r\n                                \tif (tag.wxr2.R11)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\ttag.wxr2.R11_LAST=false;\r\n\t\t\t\t\t\t\t\t\t} else\r\n                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))\r\n                                    {\r\n                                        //涓婃姤鏍¢獙銆俓r\n                                        ///var str = Settings.apiHelper.Post(Settings.MESbaseUrl + \"mom-basic/dataTransmission/json/service/202\", requestJson);\r\n                                        var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + \"mom-basic/dataTransmission/json/service/202\", JsonConvert.SerializeObject(new\r\n                                        {\r\n                                            sceneType = 1,\r\n                                            cntrCode = traycode,\r\n                                        }));\r\n                                        if (str.Contains(\"true\"))\r\n                                        {\r\n                                            //Conn.榛樿Redis.SetValue(\"缁村笇灏旀姄鑷�.R10\", \"true\", \"缁村笇灏旀姄鑷�Queue\");\r\n                                            tag.wxr2.R11 = true;\r\n                                            tag.wxr2.R46_LAST = false;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            //鎶ヨ銆俓r\n                                        }\r\n                                    }\r\n                                    else { TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin(\"544F4E\")); }\r\n                                }\r\n                            }\r\n                        }",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr2R\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Threadwxr2R\", new object[] { tag });",
                   "ParentID": "20250610002414741",
                   "Children": [],
                   "Type": "Program",
@@ -473,8 +473,8 @@
           "ID": "20250325085542733",
           "Name": "浠诲姟涓嬪彂",
           "Desc": "",
-          "Content": "ITaskRepository taskservice = new TaskRepository();\r\nvar tklist = taskservice.FindList(x => x.S_B_STATE == \"鏈墽琛孿" && x.S_WORK_MODE == \"AGV\");\r\nif(tklist.Any())\r\nforeach (var tk in tklist.GroupBy(item =>\r\n{\r\n    var ticks = item.T_CREATE.Ticks;\r\n    return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n}).OrderBy(x => x.Key))\r\n{\r\n    var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();\r\n    foreach (var t in ts)\r\n    {\r\n        var b = false;\r\n        b = RunTask(t);\r\n\r\n        if (b)\r\n        {\r\n            t.S_B_STATE = \"宸叉帹閫乗";\r\n            taskservice.Update(t);\r\n        }\r\n    }\r\n    break;\r\n}\r\n#region Rgv\r\n\r\nvar task1Isrun = false;\r\nif (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)\r\n{\r\n    task1Isrun = true;\r\n    if (tag.RGV.bit1taskOver_LAST == 1)\r\n        RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n}\r\nvar task2Isrun = false;\r\nif (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1)\r\n{\r\n    task2Isrun = true;\r\n    if (tag.RGV.bit2taskOver_LAST == 1)\r\n        RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n}\r\nif (task1Isrun || task2Isrun)\r\n{\r\n    string mes = \"\";\r\n    if (task1Isrun)\r\n        mes += tag.RGV.ReadTask1No + \"鎵ц涓�..\";\r\n    if (task2Isrun)\r\n        mes += tag.RGV.ReadTask2No + \"鎵ц涓�..\";\r\n    LogHelper.Info($\"{mes} 涓嶈兘涓嬪彂鏂颁换鍔°�\");\r\n    throw new Exception($\"{mes} 涓嶈兘涓嬪彂鏂颁换鍔°�\");\r\n    //continue;\r\n}\r\nvar thisOver = 0;\r\n\r\nTaskEntity task1 = null;\r\nTaskEntity task2 = null;\r\n\r\nLogHelper.Info($\"鏌ョ湅RGV 1宸ヤ綅浠诲姟銆媆");\r\nif (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)\r\n{\r\n    var taskno = tag.RGV.ReadTask1No;\r\n    LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟{tag.RGV.ReadTask1No}\");\r\n    string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n    task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n    LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟{JsonConvert.SerializeObject(task1)}.bit1taskOver_LAST锛歿tag.RGV.bit1taskOver_LAST}\");\r\n    if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)\r\n    {\r\n        if (task1.S_B_STATE != \"瀹屾垚\")\r\n        {\r\n            if (task1.S_B_STATE == \"鍙栬揣瀹屾垚\")\r\n            {\r\n                task1.S_B_STATE = \"瀹屾垚\";\r\n            }\r\n            else\r\n            {\r\n                task1.S_B_STATE = \"鍙栬揣瀹屾垚\";\r\n            }\r\n            LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟{task1.S_TASK_NO} 鐘舵�鍒囨崲涓簕task1.S_B_STATE}\");\r\n            //tag.RGV.bit1taskOver_LAST = 1;\r\n            RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"1\", out string msg);\r\n            LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟鍐欏鐞哱");\r\n            taskservice.Update(task1);\r\n            LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟鏇存柊銆俓");\r\n        }\r\n    }\r\n}\r\nelse if (tag.RGV.ReadTask1No == 0)\r\n{\r\n    LogHelper.Info($\"RGV 1宸ヤ綅娌℃湁浠诲姟銆媆");\r\n}\r\n\r\nLogHelper.Info($\"鏌ョ湅RGV 2宸ヤ綅浠诲姟銆媆");\r\nif (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)\r\n{\r\n    var taskno = tag.RGV.ReadTask2No;\r\n    LogHelper.Info($\"RGV 2宸ヤ綅浠诲姟{tag.RGV.ReadTask2No}\");\r\n    string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n    task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n    LogHelper.Info($\"RGV2宸ヤ綅浠诲姟{JsonConvert.SerializeObject(task2)}.bit1taskOver_LAST锛歿tag.RGV.bit2taskOver_LAST}\");\r\n    if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)\r\n    {\r\n        if (task2.S_B_STATE != \"瀹屾垚\")\r\n        {\r\n            if (task2.S_B_STATE == \"鍙栬揣瀹屾垚\")\r\n            {\r\n                task2.S_B_STATE = \"瀹屾垚\";\r\n            }\r\n            else\r\n            {\r\n                task2.S_B_STATE = \"鍙栬揣瀹屾垚\";\r\n            }\r\n            LogHelper.Info($\"RGV 2宸ヤ綅浠诲姟{task2.S_TASK_NO} 鐘舵�鍒囨崲涓簕task2.S_B_STATE}\");\r\n            RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"1\", out string msg);\r\n            LogHelper.Info($\"RGV 2宸ヤ綅浠诲姟鍐欏鐞哱");\r\n            taskservice.Update(task2);\r\n            LogHelper.Info($\"RGV 2宸ヤ綅浠诲姟鏇存柊銆俓");\r\n        }\r\n    }\r\n}\r\nelse if (tag.RGV.ReadTask2No == 0)\r\n{\r\n    LogHelper.Info($\"RGV 2宸ヤ綅娌℃湁浠诲姟銆媆");\r\n}\r\n\r\n\r\n///1 鏈夎揣  灏� 鍙栥�  1 娌¤揣 灏� 鍗歌揣锛�閮芥湁璐� 灏�鍗歌揣銆�閮芥病璐�灏�鍗竆r\ntklist = taskservice.FindList(x => x.S_B_STATE == \"鏈墽琛孿" && x.S_WORK_MODE == \"RGV\").OrderBy(x => x.T_CREATE).ToList();\r\nif (task1 != null && task1.S_B_STATE != \"瀹屾垚\") //1鏈変换鍔r\n{\r\n    if (task2 != null && task2.S_B_STATE != \"瀹屾垚\")// 1 鏈変换鍔� 2 鏈変换鍔°� \r\n    {\r\n        LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 涔熸湁浠诲姟{task2.S_TASK_NO}銆�寮�宸ヤ綅1 鍗歌揣銆俓");\r\n        tag.RGV.workMod = 1;\r\n        tag.RGV.taskmod = 2;\r\n        tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n        tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n        System.Threading.Thread.Sleep(750);\r\n        tag.RGV.taskend = 125;\r\n        System.Threading.Thread.Sleep(750);\r\n        tag.RGV.taskend = 125;\r\n    }\r\n    else //1鏈変换鍔� 2 娌′换鍔°�\r\n    {\r\n        LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 娌′换鍔°� 鎵惧悓渚у彇璐т换鍔°�\");\r\n        //1 濡傛灉鏈夊悓渚у彇璐т换鍔°�灏卞彇銆傛病鏈塡r\n        var leftSide = new List<string> { \"1023\", \"1020\" };\r\n        var RightSide = new List<string> { \"1002\", \"1008\", \"1010\", \"1016\" };\r\n        bool creT2 = false;\r\n        if (leftSide.Contains(task1.S_START_LOC))\r\n        {\r\n            leftSide.Remove(task1.S_START_LOC);\r\n            var lsde = leftSide.FirstOrDefault();\r\n            var t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != \"1017\");\r\n            if (t2 != null) //鍚屼晶鍙栬揣浠诲姟銆俓r\n            {\r\n                LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 娌′换鍔°� 鎵惧悓渚у彇璐т换鍔t2.S_TASK_NO}銆俓");\r\n                tag.RGV.workMod = 2;\r\n                tag.RGV.taskmod = 1;\r\n                tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n                tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n                System.Threading.Thread.Sleep(750);\r\n                tag.RGV.taskend = 125;\r\n                System.Threading.Thread.Sleep(750);\r\n                tag.RGV.taskend = 125;\r\n                t2.S_B_STATE = \"宸叉帹閫乗";\r\n                taskservice.Update(t2);\r\n                creT2 = true;\r\n            }\r\n        }\r\n        else if (RightSide.Contains(task1.S_START_LOC))\r\n        {\r\n            RightSide.Remove(task1.S_START_LOC);\r\n            var t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != \"1017\");\r\n            if (t2 != null) //鍚屼晶鍙栬揣浠诲姟銆俓r\n            {\r\n                LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 娌′换鍔°� 鎵惧悓渚у彇璐т换鍔t2.S_TASK_NO}銆俓");\r\n                tag.RGV.workMod = 2;\r\n                tag.RGV.taskmod = 1;\r\n                tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n                tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n                System.Threading.Thread.Sleep(750);\r\n                tag.RGV.taskend = 125;\r\n                System.Threading.Thread.Sleep(750);\r\n                tag.RGV.taskend = 125;\r\n                t2.S_B_STATE = \"宸叉帹閫乗";\r\n                taskservice.Update(t2);\r\n                creT2 = true;\r\n            }\r\n        }\r\n        //else //1 鐩存帴鍗歌揣銆�\r\n        if (!creT2)\r\n        {\r\n            LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 娌′换鍔°� 娌℃湁鍚屼晶鍙栬揣浠诲姟 1宸ヤ綅鍗歌揣銆俓");\r\n            tag.RGV.workMod = 1;\r\n            tag.RGV.taskmod = 2;\r\n            tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n            tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n            System.Threading.Thread.Sleep(750);\r\n            tag.RGV.taskend = 125;\r\n            System.Threading.Thread.Sleep(750);\r\n            tag.RGV.taskend = 125;\r\n        }\r\n    }\r\n}\r\nelse\r\n{\r\n    if (task2 != null && task2.S_B_STATE != \"瀹屾垚\")// 1 娌′换鍔� 2 鏈変换鍔°� \r\n    {\r\n        LogHelper.Info($\"鏌ョ湅RGV 1宸ヤ綅娌′换鍔�宸ヤ綅2 鏈変换鍔task2.S_TASK_NO}銆傚伐浣�鍗歌揣銆傘�\");\r\n        //2 鍗歌揣銆俓r\n        tag.RGV.workMod = 2;\r\n        tag.RGV.taskmod = 2;\r\n        tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));\r\n        tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);\r\n        System.Threading.Thread.Sleep(750);\r\n        tag.RGV.taskend = 125;\r\n        System.Threading.Thread.Sleep(750);\r\n        tag.RGV.taskend = 125;\r\n    }\r\n    else //1mei 浠诲姟  2 娌′换鍔°�\r\n    {\r\n        LogHelper.Info($\"鏌ョ湅RGV 1宸ヤ綅娌′换鍔�宸ヤ綅2 涔熸病浠诲姟銆備紭鍏�宸ヤ綅缁堢偣1017浠诲姟銆傘�\");\r\n        //銆佷笅 1017浠诲姟 缁�鍙峰伐浣嶃�\r\n        var lss = tklist.Take(2).ToList();\r\n        var e1017first = lss.Find(x => x.S_END_LOC == \"1017\");\r\n        if (e1017first == null)\r\n        {\r\n            e1017first = lss.FirstOrDefault();\r\n        }\r\n        if (e1017first != null)\r\n        {\r\n            LogHelper.Info($\"鏌ョ湅RGV 1宸ヤ綅娌′换鍔�宸ヤ綅2 涔熸病浠诲姟銆�宸ヤ綅涓嬩换鍔e1017first.S_TASK_NO}> 缁堢偣{e1017first.S_END_LOC}銆俓");\r\n            try\r\n            {\r\n                tag.RGV.workMod = 1;\r\n                tag.RGV.taskmod = 1;\r\n                uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));\r\n                LogHelper.Info($\"{e1017first.S_TASK_NO}> 杞崲鍚庝换鍔″彿{tno} 寮�鍐欏叆銆俓");\r\n                tag.RGV.taskno1 = tno;\r\n                LogHelper.Info($\"{e1017first.S_TASK_NO}>寮�鍐欏叆 task1do>>{e1017first.S_START_LOC}銆俓");\r\n                tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                LogHelper.Error(ex.Message, ex);\r\n                throw ex;\r\n            }\r\n            System.Threading.Thread.Sleep(750);\r\n            tag.RGV.taskend = 125;\r\n            System.Threading.Thread.Sleep(750);\r\n            tag.RGV.taskend = 125;\r\n            LogHelper.Info($\"{e1017first.S_TASK_NO}> taskend 125\");\r\n            e1017first.S_B_STATE = \"宸叉帹閫乗";\r\n            taskservice.Update(e1017first);\r\n        }\r\n    }\r\n}\r\n\r\n#endregion",
-          "ContentCopy": "ITaskRepository taskservice = new TaskRepository();\r\nvar tklist = taskservice.FindList(x => x.S_B_STATE == \"鏈墽琛孿" && x.S_WORK_MODE == \"AGV\");\r\nif(tklist.Any())\r\nforeach (var tk in tklist.GroupBy(item =>\r\n{\r\n    var ticks = item.T_CREATE.Ticks;\r\n    return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));\r\n}).OrderBy(x => x.Key))\r\n{\r\n    var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();\r\n    foreach (var t in ts)\r\n    {\r\n        var b = false;\r\n        b = RunTask(t);\r\n\r\n        if (b)\r\n        {\r\n            t.S_B_STATE = \"宸叉帹閫乗";\r\n            taskservice.Update(t);\r\n        }\r\n    }\r\n    break;\r\n}\r\n#region Rgv\r\n\r\nvar task1Isrun = false;\r\nif (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)\r\n{\r\n    task1Isrun = true;\r\n    if (tag.RGV.bit1taskOver_LAST == 1)\r\n        RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"0\", out string msg);\r\n}\r\nvar task2Isrun = false;\r\nif (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1)\r\n{\r\n    task2Isrun = true;\r\n    if (tag.RGV.bit2taskOver_LAST == 1)\r\n        RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"0\", out string msg);\r\n}\r\nif (task1Isrun || task2Isrun)\r\n{\r\n    string mes = \"\";\r\n    if (task1Isrun)\r\n        mes += tag.RGV.ReadTask1No + \"鎵ц涓�..\";\r\n    if (task2Isrun)\r\n        mes += tag.RGV.ReadTask2No + \"鎵ц涓�..\";\r\n    LogHelper.Info($\"{mes} 涓嶈兘涓嬪彂鏂颁换鍔°�\");\r\n    throw new Exception($\"{mes} 涓嶈兘涓嬪彂鏂颁换鍔°�\");\r\n    //continue;\r\n}\r\nvar thisOver = 0;\r\n\r\nTaskEntity task1 = null;\r\nTaskEntity task2 = null;\r\n\r\nLogHelper.Info($\"鏌ョ湅RGV 1宸ヤ綅浠诲姟銆媆");\r\nif (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)\r\n{\r\n    var taskno = tag.RGV.ReadTask1No;\r\n    LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟{tag.RGV.ReadTask1No}\");\r\n    string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n    task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n    LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟{JsonConvert.SerializeObject(task1)}.bit1taskOver_LAST锛歿tag.RGV.bit1taskOver_LAST}\");\r\n    if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)\r\n    {\r\n        if (task1.S_B_STATE != \"瀹屾垚\")\r\n        {\r\n            if (task1.S_B_STATE == \"鍙栬揣瀹屾垚\")\r\n            {\r\n                task1.S_B_STATE = \"瀹屾垚\";\r\n            }\r\n            else\r\n            {\r\n                task1.S_B_STATE = \"鍙栬揣瀹屾垚\";\r\n            }\r\n            LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟{task1.S_TASK_NO} 鐘舵�鍒囨崲涓簕task1.S_B_STATE}\");\r\n            //tag.RGV.bit1taskOver_LAST = 1;\r\n            RedisHelper.Add($\"RGV.bit1taskOver_LAST\", \"1\", out string msg);\r\n            LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟鍐欏鐞哱");\r\n            taskservice.Update(task1);\r\n            LogHelper.Info($\"RGV 1宸ヤ綅浠诲姟鏇存柊銆俓");\r\n        }\r\n    }\r\n}\r\nelse if (tag.RGV.ReadTask1No == 0)\r\n{\r\n    LogHelper.Info($\"RGV 1宸ヤ綅娌℃湁浠诲姟銆媆");\r\n}\r\n\r\nLogHelper.Info($\"鏌ョ湅RGV 2宸ヤ綅浠诲姟銆媆");\r\nif (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)\r\n{\r\n    var taskno = tag.RGV.ReadTask2No;\r\n    LogHelper.Info($\"RGV 2宸ヤ綅浠诲姟{tag.RGV.ReadTask2No}\");\r\n    string tno = \"TN\" + (DateTime.Now.ToString(\"yy\")) + ((taskno.ToString()).PadLeft(8, '0'));\r\n    task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);\r\n\r\n    LogHelper.Info($\"RGV2宸ヤ綅浠诲姟{JsonConvert.SerializeObject(task2)}.bit1taskOver_LAST锛歿tag.RGV.bit2taskOver_LAST}\");\r\n    if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)\r\n    {\r\n        if (task2.S_B_STATE != \"瀹屾垚\")\r\n        {\r\n            if (task2.S_B_STATE == \"鍙栬揣瀹屾垚\")\r\n            {\r\n                task2.S_B_STATE = \"瀹屾垚\";\r\n            }\r\n            else\r\n            {\r\n                task2.S_B_STATE = \"鍙栬揣瀹屾垚\";\r\n            }\r\n            LogHelper.Info($\"RGV 2宸ヤ綅浠诲姟{task2.S_TASK_NO} 鐘舵�鍒囨崲涓簕task2.S_B_STATE}\");\r\n            RedisHelper.Add($\"RGV.bit2taskOver_LAST\", \"1\", out string msg);\r\n            LogHelper.Info($\"RGV 2宸ヤ綅浠诲姟鍐欏鐞哱");\r\n            taskservice.Update(task2);\r\n            LogHelper.Info($\"RGV 2宸ヤ綅浠诲姟鏇存柊銆俓");\r\n        }\r\n    }\r\n}\r\nelse if (tag.RGV.ReadTask2No == 0)\r\n{\r\n    LogHelper.Info($\"RGV 2宸ヤ綅娌℃湁浠诲姟銆媆");\r\n}\r\n\r\n\r\n///1 鏈夎揣  灏� 鍙栥�  1 娌¤揣 灏� 鍗歌揣锛�閮芥湁璐� 灏�鍗歌揣銆�閮芥病璐�灏�鍗竆r\ntklist = taskservice.FindList(x => x.S_B_STATE == \"鏈墽琛孿" && x.S_WORK_MODE == \"RGV\").OrderBy(x => x.T_CREATE).ToList();\r\nif (task1 != null && task1.S_B_STATE != \"瀹屾垚\") //1鏈変换鍔r\n{\r\n    if (task2 != null && task2.S_B_STATE != \"瀹屾垚\")// 1 鏈変换鍔� 2 鏈変换鍔°� \r\n    {\r\n        LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 涔熸湁浠诲姟{task2.S_TASK_NO}銆�寮�宸ヤ綅1 鍗歌揣銆俓");\r\n        tag.RGV.workMod = 1;\r\n        tag.RGV.taskmod = 2;\r\n        tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n        tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n        System.Threading.Thread.Sleep(750);\r\n        tag.RGV.taskend = 125;\r\n        System.Threading.Thread.Sleep(750);\r\n        tag.RGV.taskend = 125;\r\n    }\r\n    else //1鏈変换鍔� 2 娌′换鍔°�\r\n    {\r\n        LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 娌′换鍔°� 鎵惧悓渚у彇璐т换鍔°�\");\r\n        //1 濡傛灉鏈夊悓渚у彇璐т换鍔°�灏卞彇銆傛病鏈塡r\n        var leftSide = new List<string> { \"1023\", \"1020\" };\r\n        var RightSide = new List<string> { \"1002\", \"1008\", \"1010\", \"1016\" };\r\n        bool creT2 = false;\r\n        if (leftSide.Contains(task1.S_START_LOC))\r\n        {\r\n            leftSide.Remove(task1.S_START_LOC);\r\n            var lsde = leftSide.FirstOrDefault();\r\n            var t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != \"1017\");\r\n            if (t2 != null) //鍚屼晶鍙栬揣浠诲姟銆俓r\n            {\r\n                LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 娌′换鍔°� 鎵惧悓渚у彇璐т换鍔t2.S_TASK_NO}銆俓");\r\n                tag.RGV.workMod = 2;\r\n                tag.RGV.taskmod = 1;\r\n                tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n                tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n                System.Threading.Thread.Sleep(750);\r\n                tag.RGV.taskend = 125;\r\n                System.Threading.Thread.Sleep(750);\r\n                tag.RGV.taskend = 125;\r\n                t2.S_B_STATE = \"宸叉帹閫乗";\r\n                taskservice.Update(t2);\r\n                creT2 = true;\r\n            }\r\n        }\r\n        else if (RightSide.Contains(task1.S_START_LOC))\r\n        {\r\n            RightSide.Remove(task1.S_START_LOC);\r\n            var t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != \"1017\");\r\n            if (t2 != null) //鍚屼晶鍙栬揣浠诲姟銆俓r\n            {\r\n                LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 娌′换鍔°� 鎵惧悓渚у彇璐т换鍔t2.S_TASK_NO}銆俓");\r\n                tag.RGV.workMod = 2;\r\n                tag.RGV.taskmod = 1;\r\n                tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));\r\n                tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);\r\n                System.Threading.Thread.Sleep(750);\r\n                tag.RGV.taskend = 125;\r\n                System.Threading.Thread.Sleep(750);\r\n                tag.RGV.taskend = 125;\r\n                t2.S_B_STATE = \"宸叉帹閫乗";\r\n                taskservice.Update(t2);\r\n                creT2 = true;\r\n            }\r\n        }\r\n        //else //1 鐩存帴鍗歌揣銆�\r\n        if (!creT2)\r\n        {\r\n            LogHelper.Info($\"鏌ョ湅RGV1 鏈変换鍔task1.S_TASK_NO},宸ヤ綅2 娌′换鍔°� 娌℃湁鍚屼晶鍙栬揣浠诲姟 1宸ヤ綅鍗歌揣銆俓");\r\n            tag.RGV.workMod = 1;\r\n            tag.RGV.taskmod = 2;\r\n            tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));\r\n            tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);\r\n            System.Threading.Thread.Sleep(750);\r\n            tag.RGV.taskend = 125;\r\n            System.Threading.Thread.Sleep(750);\r\n            tag.RGV.taskend = 125;\r\n        }\r\n    }\r\n}\r\nelse\r\n{\r\n    if (task2 != null && task2.S_B_STATE != \"瀹屾垚\")// 1 娌′换鍔� 2 鏈変换鍔°� \r\n    {\r\n        LogHelper.Info($\"鏌ョ湅RGV 1宸ヤ綅娌′换鍔�宸ヤ綅2 鏈変换鍔task2.S_TASK_NO}銆傚伐浣�鍗歌揣銆傘�\");\r\n        //2 鍗歌揣銆俓r\n        tag.RGV.workMod = 2;\r\n        tag.RGV.taskmod = 2;\r\n        tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));\r\n        tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);\r\n        System.Threading.Thread.Sleep(750);\r\n        tag.RGV.taskend = 125;\r\n        System.Threading.Thread.Sleep(750);\r\n        tag.RGV.taskend = 125;\r\n    }\r\n    else //1mei 浠诲姟  2 娌′换鍔°�\r\n    {\r\n        LogHelper.Info($\"鏌ョ湅RGV 1宸ヤ綅娌′换鍔�宸ヤ綅2 涔熸病浠诲姟銆備紭鍏�宸ヤ綅缁堢偣1017浠诲姟銆傘�\");\r\n        //銆佷笅 1017浠诲姟 缁�鍙峰伐浣嶃�\r\n        var lss = tklist.Take(2).ToList();\r\n        var e1017first = lss.Find(x => x.S_END_LOC == \"1017\");\r\n        if (e1017first == null)\r\n        {\r\n            e1017first = lss.FirstOrDefault();\r\n        }\r\n        if (e1017first != null)\r\n        {\r\n            LogHelper.Info($\"鏌ョ湅RGV 1宸ヤ綅娌′换鍔�宸ヤ綅2 涔熸病浠诲姟銆�宸ヤ綅涓嬩换鍔e1017first.S_TASK_NO}> 缁堢偣{e1017first.S_END_LOC}銆俓");\r\n            try\r\n            {\r\n                tag.RGV.workMod = 1;\r\n                tag.RGV.taskmod = 1;\r\n                uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));\r\n                LogHelper.Info($\"{e1017first.S_TASK_NO}> 杞崲鍚庝换鍔″彿{tno} 寮�鍐欏叆銆俓");\r\n                tag.RGV.taskno1 = tno;\r\n                LogHelper.Info($\"{e1017first.S_TASK_NO}>寮�鍐欏叆 task1do>>{e1017first.S_START_LOC}銆俓");\r\n                tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);\r\n            }\r\n            catch (Exception ex)\r\n            {\r\n                LogHelper.Error(ex.Message, ex);\r\n                throw ex;\r\n            }\r\n            System.Threading.Thread.Sleep(750);\r\n            tag.RGV.taskend = 125;\r\n            System.Threading.Thread.Sleep(750);\r\n            tag.RGV.taskend = 125;\r\n            LogHelper.Info($\"{e1017first.S_TASK_NO}> taskend 125\");\r\n            e1017first.S_B_STATE = \"宸叉帹閫乗";\r\n            taskservice.Update(e1017first);\r\n        }\r\n    }\r\n}\r\n\r\n#endregion",
+          "Content": "\r\n                        Func<TaskEntity, bool> myDelegate = (t) => RunTask(t);\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadTaskRun\", new object[] { tag, myDelegate });",
+          "ContentCopy": "\r\n                        Func<TaskEntity, bool> myDelegate = (t) => RunTask(t);\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadTaskRun\", new object[] { tag, myDelegate });",
           "ParentID": "20250226153120175",
           "Children": [],
           "Type": "Program",
@@ -626,8 +626,8 @@
           "ID": "20250611223832523",
           "Name": "鍏夋爡澶勭悊",
           "Desc": "",
-          "Content": "// - 鍏夋爡浜や簰澶勭悊銆傘�\r\n                        var taskCOdes = new List<string> { \"Sarrive\", \"Srelease\", \"Earrive\", \"Erelease\" };\r\n                        TaskActRepository taskActRepository = new TaskActRepository();\r\n                        TaskRepository taskRepository = new TaskRepository();\r\n                        var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0);\r\n                        foreach (var item in requires)\r\n                        {\r\n                            var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);\r\n                            if (tin == -1)\r\n                            {\r\n                                item.N_CREATEMETHOD = -1;\r\n                                taskActRepository.Update(item);\r\n                                continue;\r\n                            }\r\n                            //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);\r\n                            string loc = \"\";\r\n                            if (tin < 2)\r\n                            {\r\n                                loc = item.S_START_LOC;\r\n                            }\r\n                            else\r\n                            {\r\n                                loc = item.S_END_LOC;\r\n                            } \r\n\t\t\t\t\t\t\tif (loc == null) continue; else loc = loc.Trim();\r\n                            bool goin = tin % 2 == 0;\r\n                            bool continuuuuu =false;\r\n                            var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));\r\n                            if (dev != null)\r\n                            {\r\n                                var V = dev.location.ToList().FindIndex(x => x == loc) == 0;\r\n\t\t\t\t\t\t\t\t//杞﹁蛋浜� 寮�厜鏍匼r\n                                if (!goin)\r\n                                {\r\n                                    if (dev.deviceType == 1)\r\n                                    {\r\n                                        LogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆俓"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\"));\r\n                                        Conn.榛樿Redis.SetValue(dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\");\r\n\r\n                                    }\r\n                                    else if (dev.deviceType == 2)\r\n                                    {\r\n                                        LogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆俓"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\"));\r\n                                        Conn.榛樿Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\");\r\n                                    }\r\n                                    \r\n\t                                item.N_CREATEMETHOD = 1;\r\n\t                                taskActRepository.Update(item);\r\n\t\t\t\t\t\t\t\t}\r\n                                //杞﹁杩涘叆浜や簰銆俓r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n                                    if (dev.deviceType == 1)\r\n                                    {\r\n\t\t\t\t\t\t\t\t\t\tvar tf = Conn.榛樿Redis.GetValue(dev.deviceName + \".\" + (V ? \"R50\" : \"R52\"));//璇诲叧闂姸鎬乗r\n\t\t\t\t\t\t\t\t\t\tif (tf?.ToLower() == \"true\")\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆�宸茬粡鍏抽棴锛乗");\r\n\t\t\t\t\t\t\t\t\t\t\tcontinuuuuu = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆俓"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\"));\r\n\t\t\t\t\t\t\t\t\t\t\tConn.榛樿Redis.SetValue(dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n                                    }\r\n                                    else if (dev.deviceType == 2)\r\n                                    {\r\n                                        var tf = Conn.榛樿Redis.GetValue(dev.deviceName + \".D1202\");\r\n\t\t\t\t\t\t\t\t\t\tint numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n                                        if (TcpServer.GetBitdata(numm,(V?0:1))==1)\r\n                                        {\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆�宸茬粡鍏抽棴锛乗");\r\n                                            continuuuuu = true;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            LogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆俓"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), dev.deviceName + \"Queue\"));\r\n                                            Conn.榛樿Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), \"1\", dev.deviceName + \"Queue\");\r\n                                        }\r\n                                    }\r\n\r\n                                }\r\n\r\n                            }\r\n                            if (continuuuuu)\r\n                            {\r\n\t\t\t\t\t\t\t\tLogHelper.Info($\"{item.S_TASK_NO}{item.S_ACTION_CODE} 杞﹁締鍙戦�缁х画浠诲姟锛乗");\r\n                                continueTask(new HaiKangOrderInfo\r\n                                {\r\n                                    reqCode = item.S_ID.Replace(\"-\", \"\"),\r\n                                    taskCode = item.S_TASK_NO\r\n                                });\r\n                                item.N_CREATEMETHOD = 1;\r\n                                taskActRepository.Update(item);\r\n                            }\r\n                        }\r\n                        System.Threading.Thread.Sleep(3000);\r\n                        //閲嶇疆淇″彿\r\n                        foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))\r\n                        {\r\n                            var tf = Conn.榛樿Redis.GetValue(dev.deviceName + \".D1202\");\r\n                            int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n                            if (TcpServer.GetBitdata(numm, 0) == 0)\r\n                            {\r\n                                Conn.榛樿Redis.SetValue(dev.deviceName + \".D1220\", \"0\", dev.deviceName + \"Queue\");\r\n                                Conn.榛樿Redis.SetValue(dev.deviceName + \".D1222\", \"0\", dev.deviceName + \"Queue\");\r\n                            }\r\n                            else if (TcpServer.GetBitdata(numm, 1) == 0)\r\n                            {\r\n                                Conn.榛樿Redis.SetValue(dev.deviceName + \".D1221\", \"0\", dev.deviceName + \"Queue\");\r\n                                Conn.榛樿Redis.SetValue(dev.deviceName + \".D1223\", \"0\", dev.deviceName + \"Queue\");\r\n                            }\r\n                        }\r\n                        \r\n                        // 鍙戦偅绉戜笅鏂欏厜鏍呫�",
-          "ContentCopy": "// - 鍏夋爡浜や簰澶勭悊銆傘�\r\n                        var taskCOdes = new List<string> { \"Sarrive\", \"Srelease\", \"Earrive\", \"Erelease\" };\r\n                        TaskActRepository taskActRepository = new TaskActRepository();\r\n                        TaskRepository taskRepository = new TaskRepository();\r\n                        var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0);\r\n                        foreach (var item in requires)\r\n                        {\r\n                            var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);\r\n                            if (tin == -1)\r\n                            {\r\n                                item.N_CREATEMETHOD = -1;\r\n                                taskActRepository.Update(item);\r\n                                continue;\r\n                            }\r\n                            //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);\r\n                            string loc = \"\";\r\n                            if (tin < 2)\r\n                            {\r\n                                loc = item.S_START_LOC;\r\n                            }\r\n                            else\r\n                            {\r\n                                loc = item.S_END_LOC;\r\n                            } \r\n\t\t\t\t\t\t\tif (loc == null) continue; else loc = loc.Trim();\r\n                            bool goin = tin % 2 == 0;\r\n                            bool continuuuuu =false;\r\n                            var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));\r\n                            if (dev != null)\r\n                            {\r\n                                var V = dev.location.ToList().FindIndex(x => x == loc) == 0;\r\n\t\t\t\t\t\t\t\t//杞﹁蛋浜� 寮�厜鏍匼r\n                                if (!goin)\r\n                                {\r\n                                    if (dev.deviceType == 1)\r\n                                    {\r\n                                        LogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆俓"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\"));\r\n                                        Conn.榛樿Redis.SetValue(dev.deviceName + \".\" + (V ? \"R02\" : \"R04\"), \"true\", dev.deviceName + \"Queue\");\r\n\r\n                                    }\r\n                                    else if (dev.deviceType == 2)\r\n                                    {\r\n                                        LogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆俓"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\"));\r\n                                        Conn.榛樿Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1222\" : \"D1223\"), \"1\", dev.deviceName + \"Queue\");\r\n                                    }\r\n                                    \r\n\t                                item.N_CREATEMETHOD = 1;\r\n\t                                taskActRepository.Update(item);\r\n\t\t\t\t\t\t\t\t}\r\n                                //杞﹁杩涘叆浜や簰銆俓r\n\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t{\r\n                                    if (dev.deviceType == 1)\r\n                                    {\r\n\t\t\t\t\t\t\t\t\t\tvar tf = Conn.榛樿Redis.GetValue(dev.deviceName + \".\" + (V ? \"R50\" : \"R52\"));//璇诲叧闂姸鎬乗r\n\t\t\t\t\t\t\t\t\t\tif (tf?.ToLower() == \"true\")\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆�宸茬粡鍏抽棴锛乗");\r\n\t\t\t\t\t\t\t\t\t\t\tcontinuuuuu = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆俓"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\"));\r\n\t\t\t\t\t\t\t\t\t\t\tConn.榛樿Redis.SetValue(dev.deviceName + \".\" + (V ? \"R01\" : \"R03\"), \"true\", dev.deviceName + \"Queue\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n                                    }\r\n                                    else if (dev.deviceType == 2)\r\n                                    {\r\n                                        var tf = Conn.榛樿Redis.GetValue(dev.deviceName + \".D1202\");\r\n\t\t\t\t\t\t\t\t\t\tint numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n                                        if (TcpServer.GetBitdata(numm,(V?0:1))==1)\r\n                                        {\r\n\t\t\t\t\t\t\t\t\t\t\tLogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆�宸茬粡鍏抽棴锛乗");\r\n                                            continuuuuu = true;\r\n                                        }\r\n                                        else\r\n                                        {\r\n                                            LogHelper.Info($\"{dev.deviceName}{(V ? \"宸" : \"鍙砛")} 鍏夋爡{(goin?\"鍏抽棴\":\"寮�惎\")} 鐢宠銆俓"+string.Format(\"{0}{1}{2}\", dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), dev.deviceName + \"Queue\"));\r\n                                            Conn.榛樿Redis.SetValue(dev.deviceName + \".\" + (V ? \"D1220\" : \"D1221\"), \"1\", dev.deviceName + \"Queue\");\r\n                                        }\r\n                                    }\r\n\r\n                                }\r\n\r\n                            }\r\n                            if (continuuuuu)\r\n                            {\r\n\t\t\t\t\t\t\t\tLogHelper.Info($\"{item.S_TASK_NO}{item.S_ACTION_CODE} 杞﹁締鍙戦�缁х画浠诲姟锛乗");\r\n                                continueTask(new HaiKangOrderInfo\r\n                                {\r\n                                    reqCode = item.S_ID.Replace(\"-\", \"\"),\r\n                                    taskCode = item.S_TASK_NO\r\n                                });\r\n                                item.N_CREATEMETHOD = 1;\r\n                                taskActRepository.Update(item);\r\n                            }\r\n                        }\r\n                        System.Threading.Thread.Sleep(3000);\r\n                        //閲嶇疆淇″彿\r\n                        foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))\r\n                        {\r\n                            var tf = Conn.榛樿Redis.GetValue(dev.deviceName + \".D1202\");\r\n                            int numm = int.Parse(string.IsNullOrEmpty(tf) ? \"0\" : tf);\r\n                            if (TcpServer.GetBitdata(numm, 0) == 0)\r\n                            {\r\n                                Conn.榛樿Redis.SetValue(dev.deviceName + \".D1220\", \"0\", dev.deviceName + \"Queue\");\r\n                                Conn.榛樿Redis.SetValue(dev.deviceName + \".D1222\", \"0\", dev.deviceName + \"Queue\");\r\n                            }\r\n                            else if (TcpServer.GetBitdata(numm, 1) == 0)\r\n                            {\r\n                                Conn.榛樿Redis.SetValue(dev.deviceName + \".D1221\", \"0\", dev.deviceName + \"Queue\");\r\n                                Conn.榛樿Redis.SetValue(dev.deviceName + \".D1223\", \"0\", dev.deviceName + \"Queue\");\r\n                            }\r\n                        }\r\n                        \r\n                        // 鍙戦偅绉戜笅鏂欏厜鏍呫�",
+          "Content": "// - 鍏夋爡浜や簰澶勭悊銆傘�\r\n                        Action<HaiKangOrderInfo> myDelegate = (t) => continueTask(t);\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadGrats\", new object[] { tag, myDelegate });\r\n                        \r\n                        // 鍙戦偅绉戜笅鏂欏厜鏍呫�",
+          "ContentCopy": "// - 鍏夋爡浜や簰澶勭悊銆傘�\r\n                        Action<HaiKangOrderInfo> myDelegate = (t) => continueTask(t);\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadGrats\", new object[] { tag, myDelegate });\r\n                        \r\n                        // 鍙戦偅绉戜笅鏂欏厜鏍呫�",
           "ParentID": "20250226153120175",
           "Children": [],
           "Type": "Program",
@@ -673,8 +673,8 @@
               "ID": "20250616094224396",
               "Name": "1020绌烘涓嬬嚎",
               "Desc": "",
-              "Content": "foreach (var Bssx in new string[] { \"1020\", \"1023\" })\r\n{\r\n    var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n    var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n    var R鎵樼洏鐮�= (System.String)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.R鎵樼洏鐮乗"), typeof(System.String));\r\n    Console.WriteLine($\"{Bssx} 绌轰笅妫�祴锛氫换鍔$敵璇凤細{RtaskState}- 鏄惁宸插鐞嗭細{RtaskState_LAST}- 鎵樼洏鐮侊細{R鎵樼洏鐮亇\");\r\n    if (RtaskState == 3 && RtaskState_LAST == 0)\r\n    {\r\n        try\r\n        {\r\n            foreach (var item in new string[] { \"1004\", \"1006\", \"1012\", \"1014\" })\r\n            {\r\n                var R5 = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽\"), typeof(System.UInt16));\r\n                var R5绌洪棽_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽_LAST\"), typeof(System.UInt16));\r\n                if (R5 == 5 && R5绌洪棽_LAST == 0)\r\n                {\r\n                    var b = TaskProcess.CreateTask(\"\", Bssx, item, \"绌轰笂RGV\", 5, new List<string> { R鎵樼洏鐮�}, \"RGV\");\r\n                    if (b)\r\n                    {\r\n                        LogHelper.Debug($\"杈撻�绾縍GV绌烘墭浠诲姟 from:{Bssx}>to {item}寮�鍒涘缓鎴愬姛\");\r\n                        RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n                        //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n                        RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"1\", out string msg1);\r\n                        //Conn.榛樿Redis.SetValue($\"S{item}Read.R5绌洪棽_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n                        break;\r\n                    }\r\n                }\r\n                else if (R5 != 5 && R5绌洪棽_LAST == 1)\r\n                {\r\n                    RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"0\", out string msg);\r\n                    //Conn.榛樿Redis.SetValue($\"S{item}Read.R5绌洪棽_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n                }\r\n            }\r\n            System.Threading.Thread.Sleep(1000);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            LogHelper.Error(ex.Message, ex);\r\n            Console.WriteLine(ex.Message + ex.StackTrace);\r\n        }\r\n    }\r\n    else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n    {\r\n        RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n        //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n    }\r\n    System.Threading.Thread.Sleep(2000);\r\n}",
-              "ContentCopy": "foreach (var Bssx in new string[] { \"1020\", \"1023\" })\r\n{\r\n    var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n    var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n    var R鎵樼洏鐮�= (System.String)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.R鎵樼洏鐮乗"), typeof(System.String));\r\n    Console.WriteLine($\"{Bssx} 绌轰笅妫�祴锛氫换鍔$敵璇凤細{RtaskState}- 鏄惁宸插鐞嗭細{RtaskState_LAST}- 鎵樼洏鐮侊細{R鎵樼洏鐮亇\");\r\n    if (RtaskState == 3 && RtaskState_LAST == 0)\r\n    {\r\n        try\r\n        {\r\n            foreach (var item in new string[] { \"1004\", \"1006\", \"1012\", \"1014\" })\r\n            {\r\n                var R5 = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽\"), typeof(System.UInt16));\r\n                var R5绌洪棽_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽_LAST\"), typeof(System.UInt16));\r\n                if (R5 == 5 && R5绌洪棽_LAST == 0)\r\n                {\r\n                    var b = TaskProcess.CreateTask(\"\", Bssx, item, \"绌轰笂RGV\", 5, new List<string> { R鎵樼洏鐮�}, \"RGV\");\r\n                    if (b)\r\n                    {\r\n                        LogHelper.Debug($\"杈撻�绾縍GV绌烘墭浠诲姟 from:{Bssx}>to {item}寮�鍒涘缓鎴愬姛\");\r\n                        RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n                        //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n                        RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"1\", out string msg1);\r\n                        //Conn.榛樿Redis.SetValue($\"S{item}Read.R5绌洪棽_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n                        break;\r\n                    }\r\n                }\r\n                else if (R5 != 5 && R5绌洪棽_LAST == 1)\r\n                {\r\n                    RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"0\", out string msg);\r\n                    //Conn.榛樿Redis.SetValue($\"S{item}Read.R5绌洪棽_LAST\", \"0\", $\"S{item}ReadQueue\");\r\n                }\r\n            }\r\n            System.Threading.Thread.Sleep(1000);\r\n        }\r\n        catch (Exception ex)\r\n        {\r\n            LogHelper.Error(ex.Message, ex);\r\n            Console.WriteLine(ex.Message + ex.StackTrace);\r\n        }\r\n    }\r\n    else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n    {\r\n        RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n        //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n    }\r\n    System.Threading.Thread.Sleep(2000);\r\n}",
+              "Content": "\r\n                        //1020  1023 绌烘涓嬬嚎\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadEdown\", new object[] { tag });",
+              "ContentCopy": "\r\n                        //1020  1023 绌烘涓嬬嚎\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadEdown\", new object[] { tag });",
               "ParentID": "20250614173821058",
               "Children": [],
               "Type": "Program",
@@ -751,8 +751,8 @@
               "ID": "20250616094632985",
               "Name": "瀹氬瓙婊′笅绾�,
               "Desc": "",
-              "Content": "foreach (var Bssx in new string[] { \"1008\", \"1016\" })\r\n{\r\n    var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n    var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n    var R鎵樼洏鐮�= (System.String)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.R鎵樼洏鐮乗"), typeof(System.String));\r\n    Console.WriteLine($\"{Bssx} 婊′笅妫�祴锛氫换鍔$敵璇凤細{RtaskState}- 鏄惁宸插鐞嗭細{RtaskState_LAST}- 鎵樼洏鐮侊細{R鎵樼洏鐮亇\");\r\n    if (RtaskState == 3 && RtaskState_LAST == 0)\r\n    {\r\n        var item = \"1026\";\r\n        var R5 = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽\"), typeof(System.UInt16));\r\n        var R5绌洪棽_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽_LAST\"), typeof(System.UInt16));\r\n        if (R5 == 5 && R5绌洪棽_LAST == 0)\r\n        {\r\n            var b = TaskProcess.CreateTask(\"\", Bssx, item, \"婊¤浆1026\", 5, new List<string> { R鎵樼洏鐮�}, \"RGV\");\r\n            if (b)\r\n            {\r\n                RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n                RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"1\", out string msg2);\r\n                //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n                //Conn.榛樿Redis.SetValue($\"S{item}Read.R5绌洪棽_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n                break;\r\n            }\r\n        }\r\n        else if (R5 != 5 && R5绌洪棽_LAST == 1)\r\n        {\r\n            RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"0\", out string msg2);\r\n        }\r\n    }\r\n    else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n    {\r\n        RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n        //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n    }\r\n    System.Threading.Thread.Sleep(2000);\r\n}",
-              "ContentCopy": "foreach (var Bssx in new string[] { \"1008\", \"1016\" })\r\n{\r\n    var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n    var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n    var R鎵樼洏鐮�= (System.String)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.R鎵樼洏鐮乗"), typeof(System.String));\r\n    Console.WriteLine($\"{Bssx} 婊′笅妫�祴锛氫换鍔$敵璇凤細{RtaskState}- 鏄惁宸插鐞嗭細{RtaskState_LAST}- 鎵樼洏鐮侊細{R鎵樼洏鐮亇\");\r\n    if (RtaskState == 3 && RtaskState_LAST == 0)\r\n    {\r\n        var item = \"1026\";\r\n        var R5 = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽\"), typeof(System.UInt16));\r\n        var R5绌洪棽_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽_LAST\"), typeof(System.UInt16));\r\n        if (R5 == 5 && R5绌洪棽_LAST == 0)\r\n        {\r\n            var b = TaskProcess.CreateTask(\"\", Bssx, item, \"婊¤浆1026\", 5, new List<string> { R鎵樼洏鐮�}, \"RGV\");\r\n            if (b)\r\n            {\r\n                RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n                RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"1\", out string msg2);\r\n                //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n                //Conn.榛樿Redis.SetValue($\"S{item}Read.R5绌洪棽_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n                break;\r\n            }\r\n        }\r\n        else if (R5 != 5 && R5绌洪棽_LAST == 1)\r\n        {\r\n            RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"0\", out string msg2);\r\n        }\r\n    }\r\n    else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n    {\r\n        RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n        //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"0\", $\"S{Bssx}ReadQueue\");\r\n    }\r\n    System.Threading.Thread.Sleep(2000);\r\n}",
+              "Content": "\r\n                        //瀹氬瓙婊′笅绾� 1008  1016   ->  1026\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadDdown\", new object[] { tag });",
+              "ContentCopy": "\r\n                        //瀹氬瓙婊′笅绾� 1008  1016   ->  1026\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadDdown\", new object[] { tag });",
               "ParentID": "20250614173821058",
               "Children": [],
               "Type": "Program",
@@ -790,8 +790,8 @@
               "ID": "20250616094511322",
               "Name": "杞瓙婊′笅绾�,
               "Desc": "",
-              "Content": "//杞瓙婊′笅绾� 1002  1010   - RGV2宸ヤ綅涓嶅彲鍒�1017 涓嶅彲涓嬪彂2宸ヤ綅浠诲姟銆俓r\nforeach (var Bssx in new string[] { \"1002\", \"1010\" })\r\n{\r\n    var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n    var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n    var R鎵樼洏鐮�= (System.String)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.R鎵樼洏鐮乗"), typeof(System.String));\r\n    Console.WriteLine($\"{Bssx} 婊′笅妫�祴锛氫换鍔$敵璇凤細{RtaskState}- 鏄惁宸插鐞嗭細{RtaskState_LAST}- 鎵樼洏鐮侊細{R鎵樼洏鐮亇\");\r\n    if (RtaskState == 3 && RtaskState_LAST == 0)\r\n    {\r\n        var item = \"1017\";\r\n        var R5 = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽\"), typeof(System.UInt16));\r\n        var R5绌洪棽_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽_LAST\"), typeof(System.UInt16));\r\n        if (R5 == 5 && R5绌洪棽_LAST == 0)\r\n        {\r\n            var b = TaskProcess.CreateTask(\"\", Bssx, item, \"婊¤浆1017\", 5, new List<string> { R鎵樼洏鐮�}, \"RGV\");\r\n            if (b)\r\n            {\r\n                RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n                RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"1\", out string msg1);\r\n                //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n                //Conn.榛樿Redis.SetValue($\"S{item}Read.R5绌洪棽_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n                break;\r\n            }\r\n        }\r\n        else if (R5 != 5 && R5绌洪棽_LAST == 1)\r\n        {\r\n            RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"0\", out string msg1);\r\n        }\r\n    }\r\n    else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n    {\r\n        RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n    }\r\n    System.Threading.Thread.Sleep(2000);\r\n}",
-              "ContentCopy": "//杞瓙婊′笅绾� 1002  1010   - RGV2宸ヤ綅涓嶅彲鍒�1017 涓嶅彲涓嬪彂2宸ヤ綅浠诲姟銆俓r\nforeach (var Bssx in new string[] { \"1002\", \"1010\" })\r\n{\r\n    var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState\"), typeof(System.UInt16));\r\n    var RtaskState_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.RtaskState_LAST\"), typeof(System.UInt16));\r\n    var R鎵樼洏鐮�= (System.String)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{Bssx}Read.R鎵樼洏鐮乗"), typeof(System.String));\r\n    Console.WriteLine($\"{Bssx} 婊′笅妫�祴锛氫换鍔$敵璇凤細{RtaskState}- 鏄惁宸插鐞嗭細{RtaskState_LAST}- 鎵樼洏鐮侊細{R鎵樼洏鐮亇\");\r\n    if (RtaskState == 3 && RtaskState_LAST == 0)\r\n    {\r\n        var item = \"1017\";\r\n        var R5 = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽\"), typeof(System.UInt16));\r\n        var R5绌洪棽_LAST = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"S{item}Read.R5绌洪棽_LAST\"), typeof(System.UInt16));\r\n        if (R5 == 5 && R5绌洪棽_LAST == 0)\r\n        {\r\n            var b = TaskProcess.CreateTask(\"\", Bssx, item, \"婊¤浆1017\", 5, new List<string> { R鎵樼洏鐮�}, \"RGV\");\r\n            if (b)\r\n            {\r\n                RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"1\", out string msg);\r\n                RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"1\", out string msg1);\r\n                //Conn.榛樿Redis.SetValue($\"S{Bssx}Read.RtaskState_LAST\", \"1\", $\"S{Bssx}ReadQueue\");\r\n                //Conn.榛樿Redis.SetValue($\"S{item}Read.R5绌洪棽_LAST\", \"1\", $\"S{item}ReadQueue\");\r\n                break;\r\n            }\r\n        }\r\n        else if (R5 != 5 && R5绌洪棽_LAST == 1)\r\n        {\r\n            RedisHelper.Add($\"S{item}Read.R5绌洪棽_LAST\", \"0\", out string msg1);\r\n        }\r\n    }\r\n    else if (RtaskState != 3 && RtaskState_LAST == 1)\r\n    {\r\n        RedisHelper.Add($\"S{Bssx}Read.RtaskState_LAST\", \"0\", out string msg);\r\n    }\r\n    System.Threading.Thread.Sleep(2000);\r\n}",
+              "Content": "\r\n                        //杞瓙婊′笅绾� 1002  1010   - RGV2宸ヤ綅涓嶅彲鍒�1017 涓嶅彲涓嬪彂2宸ヤ綅浠诲姟銆俓r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread0210Down\", new object[] { tag });",
+              "ContentCopy": "\r\n                        //杞瓙婊′笅绾� 1002  1010   - RGV2宸ヤ綅涓嶅彲鍒�1017 涓嶅彲涓嬪彂2宸ヤ綅浠诲姟銆俓r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread0210Down\", new object[] { tag });",
               "ParentID": "20250614173821058",
               "Children": [],
               "Type": "Program",
@@ -829,8 +829,8 @@
               "ID": "20250616095605911",
               "Name": "涓嬫枡浣嶆娴�,
               "Desc": "",
-              "Content": "//涓嬫枡浣嶆娴嬨�  1003  鍒颁綅鏃�鍐�鏍囪瘑淇″彿 骞�缁欐満姊版墜淇″彿銆� \r\nforeach (var ssx in new string[] { \"1003\", \"1005\", \"1011\", \"1013\" })\r\n{\r\n    var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"FNK1003051113.RArrive{ssx}\"), typeof(System.UInt16));\r\n    var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"FNK1003051113.RArrive{ssx}_LAST\"), typeof(System.UInt16));\r\n    if (RArrive == 1 && RArriveLast == 0)\r\n    {\r\n        if (ssx == \"1005\")\r\n        {\r\n            tag.FNK1.D2210 = 1;\r\n            tag.SF涓嬫枡浣�RArrive1005_LAST = 1;\r\n\r\n            tag.SF涓嬫枡浣�WRelease1005 = 0;\r\n            tag.SF涓嬫枡浣�WSafe0305 = 0;\r\n        }\r\n        else if (ssx == \"1003\")\r\n        {\r\n            tag.FNK2.D2215 = 1;\r\n            tag.SF涓嬫枡浣�RArrive1003_LAST = 1;\r\n\r\n            tag.SF涓嬫枡浣�WRelease1003 = 0;\r\n            tag.SF涓嬫枡浣�WSafe0305 = 0;\r\n        }\r\n        else if (ssx == \"1013\")\r\n        {\r\n            tag.FNK2.D2210 = 1;\r\n            tag.SF涓嬫枡浣�RArrive1013_LAST = 1;\r\n\r\n            tag.SF涓嬫枡浣�WRelease1013 = 0;\r\n            tag.SF涓嬫枡浣�WSafe1113 = 0;\r\n        }\r\n        else if (ssx == \"1011\")\r\n        {\r\n            tag.FNK2.D2215 = 1;\r\n            tag.SF涓嬫枡浣�RArrive1011_LAST = 1;\r\n\r\n            tag.SF涓嬫枡浣�WRelease1011 = 0;\r\n            tag.SF涓嬫枡浣�WSafe1113 = 0;\r\n        }\r\n    }\r\n    else if (RArrive == 0 && RArriveLast == 1)\r\n    {\r\n                                RedisHelper.Add($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", out string msg);\r\n    }\r\n}",
-              "ContentCopy": "//涓嬫枡浣嶆娴嬨�  1003  鍒颁綅鏃�鍐�鏍囪瘑淇″彿 骞�缁欐満姊版墜淇″彿銆� \r\nforeach (var ssx in new string[] { \"1003\", \"1005\", \"1011\", \"1013\" })\r\n{\r\n    var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"FNK1003051113.RArrive{ssx}\"), typeof(System.UInt16));\r\n    var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue($\"FNK1003051113.RArrive{ssx}_LAST\"), typeof(System.UInt16));\r\n    if (RArrive == 1 && RArriveLast == 0)\r\n    {\r\n        if (ssx == \"1005\")\r\n        {\r\n            tag.FNK1.D2210 = 1;\r\n            tag.SF涓嬫枡浣�RArrive1005_LAST = 1;\r\n\r\n            tag.SF涓嬫枡浣�WRelease1005 = 0;\r\n            tag.SF涓嬫枡浣�WSafe0305 = 0;\r\n        }\r\n        else if (ssx == \"1003\")\r\n        {\r\n            tag.FNK2.D2215 = 1;\r\n            tag.SF涓嬫枡浣�RArrive1003_LAST = 1;\r\n\r\n            tag.SF涓嬫枡浣�WRelease1003 = 0;\r\n            tag.SF涓嬫枡浣�WSafe0305 = 0;\r\n        }\r\n        else if (ssx == \"1013\")\r\n        {\r\n            tag.FNK2.D2210 = 1;\r\n            tag.SF涓嬫枡浣�RArrive1013_LAST = 1;\r\n\r\n            tag.SF涓嬫枡浣�WRelease1013 = 0;\r\n            tag.SF涓嬫枡浣�WSafe1113 = 0;\r\n        }\r\n        else if (ssx == \"1011\")\r\n        {\r\n            tag.FNK2.D2215 = 1;\r\n            tag.SF涓嬫枡浣�RArrive1011_LAST = 1;\r\n\r\n            tag.SF涓嬫枡浣�WRelease1011 = 0;\r\n            tag.SF涓嬫枡浣�WSafe1113 = 0;\r\n        }\r\n    }\r\n    else if (RArrive == 0 && RArriveLast == 1)\r\n    {\r\n                                RedisHelper.Add($\"FNK1003051113.RArrive{ssx}_LAST\", \"0\", out string msg);\r\n    }\r\n}",
+              "Content": "\r\n                        //涓嬫枡浣嶆娴嬨�  1003  鍒颁綅鏃�鍐�鏍囪瘑淇″彿 骞�缁欐満姊版墜淇″彿銆� \r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread涓嬫枡浣嶆娴媆", new object[] { tag });",
+              "ContentCopy": "\r\n                        //涓嬫枡浣嶆娴嬨�  1003  鍒颁綅鏃�鍐�鏍囪瘑淇″彿 骞�缁欐満姊版墜淇″彿銆� \r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread涓嬫枡浣嶆娴媆", new object[] { tag });",
               "ParentID": "20250614173821058",
               "Children": [],
               "Type": "Program",
@@ -868,8 +868,8 @@
               "ID": "20250616095709155",
               "Name": "1鍙稦NK鏈烘鎵嬪畬鎴�,
               "Desc": "",
-              "Content": "if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)\r\n{\r\n    tag.FNK1.D2210 = 0;\r\n    tag.FNK1.D2212_LAST = 1;\r\n\r\n    tag.SF涓嬫枡浣�WRelease1005 = 1;\r\n    tag.SF涓嬫枡浣�WSafe0305 = 1;\r\n}\r\nelse if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)\r\n{\r\n    tag.FNK1.D2212_LAST = 0;\r\n}\r\nif (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)\r\n{\r\n    tag.FNK1.D2215 = 0;\r\n    tag.FNK1.D2217_LAST = 1;\r\n\r\n    tag.SF涓嬫枡浣�WRelease1003 = 1;\r\n    tag.SF涓嬫枡浣�WSafe0305 = 1;\r\n}\r\nelse if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)\r\n    tag.FNK1.D2217_LAST = 0;\r\n",
-              "ContentCopy": "if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)\r\n{\r\n    tag.FNK1.D2210 = 0;\r\n    tag.FNK1.D2212_LAST = 1;\r\n\r\n    tag.SF涓嬫枡浣�WRelease1005 = 1;\r\n    tag.SF涓嬫枡浣�WSafe0305 = 1;\r\n}\r\nelse if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)\r\n{\r\n    tag.FNK1.D2212_LAST = 0;\r\n}\r\nif (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)\r\n{\r\n    tag.FNK1.D2215 = 0;\r\n    tag.FNK1.D2217_LAST = 1;\r\n\r\n    tag.SF涓嬫枡浣�WRelease1003 = 1;\r\n    tag.SF涓嬫枡浣�WSafe0305 = 1;\r\n}\r\nelse if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)\r\n    tag.FNK1.D2217_LAST = 0;\r\n",
+              "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadFNK1Over\", new object[] { tag });",
+              "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadFNK1Over\", new object[] { tag });",
               "ParentID": "20250614173821058",
               "Children": [],
               "Type": "Program",
@@ -907,8 +907,8 @@
               "ID": "20250616095733680",
               "Name": "2鍙稦NK鏈烘鎵嬪畬鎴�,
               "Desc": "",
-              "Content": " if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)\r\n {\r\n     tag.FNK2.D2210 = 0;\r\n     tag.FNK2.D2212_LAST = 1;\r\n\r\n     tag.SF涓嬫枡浣�WRelease1013 = 1;\r\n     tag.SF涓嬫枡浣�WSafe1113 = 1;\r\n }\r\n else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)\r\n {\r\n     tag.FNK2.D2212_LAST = 0;\r\n }\r\n if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)\r\n {\r\n     tag.FNK2.D2215 = 0;\r\n     tag.FNK2.D2217_LAST = 1;\r\n\r\n     tag.SF涓嬫枡浣�WRelease1011 = 1;\r\n     tag.SF涓嬫枡浣�WSafe1113 = 1;\r\n }\r\n else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)\r\n     tag.FNK2.D2217_LAST = 0;",
-              "ContentCopy": " if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)\r\n {\r\n     tag.FNK2.D2210 = 0;\r\n     tag.FNK2.D2212_LAST = 1;\r\n\r\n     tag.SF涓嬫枡浣�WRelease1013 = 1;\r\n     tag.SF涓嬫枡浣�WSafe1113 = 1;\r\n }\r\n else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)\r\n {\r\n     tag.FNK2.D2212_LAST = 0;\r\n }\r\n if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)\r\n {\r\n     tag.FNK2.D2215 = 0;\r\n     tag.FNK2.D2217_LAST = 1;\r\n\r\n     tag.SF涓嬫枡浣�WRelease1011 = 1;\r\n     tag.SF涓嬫枡浣�WSafe1113 = 1;\r\n }\r\n else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)\r\n     tag.FNK2.D2217_LAST = 0;",
+              "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadFNK2Over\", new object[] { tag });",
+              "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"ThreadFNK2Over\", new object[] { tag });",
               "ParentID": "20250614173821058",
               "Children": [],
               "Type": "Program",
@@ -954,8 +954,8 @@
                   "ID": "20250617085708084",
                   "Name": "Program1",
                   "Desc": "",
-                  "Content": "\r\n Console.WriteLine($\"1019浠诲姟鐘舵�锛歿tag.SA1019.RtaskState}- barcode:{tag.SA1019.R鎵樼洏鐮亇- 绌洪棽{tag.SA1019.R5绌洪棽}\");",
-                  "ContentCopy": "\r\n Console.WriteLine($\"1019浠诲姟鐘舵�锛歿tag.SA1019.RtaskState}- barcode:{tag.SA1019.R鎵樼洏鐮亇- 绌洪棽{tag.SA1019.R5绌洪棽}\");",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1019Down\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1019Down\", new object[] { tag });",
                   "ParentID": "20250617081923670",
                   "Children": [],
                   "Type": "Program",
@@ -1029,8 +1029,8 @@
                   "ID": "20250617085712101",
                   "Name": "Program1",
                   "Desc": "",
-                  "Content": "\r\n                        Console.WriteLine($\"SA1025 浠诲姟鐘舵�锛歿tag.SA1025.RtaskState}- 绌洪棽{tag.SA1025.R5绌洪棽}\");",
-                  "ContentCopy": "\r\n                        Console.WriteLine($\"SA1025 浠诲姟鐘舵�锛歿tag.SA1025.RtaskState}- 绌洪棽{tag.SA1025.R5绌洪棽}\");",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1025Up\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1025Up\", new object[] { tag });",
                   "ParentID": "20250617081926036",
                   "Children": [],
                   "Type": "Program",
@@ -1104,8 +1104,8 @@
                   "ID": "20250617085750712",
                   "Name": "Program1",
                   "Desc": "",
-                  "Content": "\r\n                        Console.WriteLine($\"SA1022 浠诲姟鐘舵�锛歿tag.SA1022.RtaskState}- 绌洪棽{tag.SA1022.R5绌洪棽}\");",
-                  "ContentCopy": "\r\n                        Console.WriteLine($\"SA1022 浠诲姟鐘舵�锛歿tag.SA1022.RtaskState}- 绌洪棽{tag.SA1022.R5绌洪棽}\");",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1022Up\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1022Up\", new object[] { tag });",
                   "ParentID": "20250617081930010",
                   "Children": [],
                   "Type": "Program",
@@ -1179,8 +1179,8 @@
                   "ID": "20250617085800942",
                   "Name": "Program1",
                   "Desc": "",
-                  "Content": "\r\n                        Console.WriteLine($\"SA1030 浠诲姟鐘舵�锛歿tag.SA1030.RtaskState}- 绌洪棽{tag.SA1030.R5绌洪棽}-->瀵瑰簲缁堢偣2001>绌洪棽5锛歿tag.SA2001.R5绌洪棽}\");",
-                  "ContentCopy": "\r\n                        Console.WriteLine($\"SA1030 浠诲姟鐘舵�锛歿tag.SA1030.RtaskState}- 绌洪棽{tag.SA1030.R5绌洪棽}-->瀵瑰簲缁堢偣2001>绌洪棽5锛歿tag.SA2001.R5绌洪棽}\");",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1030Down\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread1030Down\", new object[] { tag });",
                   "ParentID": "20250617081932131",
                   "Children": [],
                   "Type": "Program",
@@ -1254,8 +1254,8 @@
                   "ID": "20250617085809982",
                   "Name": "Program1",
                   "Desc": "",
-                  "Content": "\r\n                        Console.WriteLine($\"SA2030 浠诲姟鐘舵�锛歿tag.SA2030.RtaskState}- 绌洪棽{tag.SA2030.R5绌洪棽} - barcode:{tag.SA2030.R鎵樼洏鐮亇\");",
-                  "ContentCopy": "\r\n                        Console.WriteLine($\"SA2030 浠诲姟鐘舵�锛歿tag.SA2030.RtaskState}- 绌洪棽{tag.SA2030.R5绌洪棽} - barcode:{tag.SA2030.R鎵樼洏鐮亇\");",
+                  "Content": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread2030Down\", new object[] { tag });",
+                  "ContentCopy": "\r\n                        AutoThread.InvokeMethod(AutoThread.Instance, \"Thread2030Down\", new object[] { tag });",
                   "ParentID": "20250617081938161",
                   "Children": [],
                   "Type": "Program",
@@ -1410,6 +1410,6 @@
     }
   ],
   "CreationTime": "2025-02-26 15:31:20",
-  "LastWriteTime": "2025-06-18 23:06:58",
+  "LastWriteTime": "2025-06-23 08:38:47",
   "HasSaved": true
 }
\ No newline at end of file

--
Gitblit v1.9.1