1
czw
2025-06-19 0fdee7bc3b061e62052047019330ffa705df7085
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/½çÃæÊ¼þ.cs
@@ -28,6 +28,7 @@
using GZ.DB.Repository.OIDATABASE;
using GZ.DB.IRepository.OIDATABASE;
using GZ.DB.Entity.OIDATABASE;
using GZ.Modular.Redis;
namespace GZ.Projects.AuxAllWCS
{
   /// <summary>
@@ -109,7 +110,8 @@
            #region    [脚本][20250323151832119][业务逻辑.Program4]
            //Conn.默认Redis.SetValue("西门子2.Param3","300","西门子2Queue");
//return;
if(false){
                    if (false)
                    {
                    List<string> locs = new List<string>() { "vxr1l", "vx1r", "vxr1c1", "vxr1c2", "vxr2l", "vxr2r", "vxr2c1", "vxr2c2" };
                    List<string> sites = new List<string>() { "196365BB283162", "193841BB283149", "198756BB287300", "198767BB286133", "206987BB282931", "204460BB282975", "209405BB287057", "209377BB285899" };
@@ -187,11 +189,14 @@
                                LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
                                if (str.Contains("true"))
                                {
                                    tag.Js1.D1212_LAST = 1;
                                    //tag.Js1.D1212_LAST = 1;
                                    RedisHelper.Add($"Js捷顺1.D1212_LAST", "1", out string msg);
                                }
                            }
                            if(tag.Js1.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 2) == 0){
                        tag.Js1.D1212_LAST = 0;
                            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);
                            }
                     if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)
                     {
@@ -203,10 +208,14 @@
                        LogHelper.Info($"{VERX.location[1]}申请mes任务结果{str}");
                        if (str.Contains("true"))
                        {
                           tag.Js1.D1213_LAST = 1;
                                    //tag.Js1.D1213_LAST = 1;
                                    RedisHelper.Add($"Js捷顺1.D1213_LAST", "1", out string msg);
                        }
                     }if(tag.Js1.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js1.D1212, 3) == 0){
                        tag.Js1.D1213_LAST = 0;
                            }
                            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);
                            }
                        }
            #endregion [脚本][20250325083325390][业务逻辑.第三标段.捷瞬抓臂1]
@@ -253,10 +262,16 @@
                                LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
                                if (str.Contains("true"))
                                {
                                    tag.Js2.D1212_LAST = 1;
                                    //tag.Js2.D1212_LAST = 1;
                                    RedisHelper.Add($"Js捷顺1.D1212_LAST", "1", out string msg);
                                }
                            } if(tag.Js2.D1212_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1212, 2) == 0){
                        tag.Js2.D1212_LAST = 0;
                            }
                            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);
                            }
                            if (tag.Js2.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js2.D1212, 3) == 1)
                            {
@@ -268,10 +283,16 @@
                                LogHelper.Info($"{VERX.location[1]}申请mes任务结果{str}");
                                if (str.Contains("true"))
                                {
                                    tag.Js2.D1213_LAST = 1;
                                    //tag.Js2.D1213_LAST = 1;
                                    RedisHelper.Add($"Js捷顺1.D1213_LAST", "1", out string msg);
                                }
                            }if(tag.Js2.D1213_LAST == 1 &&TcpServer.GetBitdata(tag.Js2.D1213, 2) == 0){
                        tag.Js2.D1213_LAST = 0;
                            }
                            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);
                            }
                        }
            #endregion [脚本][20250325083326611][业务逻辑.第三标段.捷瞬抓臂2]
