1
czw
2025-06-27 e52744716da77be232ac6ecc7573a2ef2294e65c
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/VS×Ô¶¨ÒåÀà/AutoThread.cs
@@ -15,6 +15,8 @@
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using System.Windows.Interop;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox;
using System.Security.Cryptography;
using System.Windows.Markup;
namespace GZ.Projects.AuxAllWCS
{
@@ -104,6 +106,12 @@
            {
                tag.Global.SettingsOver = 0;
            }
            else tag.Global.SettingsOver++;
            if (tag.Global.SettingsOver > 999)
            {
                tag.Global.SettingsOver = 1;
                Console.Clear();
            }
        }
        /// <summary>
@@ -125,16 +133,17 @@
                        endBit = VERX.location[0]
                    }));
                    LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
                    if (str.Contains("true"))
                    var strr = JsonConvert.DeserializeObject<Messss>(str);
                    if (strr != null && strr.success && strr.data?.state == 0)
                    {
                        //tag.Js1.D1212_LAST = 1;
                        RedisHelper.Add($"Js捷顺1.D1212_LAST", "1", out string msg);
                        RedisHelper.Add($"Js捷顺1.D1202_LAST", "1", out string msg);
                    }
                }
                if (tag.Js1.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0)
                {
                    //tag.Js1.D1212_LAST = 0; 
                    RedisHelper.Add($"Js捷顺1.D1212_LAST", "0", out string msg);
                    RedisHelper.Add($"Js捷顺1.D1202_LAST", "0", out string msg);
                }
                if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)
                {
@@ -144,16 +153,17 @@
                        endBit = VERX.location[1]
                    }));
                    LogHelper.Info($"{VERX.location[1]}申请mes任务结果{str}");
                    if (str.Contains("true"))
                    var strr = JsonConvert.DeserializeObject<Messss>(str);
                    if (strr != null && strr.success && strr.data?.state == 0)
                    {
                        //tag.Js1.D1213_LAST = 1;
                        RedisHelper.Add($"Js捷顺1.D1213_LAST", "1", out string msg);
                        RedisHelper.Add($"Js捷顺1.D1203_LAST", "1", out string msg);
                    }
                }
                if (tag.Js1.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0)
                {
                    //tag.Js1.D1213_LAST = 0;
                    RedisHelper.Add($"Js捷顺1.D1213_LAST", "0", out string msg);
                    RedisHelper.Add($"Js捷顺1.D1203_LAST", "0", out string msg);
                }
            }
        }
@@ -176,18 +186,17 @@
                        endBit = VERX.location[0]
                    }));
                    LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
                    if (str.Contains("true"))
                    var strr = JsonConvert.DeserializeObject<Messss>(str);
                    if (strr != null && strr.success && strr.data?.state == 0)
                    {
                        //tag.Js2.D1212_LAST = 1;
                        RedisHelper.Add($"Js捷顺1.D1212_LAST", "1", out string msg);
                        RedisHelper.Add($"Js捷顺2.D1202_LAST", "1", out string msg);
                    }
                }
                if (tag.Js2.D1212_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0)
                {
                    //tag.Js2.D1212_LAST = 0;
                    RedisHelper.Add($"Js捷顺1.D1212_LAST", "0", out string msg);
                    RedisHelper.Add($"Js捷顺2.D1202_LAST", "0", out string msg);
                }
                if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)
                {
@@ -197,18 +206,18 @@
                        endBit = VERX.location[1]
                    }));
                    LogHelper.Info($"{VERX.location[1]}申请mes任务结果{str}");
                    if (str.Contains("true"))
                    {
                        //tag.Js2.D1213_LAST = 1;
                        RedisHelper.Add($"Js捷顺1.D1213_LAST", "1", out string msg);
                    var strr = JsonConvert.DeserializeObject<Messss>(str);
                    if (strr != null && strr.success && strr.data?.state == 0)
                    {
                        RedisHelper.Add($"Js捷顺2.D1203_LAST", "1", out string msg);
                    }
                }
                if (tag.Js2.D1213_LAST == 1 && TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0)
                {
                    //tag.Js2.D1213_LAST = 0;
                    RedisHelper.Add($"Js捷顺1.D1213_LAST", "0", out string msg);
                    RedisHelper.Add($"Js捷顺2.D1203_LAST", "0", out string msg);
                }
            }
        }
