1
czw
2025-06-28 0e6422ddf3252bd4d878cf1a8cca4944165e3503
1
7个文件已修改
333 ■■■■ 已修改文件
2025年6月12日/AuxAllWCS/AuxAllWCS.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
2025年6月12日/AuxAllWCS/Build/Project/AuxAllWCS.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs 161 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
2025年6月12日/AuxAllWCS/Devices/PlcConfig 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
2025年6月12日/AuxAllWCS/Devices/设备通信.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
2025年6月12日/AuxAllWCS/Net/Conn.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
2025年6月12日/AuxAllWCS/Variable/变量数据库.json 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/AuxAllWCS.json
@@ -9,5 +9,5 @@
  "DevelopVersion": "1.0.2.0",
  "Encode": "Ij/zvOgkqNT5SmHrFKCAVQ==",
  "CreationTime": "0001-01-01 00:00:00",
  "LastWriteTime": "2025-06-28 14:19:28"
  "LastWriteTime": "2025-06-28 14:27:30"
}
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/AuxAllWCS.csproj
@@ -6,7 +6,7 @@
    <RootNamespace>GZ.Projects.AuxAllWCS</RootNamespace>
    <AssemblyName>AuxAllWCS</AssemblyName>
    <TargetFrameworkVersion>4.6.1</TargetFrameworkVersion>
    <ProjectGuid>{8EC00415-F135-4F69-84FD-926694FA46F1}</ProjectGuid>
    <ProjectGuid>{82EA179A-6597-455E-9F4E-73A8481A8E3A}</ProjectGuid>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <PlatformTarget>AnyCPU</PlatformTarget>
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/VS×Ô¶¨ÒåÀà/AutoThread.cs
@@ -17,6 +17,7 @@
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox;
using System.Security.Cryptography;
using System.Windows.Markup;
using static GZ.Projects.AuxAllWCS.EasyPLC;
namespace GZ.Projects.AuxAllWCS
{
@@ -145,6 +146,7 @@
                    //tag.Js1.D1212_LAST = 0; 
                    RedisHelper.Add($"Js捷顺1.D1202_LAST", "0", out string msg);
                }
                if (tag.Js1.D1213_LAST == 0 && TcpServer.GetBitdata(tag.Js1.D1212, 3) == 1)
                {
                    var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new
@@ -511,7 +513,6 @@
            }
        }
        public void ThreadTaskRun(Tag tag, Func<TaskEntity, bool> action)
        {
            Console.WriteLine($"ThreadTaskRun ä»»åŠ¡ä¸‹å‘ =================> ");
@@ -576,8 +577,7 @@
                    System.Threading.Thread.Sleep(3000);
                    return;
                }
                LogHelper.Info("任务下发  Rgv ä»»åŠ¡ è¿›å…¥");
                LogHelper.Info($"任务下发 Rgv ä»»åŠ¡ è¿›å…¥ Rgv信息 ReadTask1No>{tag.RGV.ReadTask1No} bit1taskOver>{tag.RGV.bit1taskOver} ReadTask2No>{tag.RGV.ReadTask2No} bit2taskOver>{tag.RGV.bit2taskOver}");
                TaskEntity task1 = null;
                TaskEntity task2 = null;
                var task1Isrun = false;
@@ -613,6 +613,7 @@
                    System.Threading.Thread.Sleep(3000);
                    return;
                }
                var thisOver = 0;
                LogHelper.Info($"查看RGV 1工位任务》");
                if (tag.RGV.ReadTask1No > 0 && tag.RGV.bit1taskOver == 1)