@@ -369,7 +390,8 @@
                                   if (tag.wxr1.R10)
                           {
                           tag.wxr1.R10_LAST=false;
                           } else
                                    }
                                    else
                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))
                                    {
                                        //上报校验。
@@ -455,7 +477,8 @@
                                   if (tag.wxr1.R11)
                           {
                           tag.wxr1.R11_LAST=false;
                           } else
                                    }
                                    else
                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))
                                    {
                                        //上报校验。
@@ -542,7 +565,8 @@
                                   if (tag.wxr2.R10)
                           {
                              tag.wxr2.R10_LAST=false;
                           } else
                                    }
                                    else
                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[0],out string traycode))
                                    {
                                        //上报校验。
@@ -628,7 +652,8 @@
                                   if (tag.wxr2.R11)
                           {
                              tag.wxr2.R11_LAST=false;
                           } else
                                    }
                                    else
                                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1],out string traycode))
                                    {
                                        //上报校验。
@@ -681,7 +706,287 @@
         try
         {
            #region    [脚本][20250325085542733][业务逻辑.任务下发]
                        ITaskRepository taskservice = new TaskRepository();
                        var tklist = taskservice.FindList(x => x.S_B_STATE == "未执行" && x.S_WORK_MODE == "AGV");
                        if (tklist.Any())
                            foreach (var tk in tklist.GroupBy(item =>
                            {
                                var ticks = item.T_CREATE.Ticks;
                                return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));
                            }).OrderBy(x => x.Key))
                            {
                                var ts = tk.OrderByDescending(x => x.N_PRIORITY).ToList();
                                foreach (var t in ts)
                                {
                                    var b = false;
                                    b = RunTask(t);
            
                                    if (b)
                                    {
                                        t.S_B_STATE = "已推送";
                                        taskservice.Update(t);
                                    }
                                }
                                break;
                            }
                        //foreach (var tk in tklist.GroupBy(item =>
                        //{
                        //    var ticks = item.T_CREATE.Ticks;
                        //    return new DateTime(ticks - ticks % (10 * TimeSpan.TicksPerMinute));
                        //}).OrderBy(x => x.Key))
                        //if (tklist.Any())
                        //{
                        try
                        {
                            #region Rgv
                            LogHelper.Info($"查看RGV ç”µé‡ï¼šã€{tag.RGV.R当前电量}】 å……电状态:【{tag.RGV.R充电状态}】 æ•…障代码:【{tag.RGV.RgvrunError}】");
                            var task1Isrun = false;
                            if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver != 1)
                            {
                                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)
                            {
                                task2Isrun = true;
                                if (tag.RGV.bit2taskOver_LAST == 1)
                                    RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                            }
                            if (task1Isrun || task2Isrun)
                            {
                                string mes = "";
                                if (task1Isrun)
                                    mes += tag.RGV.ReadTask1No + "执行中...";
                                if (task2Isrun)
                                    mes += tag.RGV.ReadTask2No + "执行中...";
                                LogHelper.Info($"{mes} ä¸èƒ½ä¸‹å‘新任务。");
                                throw new Exception($"{mes} ä¸èƒ½ä¸‹å‘新任务。");
                            }
                            var thisOver = 0;
                            TaskEntity task1 = null;
                            TaskEntity task2 = null;
                            LogHelper.Info($"查看RGV 1工位任务》");
                            if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)
                            {
                                var taskno = tag.RGV.ReadTask1No;
                                LogHelper.Info($"RGV 1工位任务{tag.RGV.ReadTask1No}");
                                string tno = "TN" + (DateTime.Now.ToString("yy")) + ((taskno.ToString()).PadLeft(8, '0'));
                                task1 = taskservice.FindEntity(x => x.S_TASK_NO == tno);
                                LogHelper.Info($"RGV 1工位任务{JsonConvert.SerializeObject(task1)}.bit1taskOver_LAST:{tag.RGV.bit1taskOver_LAST}");
                                if (tag.RGV.bit1taskOver_LAST == 0 && task1 != null)
                                {
                                    if (task1.S_B_STATE != "完成")
                                    {
                                        thisOver = 1;
                                        if (task1.S_B_STATE == "取货完成")
                                        {
                                            task1.S_B_STATE = "完成";
                                        }
                                        else
                                        {
                                            task1.S_B_STATE = "取货完成";
                                        }
                                        LogHelper.Info($"RGV 1工位任务{task1.S_TASK_NO} çŠ¶æ€åˆ‡æ¢ä¸º{task1.S_B_STATE}");
                                        //tag.RGV.bit1taskOver_LAST = 1;
                                        RedisHelper.Add($"RGV.bit1taskOver_LAST", "1", out string msg);
                                        LogHelper.Info($"RGV 1工位任务写处理");
                                        taskservice.Update(task1);
                                        LogHelper.Info($"RGV 1工位任务更新。");
                                    }
                                    else
                                    {
                                        LogHelper.Info("RGV1工位任务已经完成。");
                                    }
                                }
                            }
                            else if (tag.RGV.ReadTask1No == 0)
                            {
                                LogHelper.Info($"RGV 1工位没有任务》");
                            }
                            LogHelper.Info($"查看RGV 2工位任务》");
                            if (tag.RGV.ReadTask2No > 0 && tag.RGV.bit2taskOver == 1)
                            {
                                var taskno = tag.RGV.ReadTask2No;
                                LogHelper.Info($"RGV 2工位任务{tag.RGV.ReadTask2No}");
                                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}");
                                if (tag.RGV.bit2taskOver_LAST == 0 && task2 != null)
                                {
                                    if (task2.S_B_STATE != "完成")
                                    {
                                        thisOver = 2;
                                        if (task2.S_B_STATE == "取货完成")
                                        {
                                            task2.S_B_STATE = "完成";
                                        }
                                        else
                                        {
                                            task2.S_B_STATE = "取货完成";
                                        }
                                        LogHelper.Info($"RGV 2工位任务{task2.S_TASK_NO} çŠ¶æ€åˆ‡æ¢ä¸º{task2.S_B_STATE}");
                                        RedisHelper.Add($"RGV.bit2taskOver_LAST", "1", out string msg);
                                        LogHelper.Info($"RGV 2工位任务写处理");
                                        taskservice.Update(task2);
                                        LogHelper.Info($"RGV 2工位任务更新。");
                                    }
                                    else
                                    {
                                        LogHelper.Info("RGV2工位任务已经完成。");
                                    }
                                }
                            }
                            else if (tag.RGV.ReadTask2No == 0)
                            {
                                LogHelper.Info($"RGV 2工位没有任务》");
                            }
                            //if (thisOver > 0)
                            {
                                var v2 = RedisHelper.Get<WriteGroupEntity>("RGVQueue", out string rev);
                                if (v2 != null)
                                {
                                    LogHelper.Info($"RGVQueue è¯»åˆ°ç»“æžœ-{JsonConvert.SerializeObject(v2)}  \n ä¸‹å‘前进行清除。");
                                    var b = RedisHelper.Remove("RGVQueue", out rev);
                                }
                            }
                            ///1 æœ‰è´§  å°±2 å–。  1 æ²¡è´§ å°±2 å¸è´§ï¼Œ éƒ½æœ‰è´§  å°±1卸货。 éƒ½æ²¡è´§ å°±1卸
                            tklist = taskservice.FindList(x => x.S_B_STATE == "未执行" && x.S_WORK_MODE == "RGV").OrderBy(x => x.T_CREATE).ToList();
                            if (task1 != null && task1.S_B_STATE != "完成") //1有任务
                            {
                                if (task2 != null && task2.S_B_STATE != "完成")// 1 æœ‰ä»»åŠ¡  2 æœ‰ä»»åŠ¡ã€‚
                                {
                                    LogHelper.Info($"查看RGV1 æœ‰ä»»åŠ¡{task1.S_TASK_NO},工位2 ä¹Ÿæœ‰ä»»åŠ¡{task2.S_TASK_NO}。 å¼€å§‹å·¥ä½1 å¸è´§ã€‚");
                                    tag.RGV.workMod = 1;
                                    tag.RGV.taskmod = 2;
                                    tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));
                                    tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);
                                    System.Threading.Thread.Sleep(750);
                                    RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
                                    tag.RGV.taskend = 125;
                                }
                                else //1有任务  2 æ²¡ä»»åŠ¡ã€‚
                                {
                                    LogHelper.Info($"查看RGV1 æœ‰ä»»åŠ¡{task1.S_TASK_NO},工位2 æ²¡ä»»åŠ¡ã€‚ æ‰¾åŒä¾§å–货任务。");
                                    //1 å¦‚果有同侧取货任务。就取。没有
                                    var leftSide = new List<string> { "1023", "1020" };
                                    var RightSide = new List<string> { "1002", "1008", "1010", "1016" };
                                    bool creT2 = false;
                                    if (leftSide.Contains(task1.S_START_LOC))
                                    {
                                        leftSide.Remove(task1.S_START_LOC);
                                        var lsde = leftSide.FirstOrDefault();
                                        var t2 = tklist.Find(x => x.S_START_LOC == lsde && x.S_END_LOC != "1017");
                                        if (t2 != null) //同侧取货任务。
                                        {
                                            LogHelper.Info($"查看RGV1 æœ‰ä»»åŠ¡{task1.S_TASK_NO},工位2 æ²¡ä»»åŠ¡ã€‚ æ‰¾åŒä¾§å–货任务{t2.S_TASK_NO}。");
                                            tag.RGV.workMod = 2;
                                            tag.RGV.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);
                                            RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                                            tag.RGV.taskend = 125;
                                        }
                                    }
                                    else if (RightSide.Contains(task1.S_START_LOC))
                                    {
                                        RightSide.Remove(task1.S_START_LOC);
                                        var t2 = tklist.Find(x => RightSide.Contains(x.S_START_LOC) && x.S_END_LOC != "1017");
                                        if (t2 != null) //同侧取货任务。
                                        {
                                            LogHelper.Info($"查看RGV1 æœ‰ä»»åŠ¡{task1.S_TASK_NO},工位2 æ²¡ä»»åŠ¡ã€‚ æ‰¾åŒä¾§å–货任务{t2.S_TASK_NO}。");
                                            tag.RGV.workMod = 2;
                                            tag.RGV.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);
                                            RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                                            tag.RGV.taskend = 125;
                                        }
                                    }
                                    //else //1 ç›´æŽ¥å¸è´§ã€‚
                                    if (!creT2)
                                    {
                                        LogHelper.Info($"查看RGV1 æœ‰ä»»åŠ¡{task1.S_TASK_NO},工位2 æ²¡ä»»åŠ¡ã€‚ æ²¡æœ‰åŒä¾§å–货任务 1工位卸货。");
                                        tag.RGV.workMod = 1;
                                        tag.RGV.taskmod = 2;
                                        tag.RGV.taskno1 = Convert.ToUInt32(task1.S_TASK_NO.Substring(4));
                                        tag.RGV.task1do = Convert.ToUInt16(task1.S_END_LOC);
                                        System.Threading.Thread.Sleep(750);
                                        RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
                                        tag.RGV.taskend = 125;
                                    }
                                }
                            }
                            else
                            {
                                if (task2 != null && task2.S_B_STATE != "完成")// 1 æ²¡ä»»åŠ¡  2 æœ‰ä»»åŠ¡ã€‚
                                {
                                    LogHelper.Info($"查看RGV 1工位没任务,工位2 æœ‰ä»»åŠ¡{task2.S_TASK_NO}。工位2卸货。。");
                                    //2 å¸è´§ã€‚
                                    tag.RGV.workMod = 2;
                                    tag.RGV.taskmod = 2;
                                    tag.RGV.taskno2 = Convert.ToUInt32(task2.S_TASK_NO.Substring(4));
                                    tag.RGV.task2do = Convert.ToUInt16(task2.S_END_LOC);
                                    System.Threading.Thread.Sleep(750);
                                    RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                                    tag.RGV.taskend = 125;
                                }
                                else //1mei ä»»åŠ¡  2 æ²¡ä»»åŠ¡ã€‚
                                {
                                    LogHelper.Info($"查看RGV 1工位没任务,工位2 ä¹Ÿæ²¡ä»»åŠ¡ã€‚ä¼˜å…ˆ1工位终点1017任务。。");
                                    //、下 1017任务 ç»™1号工位。
                                    var lss = tklist.Take(2).ToList();
                                    var e1017first = lss.Find(x => x.S_END_LOC == "1017");
                                    if (e1017first == null)
                                    {
                                        e1017first = lss.FirstOrDefault();
                                    }
                                    if (e1017first != null)
                                    {
                                        LogHelper.Info($"查看RGV 1工位没任务,工位2 ä¹Ÿæ²¡ä»»åŠ¡ã€‚1工位下任务{e1017first.S_TASK_NO}> ç»ˆç‚¹{e1017first.S_END_LOC}。");
                                        tag.RGV.workMod = 1;
                                        tag.RGV.taskmod = 1;
                                        uint tno = Convert.ToUInt32(e1017first.S_TASK_NO.Substring(4));
                                        LogHelper.Info($"{e1017first.S_TASK_NO}> è½¬æ¢åŽä»»åŠ¡å·{tno} å¼€å§‹å†™å…¥ã€‚");
                                        tag.RGV.taskno1 = tno;
                                        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}> taskend 125");
                                        e1017first.S_B_STATE = "已推送";
                                        taskservice.Update(e1017first);
                                        System.Threading.Thread.Sleep(750);
                                        RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
                                        tag.RGV.taskend = 125;
                                    }
                                }
                            }
                            #endregion
                        }
                        catch (Exception ex)
                        {
                            LogHelper.Error(ex.Message, ex);
                            //throw ex;
                        }
            #endregion [脚本][20250325085542733][业务逻辑.任务下发]
         }
         catch(Exception ex)
