8ec12ff97617d248c942b60b28b1eef662d2e88a..43c6d046302ca075c1f42b0105a5fbad0d889fc5
8 天以前 czw
1
43c6d0 对比 | 目录
8 天以前 czw
1
a36434 对比 | 目录
8 天以前 czw
1
495ddf 对比 | 目录
8 天以前 czw
1
60dc45 对比 | 目录
8 天以前 czw
1
eb66e5 对比 | 目录
8 天以前 czw
1
89eb56 对比 | 目录
5个文件已修改
256 ■■■■■ 已修改文件
2025年6月12日/AuxAllWCS/Build/Project/代码/VS自定义类/AutoThread.cs 215 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
2025年6月12日/AuxAllWCS/Build/Project/代码/自定义类.cs 27 ●●●● 补丁 | 查看 | 原始文档 | 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/Build/Project/´úÂë/VS×Ô¶¨ÒåÀà/AutoThread.cs
@@ -146,14 +146,25 @@
                    device1.Js捷顺2.Config.IP,
                    device1.维希尔抓臂1.Config.IP,
                    device1.维希尔抓臂2.Config.IP,
                    device1.RGV.Config.IP
                    device1.RGV.Config.IP,
                    device1.S1002Read.Config.IP,
                    device1.S2001Read.Config.IP,
                    device1.S3001Read.Config.IP
                })
                    {
                        string pattern = @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b";
                        var matches = Regex.Match(ip, pattern);
                        if (matches.Success)
                            IsMachineOnline(matches.Value);
                        {
                            var b = IsMachineOnline(matches.Value);
                            if (!Iponlines.ContainsKey(ip))
                            {
                                Iponlines.TryAdd(ip, b);
                            }
                            else
                                Iponlines[ip] = b;
                        }
                    }
                }
                catch (Exception ex)
@@ -177,12 +188,10 @@
            tasks.Add(GetTask(sa3006, tag, 3000));
            tasks.Add(GetTask(sa3010, tag, 3000));
            Task.WaitAll(tasks.ToArray());
        }
        public static ConcurrentDictionary<string, bool> Iponlines = new ConcurrentDictionary<string, bool>();
        public bool IsMachineOnline(string hostNameOrIp, int timeout = 1000)
        {
            //device.p发那科1下线.Config.IP
@@ -468,7 +477,7 @@
            if (VERX != null)
            {
                if (tag.wxr1.R46)
                    LogHelper.Info($"{VERX.deviceName} R44>{tag.wxr1.R46} R44LAST>{tag.wxr1.R46_LAST} R10>{tag.wxr1.R11}");
                    LogHelper.Info($"{VERX.deviceName} R46>{tag.wxr1.R46} R46LAST>{tag.wxr1.R46_LAST} R11>{tag.wxr1.R11}");
                if (tag.wxr1.R46 && !tag.wxr1.R46_LAST && tag.wxr1.R11)
                {
                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode) && !string.IsNullOrEmpty(traycode.Trim()))
@@ -633,7 +642,7 @@
            if (VERX != null)
            {
                if (tag.wxr2.R46)
                    LogHelper.Info($"{VERX.deviceName} R44>{tag.wxr2.R46} R44LAST>{tag.wxr2.R46_LAST} R10>{tag.wxr2.R11}");
                    LogHelper.Info($"{VERX.deviceName} R46>{tag.wxr2.R46} R46LAST>{tag.wxr2.R46_LAST} R11>{tag.wxr2.R11}");
                if (tag.wxr2.R46 && !tag.wxr2.R46_LAST && tag.wxr2.R11)
                {
                    if (TcpServer.TrayIps.TryGetValue(VERX.deviceNo[1], out string traycode) && !string.IsNullOrEmpty(traycode.Trim()))
@@ -655,7 +664,7 @@
                    }
                    else
                    {
                        TcpServer.TcpServerSend(VERX.deviceNo[2], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E"));
                        TcpServer.TcpServerSend(VERX.deviceNo[1], GZ.Device.PLC.PlcHelper.Hex2Bin("544F4E"));
                    }
                }
                else
@@ -916,9 +925,22 @@
                //        var b = RedisHelper.Remove("RGVQueue", out rev);
                //    }
                //}
                var tklistall = taskservice.FindList(x => x.S_B_STATE != "完成" && x.S_B_STATE != "取消" && x.S_WORK_MODE == "RGV").OrderBy(x => x.T_CREATE).ToList();
                var tklist = tklistall.FindAll(x => x.S_B_STATE == "未执行");
                var tkunNormal = tklistall.Except(tklist);
                if (tkunNormal.Any())
                    foreach (var tk in tkunNormal)
                    {
                        if (tk.S_TASK_NO != task1?.S_TASK_NO && tk.S_TASK_NO != task2?.S_TASK_NO)
                        {
                            tk.S_B_STATE = "取消";
                            tk.S_NOTE = "不在执行队列中,取消";
                            taskservice.Update(tk);
                        }
                    }
                ///1 æœ‰è´§  å°±2 å–。  1 æ²¡è´§ å°±2 å¸è´§ï¼Œ éƒ½æœ‰è´§  å°±1卸货。 éƒ½æ²¡è´§ å°±1卸
                var tklist = taskservice.FindList(x => x.S_B_STATE == "未执行" && x.S_WORK_MODE == "RGV").OrderBy(x => x.T_CREATE).ToList();
                // 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 æœ‰ä»»åŠ¡ã€‚ 
@@ -1290,7 +1312,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A1019取货交互.Ssetreq", "true", "A1019取货交互Queue", "写AGV申请");
                                            tag.SA1019.StaskMode = 1;
                                        }
                                    }
                                    break;
                                case "1030":