@@ -235,7 +244,8 @@
                            endBit = ""
                        }));
                        LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
                        if (str.Contains("true"))
                        var strr = JsonConvert.DeserializeObject<Messss>(str);
                        if (strr != null && strr.success && strr.data?.state == 0)
                        {
                            //tag.wxr1.R44_LAST = true;
                            RedisHelper.Add($"维希尔抓臂1.R44_LAST", "true", out string msg);
@@ -307,7 +317,8 @@
                            endBit = ""
                        }));
                        LogHelper.Info($"{VERX.location[1]}申请mes任务结果{str}");
                        if (str.Contains("true"))
                        var strr = JsonConvert.DeserializeObject<Messss>(str);
                        if (strr != null && strr.success && strr.data?.state == 0)
                        {
                            //tag.wxr1.R46_LAST = true;
                            RedisHelper.Add($"维希尔抓臂1.R46_LAST", "true", out string msg);
@@ -378,7 +389,8 @@
                            endBit = ""
                        }));
                        LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
                        if (str.Contains("true"))
                        var strr = JsonConvert.DeserializeObject<Messss>(str);
                        if (strr != null && strr.success && strr.data?.state == 0)
                        {
                            //tag.wxr2.R44_LAST = true;
                            RedisHelper.Add($"维希尔抓臂2.R44_LAST", "true", out string msg);
@@ -450,7 +462,8 @@
                            endBit = ""
                        }));
                        LogHelper.Info($"{VERX.location[1]}申请mes任务结果{str}");
                        if (str.Contains("true"))
                        var strr = JsonConvert.DeserializeObject<Messss>(str);
                        if (strr != null && strr.success && strr.data?.state == 0)
                        {
                            //tag.wxr2.R46_LAST = true;
                            RedisHelper.Add($"维希尔抓臂2.R46_LAST", "true", out string msg);
@@ -507,7 +520,7 @@
            ITaskRepository taskservice = new TaskRepository();
            try
            {
                LogHelper.Info("任务下发  ARG ä»»åŠ¡ è¿›å…¥");
                LogHelper.Info("任务下发  AGV ä»»åŠ¡ è¿›å…¥");
                #region AGV任务下发。
                var tklist = taskservice.FindList(x => x.S_B_STATE == "未执行" && x.S_WORK_MODE == "AGV");
@@ -651,7 +664,7 @@
                    string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0'));
                    task2 = taskservice.FindEntity(x => x.S_TASK_NO == tno);
                    LogHelper.Info($"RGV2工位任务{JsonConvert.SerializeObject(task2)}.bit2taskOver_LAST:{tag.RGV.bit2taskOver_LAST}");
                    LogHelper.Info($"RGV2工位任务{task2?.S_TASK_NO}.bit2taskOver_LAST:{tag.RGV.bit2taskOver_LAST}");
                    if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)
                    {
                        if (task2.S_B_STATE != "完成")
@@ -735,14 +748,13 @@
                            LogHelper.Info($"{task1.S_TASK_NO}> taskmod 1 ã€Šå–货》");
                            tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));
                            tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);
                            t2.S_B_STATE = "已推送";
                            taskservice.Update(t2);
                            creT2 = true;
                            System.Threading.Thread.Sleep(750);
                            LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å†™ 0");
                            RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                            LogHelper.Info($"{t2.S_TASK_NO}> end å†™ 125");
                            Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                            t2.S_B_STATE = "已推送";
                            taskservice.Update(t2);
                        }
                        ////2 å¦‚果有同侧取货任务。就取。没有
                        //else if (leftSide.Contains(task1.S_START_LOC))
