From 60dc4564fabd9f4afed46d4c91aac7b6db9b9e6d Mon Sep 17 00:00:00 2001 From: czw <selecti@yeah.net> Date: 星期四, 10 七月 2025 14:16:10 +0800 Subject: [PATCH] 1 --- 2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs | 90 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 69 insertions(+), 21 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 10d44fc..d28c119 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" @@ -146,14 +146,25 @@ device1.Js鎹烽『2.Config.IP, device1.缁村笇灏旀姄鑷�.Config.IP, device1.缁村笇灏旀姄鑷�.Config.IP, - device1.RGV.Config.IP + device1.RGV.Config.IP, + device1.S1002Read.Config.IP, + device1.S2001Read.Config.IP, + device1.S3001Read.Config.IP }) { string pattern = @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"; var matches = Regex.Match(ip, pattern); if (matches.Success) - IsMachineOnline(matches.Value); + { + var b = IsMachineOnline(matches.Value); + if (!Iponlines.ContainsKey(ip)) + { + Iponlines.TryAdd(ip, b); + } + else + Iponlines[ip] = b; + } } } catch (Exception ex) @@ -177,12 +188,10 @@ tasks.Add(GetTask(sa3006, tag, 3000)); tasks.Add(GetTask(sa3010, tag, 3000)); - - - Task.WaitAll(tasks.ToArray()); } + public static ConcurrentDictionary<string, bool> Iponlines = new ConcurrentDictionary<string, bool>(); public bool IsMachineOnline(string hostNameOrIp, int timeout = 1000) { //device.p鍙戦偅绉�涓嬬嚎.Config.IP @@ -1676,6 +1685,19 @@ { RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg); RedisHelper.Add($"S{item}Read.R5绌洪棽_LAST", "1", out string msg2); + + LogHelper.Info($"{R鎵樼洏鐮亇 瀹氬瓙鐢熶骇瀹屾垚杩涜椴嶅伐锛侊紒"); + var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/223", JsonConvert.SerializeObject(new + { + cntrCode = R鎵樼洏鐮� + type = 1, + lineCode = "1002,1008".Contains(Bssx) ? "T01" : "T02" + })); + //var strr = JsonConvert.DeserializeObject<MES2234>(str); + //if (strr.success && strr.data != null) + //{ + + //} //Conn.榛樿Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue"); //Conn.榛樿Redis.SetValue($"S{item}Read.R5绌洪棽_LAST", "1", $"S{item}ReadQueue"); break; @@ -1733,6 +1755,13 @@ { RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg); RedisHelper.Add($"S{item}Read.R5绌洪棽_LAST", "1", out string msg1); + LogHelper.Info($"{R鎵樼洏鐮亇 杞瓙鐢熶骇瀹屾垚杩涜椴嶅伐锛侊紒"); + var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/223", JsonConvert.SerializeObject(new + { + cntrCode = R鎵樼洏鐮� + type = 2, + lineCode = "1002,1008".Contains(Bssx) ? "T01" : "T02" + })); //Conn.榛樿Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue"); //Conn.榛樿Redis.SetValue($"S{item}Read.R5绌洪棽_LAST", "1", $"S{item}ReadQueue"); break; @@ -1857,7 +1886,7 @@ if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0) { //tag.FNK1.D2215 = 0; - tag.FNK1.D2218 = 1; + //tag.FNK1.D2218 = 1; //tag.FNK1.D2212_LAST = 1; RedisHelper.Add($"p鍙戦偅绉�涓嬬嚎.D2217_LAST", "1", out string msg); @@ -1884,7 +1913,7 @@ LogHelper.Info($" FN1 D2212>{tag.FNK1.D2212} D2212LAST>{tag.FNK1.D2212_LAST} D2210>{tag.FNK1.D2210} D2211>{tag.FNK1.D2211} D2213>{tag.FNK1.D2213}"); if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0) { - tag.FNK1.D2213 = 1; + //tag.FNK1.D2213 = 1; //tag.FNK1.D2210 = 0; //tag.FNK1.D2217_LAST = 1; RedisHelper.Add($"p鍙戦偅绉�涓嬬嚎.D2212_LAST", "1", out string msg); @@ -1919,7 +1948,7 @@ if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0) { //tag.FNK2.D2215 = 0; - tag.FNK2.D2218 = 1; + //tag.FNK2.D2218 = 1; //tag.FNK2.D2212_LAST = 1; RedisHelper.Add($"p鍙戦偅绉�涓嬬嚎.D2217_LAST", "1", out string msg); @@ -1948,7 +1977,7 @@ if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0) { //tag.FNK2.D2210 = 0; - tag.FNK2.D2213 = 1; + //tag.FNK2.D2213 = 1; //tag.FNK2.D2217_LAST = 1; RedisHelper.Add($"p鍙戦偅绉�涓嬬嚎.D2212_LAST", "1", out string msg); @@ -1979,7 +2008,7 @@ var taggg = tag.SA1019; string vqu = "A1019鍙栬揣浜や簰"; Console.WriteLine($"1019浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadSsxOver) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -1991,7 +2020,26 @@ private void sa2008(Tag tag) { var rdisTcode = RedisHelper.Get<string>($"Arrive{2008}BarcodeLast", out string msg); - //if(tag.ssx杈撻�绾�s2008) + 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鎵樼洏鐮� + 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; + RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg); + } + } } private void sa2030(Tag tag) @@ -1999,7 +2047,7 @@ var taggg = tag.SA2030; string vqu = "A2030鍙栬揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadSsxOver) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2011,7 +2059,7 @@ var taggg = tag.SA2001; string vqu = "A2001鏀捐揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadSsxOver) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2023,7 +2071,7 @@ var taggg = tag.SA1030; string vqu = "A1030鍙栬揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadAgvover) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2035,7 +2083,7 @@ var taggg = tag.SA1025; string vqu = "A1025鏀捐揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadAgvover) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2047,7 +2095,7 @@ var taggg = tag.SA1022; string vqu = "A1022鏀捐揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadAgvover) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2059,7 +2107,7 @@ var taggg = tag.ssx杈撻�绾�s3010; string vqu = "A3010鍙栬揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadAgvover) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2071,7 +2119,7 @@ var taggg = tag.ssx杈撻�绾�s3006; string vqu = "A3006鏀捐揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadAgvover) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2083,7 +2131,7 @@ var taggg = tag.ssx杈撻�绾�s3005; string vqu = "A3005鍙栬揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadAgvover) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2095,7 +2143,7 @@ var taggg = tag.ssx杈撻�绾�s3010; string vqu = "A3001鏀捐揣浜や簰"; Console.WriteLine($"{vqu}浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); - if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver) + if (taggg.SOver && taggg.SreadAgvover) { SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); @@ -2510,7 +2558,7 @@ LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟"); //鐩存帴鐢熸垚瀵瑰簲浠诲姟銆�- var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS?.Split(',').ToList() ?? new List<string>(), type); + var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS?.Split(',').ToList() ?? new List<string>(), "AGV", type); LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐩存帴鐢熸垚瀵瑰簲浠诲姟 缁撴灉锛歿res}"); if (res) -- Gitblit v1.9.1