@@ -1301,7 +1326,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A1030取货交互.Ssetreq", "true", "A1030取货交互Queue", "写AGV申请");
                                            tag.SA1030.StaskMode = 1;
                                        }
                                    }
                                    break;
                                case "2030":
@@ -1312,7 +1340,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A2030取货交互.Ssetreq", "true", "A2030取货交互Queue", "写AGV申请");
                                            tag.SA2030.StaskMode = 1;
                                        }
                                    }
                                    break;
                                case "3005":
@@ -1323,7 +1354,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A3005取货交互.Ssetreq", "true", "A3005取货交互Queue", "写AGV申请");
                                            tag.ssx输送线.s3005.StaskMode = 1;
                                        }
                                    }
                                    break;
                                case "3010":
@@ -1334,7 +1368,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A3010取货交互.Ssetreq", "true", "A3010取货交互Queue", "写AGV申请");
                                            tag.ssx输送线.s3010.StaskMode = 1;
                                        }
                                    }
                                    break;
                                //}
@@ -1348,7 +1385,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A1022放货交互.Ssetreq", "true", "A1022放货交互Queue", "写AGV申请");
                                            tag.SA1022.StaskMode = 2;
                                        }
                                    }
                                    break;
                                case "1025":
@@ -1359,7 +1399,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A1025放货交互.Ssetreq", "true", "A1025放货交互Queue", "写AGV申请");
                                            tag.SA1025.StaskMode = 2;
                                        }
                                    }
                                    break;
                                case "2001":
@@ -1370,7 +1413,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A2001放货交互.Ssetreq", "true", "A2001放货交互Queue", "写AGV申请");
                                            tag.SA2001.StaskMode = 2;
                                        }
                                    }
                                    break;
                                case "3001":
@@ -1381,7 +1427,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A3001放货交互.Ssetreq", "true", "A3001放货交互Queue", "写AGV申请");
                                            tag.ssx输送线.s3001.StaskMode = 2;
                                        }
                                    }
                                    break;
                                case "3006":
@@ -1392,7 +1441,10 @@
                                            continuuuuu = true;
                                        }
                                        else
                                        {
                                            SetRedistoPlc("A3006放货交互.Ssetreq", "true", "A3006放货交互Queue", "写AGV申请");
                                            tag.ssx输送线.s3006.StaskMode = 2;
                                        }
                                    }
                                    break;
                            }
