From cd5a8566240658de52502a22f78b4c6652382357 Mon Sep 17 00:00:00 2001 From: czw <selecti@yeah.net> Date: 星期五, 25 七月 2025 17:30:52 +0800 Subject: [PATCH] 1 --- 2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs | 127 ++++++++++++++++++++++++++++++++++------- 1 files changed, 104 insertions(+), 23 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 6a2d2b8..841a51f 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,6 +30,9 @@ 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 { @@ -58,6 +61,18 @@ } 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; @@ -83,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 { @@ -113,7 +134,7 @@ } catch (Exception ex) { - LogHelper.Error($"InvokeMethod > cacheKey-{ex.Message}", ex); + LogHelper.Error($"InvokeMethod > cacheKey:{cacheKey}-{ex.Message}", ex); throw ex; } } @@ -149,6 +170,7 @@ // return _repository; // } //} + /// <summary> /// 閰嶇疆鍒濆鍖栥� /// </summary> @@ -173,6 +195,7 @@ Console.Clear(); } } + public void ThreaTotal(Tag tag, Device device) @@ -226,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)); @@ -240,10 +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) { @@ -264,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 @@ -2450,27 +2510,45 @@ private void sa2008(Tag tag) { + string tno = "sa2008";// TaskProcess.GenerateTaskNo("鏃ュ織娴佹按鍙�, "LOG"); 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($"[{tno}]2008 鎵樼洏鍙穥ntr} redis Arrive{2008}BarcodeLast鎵樼洏鍙凤細{rdisTcode},浠诲姟鐢宠锛歿tag.ssx杈撻�绾�s2008.RtaskState} 鍖归厤鏍¢獙銆�); + if (ntr == "123") + ntr = ""; + if (rdisTcode != ntr && (tag.ssx杈撻�绾�s2008.wTaskNo > 0 || !string.IsNullOrEmpty(tag.ssx杈撻�绾�s2008.w鎵樼洏鐮�)) { - var ntr = tag.ssx杈撻�绾�s2008.R鎵樼洏鐮� - 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 = (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; + LogHelper.Info($"[{tno}]2008 鎵樼洏鍙穥ntr} 鍒囨崲鎵樼洏鍙凤紙涔熷彲鑳芥竻绌轰簡锛夛紝娓呴櫎浠诲姟鏁版嵁銆倃TaskNo锛寃Ebit=0锛寃鎵樼洏鐮�绌�); + tag.ssx杈撻�绾�s2008.wEbit = 0; + LogHelper.Info($"[{tno}] wEbit 0"); + tag.ssx杈撻�绾�s2008.w鎵樼洏鐮�= ""; + LogHelper.Info($"[{tno}] w鎵樼洏鐮�''"); + tag.ssx杈撻�绾�s2008.wTaskNo = 0; + LogHelper.Info($"[{tno}] wTaskNo 0"); + if (string.IsNullOrEmpty(ntr)) RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg); - } } + if (tag.ssx杈撻�绾�s2008.RtaskState == 1) + if (!string.IsNullOrEmpty(ntr) && rdisTcode != ntr) + { + LogHelper.Info($"[{tno}]2008 鎵樼洏鍙穥ntr} 鐢宠WMS 鍒嗛亾"); + 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) + { + tag.ssx杈撻�绾�s2008.w鎵樼洏鐮�= ntr; + 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; + LogHelper.Info($"[{tno}]2008 鎵樼洏鍙穥ntr} 鍐欎换鍔★紝wTaskNo={(uint)(20080000 + end)} wEbit={end} w鎵樼洏鐮�{ntr} Arrive{2008}BarcodeLast={ntr} "); + RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg); + } + } } private void sa2030(Tag tag) @@ -2643,6 +2721,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鎵樼洏鐮亇"); @@ -2739,9 +2819,9 @@ if (strr.success && strr.data.materialCode == task.S_INDEX) { LogHelper.Info($"2027 璇诲埌鎵樼洏{tag.ssx杈撻�绾�s2027.R鎵樼洏鐮亇 鍖归厤鎴愬姛锛屽啓浠诲姟鍙凤細20272030锛岀粓鐐癸細2030 鍜屾墭鐩樼爜鍚岃"); + tag.ssx杈撻�绾�s2027.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2027.R鎵樼洏鐮� tag.ssx杈撻�绾�s2027.wTaskNo = 20272030; tag.ssx杈撻�绾�s2027.wEbit = 2030; - tag.ssx杈撻�绾�s2027.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2027.R鎵樼洏鐮� LogHelper.Info($"2027 > 2030 SSX浠诲姟涓嬪彂瀹屾垚銆�); continue; } @@ -2757,13 +2837,14 @@ if (strr.success && strr.data.materialCode == task.S_INDEX) { LogHelper.Info($"2020 璇诲埌鎵樼洏{tag.ssx杈撻�绾�s2020.R鎵樼洏鐮亇 鍖归厤鎴愬姛锛屽啓浠诲姟鍙凤細20202030锛岀粓鐐癸細2030 鍜屾墭鐩樼爜鍚岃"); + tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2020.R鎵樼洏鐮� tag.ssx杈撻�绾�s2020.wTaskNo = 20202030; tag.ssx杈撻�绾�s2020.wEbit = 2030; - tag.ssx杈撻�绾�s2020.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2020.R鎵樼洏鐮� LogHelper.Info($"2020 > 2030 SSX浠诲姟涓嬪彂瀹屾垚銆�); continue; } } + if (!string.IsNullOrEmpty(tag.ssx杈撻�绾�s2013.R鎵樼洏鐮�) { var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new @@ -2775,9 +2856,9 @@ if (strr.success && strr.data.materialCode == task.S_INDEX) { LogHelper.Info($"2013 璇诲埌鎵樼洏{tag.ssx杈撻�绾�s2013.R鎵樼洏鐮亇 鍖归厤鎴愬姛锛屽啓浠诲姟鍙凤細20132030锛岀粓鐐癸細2030 鍜屾墭鐩樼爜鍚岃"); + tag.ssx杈撻�绾�s2013.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2013.R鎵樼洏鐮� tag.ssx杈撻�绾�s2013.wTaskNo = 20132030; tag.ssx杈撻�绾�s2013.wEbit = 2030; - tag.ssx杈撻�绾�s2013.w鎵樼洏鐮�= tag.ssx杈撻�绾�s2013.R鎵樼洏鐮� LogHelper.Info($"2013 > 2030 SSX浠诲姟涓嬪彂瀹屾垚銆�); continue; } @@ -3519,7 +3600,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