1
czw
8 天以前 60dc4564fabd9f4afed46d4c91aac7b6db9b9e6d
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
@@ -1676,6 +1685,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 +1755,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 +1886,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 +1913,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 +1948,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 +1977,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 +2008,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申请");
@@ -1991,7 +2020,26 @@
        private void sa2008(Tag tag)
        {
            var rdisTcode = RedisHelper.Get<string>($"Arrive{2008}BarcodeLast", out string msg);
            //if(tag.ssx输送线.s2008)
            LogHelper.Info($"2008 æ‰˜ç›˜å·{tag.SA2030.R托盘码}  redis Arrive{2008}BarcodeLast托盘号:{rdisTcode} åŒ¹é…æ ¡éªŒã€‚");
            if (!string.IsNullOrEmpty(tag.ssx输送线.s2008.R托盘码) && rdisTcode != tag.ssx输送线.s2008.R托盘码)
            {
                var ntr = tag.ssx输送线.s2008.R托盘码;
                var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
                {
                    cntrCode = ntr,
                    type = 1
                }));
                var strr = JsonConvert.DeserializeObject<MES2234>(str);
                if (strr.success && strr.data != null)
                {
                    var end = (strr.data.lineNum == 1 ? 2027
                                : strr.data.lineNum == 2 ? 2020 : 2013);
                    tag.ssx输送线.s2008.wTaskNo = (uint)(20080000 + end);
                    tag.ssx输送线.s2008.wEbit = 2027;
                    tag.ssx输送线.s2008.R托盘码 = ntr;
                    RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg);
                }
            }
        }
        private void sa2030(Tag tag)
@@ -1999,7 +2047,7 @@
            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申请");
@@ -2011,7 +2059,7 @@
            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申请");
@@ -2023,7 +2071,7 @@
            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申请");
@@ -2035,7 +2083,7 @@
            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申请");
@@ -2047,7 +2095,7 @@
            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申请");
@@ -2059,7 +2107,7 @@
            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申请");
@@ -2071,7 +2119,7 @@
            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申请");
@@ -2083,7 +2131,7 @@
            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申请");
@@ -2095,7 +2143,7 @@
            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申请");
@@ -2510,7 +2558,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)