@@ -906,6 +1211,7 @@
         try
         {
            #region    [脚本][20250616094224396][业务逻辑.流程2热处理炉进出.1020空框下线]
                        //1020  1023 ç©ºæ¡†ä¸‹çº¿
            foreach (var Bssx in new string[] { "1020", "1023" })
{
    var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"S{Bssx}Read.RtaskState"), typeof(System.UInt16));
@@ -916,7 +1222,7 @@
    {
        try
        {
            foreach (var item in new string[] { "1004", "1006", "1012", "1014" })
                                    foreach (var item in (Bssx == "1020" ? new string[] { "1004", "1012" } : new string[] { "1006", "1014" }))
            {
                var R5 = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"S{item}Read.R5空闲"), typeof(System.UInt16));
                var R5空闲_LAST = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"S{item}Read.R5空闲_LAST"), typeof(System.UInt16));
@@ -926,16 +1232,16 @@
                    if (b)
                    {
                        LogHelper.Debug($"输送线RGV空托任务 from:{Bssx}>to {item}开始创建成功");
                        Modular.Redis.RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out string msg);
                                                RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out string msg);
                        //Conn.默认Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue");
                        Modular.Redis.RedisHelper.Add($"S{item}Read.R5空闲_LAST", "1", out string msg1);
                                                RedisHelper.Add($"S{item}Read.R5空闲_LAST", "1", out string msg1);
                        //Conn.默认Redis.SetValue($"S{item}Read.R5空闲_LAST", "1", $"S{item}ReadQueue");
                        break;
                    }
                }
                else if (R5 != 5 && R5空闲_LAST == 1)
                {
                    Modular.Redis.RedisHelper.Add($"S{item}Read.R5空闲_LAST", "0", out string msg);
                                            RedisHelper.Add($"S{item}Read.R5空闲_LAST", "0", out string msg);
                    //Conn.默认Redis.SetValue($"S{item}Read.R5空闲_LAST", "0", $"S{item}ReadQueue");
                }
            }