@@ -631,7 +632,7 @@
                            if (task1.S_B_STATE == "取货完成")
                            {
                                task1.S_B_STATE = "完成";
                                //tag.RGV.ReadTask1No = 0;
                                tag.RGV.ReadTask1No = 0;
                            }
                            else
                            {
@@ -673,7 +674,7 @@
                            if (task2.S_B_STATE == "取货完成")
                            {
                                task2.S_B_STATE = "完成";
                                //tag.RGV.ReadTask2No = 0;
                                tag.RGV.ReadTask2No = 0;
                            }
                            else
                            {
@@ -718,15 +719,17 @@
                        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;
                        //Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue");
                        LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å†™ 0");
                        RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
                        if (tag.RGV.bit1taskOver == 1)
                            tag.RGV.bit1taskOver = 0;
                        LogHelper.Info($"{task1.S_TASK_NO}> end å†™ 125");
                        Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                        LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å†™ 0");
                        RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
                    }
                    else //1有任务  2 æ²¡ä»»åŠ¡ã€‚  
                    {
@@ -743,16 +746,19 @@
                        {
                            LogHelper.Info($"查看RGV1 æœ‰ä»»åŠ¡{task1.S_TASK_NO},工位2 æ²¡ä»»åŠ¡ã€‚ æ‰¾1020  1008  1016取货任务{t2.S_TASK_NO}。");
                            tag.RGV.workMod = 2;
                            LogHelper.Info($"{task1.S_TASK_NO}> workMod 2 ã€Š2工位》");
                            LogHelper.Info($"{t2.S_TASK_NO}> workMod 2 ã€Š2工位》");
                            tag.RGV.taskmod = 1;
                            LogHelper.Info($"{task1.S_TASK_NO}> taskmod 1 ã€Šå–货》");
                            LogHelper.Info($"{t2.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);
                            creT2 = true;
                            LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å†™ 0");
                            RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                            if (tag.RGV.bit2taskOver == 1)
                                tag.RGV.bit2taskOver = 0;
                            LogHelper.Info($"{t2.S_TASK_NO}> end å†™ 125");
                            Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                            LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å†™ 0");
                            RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                            t2.S_B_STATE = "已推送";
                            taskservice.Update(t2);
                        }
@@ -810,11 +816,13 @@
                            LogHelper.Info($"{task1.S_TASK_NO}> 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);
                            LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å†™ 0");
                            RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
                            if (tag.RGV.bit1taskOver == 1)
                                tag.RGV.bit1taskOver = 0;
                            LogHelper.Info($"{task1.S_TASK_NO}> taskend å†™ 0");
                            Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                            LogHelper.Info($"{task1.S_TASK_NO}> bit1taskOver_LAST å†™ 0");
                            RedisHelper.Add($"RGV.bit1taskOver_LAST", "0", out string msg);
                        }
                    }
                }
@@ -830,12 +838,14 @@
                        LogHelper.Info($"{task2.S_TASK_NO}> 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);
                        LogHelper.Info($"{task2.S_TASK_NO}> bit2taskOver_LAST å†™ 0");
                        RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                        if (tag.RGV.bit2taskOver == 1)
                            tag.RGV.bit2taskOver = 0;
                        //tag.RGV.taskend = 125;
                        LogHelper.Info($"{task2.S_TASK_NO}> taskend å†™125");
                        Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                        LogHelper.Info($"{task2.S_TASK_NO}> bit2taskOver_LAST å†™ 0");
                        RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                    }
                    else if (tklist.Any()) //1mei ä»»åŠ¡  2 æ²¡ä»»åŠ¡ã€‚
                    {
@@ -859,12 +869,14 @@
                            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}> æ›´æ–°ä»»åŠ¡ã€‚");
                            //tag.RGV.taskend=125
                            if (tag.RGV.bit1taskOver == 1)
                                tag.RGV.bit1taskOver = 0;
                            LogHelper.Info($"{e1017first.S_TASK_NO}> taskend å†™125");
                            Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                            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);
                            LogHelper.Info($"{e1017first.S_TASK_NO}> æ›´æ–°ä»»åŠ¡ã€‚");
                            e1017first.S_B_STATE = "已推送";
                            taskservice.Update(e1017first);
                        }