@@ -1440,7 +1492,7 @@
                            {
                                var close = (System.UInt16)System.Convert.ChangeType(Conn.默认Redis.GetValue(dev.deviceName + "." + (V ? "D2220" : "D2225")), typeof(System.UInt16));
                                if (close == 1)
                                if (close == 0)
                                {
                                    LogHelper.Info($"{dev.deviceName}{(V ? "å·¦" : "右")} å…‰æ …{(goin ? "关闭" : "开启")} ç”³è¯·ã€‚ å·²ç»å…³é—­ï¼");
                                    continuuuuu = true;
@@ -1510,18 +1562,22 @@
                //一线地址:10.221.55.181     ç«¯å£ï¼š6000
                //if (IsMachineOnline("10.221.55.181"))
                {
                    //if (tag.DZ1.D2211 == 1 && tag.DZ1.D2220 == 1)
                    //    tag.DZ1.D2211 = 0;
                    //if (tag.DZ1.D2216 == 1 && tag.DZ1.D2225 == 1)
                    //    tag.DZ1.D2216 = 0;
                    if (tag.DZ1.D2211 == 1 && tag.DZ1.D2220 == 1)
                        //tag.DZ1.D2211 = 0;
                        Conn.默认Redis.SetValue("D定子1号机械手.D2211", "0", "D定子1号机械手Queue", false);
                    if (tag.DZ1.D2216 == 1 && tag.DZ1.D2225 == 1)
                        //tag.DZ1.D2216 = 0;
                        Conn.默认Redis.SetValue("D定子1号机械手.D2216", "0", "D定子1号机械手Queue", false);
                }
                //二线地址:10.221.55.179     ç«¯å£ï¼š6000
                //if (IsMachineOnline("10.221.55.179"))
                {
                    //if (tag.DZ2.D2211 == 1 && tag.DZ2.D2220 == 1)
                    //    tag.DZ2.D2211 = 0;
                    //if (tag.DZ2.D2216 == 1 && tag.DZ2.D2225 == 1)
                    //    tag.DZ2.D2216 = 0;
                    if (tag.DZ2.D2211 == 1 && tag.DZ2.D2220 == 1)
                        //tag.DZ2.D2211 = 0;
                        Conn.默认Redis.SetValue("D定子2号机械手.D2211", "0", "D定子2号机械手Queue", false);
                    if (tag.DZ2.D2216 == 1 && tag.DZ2.D2225 == 1)
                        //tag.DZ2.D2216 = 0;
                        Conn.默认Redis.SetValue("D定子2号机械手.D2216", "0", "D定子2号机械手Queue", false);
                }
            }
            LogHelper.Info($"ThreadGrats deviceType5光栅写入位重置完成。 =================> ");
@@ -1676,6 +1732,19 @@
                        {
                            RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg);
                            RedisHelper.Add($"S{item}Read.R5空闲_LAST", "1", out string msg2);
                            LogHelper.Info($"{R托盘码} å®šå­ç”Ÿäº§å®Œæˆè¿›è¡Œé²å·¥ï¼ï¼");
                            var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/223", JsonConvert.SerializeObject(new
                            {
                                cntrCode = R托盘码,
                                type = 1,
                                lineCode = "1002,1008".Contains(Bssx) ? "T01" : "T02"
                            }));
                            //var strr = JsonConvert.DeserializeObject<MES2234>(str);
                            //if (strr.success && strr.data != null)
                            //{
                            //}
                            //Conn.默认Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue");
                            //Conn.默认Redis.SetValue($"S{item}Read.R5空闲_LAST", "1", $"S{item}ReadQueue");
                            break;
