From 6cf06cfb2d8de5cbf9d913ed009291da80aba4ec Mon Sep 17 00:00:00 2001 From: czw <selecti@yeah.net> Date: 星期五, 18 七月 2025 15:59:51 +0800 Subject: [PATCH] 1 --- 2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs | 126 ++++++++++++++++++++++++++++------------- 1 files changed, 86 insertions(+), 40 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 aafd1d1..5d1efbc 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" @@ -175,7 +175,7 @@ }, tag, device, 3000)); tasks.Add(GetTask(ThreadMXC3, tag, 3000)); tasks.Add(GetTask(ThreadMXC4, tag, 3000)); - tasks.Add(GetTask(ResetGats, tag, 3000)); + //tasks.Add(GetTask(ResetGats, tag, 3000)); tasks.Add(GetTask(sa1022, tag, 3000)); tasks.Add(GetTask(sa1025, tag, 3000)); @@ -183,10 +183,10 @@ tasks.Add(GetTask(sa2001, tag, 3000)); tasks.Add(GetTask(sa2030, tag, 3000)); tasks.Add(GetTask(sa2008, tag, 3000)); - tasks.Add(GetTask(sa3001, tag, 3000)); - tasks.Add(GetTask(sa3005, tag, 3000)); - tasks.Add(GetTask(sa3006, tag, 3000)); - tasks.Add(GetTask(sa3010, tag, 3000)); + //tasks.Add(GetTask(sa3001, tag, 3000)); + //tasks.Add(GetTask(sa3005, tag, 3000)); + //tasks.Add(GetTask(sa3006, tag, 3000)); + //tasks.Add(GetTask(sa3010, tag, 3000)); Task.WaitAll(tasks.ToArray()); } @@ -282,6 +282,7 @@ if (VERX != null) { + LogHelper.Info($"{VERX.deviceName}鏃堕棿鎴�{RedisHelper.Get<string>("Js鎹烽『1#Timestamp", out string mg)} D1212>{tag.Js1.D1212} 宸︽弧淇″彿:{TcpServer.GetBitdata(tag.Js1.D1212, 2)} D1212_LAST>{tag.Js1.D1212_LAST} 鍙虫弧淇″彿>{TcpServer.GetBitdata(tag.Js1.D1212, 3)} D1213_LAST>{tag.Js1.D1213_LAST}"); if (tag.Js1.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 1) { var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new @@ -300,8 +301,9 @@ if (tag.Js1.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0) { //tag.Js1.D1212_LAST = 0; + tag.Js1.D1224 = 0; RedisHelper.Add($"Js鎹烽『1.D1202_LAST", "0", out string msg); - //Conn.榛樿Redis.SetValue(VERX.deviceName + ".D1224", "0", VERX.deviceName + "Queue"); + //Conn.榛樿Redis.SetValue("Js鎹烽『1.D1224", "0", VERX.deviceName + "Queue"); } if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1) @@ -322,8 +324,8 @@ if (tag.Js1.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0) { //tag.Js1.D1213_LAST = 0; + tag.Js1.D1225 = 0; RedisHelper.Add($"Js鎹烽『1.D1203_LAST", "0", out string msg); - //Conn.榛樿Redis.SetValue(VERX.deviceName + ".D1225", "0", VERX.deviceName + "Queue"); } } } @@ -338,6 +340,8 @@ if (VERX != null) { + LogHelper.Info($"{VERX.deviceName} 鏃堕棿鎴�{RedisHelper.Get<string>("Js鎹烽『2#Timestamp", out string mg)} D1212>{tag.Js2.D1212} 宸︽弧淇″彿:{TcpServer.GetBitdata(tag.Js2.D1212, 2)} D1212_LAST>{tag.Js2.D1212_LAST} 鍙虫弧淇″彿>{TcpServer.GetBitdata(tag.Js2.D1212, 3)} D1213_LAST>{tag.Js2.D1213_LAST}"); + if (tag.Js2.D1212_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 1) { var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new @@ -355,7 +359,7 @@ if (tag.Js2.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0) { //tag.Js2.D1212_LAST = 0; - + tag.Js2.D1224 = 0; RedisHelper.Add($"Js鎹烽『2.D1202_LAST", "0", out string msg); } if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1) @@ -373,10 +377,10 @@ RedisHelper.Add($"Js鎹烽『2.D1203_LAST", "1", out string msg); } } - if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0) + if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 0) { //tag.Js2.D1213_LAST = 0; - + tag.Js2.D1225 = 0; RedisHelper.Add($"Js鎹烽『2.D1203_LAST", "0", out string msg); } } @@ -792,7 +796,7 @@ LogHelper.Info($"RGV 鏁呴殰锛屼笉鐢ㄧ銆�); return; } - LogHelper.Info($"RGV125鍛戒护鏌ョ湅 浠诲姟鏁版嵁 workmode:{tag.RGV.workMod}\n taskmod{tag.RGV.taskmod} \n t1No:{tag.RGV.taskno1}\n t1do:{tag.RGV.task1do} \n t2No:{tag.RGV.taskno2}\n t2do:{tag.RGV.task2do}\n taskend:{tag.RGV.taskend} "); + LogHelper.Info($"RGV125鍛戒护鏌ョ湅 Rgv浠诲姟鏁版嵁 鍐�workmode:{tag.RGV.workMod} taskmod{tag.RGV.taskmod} t1No:{tag.RGV.taskno1} t1do:{tag.RGV.task1do} t2No:{tag.RGV.taskno2} t2do:{tag.RGV.task2do} taskend:{tag.RGV.taskend} "); if (tag.RGV.taskend == 125) { LogHelper.Info($"RGV 鏈�25鍛戒护鏈墽琛屻� "); @@ -805,28 +809,28 @@ System.Threading.Thread.Sleep(3000); return; } - LogHelper.Info($"浠诲姟涓嬪彂 Rgv 浠诲姟 杩涘叆 Rgv淇℃伅 W1鐘舵�{tag.RGV.w1status} ReadTask1No>{tag.RGV.ReadTask1No} 1宸ヤ綅鏉$爜:{tag.RGV.bit1Code} bit1taskOver>{tag.RGV.bit1taskOver} W2鐘舵�{tag.RGV.w2status} ReadTask2No>{tag.RGV.ReadTask2No} 2宸ヤ綅鏉$爜:{tag.RGV.bit2Code} bit2taskOver>{tag.RGV.bit2taskOver}"); + LogHelper.Info($"浠诲姟涓嬪彂 Rgv浠诲姟鏁版嵁 璇�W1鐘舵�{tag.RGV.w1status} ReadTask1No>{tag.RGV.ReadTask1No} 1宸ヤ綅鏉$爜:{tag.RGV.bit1Code} bit1taskOver>{tag.RGV.bit1taskOver} W2鐘舵�{tag.RGV.w2status} ReadTask2No>{tag.RGV.ReadTask2No} 2宸ヤ綅鏉$爜:{tag.RGV.bit2Code} bit2taskOver>{tag.RGV.bit2taskOver}"); TaskEntity task1 = null; TaskEntity task2 = null; var task1Isrun = false; if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1) { - var taskno = tag.RGV.ReadTask1No; - string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0')); - task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno); - if (task1 != null && task1.S_B_STATE != "瀹屾垚") - task1Isrun = true; + //var taskno = tag.RGV.ReadTask1No; + //string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0')); + //task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno); + //if (task1 != null && task1.S_B_STATE != "瀹屾垚") + task1Isrun = true; //if (tag.RGV.bit1taskOver_LAST == 1) // RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg); } var task2Isrun = false; if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver != 1) { - var taskno = tag.RGV.ReadTask2No; - string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0')); - task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno); - if (task2 != null && task2.S_B_STATE != "瀹屾垚") - task2Isrun = true; + //var taskno = tag.RGV.ReadTask2No; + //string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0')); + //task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno); + //if (task2 != null && task2.S_B_STATE != "瀹屾垚") + task2Isrun = true; //if (tag.RGV.bit2taskOver_LAST == 1) // RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg); } @@ -1163,8 +1167,8 @@ var taskCOdes = new List<string> { "Sarrive", "Srelease", "Earrive", "Erelease" }; TaskActRepository taskActRepository = new TaskActRepository(); TaskRepository taskRepository = new TaskRepository(); - var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0).OrderBy(x => x.T_CREATE).ToList(); - var timeMorhours = requires.FindAll(x => DateTime.Now.Subtract(x.T_CREATE).TotalHours > 1); + 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()) { foreach (var mor in timeMorhours) @@ -1173,10 +1177,23 @@ mor.S_REVIEW_COMMENT = "瓒呮椂涓嶅鐞�; taskActRepository.Update(mor); } - requires = requires.Except(timeMorhours).ToList(); + requires1 = requires1.Except(timeMorhours).ToList(); } - foreach (var item in requires) + foreach (var requires in requires1.GroupBy(x => x.S_TASK_NO)) + //foreach (var item in requires) { + var rsss = requires.ToList(); + var item = rsss.OrderBy(x => x.S_ACTION_CODE.Contains("release") ? 0 : 1).LastOrDefault(); + if (rsss.Count > 1) + { + rsss.Remove(item); + foreach (var mor in rsss) + { + mor.N_CREATEMETHOD = 3; + mor.S_REVIEW_COMMENT = "澶氫綑涓嶅鐞�; + taskActRepository.Update(mor); + } + } LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE}鍏夋爡澶勭悊 =================> "); var tin = taskCOdes.IndexOf(item.S_ACTION_CODE); if (tin == -1) @@ -1532,6 +1549,7 @@ } } System.Threading.Thread.Sleep(3000); + //ResetGats(tag); } public void ResetGats(Tag tag) { @@ -1544,18 +1562,20 @@ //int int0 = TcpServer.GetBitdata(numm, 0); //int int1 = TcpServer.GetBitdata(numm, 1); - if (TcpServer.GetBitdata(numm, 0) == 0) - { - Conn.榛樿Redis.SetValue(dev.deviceName + ".D1220", "0", dev.deviceName + "Queue", false); - Conn.榛樿Redis.SetValue(dev.deviceName + ".D1222", "0", dev.deviceName + "Queue", false); - } - if (TcpServer.GetBitdata(numm, 1) == 0) - { - Conn.榛樿Redis.SetValue(dev.deviceName + ".D1221", "0", dev.deviceName + "Queue", false); - Conn.榛樿Redis.SetValue(dev.deviceName + ".D1223", "0", dev.deviceName + "Queue", false); - } + //if (TcpServer.GetBitdata(numm, 0) == 0) + //{ + // Conn.榛樿Redis.SetValue(dev.deviceName + ".D1220", "0", dev.deviceName + "Queue", false); + // Conn.榛樿Redis.SetValue(dev.deviceName + ".D1222", "0", dev.deviceName + "Queue", false); + //} + //if (TcpServer.GetBitdata(numm, 1) == 0) + //{ + // Conn.榛樿Redis.SetValue(dev.deviceName + ".D1221", "0", dev.deviceName + "Queue", false); + // Conn.榛樿Redis.SetValue(dev.deviceName + ".D1223", "0", dev.deviceName + "Queue", false); + //} + if (TcpServer.GetBitdata(numm, 2) == 0) { + //Conn.榛樿Redis.GetValue(dev.deviceName + ".D1224"); Conn.榛樿Redis.SetValue(dev.deviceName + ".D1224", "0", dev.deviceName + "Queue", false); } if (TcpServer.GetBitdata(numm, 3) == 0) @@ -1954,8 +1974,10 @@ public void ThreadFNK1Over(Tag tag) { Console.WriteLine($"ThreadFNK1Over =====>"); + LogHelper.Info($" FN1 鏃堕棿鎴�{RedisHelper.Get<string>("p鍙戦偅绉�涓嬬嚎#Timestamp", out string mg)}"); LogHelper.Info($" FN1 D2217>{tag.FNK1.D2217} D2217LAST>{tag.FNK1.D2217_LAST} D2215>{tag.FNK1.D2215} D2216>{tag.FNK1.D2216} D2218>{tag.FNK1.D2218}"); //LogHelper.Info($" FN1 .D2217=1,2217_LAST=0 鍐�2215=0锛孌2217_LAST=1锛學Release1005=1 RArrive1005_LAST=0"); + if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0) { //tag.FNK1.D2215 = 0; @@ -2017,6 +2039,7 @@ public void ThreadFNK2Over(Tag tag) { Console.WriteLine($"ThreadFNK2Over =====>"); + LogHelper.Info($" FN2 鏃堕棿鎴�{RedisHelper.Get<string>("p鍙戦偅绉�涓嬬嚎#Timestamp", out string mg)}"); LogHelper.Info($" FN2 D2217>{tag.FNK2.D2217} D2217LAST>{tag.FNK2.D2217_LAST} D2215>{tag.FNK2.D2215} D2216>{tag.FNK2.D2216} D2218>{tag.FNK2.D2218}"); if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0) { @@ -2083,8 +2106,9 @@ LogHelper.Info($"1019浠诲姟鐘舵�锛� =====>浠诲姟鐢宠锛歿taggg.Ssetreq},杈撻�绾垮厑璁革細{taggg.SreadCan} 浠诲姟瀹屾垚锛歿taggg.SOver} 杈撻�绾挎敹鍒板畬鎴愶細{taggg.SreadAgvover}"); if (taggg.SOver && taggg.SreadAgvover) { - SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "鍐橝GV鐢宠"); - SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "鍐橝GV鐢宠"); + SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "娓匒GV鐢宠"); + SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "娓匒GV鐢宠"); + SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "娓匒GV鐢宠"); } //Console.WriteLine($"1019浠诲姟鐘舵�锛� =====>"); //Console.WriteLine($"1019浠诲姟鐘舵�锛歿tag.SA1019.RtaskState}- barcode:{tag.SA1019.R鎵樼洏鐮亇- 绌洪棽{tag.SA1019.R5绌洪棽}"); @@ -2274,8 +2298,16 @@ //} //Console.WriteLine($"SA1030 浠诲姟鐘舵�锛歿tag.SA1030.RtaskState}- 绌洪棽{tag.SA1030.R5绌洪棽}-->瀵瑰簲缁堢偣2001>绌洪棽5锛歿tag.SA2001.R5绌洪棽}"); } + static int i = 0; public void Thread2030Down(Tag tag) { + i++; + if (i > 2 * 3600 / 3) + { + Console.Clear(); + LogHelper.Info($"寰幆{i}娆�> 娓呯┖鎺у埗鍙般�"); + i = 0; + } //Console.WriteLine($"SA2030 浠诲姟鐘舵�锛� =====>"); //Console.WriteLine($"SA2030 浠诲姟鐘舵�锛歿tag.SA2030.RtaskState}- 绌洪棽{tag.SA2030.R5绌洪棽} - barcode:{tag.SA2030.R鎵樼洏鐮亇"); @@ -2705,6 +2737,7 @@ // sord = "desc", // rows = 1 // }).FirstOrDefault(); + bool canReq = true; var tf = Conn.榛樿Redis.GetValue(sx.deviceName + ".D1202"); var V = sx.location.ToList().FindIndex(x => x == task.S_END_LOC) == 0; @@ -2734,6 +2767,8 @@ endLoc = endloc; //break; } + else + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缂撳瓨浣峽ssloc} 涓嶅彲鐢ㄣ�"); } if (endLoc != null) { @@ -2747,6 +2782,7 @@ } else { + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 鐢熸垚绗笁娈典换鍔°�"); if (t1.S_START_LOC != task.S_START_LOC) { t1 = taskservice.FindEntity(x => x.S_SRC_NO == task.S_TASK_NO && x.S_START_LOC == task.S_START_LOC && x.S_B_STATE == "瀹屾垚"); @@ -2776,6 +2812,8 @@ endLoc = endloc; //break; } + else + LogHelper.Info($"瑙i噴MES浠诲姟 ->{task.S_TASK_NO} 缂撳瓨浣峽ssloc} 涓嶅彲鐢ㄣ�"); } if (endLoc != null) { @@ -2966,6 +3004,8 @@ // else tag.Js2.D1225 = 1; //} } + //Task.Run(() => + //{ var ssloc = device2.deviceNo[1]; var endloc = locrep.FindEntity(x => x.S_LOC_CODE == ssloc); LogHelper.Info($"鎹烽『鍗歌揣鍚庯紝 鏌ョ湅缂撳瓨浣�{ssloc}-{endloc?.N_CURRENT_NUM}>0? 鍒欑敵璇穖es鎼蛋銆�); @@ -2977,7 +3017,13 @@ startBit = ssloc })); LogHelper.Info($"{ssloc}鐢宠mes浠诲姟缁撴灉{str}"); + var strr = JsonConvert.DeserializeObject<Messss>(str); + if (strr != null && strr.success && strr.data?.state == 0) + { + //return; + } } + //}); } else switch (device2.deviceType) @@ -3137,7 +3183,7 @@ LogHelper.Info("瀹氬瓙1鍙风嚎 deviceType 5 娌℃湁閰嶇疆銆�); return; } - LogHelper.Info($" {VERX.deviceName} D2221>{tag.DZ1.D2221} D2221_LAST>{tag.DZ1.D2221_LAST} D2226>{tag.DZ1.D2226} D2226_LAST>{tag.DZ1.D2226_LAST}"); + LogHelper.Info($" {VERX.deviceName} 鏃堕棿鎴�{RedisHelper.Get<string>("D瀹氬瓙1鍙锋満姊版墜#Timestamp", out string mg)} D2221>{tag.DZ1.D2221} D2221_LAST>{tag.DZ1.D2221_LAST} D2226>{tag.DZ1.D2226} D2226_LAST>{tag.DZ1.D2226_LAST}"); if (tag.DZ1.D2221 == 1 && tag.DZ1.D2221_LAST == 0) { var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new @@ -3198,7 +3244,7 @@ LogHelper.Info("瀹氬瓙2鍙风嚎 deviceType 5 娌℃湁閰嶇疆銆�); return; } - LogHelper.Info($" {VERX.deviceName} D2221>{tag.DZ2.D2221} D2221_LAST>{tag.DZ2.D2221_LAST} D2226>{tag.DZ2.D2226} D2226_LAST>{tag.DZ2.D2226_LAST}"); + LogHelper.Info($" {VERX.deviceName} 鏃堕棿鎴�{RedisHelper.Get<string>("D瀹氬瓙2鍙锋満姊版墜#Timestamp", out string mg)} D2221>{tag.DZ2.D2221} D2221_LAST>{tag.DZ2.D2221_LAST} D2226>{tag.DZ2.D2226} D2226_LAST>{tag.DZ2.D2226_LAST}"); if (tag.DZ2.D2221 == 1 && tag.DZ2.D2221_LAST == 0) { var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new -- Gitblit v1.9.1