From 11336f3d70bd0161b0be8f9e6dae410e046d9ebc Mon Sep 17 00:00:00 2001 From: czw <selecti@yeah.net> Date: 星期五, 25 七月 2025 15:24:45 +0800 Subject: [PATCH] 1 --- 2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs | 86 +++++++++++++++++++++++++++++++++---------- 1 files changed, 66 insertions(+), 20 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 db756a8..853fae7 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" @@ -31,7 +31,8 @@ using System.Windows.Documents; using System.Text.RegularExpressions; using GZ.Device.PLC; -using S7.Net; +using System.Runtime.CompilerServices; +using ServiceStack.Text; namespace GZ.Projects.AuxAllWCS { @@ -60,6 +61,12 @@ } public partial class AutoThread { + /// <summary> + /// 1 鍙紑绾跨▼ Device Client + /// 2 鍙紑璁惧 Device Server + /// 3 鍏ㄥ紑 + /// </summary> + public static readonly int _type = 1; private static AutoThread _instance; @@ -85,6 +92,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 { @@ -115,7 +128,7 @@ } catch (Exception ex) { - LogHelper.Error($"InvokeMethod > cacheKey-{ex.Message}", ex); + LogHelper.Error($"InvokeMethod > cacheKey:{cacheKey}-{ex.Message}", ex); throw ex; } } @@ -230,6 +243,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)); @@ -251,7 +265,6 @@ LogHelper.Info("ThreaTotal 绾跨▼鎬荤嚎over"); } - public static ConcurrentDictionary<string, S7.Net.Plc> keyValuePairs = new ConcurrentDictionary<string, S7.Net.Plc>(); private void ThreadS7helper(Tag tag) { @@ -265,6 +278,27 @@ //} } + 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) { sa1025(tag); @@ -2471,24 +2505,33 @@ 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鎵樼洏鐮� - var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new + LogHelper.Info($"2008 鎵樼洏鍙穥ntr} 鍒囨崲鎵樼洏鍙凤紙涔熷彲鑳芥竻绌轰簡锛夛紝娓呴櫎浠诲姟鏁版嵁銆倃TaskNo锛寃Ebit=0锛孯鎵樼洏鐮�绌�); + tag.ssx杈撻�绾�s2008.wEbit = 0; + tag.ssx杈撻�绾�s2008.R鎵樼洏鐮�= ""; + tag.ssx杈撻�绾�s2008.wTaskNo = 0; + RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg); + if (!string.IsNullOrEmpty(ntr) /*&& rdisTcode != ntr*/) { - cntrCode = ntr, - type = 1 - })); - var strr = JsonConvert.DeserializeObject<MES2234>(str); - if (strr.success && strr.data != null) - { - var end = (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.R鎵樼洏鐮�= ntr; - RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg); + var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new + { + cntrCode = ntr, + type = 1 + })); + var strr = JsonConvert.DeserializeObject<MES2234>(str); + if (strr.success && strr.data != null) + { + 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 = 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); + } } } } @@ -2663,6 +2706,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鎵樼洏鐮亇"); @@ -2784,6 +2829,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 @@ -3539,7 +3585,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