@@ -1733,6 +1802,13 @@
                        {
                            RedisHelper.Add($"S{Bssx}Read.RtaskState_LAST", "1", out msg);
                            RedisHelper.Add($"S{item}Read.R5空闲_LAST", "1", out string msg1);
                            LogHelper.Info($"{R托盘码} è½¬å­ç”Ÿäº§å®Œæˆè¿›è¡Œé²å·¥ï¼ï¼");
                            var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/223", JsonConvert.SerializeObject(new
                            {
                                cntrCode = R托盘码,
                                type = 2,
                                lineCode = "1002,1008".Contains(Bssx) ? "T01" : "T02"
                            }));
                            //Conn.默认Redis.SetValue($"S{Bssx}Read.RtaskState_LAST", "1", $"S{Bssx}ReadQueue");
                            //Conn.默认Redis.SetValue($"S{item}Read.R5空闲_LAST", "1", $"S{item}ReadQueue");
                            break;
@@ -1857,7 +1933,7 @@
            if (tag.FNK1.D2217 == 1 && tag.FNK1.D2217_LAST == 0)
            {
                //tag.FNK1.D2215 = 0;
                tag.FNK1.D2218 = 1;
                //tag.FNK1.D2218 = 1;
                //tag.FNK1.D2212_LAST = 1;
                RedisHelper.Add($"p发那科1下线.D2217_LAST", "1", out string msg);
@@ -1884,7 +1960,7 @@
            LogHelper.Info($" FN1 D2212>{tag.FNK1.D2212} D2212LAST>{tag.FNK1.D2212_LAST} D2210>{tag.FNK1.D2210} D2211>{tag.FNK1.D2211} D2213>{tag.FNK1.D2213}");
            if (tag.FNK1.D2212 == 1 && tag.FNK1.D2212_LAST == 0)
            {
                tag.FNK1.D2213 = 1;
                //tag.FNK1.D2213 = 1;
                //tag.FNK1.D2210 = 0;
                //tag.FNK1.D2217_LAST = 1;
                RedisHelper.Add($"p发那科1下线.D2212_LAST", "1", out string msg);
@@ -1919,7 +1995,7 @@
            if (tag.FNK2.D2217 == 1 && tag.FNK2.D2217_LAST == 0)
            {
                //tag.FNK2.D2215 = 0;
                tag.FNK2.D2218 = 1;
                //tag.FNK2.D2218 = 1;
                //tag.FNK2.D2212_LAST = 1;
                RedisHelper.Add($"p发那科2下线.D2217_LAST", "1", out string msg);
@@ -1948,7 +2024,7 @@
            if (tag.FNK2.D2212 == 1 && tag.FNK2.D2212_LAST == 0)
            {
                //tag.FNK2.D2210 = 0;
                tag.FNK2.D2213 = 1;
                //tag.FNK2.D2213 = 1;
                //tag.FNK2.D2217_LAST = 1;
                RedisHelper.Add($"p发那科2下线.D2212_LAST", "1", out string msg);
@@ -1979,7 +2055,7 @@
            var taggg = tag.SA1019;
            string vqu = "A1019取货交互";
            Console.WriteLine($"1019任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadSsxOver)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
@@ -2018,10 +2094,11 @@
            var taggg = tag.SA2030;
            string vqu = "A2030取货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadSsxOver)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "清AGV申请");
            }
        }
@@ -2030,10 +2107,11 @@
            var taggg = tag.SA2001;
            string vqu = "A2001放货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadSsxOver)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "清AGV申请");
            }
        }
@@ -2042,10 +2120,11 @@
            var taggg = tag.SA1030;
            string vqu = "A1030取货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadAgvover)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "写AGV申请");
            }
        }
@@ -2054,10 +2133,11 @@
            var taggg = tag.SA1025;
            string vqu = "A1025放货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadAgvover)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "清AGV申请");
            }
        }
@@ -2066,10 +2146,11 @@
            var taggg = tag.SA1022;
            string vqu = "A1022放货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadAgvover)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "清AGV申请");
            }
        }
@@ -2078,10 +2159,11 @@
            var taggg = tag.ssx输送线.s3010;
            string vqu = "A3010取货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadAgvover)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "清AGV申请");
            }
        }
@@ -2090,10 +2172,11 @@
            var taggg = tag.ssx输送线.s3006;
            string vqu = "A3006放货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadAgvover)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "清AGV申请");
            }
        }
@@ -2102,10 +2185,11 @@
            var taggg = tag.ssx输送线.s3005;
            string vqu = "A3005取货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadAgvover)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "清AGV申请");
            }
        }