@@ -848,14 +860,13 @@
                            LogHelper.Info($"{e1017first.S_TASK_NO}>开始写入 task1do>>{e1017first.S_START_LOC}。");
                            tag.RGV.task1do = Convert.ToUInt16(e1017first.S_START_LOC);
                            LogHelper.Info($"{e1017first.S_TASK_NO}> æ›´æ–°ä»»åŠ¡ã€‚");
                            e1017first.S_B_STATE = "已推送";
                            taskservice.Update(e1017first);
                            System.Threading.Thread.Sleep(750);
                            LogHelper.Info($"{e1017first.S_TASK_NO}> bit1taskOver_LAST å†™0");
                            RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
                            LogHelper.Info($"{e1017first.S_TASK_NO}> taskend å†™125");
                            //tag.RGV.taskend=125
                            Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                            e1017first.S_B_STATE = "已推送";
                            taskservice.Update(e1017first);
                        }
                        else
                        {
@@ -870,13 +881,12 @@
                                tag.RGV.taskno2 = Convert.ToUInt32(t2.S_TASK_NO.Substring(4));
                                LogHelper.Info($"{t2.S_TASK_NO}> taskno2  {Convert.ToUInt32(t2.S_TASK_NO.Substring(4))}《任务号》");
                                tag.RGV.task2do = Convert.ToUInt16(t2.S_START_LOC);
                                t2.S_B_STATE = "已推送";
                                taskservice.Update(t2);
                                System.Threading.Thread.Sleep(750);
                                LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å†™ 0");
                                RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                                LogHelper.Info($"{t2.S_TASK_NO}> end å†™ 125");
                                Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                                t2.S_B_STATE = "已推送";
                                taskservice.Update(t2);
                            }
                        }
                    }
@@ -893,14 +903,15 @@
        public void ThreadGrats(Tag tag, Action<HaiKangOrderInfo> continueTask)
        {
            Console.WriteLine($"ThreadGrats å…‰æ …处理 =================> ");
            LogHelper.Info($"ThreadGrats å…‰æ …处理 =================> ");
            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);
            var requires = taskActRepository.FindList(x => taskCOdes.Contains(x.S_ACTION_CODE) && x.N_CREATEMETHOD == 0).OrderBy(x => x.T_CREATE);
            foreach (var item in requires)
            {
                LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE}光栅处理 =================> ");
                var tin = taskCOdes.IndexOf(item.S_ACTION_CODE);
                if (tin == -1)
                {
@@ -908,7 +919,13 @@
                    taskActRepository.Update(item);
                    continue;
                }
                //var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);
                var task = taskRepository.FindEntity(x => x.S_TASK_NO == item.S_TASK_NO);
                if (task == null)
                {
                    item.N_CREATEMETHOD = -1;
                    taskActRepository.Update(item);
                    continue;
                }
                string loc = "";
                if (tin < 2)
                {
@@ -924,20 +941,26 @@
                var dev = Settings.deviceInfos.Find(x => x.location.Contains(loc));
                if (dev != null)
                {
                    LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å…‰æ …处理 =================> ");
                    var V = dev.location.ToList().FindIndex(x => x == loc) == 0;
                    //车走了  å¼€å…‰æ …
                    if (!goin)
                    {
                        if (dev.deviceType == 1)
                        {
                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å¼€å¯å…‰æ …处理 =================> ");
                            LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "右")} å…‰æ …{(goin ? "关闭" : "开启")} ç”³è¯·ã€‚" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue"));
                            Conn.默认Redis.SetValue(dev.deviceName + "." + (V ? "R02" : "R04"), "true", dev.deviceName + "Queue", false);
                        }
                        else if (dev.deviceType == 2)
                        {
                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å¼€å¯å…‰æ …处理 =================> ");
                            LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "右")} å…‰æ …{(goin ? "关闭" : "开启")} ç”³è¯·ã€‚" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue"));
                            Conn.默认Redis.SetValue(dev.deviceName + "." + (V ? "D1220" : "D1221"), "0", dev.deviceName + "Queue");
                            Conn.默认Redis.SetValue(dev.deviceName + "." + (V ? "D1222" : "D1223"), "1", dev.deviceName + "Queue");
                        }
                        LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å¼€å¯å…‰æ …处理完成 =================> ");
                        item.N_CREATEMETHOD = 1;
                        taskActRepository.Update(item);