@@ -949,7 +1255,7 @@
    }
    else if (RtaskState != 3 && RtaskState_LAST == 1)
    {
        Modular.Redis.RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg);
                                RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg);
        //Conn.默认Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "0", $"S{Bssx}ReadQueue");
    }
    System.Threading.Thread.Sleep(2000);
@@ -1011,6 +1317,7 @@
         try
         {
            #region    [脚本][20250616094632985][业务逻辑.流程2热处理炉进出.定子满下线]
                        //定子满下线  1008  1016   ->  1026
            foreach (var Bssx in new string[] { "1008", "1016" })
{
    var RtaskState = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"S{Bssx}Read.RtaskState"), typeof(System.UInt16));
@@ -1027,8 +1334,8 @@
            var b = TaskProcess.CreateTask("", Bssx, item, "满转1026", 5, new List<string> { R托盘码 }, "RGV");
            if (b)
            {
                Modular.Redis.RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out string msg);
                Modular.Redis.RedisHelper.Add($"S{item}Read.R5空闲_LAST", "1", out string msg2);
                                        RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out string msg);
                                        RedisHelper.Add($"S{item}Read.R5空闲_LAST", "1", out string msg2);
                //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;
@@ -1036,12 +1343,12 @@
        }
        else if (R5 != 5 && R5空闲_LAST == 1)
        {
            Modular.Redis.RedisHelper.Add($"S{item}Read.R5空闲_LAST", "0", out string msg2);
                                    RedisHelper.Add($"S{item}Read.R5空闲_LAST", "0", out string msg2);
        }
    }
    else if (RtaskState != 3 && RtaskState_LAST == 1)
    {
        Modular.Redis.RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg);
                                RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg);
        //Conn.默认Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "0", $"S{Bssx}ReadQueue");
    }
    System.Threading.Thread.Sleep(2000);