@@ -2114,10 +2198,11 @@
            var taggg = tag.ssx输送线.s3010;
            string vqu = "A3001放货交互";
            Console.WriteLine($"{vqu}任务状态:   =====>任务申请:{taggg.Ssetreq},输送线允许:{taggg.SreadCan} ä»»åŠ¡å®Œæˆï¼š{taggg.SOver} è¾“送线收到完成:{taggg.SreadAgvover}");
            if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            if (taggg.SOver && taggg.SreadAgvover)
            {
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "写AGV申请");
                SetRedistoPlc(vqu + ".Ssetreq", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".SOver", "false", vqu + "Queue", "清AGV申请");
                SetRedistoPlc(vqu + ".StaskMode", "0", vqu + "Queue", "清AGV申请");
            }
        }
@@ -2143,7 +2228,19 @@
        }
        public void Thread1030Down(Tag tag)
        {
            //Console.WriteLine($"SA1030 ä»»åŠ¡çŠ¶æ€ï¼š   =====>agv完成SOver{tag.SA1030.SOver}");
            Console.WriteLine($"SA1030 ä»»åŠ¡çŠ¶æ€ï¼š   =====>");
            if (tag.SA1030.RtaskState == 4 && tag.SA1030.RtaskState_LAST == 0 && tag.SA2001.R5空闲 == 5)
            {
                var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new
                {
                    requestType = 10,
                    startBit = "1030",
                    endBit = "2001",
                }));
                RedisHelper.Add($"S1030Read.RtaskState_LAST", "1", out string msg);
            }
            else if (tag.SA1030.RtaskState != 4 && tag.SA1030.RtaskState_LAST == 1)
                RedisHelper.Add($"S1030Read.RtaskState_LAST", "0", out string msg);
            //if (tag.SA1019.SOver && tag.SA1019.SreadSsxOver)
            //{
            //    SetRedistoPlc("A1022放货交互.Ssetreq", "false", "A1022放货交互Queue", "清理");
