From d2d403dc2e33dc07970b0b69934c572b70b1f3d1 Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期五, 25 七月 2025 15:58:25 +0800
Subject: [PATCH] 1

---
 2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs |  123 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 112 insertions(+), 11 deletions(-)

diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
index c2d5e15..5941f21 100644
--- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
+++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/VS\350\207\252\345\256\232\344\271\211\347\261\273/AutoThread.cs"
@@ -30,11 +30,49 @@
 using System.Net.NetworkInformation;
 using System.Windows.Documents;
 using System.Text.RegularExpressions;
+using GZ.Device.PLC;
+using System.Runtime.CompilerServices;
+using ServiceStack.Text;
 
 namespace GZ.Projects.AuxAllWCS
 {
+    public static class ExtendClass
+    {
+        public static void Disnull(this TaskRepository repository)
+        {
+            repository.dbcontext.Dispose();
+            repository = null;
+        }
+        public static void Disnull(this LocRepository repository)
+        {
+            repository.dbcontext.Dispose();
+            repository = null;
+        }
+        public static void Disnull(this TaskActRepository repository)
+        {
+            repository.dbcontext.Dispose();
+            repository = null;
+        }
+        public static void Disnull(this SYSRepository repository)
+        {
+            repository.dbcontext.Dispose();
+            repository = null;
+        }
+    }
     public partial class AutoThread
     {
+        /// <summary>
+        ///  1 鍙紑绾跨▼  Device Client
+        ///  2 鍙紑璁惧  Device Server
+        ///  3 鍏ㄥ紑
+        /// </summary>
+        public static readonly int _type = 1;
+        /// <summary>
+        /// 1 modbus
+        /// 2 -24 vxr  25 S7  
+        /// 3 MC
+        /// </summary>
+        public static readonly string tys = "1 2 24 25 3";
 
         private static AutoThread _instance;
 
@@ -60,6 +98,12 @@
         public static object InvokeMethod(object instance, string methodName, params object[] args)
         {
             var cacheKey = $"{instance.GetType().FullName}_{methodName}";
+
+            if (AutoThread._type % 2 == 0)
+            {
+                Console.WriteLine($"{AutoThread._type}> 褰撳墠鏄�Device Server 妯″紡銆�);
+                return null;
+            }
 
             try
             {
@@ -90,7 +134,7 @@
             }
             catch (Exception ex)
             {
-                LogHelper.Error($"InvokeMethod > cacheKey-{ex.Message}", ex);
+                LogHelper.Error($"InvokeMethod > cacheKey:{cacheKey}-{ex.Message}", ex);
                 throw ex;
             }
         }
@@ -126,6 +170,7 @@
         //        return _repository;
         //    }
         //}
+
         /// <summary>
         /// 閰嶇疆鍒濆鍖栥�
         /// </summary>
@@ -152,9 +197,11 @@
         }
 
 
+
         public void ThreaTotal(Tag tag, Device device)
         {
             List<Task> tasks = new List<Task>();
+            LogHelper.Info("ThreaTotal 绾跨▼鎬荤嚎鍚姩");
             tasks.Add(GetTask(delegate (Tag tag1, Device device1)
             {
                 try
@@ -202,6 +249,7 @@
             tasks.Add(GetTask(taskssss1, tag, 3000));
             tasks.Add(GetTask(taskssss2, tag, 3000));
             tasks.Add(GetTask(taskssss3, tag, 3000));
+            tasks.Add(GetTask(task20132027, tag, 3000));
             //tasks.Add(GetTask(sa1022, tag, 3000));
             //tasks.Add(GetTask(sa1025, tag, 3000));
             //tasks.Add(GetTask(sa1030, tag, 3000));
@@ -216,8 +264,46 @@
 
             tasks.Add(GetTask(ThreadMXC5, tag, 3000));
             tasks.Add(GetTask(ThreadMXC6, tag, 3000));
+            tasks.Add(GetTask(ThreadS7helper, tag, 3000));
 
+            LogHelper.Info("ThreaTotal 绾跨▼鎬荤嚎runing");
             Task.WaitAll(tasks.ToArray());
+            LogHelper.Info("ThreaTotal 绾跨▼鎬荤嚎over");
+        }
+
+
+        private void ThreadS7helper(Tag tag)
+        {
+            //var plc = new Plc(CpuType.S71500,);
+
+            //foreach (var item in collection)
+            //{
+            //    S7.Net.Plc plc = new Plc(CpuType.S71500, item.address, 0, 1);
+            //    Link(plc);
+            //    PLCS.Add(item.deviceName, plc);
+            //}
+        }
+
+        void task20132027(Tag tag)
+        {
+            if (tag.ssx杈撻�绾�s2027.wTaskNo > 0 && tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�!= tag.ssx杈撻�绾�s2027.R鎵樼洏鐮�
+            {
+                tag.ssx杈撻�绾�s2027.wEbit = 0;
+                tag.ssx杈撻�绾�s2027.w鎵樼洏鐮�= "";
+                tag.ssx杈撻�绾�s2027.wTaskNo = 0;
+            }
+            if (tag.ssx杈撻�绾�s2020.wTaskNo > 0 && tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�!= tag.ssx杈撻�绾�s2020.R鎵樼洏鐮�
+            {
+                tag.ssx杈撻�绾�s2020.wEbit = 0;
+                tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�= "";
+                tag.ssx杈撻�绾�s2020.wTaskNo = 0;
+            }
+            if (tag.ssx杈撻�绾�s2013.wTaskNo > 0 && tag.ssx杈撻�绾�s2013.w鎵樼洏鐮�!= tag.ssx杈撻�绾�s2013.R鎵樼洏鐮�
+            {
+                tag.ssx杈撻�绾�s2013.wEbit = 0;
+                tag.ssx杈撻�绾�s2013.w鎵樼洏鐮�= "";
+                tag.ssx杈撻�绾�s2013.wTaskNo = 0;
+            }
         }
         void taskssss1(Tag tag)
         {
@@ -238,7 +324,7 @@
             sa3010(tag);
         }
 
-        public static ConcurrentDictionary<string, bool> Iponlines = new ConcurrentDictionary<string, bool>();
+        //public static ConcurrentDictionary<string, bool> Iponlines = new ConcurrentDictionary<string, bool>();
         public bool IsMachineOnline(string hostNameOrIp, int timeout = 1000)
         {
             //device.p鍙戦偅绉�涓嬬嚎.Config.IP
@@ -1213,6 +1299,8 @@
                         }
                     }
                 }
+                task1 = null;
+                task2 = null;
                 LogHelper.Info($"rgv 澶勭悊瀹屾垚銆倀askend 125");
                 #endregion
             }
@@ -1236,7 +1324,6 @@
             TaskRepository taskRepository = new TaskRepository();
             try
             {
-
                 var requires1 = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0).OrderBy(x => x.T_CREATE).ToList();
                 var timeMorhours = requires1.FindAll(x => DateTime.Now.Subtract(x.T_CREATE).TotalHours > 1);
                 if (timeMorhours.Any())
@@ -1629,9 +1716,10 @@
                                 else if (dev.deviceType == 6)
                                 {
                                     var close = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue(dev.deviceName + "." + (V ? "RD1203" : "RD1204")), typeof(System.UInt16));
-                                    LogHelper.Info($"{dev.deviceName}{(V ? "宸� : "鍙�)} 鍏夋爡{(goin ? "鍏抽棴" : "寮�惎")} 鐢宠銆�鍏抽棴鐘舵�锛歿close}锛�);
+
                                     var canDo = (System.UInt16)System.Convert.ChangeType(Conn.榛樿Redis.GetValue(dev.deviceName + "." + (locindex == 0 ? "RD1200" : locindex == 1 ? "RD1201" : "RD1202")), typeof(System.UInt16));
-                                    if (close == 0)
+                                    LogHelper.Info($"{dev.deviceName}{(V ? "宸� : "鍙�)} 鍏夋爡{(goin ? "鍏抽棴" : "寮�惎")} 鐢宠銆傚畞姹�鍏抽棴鐘舵�锛歿close}锛�鍏佽鎿嶄綔鐘舵�锛歿canDo}");
+                                    if (close == 0 && canDo == 1)
                                     {
                                         continuuuuu = true;
                                     }
@@ -1680,6 +1768,8 @@
                     }
 
                 }
+                requires1 = null;
+                timeMorhours = null;
             }
             catch (Exception ex)
             {
@@ -2421,10 +2511,17 @@
         private void sa2008(Tag tag)
         {
             var rdisTcode = RedisHelper.Get<string>($"Arrive{2008}BarcodeLast", out string msg);
-            LogHelper.Info($"2008 鎵樼洏鍙穥tag.SA2030.R鎵樼洏鐮亇  redis Arrive{2008}BarcodeLast鎵樼洏鍙凤細{rdisTcode} 鍖归厤鏍¢獙銆�);
-            if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s2008.R鎵樼洏鐮� && rdisTcode != tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�
+            var ntr = tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�
+            LogHelper.Info($"2008 鎵樼洏鍙穥ntr}  redis Arrive{2008}BarcodeLast鎵樼洏鍙凤細{rdisTcode} 鍖归厤鏍¢獙銆�);
+            if (rdisTcode != ntr && tag.ssx杈撻�绾�s2008.wTaskNo > 0)
             {
-                var ntr = tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�
+                LogHelper.Info($"2008 鎵樼洏鍙穥ntr}  鍒囨崲鎵樼洏鍙凤紙涔熷彲鑳芥竻绌轰簡锛夛紝娓呴櫎浠诲姟鏁版嵁銆倃TaskNo锛寃Ebit=0锛孯鎵樼洏鐮�绌�);
+                tag.ssx杈撻�绾�s2008.wEbit = 0;
+                tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�= "";
+                tag.ssx杈撻�绾�s2008.wTaskNo = 0;
+            }
+            if (!string.IsNullOrEmpty(ntr) && rdisTcode != ntr)
+            {
                 var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
                 {
                     cntrCode = ntr,
@@ -2433,11 +2530,12 @@
                 var strr = JsonConvert.DeserializeObject<MES2234>(str);
                 if (strr.success && strr.data != null)
                 {
-                    var end = (strr.data.lineNum == 1 ? 2027
+                    var end = (ushort)(strr.data.lineNum == 1 ? 2027
                                 : strr.data.lineNum == 2 ? 2020 : 2013);
                     tag.ssx杈撻�绾�s2008.wTaskNo = (uint)(20080000 + end);
-                    tag.ssx杈撻�绾�s2008.wEbit = 2027;
+                    tag.ssx杈撻�绾�s2008.wEbit = end;
                     tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�= ntr;
+                    LogHelper.Info($"2008 鎵樼洏鍙穥ntr}  鍐欎换鍔★紝wTaskNo={(uint)(20080000 + end)}  wEbit={end} R鎵樼洏鐮�{ntr} Arrive{2008}BarcodeLast={ntr} ");
                     RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg);
                 }
             }
@@ -2613,6 +2711,8 @@
                 i = 0;
             }
 
+            LogHelper.Info($"_methodCache>>>>" + _methodCache.Count + ">>>>" + JsonConvert.SerializeObject(_methodCache.Keys));
+
             //Console.WriteLine($"SA2030 浠诲姟鐘舵�锛�  =====>");
             //Console.WriteLine($"SA2030 浠诲姟鐘舵�锛歿tag.SA2030.RtaskState}- 绌洪棽{tag.SA2030.R5绌洪棽} - barcode:{tag.SA2030.R鎵樼洏鐮亇");
 
@@ -2734,6 +2834,7 @@
                                                     continue;
                                                 }
                                             }
+
                                             if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s2013.R鎵樼洏鐮�)
                                             {
                                                 var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
@@ -3489,7 +3590,7 @@
                     Console.WriteLine($"ip= {ip.ToString()}");
                     new HttpServer(ip.ToString()).HttpServerRun();
                     new TcpServer(ip.ToString());
-                    var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync();
+                    //var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync();
                     //var client = new WebSocketClient($"http://{ip.ToString()}:8809/").ConnectAsync();
                     break;
                 }

--
Gitblit v1.9.1