@@ -1091,8 +1398,8 @@
            var b = TaskProcess.CreateTask("", Bssx, item, "满转1017", 5, new List<string> { R托盘码 }, "RGV");
            if (b)
            {
                Modular.Redis.RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out string msg);
                Modular.Redis.RedisHelper.Add($"S{item}Read.R5空闲_LAST", "1", out string msg1);
                                        RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out string msg);
                                        RedisHelper.Add($"S{item}Read.R5空闲_LAST", "1", out string msg1);
                //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;
@@ -1100,12 +1407,12 @@
        }
        else if (R5 != 5 && R5空闲_LAST == 1)
        {
            Modular.Redis.RedisHelper.Add($"S{item}Read.R5空闲_LAST", "0", out string msg1);
                                    RedisHelper.Add($"S{item}Read.R5空闲_LAST", "0", out string msg1);
        }
    }
    else if (RtaskState != 3 && RtaskState_LAST == 1)
    {
        Modular.Redis.RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg);
                                RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "0", out string msg);
    }
    System.Threading.Thread.Sleep(2000);
}
@@ -1146,32 +1453,36 @@
    {
        if (ssx == "1005")
        {
            tag.FNK1.D2210 = 1;
            tag.SF下料位.RArrive1005_LAST = 1;
                                    tag.FNK1.D2215 = 1;
                                    //tag.SF下料位.RArrive1005_LAST = 1;
                                    RedisHelper.Add($"FNK1003051113.RArrive1005_LAST", "1", out string msg);
            tag.SF下料位.WRelease1005 = 0;
            tag.SF下料位.WSafe0305 = 0;
        }
        else if (ssx == "1003")
        {
            tag.FNK2.D2215 = 1;
            tag.SF下料位.RArrive1003_LAST = 1;
                                    tag.FNK2.D2210 = 1;
                                    //tag.SF下料位.RArrive1003_LAST = 1;
                                    RedisHelper.Add($"FNK1003051113.RArrive1003_LAST", "1", out string msg);
            tag.SF下料位.WRelease1003 = 0;
            tag.SF下料位.WSafe0305 = 0;
        }
        else if (ssx == "1013")
        {
            tag.FNK2.D2210 = 1;
            tag.SF下料位.RArrive1013_LAST = 1;
                                    tag.FNK2.D2215 = 1;
                                    //tag.SF下料位.RArrive1013_LAST = 1;
                                    RedisHelper.Add($"FNK1003051113.RArrive1013_LAST", "1", out string msg);
            tag.SF下料位.WRelease1013 = 0;
            tag.SF下料位.WSafe1113 = 0;
        }
        else if (ssx == "1011")
        {
            tag.FNK2.D2215 = 1;
            tag.SF下料位.RArrive1011_LAST = 1;
                                    tag.FNK2.D2210 = 1;
                                    //tag.SF下料位.RArrive1011_LAST = 1;
                                    RedisHelper.Add($"FNK1003051113.RArrive1011_LAST", "1", out string msg);
            tag.SF下料位.WRelease1011 = 0;
            tag.SF下料位.WSafe1113 = 0;
@@ -1179,7 +1490,8 @@
    }
    else if (RArrive == 0 && RArriveLast == 1)
    {
                                Modular.Redis.RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg);
                                RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg);
                                //Conn.默认Redis.SetValue($"FNK1003051113.RArrive{ssx}_LAST", "0", $"FNK1003051113Queue");
    }
}
            #endregion [脚本][20250616095605911][业务逻辑.流程2热处理炉进出.下料位检测]