@@ -947,7 +970,9 @@
                    {
                        if (dev.deviceType == 1)
                        {
                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å…³é—­å…‰æ …处理 =================> ");
                            var tf = Conn.默认Redis.GetValue(dev.deviceName + "." + (V ? "R50" : "R52"));//读关闭状态
                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å…‰æ …关闭信号{tf}");
                            if (tf?.ToLower() == "true")
                            {
                                LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "右")} å…‰æ …{(goin ? "关闭" : "开启")} ç”³è¯·ã€‚ å·²ç»å…³é—­ï¼");
@@ -958,24 +983,31 @@
                                LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "右")} å…‰æ …{(goin ? "关闭" : "开启")} ç”³è¯·ã€‚" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "R01" : "R03"), "true", dev.deviceName + "Queue"));
                                Conn.默认Redis.SetValue(dev.deviceName + "." + (V ? "R01" : "R03"), "true", dev.deviceName + "Queue", false);
                            }
                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å…³é—­å…‰æ …处理完成 =================> ");
                        }
                        else if (dev.deviceType == 2)
                        {
                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å…³é—­å…‰æ …处理 =================> ");
                            var tf = Conn.默认Redis.GetValue(dev.deviceName + ".D1202");
                            int numm = int.Parse(string.IsNullOrEmpty(tf) ? "0" : tf);
                            if (TcpServer.GetBitdata(numm, (V ? 0 : 1)) == 1)
                            int close = TcpServer.GetBitdata(numm, (V ? 0 : 1));
                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å…‰æ …关闭信号{close}");
                            if (close == 1)
                            {
                                LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "右")} å…‰æ …{(goin ? "关闭" : "开启")} ç”³è¯·ã€‚ å·²ç»å…³é—­ï¼");
                                continuuuuu = true;
                            }
                            else
                            {
                                LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "右")} å…‰æ …{(goin ? "关闭" : "开启")} ç”³è¯·ã€‚" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1220" : "D1221"), dev.deviceName + "Queue"));
                                LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "右")} å…‰æ …{(goin ? "关闭" : "开启")} ç”³è¯·ã€‚" + string.Format("{0}{1}{2}", dev.deviceName + "." + (V ? "D1220" : "D1221"), "1", dev.deviceName + "Queue"));
                                Conn.默认Redis.SetValue(dev.deviceName + "." + (V ? "D1222" : "D1223"), "0", dev.deviceName + "Queue");
                                Conn.默认Redis.SetValue(dev.deviceName + "." + (V ? "D1220" : "D1221"), "1", dev.deviceName + "Queue");
                            }
                        }
                                string d12201 = RedisHelper.Get<string>(dev.deviceName + "." + (V ? "D1220" : "D1221"), out string msg);
                                LogHelper.Info($"ThreadGrats å†™{(dev.deviceName + "." + (V ? "D1220" : "D1221"))}为 1 ï¼Œ åŽè¯»{d12201}");
                            }
                            LogHelper.Info($"ThreadGrats {item.S_TASK_NO} >{item.S_ACTION_CODE} è®¾å¤‡æ˜¯{dev.deviceName} å…³é—­å…‰æ …处理完成 =================> ");
                        }
                    }
                }
@@ -992,23 +1024,35 @@
                }
            }
            System.Threading.Thread.Sleep(3000);
            LogHelper.Info($"ThreadGrats deviceType2光栅写入位重置 =================> ");
            //重置信号
            foreach (var dev in Settings.deviceInfos.FindAll(x => x.deviceType == 2))
            {
                var tf = Conn.默认Redis.GetValue(dev.deviceName + ".D1202");
                int numm = int.Parse(string.IsNullOrEmpty(tf) ? "0" : tf);
                //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");
                    Conn.默认Redis.SetValue(dev.deviceName + ".D1222", "0", dev.deviceName + "Queue");
                    Conn.默认Redis.SetValue(dev.deviceName + ".D1220", "0", dev.deviceName + "Queue", false);
                    Conn.默认Redis.SetValue(dev.deviceName + ".D1222", "0", dev.deviceName + "Queue", false);
                }
                else if (TcpServer.GetBitdata(numm, 1) == 0)
                if (TcpServer.GetBitdata(numm, 1) == 0)
                {
                    Conn.默认Redis.SetValue(dev.deviceName + ".D1221", "0", dev.deviceName + "Queue");
                    Conn.默认Redis.SetValue(dev.deviceName + ".D1223", "0", dev.deviceName + "Queue");
                    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.SetValue(dev.deviceName + ".D1224", "0", dev.deviceName + "Queue", false);
                }
                if (TcpServer.GetBitdata(numm, 3) == 0)
                {
                    Conn.默认Redis.SetValue(dev.deviceName + ".D1225", "0", dev.deviceName + "Queue", false);
                }
            }
            LogHelper.Info($"ThreadGrats deviceType2光栅写入位重置完成。 =================> ");
        }
        /// <summary>
        /// 1020  1023空框下线