@@ -2478,7 +2575,7 @@
                                case "1022":
                                    {
                                        type = "A008";
                                        if (tag.SA1022.R5空闲 != 1)
                                        if (tag.SA1022.R5空闲 != 5)
                                        {
                                            LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç»ˆç‚¹1022 éžç©ºé—²ï¼Œä¸æŽ¨é€");
                                            continue;
@@ -2488,7 +2585,7 @@
                                case "1025":
                                    {
                                        type = "A007";
                                        if (tag.SA1025.R5空闲 != 1)
                                        if (tag.SA1025.R5空闲 != 5)
                                        {
                                            LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç»ˆç‚¹ 1025 éžç©ºé—²ï¼Œä¸æŽ¨é€");
                                            continue;
@@ -2498,7 +2595,7 @@
                                case "2001":
                                    {
                                        type = "A007";
                                        if (tag.SA2001.R5空闲 != 1)
                                        if (tag.SA2001.R5空闲 != 5)
                                        {
                                            LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç»ˆç‚¹ 2001 éžç©ºé—²ï¼Œä¸æŽ¨é€");
                                            continue;
@@ -2508,7 +2605,7 @@
                                case "3001":
                                    {
                                        type = "A010";
                                        if (tag.ssx输送线.s3001.R5空闲 != 1)
                                        if (tag.ssx输送线.s3001.R5空闲 != 5)
                                        {
                                            LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç»ˆç‚¹ 3001 éžç©ºé—²ï¼Œä¸æŽ¨é€");
                                            continue;
@@ -2518,7 +2615,7 @@
                                case "3006":
                                    {
                                        type = "A010";
                                        if (tag.ssx输送线.s3006.R5空闲 != 1)
                                        if (tag.ssx输送线.s3006.R5空闲 != 5)
                                        {
                                            LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç»ˆç‚¹ 3006 éžç©ºé—²ï¼Œä¸æŽ¨é€");
                                            continue;
@@ -2529,7 +2626,7 @@
                        LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç›´æŽ¥ç”Ÿæˆå¯¹åº”任务");
                        //直接生成对应任务。
                        var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS?.Split(',').ToList() ?? new List<string>(), type);
                        var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS?.Split(',').ToList() ?? new List<string>(), "AGV", type);
                        LogHelper.Info($"解释MES任务 ->{task.S_TASK_NO} ç›´æŽ¥ç”Ÿæˆå¯¹åº”任务 ç»“果:{res}");
                        if (res)
@@ -2674,7 +2771,7 @@
        public string procNo()
        {
            return TaskProcess.GenerateTaskNo("日志流水号");
            return TaskProcess.GenerateTaskNo("日志流水号", "LOG");
        }
        public bool SetRedistoPlc(string key, string value, string queue, string desc)
        {
@@ -3021,6 +3118,7 @@
                {
                    requestType = 7,
                    startBit = VERX.location[0],
                    endBit = "1025",
                    unLockStartBitOutbin = true
                }));
                LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
@@ -3044,6 +3142,7 @@
                {
                    requestType = 7,
                    startBit = VERX.location[1],
                    endBit = "1025",
                    unLockStartBitOutbin = true
                }));
                LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
@@ -3073,13 +3172,14 @@
                LogHelper.Info("定子2号线 deviceType 5 æ²¡æœ‰é…ç½®ã€‚");
                return;
            }
            LogHelper.Info($" {VERX.deviceName} D2221>{tag.DZ1.D2221} D2221_LAST>{tag.DZ1.D2221_LAST}  D2226>{tag.DZ1.D2226}  D2226_LAST>{tag.DZ1.D2226_LAST}");
            LogHelper.Info($" {VERX.deviceName} D2221>{tag.DZ2.D2221} D2221_LAST>{tag.DZ2.D2221_LAST}  D2226>{tag.DZ2.D2226}  D2226_LAST>{tag.DZ2.D2226_LAST}");
            if (tag.DZ2.D2221 == 1 && tag.DZ2.D2221_LAST == 0)
            {
                var str = Settings.apiHelper.Post(Settings.WMSbaseUrl + "mom-basic/dataTransmission/json/service/200", JsonConvert.SerializeObject(new
                {
                    requestType = 7,
                    startBit = VERX.location[0],
                    endBit = "1025",
                    unLockStartBitOutbin = true
                }));
                LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
@@ -3102,6 +3202,7 @@
                {
                    requestType = 7,
                    startBit = VERX.location[1],
                    endBit = "1025",
                    unLockStartBitOutbin = true
                }));
                LogHelper.Info($"{VERX.location[0]}申请mes任务结果{str}");
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/×Ô¶¨ÒåÀà.cs
@@ -143,7 +143,7 @@
        /// </summary>
        static LogFactory()
        {
            var loggerNames = new List<string>() { "HosttoagvTask", "HosttoagvCar", "NDC", "杭奥","IP在线检测" };
            var loggerNames = new List<string>() { "HosttoagvTask", "HosttoagvCar", "NDC", "杭奥", "IP在线检测" };
            LogManager.Configuration = DefaultConfig(loggerNames);
        }
        public static ILogger CreateLogger(string name)
@@ -449,7 +449,8 @@
        #region    [自定义类][20250325095622918][HttpHelper]
        public string Post(string url, string postData, string contentType = "application/json", string sessionId = "")
        {
            LogHelper.Info(url + "+" + postData);
            var SendPRO = TaskProcess.GenerateTaskNo("日志流水号", "LOG");
            LogHelper.Info($"流水号【{SendPRO}】" + url + "+" + postData);
            WebRequest request = WebRequest.Create(url);
            request.Method = "POST";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
@@ -475,12 +476,12 @@
                stream = rsp.GetResponseStream();
                reader = new StreamReader(stream);
                string rrend = reader.ReadToEnd();
                LogHelper.Info($"{url} response={rrend}");
                LogHelper.Info($"流水号【{SendPRO}】 response={rrend}");
                return rrend;
            }
            catch (Exception ex)
            {
                LogHelper.Info($"{url} err={ex.Message}");
                LogHelper.Info($"流水号【{SendPRO}】 err={ex.Message}");
                return "";
            }
            finally
@@ -550,7 +551,7 @@
                }
                else
                {
                    sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix , CN_N_MAX = 0, CN_S_APP_TYPE = "WCS" };
                    sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix, CN_N_MAX = 0, CN_S_APP_TYPE = "WCS" };
                    sysservice.Insert(sId);
                }
            }