@@ -1209,29 +1521,36 @@
            if (IsExitApp) { break; }
         try
         {
                        ////2217 - 1003
            #region    [脚本][20250616095709155][业务逻辑.流程2热处理炉进出.1号FNK机械手完成]
            if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)
                        if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)
{
    tag.FNK1.D2210 = 0;
    tag.FNK1.D2212_LAST = 1;
                            tag.FNK1.D2215 = 0;
                            //tag.FNK1.D2212_LAST = 1;
                            RedisHelper.Add($"p发那科1下线.D2217_LAST", "1", out string msg);
    tag.SF下料位.WRelease1005 = 1;
    tag.SF下料位.WSafe0305 = 1;
}
else if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)
{
    tag.FNK1.D2212_LAST = 0;
}
if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)
{
    tag.FNK1.D2215 = 0;
    tag.FNK1.D2217_LAST = 1;
                        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);
                        if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)
                        {
                            tag.FNK1.D2210 = 0;
                            //tag.FNK1.D2217_LAST = 1;
                            RedisHelper.Add($"p发那科1下线.D2212_LAST", "1", out string msg);
    tag.SF下料位.WRelease1003 = 1;
    tag.SF下料位.WSafe0305 = 1;
}
else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)
    tag.FNK1.D2217_LAST = 0;
                        else if (tag.FNK1.D2212 == 0 && tag.FNK1.D2212_LAST == 1)
                        {
                            //tag.FNK1.D2212_LAST = 0;
                            RedisHelper.Add($"p发那科1下线.D2212_LAST", "1", out string msg);
                        }
            #endregion [脚本][20250616095709155][业务逻辑.流程2热处理炉进出.1号FNK机械手完成]
         }
