1
czw
4 天以前 11336f3d70bd0161b0be8f9e6dae410e046d9ebc
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/VS×Ô¶¨ÒåÀà/AutoThread.cs
@@ -31,7 +31,8 @@
using System.Windows.Documents;
using System.Text.RegularExpressions;
using GZ.Device.PLC;
using S7.Net;
using System.Runtime.CompilerServices;
using ServiceStack.Text;
namespace GZ.Projects.AuxAllWCS
{
@@ -60,6 +61,12 @@
    }
    public partial class AutoThread
    {
        /// <summary>
        ///  1 åªå¼€çº¿ç¨‹  Device Client
        ///  2 åªå¼€è®¾å¤‡  Device Server
        ///  3 å…¨å¼€
        /// </summary>
        public static readonly int _type = 1;
        private static AutoThread _instance;
@@ -85,6 +92,12 @@
        public static object InvokeMethod(object instance, string methodName, params object[] args)
        {
            var cacheKey = $"{instance.GetType().FullName}_{methodName}";
            if (AutoThread._type % 2 == 0)
            {
                Console.WriteLine($"{AutoThread._type}> å½“前是 Device Server æ¨¡å¼ã€‚");
                return null;
            }
            try
            {
@@ -115,7 +128,7 @@
            }
            catch (Exception ex)
            {
                LogHelper.Error($"InvokeMethod > cacheKey-{ex.Message}", ex);
                LogHelper.Error($"InvokeMethod > cacheKey:{cacheKey}-{ex.Message}", ex);
                throw ex;
            }
        }
@@ -230,6 +243,7 @@
            tasks.Add(GetTask(taskssss1, tag, 3000));
            tasks.Add(GetTask(taskssss2, tag, 3000));
            tasks.Add(GetTask(taskssss3, tag, 3000));
            tasks.Add(GetTask(task20132027, tag, 3000));
            //tasks.Add(GetTask(sa1022, tag, 3000));
            //tasks.Add(GetTask(sa1025, tag, 3000));
            //tasks.Add(GetTask(sa1030, tag, 3000));
@@ -251,7 +265,6 @@
            LogHelper.Info("ThreaTotal çº¿ç¨‹æ€»çº¿over");
        }
        public static ConcurrentDictionary<string, S7.Net.Plc> keyValuePairs = new ConcurrentDictionary<string, S7.Net.Plc>();
        private void ThreadS7helper(Tag tag)
        {
@@ -265,6 +278,27 @@
            //}
        }
        void task20132027(Tag tag)
        {
            if (tag.ssx输送线.s2027.wTaskNo > 0 && tag.ssx输送线.s2020.w托盘码 != tag.ssx输送线.s2027.R托盘码)
            {
                tag.ssx输送线.s2027.wEbit = 0;
                tag.ssx输送线.s2027.w托盘码 = "";
                tag.ssx输送线.s2027.wTaskNo = 0;
            }
            if (tag.ssx输送线.s2020.wTaskNo > 0 && tag.ssx输送线.s2020.w托盘码 != tag.ssx输送线.s2020.R托盘码)
            {
                tag.ssx输送线.s2020.wEbit = 0;
                tag.ssx输送线.s2020.w托盘码 = "";
                tag.ssx输送线.s2020.wTaskNo = 0;
            }
            if (tag.ssx输送线.s2013.wTaskNo > 0 && tag.ssx输送线.s2013.w托盘码 != tag.ssx输送线.s2013.R托盘码)
            {
                tag.ssx输送线.s2013.wEbit = 0;
                tag.ssx输送线.s2013.w托盘码 = "";
                tag.ssx输送线.s2013.wTaskNo = 0;
            }
        }
        void taskssss1(Tag tag)
        {
            sa1025(tag);
@@ -2471,24 +2505,33 @@
        private void sa2008(Tag tag)
        {
            var rdisTcode = RedisHelper.Get<string>($"Arrive{2008}BarcodeLast", out string msg);
            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托盘码;
            LogHelper.Info($"2008 æ‰˜ç›˜å·{ntr}  redis Arrive{2008}BarcodeLast托盘号:{rdisTcode} åŒ¹é…æ ¡éªŒã€‚");
            if (rdisTcode != ntr && tag.ssx输送线.s2008.wTaskNo > 0)
            {
                var ntr = tag.ssx输送线.s2008.R托盘码;
                var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
                LogHelper.Info($"2008 æ‰˜ç›˜å·{ntr}  åˆ‡æ¢æ‰˜ç›˜å·ï¼ˆä¹Ÿå¯èƒ½æ¸…空了),清除任务数据。wTaskNo,wEbit=0,R托盘码=空");
                tag.ssx输送线.s2008.wEbit = 0;
                tag.ssx输送线.s2008.R托盘码 = "";
                tag.ssx输送线.s2008.wTaskNo = 0;
                RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg);
                if (!string.IsNullOrEmpty(ntr) /*&& rdisTcode != ntr*/)
                {
                    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);
                    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 = (ushort)(strr.data.lineNum == 1 ? 2027
                                    : strr.data.lineNum == 2 ? 2020 : 2013);
                        tag.ssx输送线.s2008.wTaskNo = (uint)(20080000 + end);
                        tag.ssx输送线.s2008.wEbit = end;
                        tag.ssx输送线.s2008.R托盘码 = ntr;
                        LogHelper.Info($"2008 æ‰˜ç›˜å·{ntr}  å†™ä»»åŠ¡ï¼ŒwTaskNo={(uint)(20080000 + end)}  wEbit={end} R托盘码={ntr} Arrive{2008}BarcodeLast={ntr} ");
                        RedisHelper.Add<string>($"Arrive{2008}BarcodeLast", ntr, out msg);
                    }
                }
            }
        }
@@ -2663,6 +2706,8 @@
                i = 0;
            }
            LogHelper.Info($"_methodCache>>>>" + _methodCache.Count + ">>>>" + JsonConvert.SerializeObject(_methodCache.Keys));
            //Console.WriteLine($"SA2030 ä»»åŠ¡çŠ¶æ€ï¼š   =====>");
            //Console.WriteLine($"SA2030 ä»»åŠ¡çŠ¶æ€ï¼š{tag.SA2030.RtaskState}- ç©ºé—²{tag.SA2030.R5空闲} - barcode:{tag.SA2030.R托盘码}");
@@ -2784,6 +2829,7 @@
                                                    continue;
                                                }
                                            }
                                            if (!string.IsNullOrEmpty(tag.ssx输送线.s2013.R托盘码))
                                            {
                                                var str = Settings.apiHelper.Post(Settings.MESbaseUrl + "mom-basic/dataTransmission/json/service/224", JsonConvert.SerializeObject(new
@@ -3539,7 +3585,7 @@
                    Console.WriteLine($"ip= {ip.ToString()}");
                    new HttpServer(ip.ToString()).HttpServerRun();
                    new TcpServer(ip.ToString());
                    var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync();
                    //var server = new EnhancedWebSocketServer($"http://{ip.ToString()}:8809/").StartAsync();
                    //var client = new WebSocketClient($"http://{ip.ToString()}:8809/").ConnectAsync();
                    break;
                }