@@ -1242,10 +1286,12 @@
            {
                var RArrive = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"FNK1003051113.RArrive{ssx}"), typeof(System.UInt16));
                var RArriveLast = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"FNK1003051113.RArrive{ssx}_LAST"), typeof(System.UInt16));
                LogHelper.Info($" FNK1003051113.RArrive{ssx}>{RArrive} && FNK1003051113.RArrive{ssx}_LAST >{RArriveLast}");
                if (RArrive == 1 && RArriveLast == 0)
                {
                    if (ssx == "1005" && tag.SF下料位.WRelease1005 == 0)
                    {
                        LogHelper.Info($"ssx == 1005 && tag.SF下料位.WRelease1005:{tag.SF下料位.WRelease1005}  å†™f1 2215=1,RArrive1005_LAST=1");
                        tag.FNK1.D2215 = 1;
                        //tag.SF下料位.RArrive1005_LAST = 1;
                        RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "1", out string msg);
@@ -1255,6 +1301,7 @@
                    }
                    else if (ssx == "1003" && tag.SF下料位.WRelease1003 == 0)
                    {
                        LogHelper.Info($"ssx == 1003 && tag.SF下料位.WRelease1003:{tag.SF下料位.WRelease1003}  å†™f1 2210=1,RArrive1003_LAST=1");
                        tag.FNK1.D2210 = 1;
                        //tag.SF下料位.RArrive1003_LAST = 1;
@@ -1265,6 +1312,7 @@
                    }
                    else if (ssx == "1013" && tag.SF下料位.WRelease1013 == 0)
                    {
                        LogHelper.Info($"ssx == 1013 && tag.SF下料位.WRelease1013:{tag.SF下料位.WRelease1013}  å†™f2 2215=1,RArrive1013_LAST=1");
                        tag.FNK2.D2215 = 1;
                        //tag.SF下料位.RArrive1013_LAST = 1;
                        RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "1", out string msg);
@@ -1274,6 +1322,7 @@
                    }
                    else if (ssx == "1011" && tag.SF下料位.WRelease1011 == 0)
                    {
                        LogHelper.Info($"ssx == 1011 && tag.SF下料位.WRelease1011:{tag.SF下料位.WRelease1011}  å†™f2 2210=1,RArrive1011_LAST=1");
                        tag.FNK2.D2210 = 1;
                        //tag.SF下料位.RArrive1011_LAST = 1;
                        RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "1", out string msg);
@@ -1284,6 +1333,7 @@
                }
                else if (RArrive == 0 && RArriveLast == 1)
                {
                    LogHelper.Info($"重置 FNK1003051113.RArrive{ssx}_LAST=0");
                    RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg);
                    //Conn.默认Redis.SetValue($"FNK1003051113.RArrive{ssx}_LAST", "0", $"FNK1003051113Queue");
                }
@@ -1293,6 +1343,8 @@
        public void ThreadFNK1Over(Tag tag)
        {
            Console.WriteLine($"ThreadFNK1Over    =====>");
            LogHelper.Info($" FN1 D2217>{tag.FNK1.D2217} D2217LAST>{tag.FNK1.D2217_LAST} D2215>{tag.FNK1.D2215} D2216>{tag.FNK1.D2216} D2215>{tag.FNK1.D2215}");
            //LogHelper.Info($" FN1 .D2217=1,2217_LAST=0 å†™ 2215=0,D2217_LAST=1,WRelease1005=1 RArrive1005_LAST=0");
            if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)
            {
                tag.FNK1.D2215 = 0;
@@ -1303,13 +1355,22 @@
                tag.SF下料位.WSafe0305 = 1;
                System.Threading.Thread.Sleep(1000);
                RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "0", out msg);
                LogHelper.Info($" FN1 .D2217=1,2217_LAST=0 å†™ 2215=0,D2217_LAST=1,WRelease1005=1 RArrive1005_LAST=0");
            }
            if (tag.FNK1.D2216 == 1)
                tag.FNK1.D2215 = 0;
            else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)
            {
                //tag.FNK1.D2217_LAST = 0;
                RedisHelper.Add($"p发那科1下线.D2217_LAST", "0", out string msg);
                LogHelper.Info($" p发那科1下线.D2217_LAST=0");
            }
            if (tag.FNK1.D2216 == 1)
            {
                tag.FNK1.D2215 = 0;
                LogHelper.Info($" p发那科1下线 è¯»D2216=1  å†™D2215 =0");
            }
            LogHelper.Info($" FN1 D2212>{tag.FNK1.D2212} D2212LAST>{tag.FNK1.D2212_LAST} D2210>{tag.FNK1.D2210} D2211>{tag.FNK1.D2211} D2210>{tag.FNK1.D2210}");
            if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)
            {
                tag.FNK1.D2210 = 0;
@@ -1319,6 +1380,7 @@
                tag.SF下料位.WSafe0305 = 1;
                System.Threading.Thread.Sleep(1000);
                RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "0", out msg);
                LogHelper.Info($" FN1 .D2212=1,2212_LAST=0 å†™ 2210=0,D2212_LAST=1,WRelease1003=1 RArrive1003_LAST=0");
            }
            //else if (tag.FNK1.D2211 == 1)
            //    tag.FNK1.D2210 = 0;