@@ -881,10 +893,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);
                                LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å†™ 0");
                                RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                                if (tag.RGV.bit2taskOver == 1)
                                    tag.RGV.bit2taskOver = 0;
                                LogHelper.Info($"{t2.S_TASK_NO}> end å†™ 125");
                                Conn.默认Redis.SetValue("RGV.taskend", "125", "RGVQueue", false);
                                LogHelper.Info($"{t2.S_TASK_NO}> bit2taskOver_LAST å†™ 0");
                                RedisHelper.Add($"RGV.bit2taskOver_LAST", "0", out string msg);
                                t2.S_B_STATE = "已推送";
                                taskservice.Update(t2);
                            }
@@ -1286,7 +1300,11 @@
            {
                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}");
                var wArriveOver = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"FNK1003051113.wArrive{ssx}Over"), typeof(System.UInt16));
                var rReleaseOver = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"FNK1003051113.rRelease{ssx}Over"), typeof(System.UInt16));
                var WRelease = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue($"FNK1003051113.WRelease{ssx}"), typeof(System.UInt16));
                LogHelper.Info($@" ç©ºåˆ°ä½ RArrive{ssx}>{RArrive} && ç©ºåˆ°ä½å¤„理.RArrive{ssx}_LAST >{RArriveLast} æœºæ¢°æ‰‹æ”¶åˆ°æŽ§åˆ°ä½.wArrive{ssx}Over>{wArriveOver}
                                 é€å‡ºå®Œæˆ.rRelease{ssx}Over>{rReleaseOver}  æ”¾è´§å®Œæˆ.WRelease{ssx}>{WRelease}");
                if (RArrive == 1 && RArriveLast == 0)
                {
                    if (ssx == "1005" && tag.SF下料位.WRelease1005 == 0)
@@ -1331,23 +1349,66 @@
                        //tag.SF下料位.WSafe1113 = 0;
                    }
                }
                else if (RArrive == 0 && RArriveLast == 1)
                else if (RArrive == 0)
                {
                    LogHelper.Info($"重置 FNK1003051113.RArrive{ssx}_LAST=0");
                    RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg);
                    if (RArriveLast == 1)
                    {
                        LogHelper.Info($"重置 FNK1003051113.RArrive{ssx}_LAST=0");
                        RedisHelper.Add($"FNK1003051113.RArrive{ssx}_LAST", "0", out string msg);
                    }
                    if (wArriveOver == 1)
                    {
                        LogHelper.Info($"重置 FNK1003051113.wArrive{ssx}Over=0");
                        Conn.默认Redis.SetValue($"FNK1003051113.wArrive{ssx}Over", "0", $"FNK1003051113Queue");
                    }
                    //Conn.默认Redis.SetValue($"FNK1003051113.RArrive{ssx}_LAST", "0", $"FNK1003051113Queue");
                }
                if (WRelease == 1 && rReleaseOver == 1)
                {
                    switch (ssx)
                    {
                        case "1003":
                            {
                                LogHelper.Info($"读{ssx} WRelease=1&& rReleaseOver=1  è¯»FNK1.D2213{tag.FNK1.D2213}=1? å¹¶å†™0");
                                tag.FNK1.D2213 = 0;
                            }
                            break;
                        case "1005":
                            {
                                LogHelper.Info($"读{ssx} WRelease=1&& rReleaseOver=1  è¯»FNK1.D2218{tag.FNK1.D2218}=1? å¹¶å†™0");
                                tag.FNK1.D2218 = 0;
                            }
                            break;
                        case "1011":
                            {
                                LogHelper.Info($"读{ssx} WRelease=1&& rReleaseOver=1  è¯»FNK2.D2213{tag.FNK1.D2213}=1? å¹¶å†™0");
                                tag.FNK2.D2213 = 0;
                            }
                            break;
                        case "1013":
                            {
                                LogHelper.Info($"读{ssx} WRelease=1&& rReleaseOver=1  è¯»FNK2.D2218{tag.FNK2.D2218}=1?  å¹¶å†™0");
                                tag.FNK2.D2218 = 0;
                            }
                            break;
                    }
                    LogHelper.Info($"读{ssx} WRelease=1&& rReleaseOver=1  WRelease å†™0");
                    Conn.默认Redis.SetValue($"FNK1003051113.WRelease{ssx}", "0", $"FNK1003051113Queue");
                }
            }
        }
        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>{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,D2217_LAST=1,WRelease1005=1 RArrive1005_LAST=0");
            if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)
            {
                tag.FNK1.D2215 = 0;
                //tag.FNK1.D2215 = 0;
                tag.FNK1.D2218 = 1;
                //tag.FNK1.D2212_LAST = 1;
                RedisHelper.Add($"p发那科1下线.D2217_LAST", "1", out string msg);
@@ -1355,7 +1416,7 @@
                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");
                LogHelper.Info($" FN1 .D2217=1,2217_LAST=0 å†™ 2218=1,D2217_LAST=1,WRelease1005=1 RArrive1005_LAST=0");
            }
            else if (tag.FNK1.D2217 == 0 && tag.FNK1.D2217_LAST == 1)
            {
@@ -1366,21 +1427,22 @@
            if (tag.FNK1.D2216 == 1)
            {
                tag.FNK1.D2215 = 0;
                LogHelper.Info($" p发那科1下线 è¯»D2216=1  å†™D2215 =0");
                tag.SF下料位.wArrive1005Over = 1;
                LogHelper.Info($" p发那科1下线 è¯»D2216=1  å†™D2215 =0, å†™æœºæ¢°æ‰‹æ”¶åˆ°1005 =1");
            }
            LogHelper.Info($" FN1 D2212>{tag.FNK1.D2212} D2212LAST>{tag.FNK1.D2212_LAST} D2210>{tag.FNK1.D2210} D2211>{tag.FNK1.D2211} D2210>{tag.FNK1.D2210}");
            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.D2210 = 0;
                tag.FNK1.D2213 = 1;
                //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;
                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");
                LogHelper.Info($" FN1 .D2212=1,2212_LAST=0 å†™ D2213=1,D2212_LAST=1,WRelease1003=1 RArrive1003_LAST=0");
            }
            //else if (tag.FNK1.D2211 == 1)
            //    tag.FNK1.D2210 = 0;