@@ -1261,28 +1580,32 @@
         try
         {
            #region    [脚本][20250616095733680][业务逻辑.流程2热处理炉进出.2号FNK机械手完成]
             if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)
                        if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)
 {
     tag.FNK2.D2210 = 0;
     tag.FNK2.D2212_LAST = 1;
                            tag.FNK2.D2215 = 0;
                            //tag.FNK2.D2212_LAST = 1;
                            RedisHelper.Add($"p发那科2下线.D2217_LAST", "1", out string msg);
     tag.SF下料位.WRelease1013 = 1;
     tag.SF下料位.WSafe1113 = 1;
 }
 else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)
                        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);
                        if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)
 {
     tag.FNK2.D2212_LAST = 0;
 }
 if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)
 {
     tag.FNK2.D2215 = 0;
     tag.FNK2.D2217_LAST = 1;
                            tag.FNK2.D2210 = 0;
                            //tag.FNK2.D2217_LAST = 1;
                            RedisHelper.Add($"p发那科2下线.D2212_LAST", "1", out string msg);
     tag.SF下料位.WRelease1011 = 1;
     tag.SF下料位.WSafe1113 = 1;
 }
 else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)
     tag.FNK2.D2217_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);
                        }
            #endregion [脚本][20250616095733680][业务逻辑.流程2热处理炉进出.2号FNK机械手完成]
         }
         catch(Exception ex)