@@ -1326,14 +1388,21 @@
            {
                //tag.FNK1.D2212_LAST = 0;
                RedisHelper.Add($"p发那科1下线.D2212_LAST", "0", out string msg);
                LogHelper.Info($" p发那科1下线.D2212_LAST=0");
            }
            if (tag.FNK1.D2211 == 1)
            {
                tag.FNK1.D2210 = 0;
                LogHelper.Info($" p发那科1下线 è¯»D2211=1  å†™D2210 =0");
            }
        }
        public void ThreadFNK2Over(Tag tag)
        {
            Console.WriteLine($"ThreadFNK2Over    =====>");
            LogHelper.Info($" FN2 D2217>{tag.FNK2.D2217} D2217LAST>{tag.FNK2.D2217_LAST} D2215>{tag.FNK2.D2215} D2216>{tag.FNK2.D2216} D2215>{tag.FNK2.D2215}");
            if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)
            {
                tag.FNK2.D2215 = 0;
@@ -1344,14 +1413,23 @@
                tag.SF下料位.WSafe1113 = 1;
                System.Threading.Thread.Sleep(1000);
                RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "0", out msg);
                LogHelper.Info($" FN2 .D2217=1,2217_LAST=0 å†™ 2215=0,D2217_LAST=1,WRelease1013=1 RArrive1013_LAST=0");
            }
            else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)
            {
                //tag.FNK2.D2217_LAST = 0;
                RedisHelper.Add($"p发那科2下线.D2217_LAST", "0", out string msg);
                LogHelper.Info($" p发那科2下线.D2217_LAST=0");
            }
            if (tag.FNK2.D2216 == 1)
            {
                tag.FNK2.D2215 = 0;
                LogHelper.Info($" p发那科2下线 è¯»D2216=1  å†™D2215 =0");
            }
            LogHelper.Info($" FN2 D2212>{tag.FNK2.D2212} D2212LAST>{tag.FNK2.D2212_LAST} D2210>{tag.FNK2.D2210} D2211>{tag.FNK2.D2211} D2210>{tag.FNK2.D2210}");
            if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)
            {
                tag.FNK2.D2210 = 0;
@@ -1362,16 +1440,22 @@
                tag.SF下料位.WSafe1113 = 1;
                System.Threading.Thread.Sleep(1000);
                RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "0", out msg);
                LogHelper.Info($" FN2 .D2212=1,2212_LAST=0 å†™ 2210=0,D2212_LAST=1,WRelease1011=1 RArrive1011_LAST=0");
            }
            else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)
            {
                //tag.FNK2.D2212_LAST = 0;
                RedisHelper.Add($"p发那科2下线.D2212_LAST", "0", out string msg);
                LogHelper.Info($" p发那科2下线.D2212_LAST=0");
            }
            if (tag.FNK2.D2211 == 1)
            {
                tag.FNK2.D2210 = 0;
                LogHelper.Info($" p发那科2下线 è¯»D2211=1  å†™D2210 =0");
            }
        }
        public void Thread1019Down(Tag tag)
        {
@@ -1401,6 +1485,20 @@
    }
    class Messss
    {
        public bool success { get; set; }
        public Ddata data { get; set; }
        public object extra { get; set; }
    }
    public class Ddata
    {
        public string reqCode { get; set; }
        public int state { get; set; }
        public string error { get; set; }
    }
}
#endregion [自定义类-VS][20250623083459471][AutoThread]