@@ -1394,18 +1456,19 @@
            if (tag.FNK1.D2211 == 1)
            {
                tag.FNK1.D2210 = 0;
                LogHelper.Info($" p发那科1下线 è¯»D2211=1  å†™D2210 =0");
                tag.SF下料位.wArrive1003Over = 1;
                LogHelper.Info($" p发那科1下线 è¯»D2211=1  å†™D2210 =0 å†™æœºæ¢°æ‰‹æ”¶åˆ°ç©ºåˆ°1003=1");
            }
        }
        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}");
            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)
            {
                tag.FNK2.D2215 = 0;
                //tag.FNK2.D2215 = 0;
                tag.FNK2.D2218 = 1;
                //tag.FNK2.D2212_LAST = 1;
                RedisHelper.Add($"p发那科2下线.D2217_LAST", "1", out string msg);
@@ -1413,7 +1476,7 @@
                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");
                LogHelper.Info($" FN2 .D2217=1,2217_LAST=0 å†™ 2218=1,D2217_LAST=1,WRelease1013=1 RArrive1013_LAST=0");
            }
            else if (tag.FNK2.D2217 == 0 && tag.FNK2.D2217_LAST == 1)
            {
@@ -1425,14 +1488,15 @@
            if (tag.FNK2.D2216 == 1)
            {
                tag.FNK2.D2215 = 0;
                LogHelper.Info($" p发那科2下线 è¯»D2216=1  å†™D2215 =0");
                tag.SF下料位.wArrive1013Over = 1;
                LogHelper.Info($" p发那科2下线 è¯»D2216=1  å†™D2215 =0 å†™æœºæ¢°æ‰‹æ”¶åˆ°ç©ºåˆ°1013=1");
            }
            LogHelper.Info($" FN2 D2212>{tag.FNK2.D2212} D2212LAST>{tag.FNK2.D2212_LAST} D2210>{tag.FNK2.D2210} D2211>{tag.FNK2.D2211} D2210>{tag.FNK2.D2210}");
            LogHelper.Info($" FN2 D2212>{tag.FNK2.D2212} D2212LAST>{tag.FNK2.D2212_LAST} D2210>{tag.FNK2.D2210} D2211>{tag.FNK2.D2211} D2213>{tag.FNK2.D2213}");
            if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)
            {
                tag.FNK2.D2210 = 0;
                //tag.FNK2.D2210 = 0;
                tag.FNK2.D2213 = 1;
                //tag.FNK2.D2217_LAST = 1;
                RedisHelper.Add($"p发那科2下线.D2212_LAST", "1", out string msg);
@@ -1440,7 +1504,7 @@
                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");
                LogHelper.Info($" FN2 .D2212=1,2212_LAST=0 å†™ 2213=1,D2212_LAST=1,WRelease1011=1 RArrive1011_LAST=0");
            }
            else if (tag.FNK2.D2212 == 0 && tag.FNK2.D2212_LAST == 1)
            {
@@ -1451,7 +1515,8 @@
            if (tag.FNK2.D2211 == 1)
            {
                tag.FNK2.D2210 = 0;
                LogHelper.Info($" p发那科2下线 è¯»D2211=1  å†™D2210 =0");
                tag.SF下料位.wArrive1011Over = 1;
                LogHelper.Info($" p发那科2下线 è¯»D2211=1  å†™D2210 =0 å†™æœºæ¢°æ‰‹æ”¶åˆ°ç©ºåˆ°1011 wArrive1011Over=1");
            }
        }
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Devices/PlcConfig
@@ -5786,8 +5786,8 @@
        {
          "Id": "20250605125511281",
          "Order": 10,
          "Name": "p1",
          "FullName": "RGV.p1",
          "Name": "w1status",
          "FullName": "RGV.w1status",
          "DataType": "System.UInt16",
          "DataValue": "",
          "SetValue": "",
@@ -5888,8 +5888,8 @@
        {
          "Id": "20250605125513530",
          "Order": 16,
          "Name": "Param7",
          "FullName": "RGV.Param7",
          "Name": "w2status",
          "FullName": "RGV.w2status",
          "DataType": "System.UInt16",
          "DataValue": "",
          "SetValue": "",
@@ -6922,5 +6922,5 @@
    }
  ],
  "CreationTime": "2025-02-26 15:31:23",
  "LastWriteTime": "2025-06-28 14:18:54"
  "LastWriteTime": "2025-06-28 14:27:11"
}
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Devices/É豸ͨÐÅ.json
@@ -2,5 +2,5 @@
  "ProjectSn": "1",
  "DeviceList": [],
  "CreationTime": "2025-02-26 15:31:23",
  "LastWriteTime": "2025-06-28 14:18:54"
  "LastWriteTime": "2025-06-28 14:27:11"
}
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Net/Conn.json
@@ -340,5 +340,5 @@
    }
  ],
  "CreationTime": "2025-02-26 15:31:23",
  "LastWriteTime": "2025-06-28 14:19:28"
  "LastWriteTime": "2025-06-28 14:27:30"
}
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Variable/±äÁ¿Êý¾Ý¿â.json
@@ -5228,6 +5228,150 @@
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.WSafe1113"
          },
          {
            "ID": "20250628142656320",
            "Name": "rRelease1013Over",
            "Desc": "",
            "Type": "System.UInt16",
            "ShortType": "",
            "MinVal": "",
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "FNK1003051113",
            "MapParam": "rRelease1013Over",
            "Map": "FNK1003051113.rRelease1013Over",
            "Queue": "FNK1003051113Queue",
            "Converter": "",
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.rRelease1013Over"
          },
          {
            "ID": "20250628142656089",
            "Name": "rRelease1003Over",
            "Desc": "",
            "Type": "System.UInt16",
            "ShortType": "",
            "MinVal": "",
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "FNK1003051113",
            "MapParam": "rRelease1003Over",
            "Map": "FNK1003051113.rRelease1003Over",
            "Queue": "FNK1003051113Queue",
            "Converter": "",
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.rRelease1003Over"
          },
          {
            "ID": "20250628142656073",
            "Name": "rRelease1005Over",
            "Desc": "",
            "Type": "System.UInt16",
            "ShortType": "",
            "MinVal": "",
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "FNK1003051113",
            "MapParam": "rRelease1005Over",
            "Map": "FNK1003051113.rRelease1005Over",
            "Queue": "FNK1003051113Queue",
            "Converter": "",
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.rRelease1005Over"
          },
          {
            "ID": "20250628142656058",
            "Name": "rRelease1011Over",
            "Desc": "",
            "Type": "System.UInt16",
            "ShortType": "",
            "MinVal": "",
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "FNK1003051113",
            "MapParam": "rRelease1011Over",
            "Map": "FNK1003051113.rRelease1011Over",
            "Queue": "FNK1003051113Queue",
            "Converter": "",
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.rRelease1011Over"
          },
          {
            "ID": "20250628142656043",
            "Name": "wArrive1003Over",
            "Desc": "",
            "Type": "System.UInt16",
            "ShortType": "",
            "MinVal": "",
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "FNK1003051113",
            "MapParam": "wArrive1003Over",
            "Map": "FNK1003051113.wArrive1003Over",
            "Queue": "FNK1003051113Queue",
            "Converter": "",
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.wArrive1003Over"
          },
          {
            "ID": "20250628142656027",
            "Name": "wArrive1005Over",
            "Desc": "",
            "Type": "System.UInt16",
            "ShortType": "",
            "MinVal": "",
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "FNK1003051113",
            "MapParam": "wArrive1005Over",
            "Map": "FNK1003051113.wArrive1005Over",
            "Queue": "FNK1003051113Queue",
            "Converter": "",
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.wArrive1005Over"
          },
          {
            "ID": "20250628142656011",
            "Name": "wArrive1011Over",
            "Desc": "",
            "Type": "System.UInt16",
            "ShortType": "",
            "MinVal": "",
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "FNK1003051113",
            "MapParam": "wArrive1011Over",
            "Map": "FNK1003051113.wArrive1011Over",
            "Queue": "FNK1003051113Queue",
            "Converter": "",
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.wArrive1011Over"
          },
          {
            "ID": "20250628142655996",
            "Name": "wArrive1013Over",
            "Desc": "",
            "Type": "System.UInt16",
            "ShortType": "",
            "MinVal": "",
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "FNK1003051113",
            "MapParam": "wArrive1013Over",
            "Map": "FNK1003051113.wArrive1013Over",
            "Queue": "FNK1003051113Queue",
            "Converter": "",
            "GroupID": "20250615173713029",
            "GroupFullName": "Tag.SF下料位",
            "FullName": "Tag.SF下料位.wArrive1013Over"
          }
        ],
        "Children": []
@@ -6894,8 +7038,8 @@
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "RGV",
            "MapParam": "p1",
            "Map": "RGV.p1",
            "MapParam": "w1status",
            "Map": "RGV.w1status",
            "Queue": "RGVQueue",
            "Converter": "",
            "GroupID": "20250615174530321",
@@ -7182,8 +7326,8 @@
            "MaxVal": "",
            "DefaultVal": "",
            "MapDevice": "RGV",
            "MapParam": "Param7",
            "Map": "RGV.Param7",
            "MapParam": "w2status",
            "Map": "RGV.w2status",
            "Queue": "RGVQueue",
            "Converter": "",
            "GroupID": "20250615174530321",
@@ -7376,7 +7520,7 @@
    ]
  },
  "CreationTime": "2025-02-26 15:31:23",
  "LastWriteTime": "2025-06-23 09:13:16",
  "LastWriteTime": "2025-06-28 14:27:08",
  "Sample": {
    "ID": "",
    "Name": "Tag",