@@ -570,16 +571,16 @@
            var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from);
            var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to);
            string t = "";
            //string t = "";
            if (workMode == "AGV" && string.IsNullOrEmpty(S_INDEX))
            {
                var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;
                var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;
                t = "F01";
                if (s && !e) t = "A002";
                if (!s && e) t = "A003";
                if (s && e) t = "A004";
                S_INDEX = "F01";
                if (s && !e) S_INDEX = "A002";
                if (!s && e) S_INDEX = "A003";
                if (s && e) S_INDEX = "A004";
            }
            try
            {
@@ -606,7 +607,7 @@
                    N_START_LAYER = startLayer,
                    N_END_LAYER = endLayer,
                    N_CNTR_COUNT = cntrCount,
                    S_INDEX = t,
                    S_INDEX = S_INDEX,
                };
                ITaskRepository taskserice = new TaskRepository();
                taskserice.Insert(wmsTask);
@@ -651,11 +652,11 @@
            taskserice.Insert(action);
        }
        public static System.String GenerateTaskNo(string snType = "任务号")
        public static System.String GenerateTaskNo(string snType = "任务号", string Snt = "TN")
        {
            var date = DateTime.Now.ToString("yyMMdd");
            var id = SYSHelper.GetSerialNumber(snType, date);
            return $"TN{date}{id.ToString().PadLeft(4, '0')}";
            return $"{Snt}{date}{id.ToString().PadLeft(4, '0')}";
        }
        #endregion [自定义类][20250325152141671][TaskProcess]
    }
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Devices/PlcConfig
@@ -1915,7 +1915,7 @@
          "DataType": "System.Boolean",
          "DataValue": "",
          "SetValue": "",
          "Address": "DB104.16.2",
          "Address": "DB103.16.2",
          "AddrType": "",
          "Length": 1,
          "Desc": "",
@@ -6932,7 +6932,7 @@
      "Comm": "MXComponent",
      "IP": "3",
      "RedisQueueName": "D定子1号机械手Queue",
      "IsSimulate": true,
      "IsSimulate": false,
      "Reserve1": "",
      "Reserve2": "",
      "Reserve3": ""
@@ -7255,7 +7255,7 @@
      "Comm": "MXComponent",
      "IP": "4",
      "RedisQueueName": "D定子2号机械手Queue",
      "IsSimulate": true,
      "IsSimulate": false,
      "Reserve1": "",
      "Reserve2": "",
      "Reserve3": ""
@@ -9191,7 +9191,7 @@
          "DataType": "System.Boolean",
          "DataValue": "",
          "SetValue": "",
          "Address": "DB104.16.2",
          "Address": "DB103.16.2",
          "AddrType": "",
          "Length": 1,
          "Desc": "",
@@ -9523,5 +9523,5 @@
    }
  ],
  "CreationTime": "2025-02-26 15:31:23",
  "LastWriteTime": "2025-07-09 16:33:01"
  "LastWriteTime": "2025-07-10 14:15:37"
}
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Devices/É豸ͨÐÅ.json
@@ -2,5 +2,5 @@
  "ProjectSn": "1",
  "DeviceList": [],
  "CreationTime": "2025-02-26 15:31:23",
  "LastWriteTime": "2025-07-09 16:33:10"
  "LastWriteTime": "2025-07-10 14:15:49"
}
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Net/Conn.json
@@ -340,5 +340,5 @@
    }
  ],
  "CreationTime": "2025-02-26 15:31:23",
  "LastWriteTime": "2025-07-09 16:40:23"
  "LastWriteTime": "2025-07-10 14:16:54"
}