林豪 左 1 tahun lalu
induk
melakukan
4686a40105

+ 0 - 154
业务工程/时效库/WCS.WorkEngineering/Systems/DataCollectionSysyem.cs

@@ -1,154 +0,0 @@
-using Newtonsoft.Json;
-using ServiceCenter.Extensions;
-using ServiceCenter.Redis;
-using System.ComponentModel;
-using WCS.Core;
-using WCS.Entity.Protocol.BCR;
-using WCS.Entity.Protocol.DataStructure;
-using WCS.Entity.Protocol.Protocol.DataStructure;
-using WCS.Entity.Protocol.SRM;
-using WCS.Entity.Protocol.Station;
-using WCS.WorkEngineering.Extensions;
-
-namespace WCS.WorkEngineering.Systems
-{
-    /// <summary>
-    ///  数据采集系统
-    /// </summary>
-    //[BelongTo(typeof(DataCollectionWorld))]
-    [Description("数据采集系统")]
-    public class DataCollectionSysyem : DeviceSystem<SRM>
-    {
-        public List<Station> ConvList;
-        public List<Device<IStation91>> Conv91List;
-        public List<Device<IBCR81>> Bcrs;
-        public List<SRM> Srms;
-
-        public DataCollectionSysyem()
-        {
-            ConvList = Device.All.Where(v => v.HasProtocol(typeof(IStation523))).Select(v => new Station(v, this.World)).ToList();
-            Conv91List = Device.All.Where(v => v.HasProtocol(typeof(IStation91))).Select(v => new Device<IStation91>(v, this.World)).ToList();
-            Bcrs = Device.All.Where(v => v.HasProtocol(typeof(IBCR81))).Select(v => new Device<IBCR81>(v, this.World)).ToList();
-            Srms = Device.All.Where(v => v.HasProtocol(typeof(ISRM520))).Select(v => new SRM(v, this.World)).ToList();
-        }
-
-        protected override bool ParallelDo => true;
-
-        protected override bool SaveLogsToFile => true;
-
-        public override bool Select(Device dev)
-        {
-            return dev.Code == "SRM1";
-        }
-
-        public override void Do(SRM obj)
-        {
-            try
-            {
-                DeviceDataPack pack = new DeviceDataPack();
-
-                //处理输送线
-                List<StationData> DevList = new List<StationData>();
-                foreach (var item in ConvList)
-                {
-                    var dev = new StationData()
-                    {
-                        Code = item.Entity.Code,
-                        Frame = DateTime.Now,
-                        D520 = TypeExtension.Mapper<WCS_Station520, IStation520>(item.Data),
-                        D521 = TypeExtension.Mapper<WCS_Station521, IStation521>(item.Data2),
-                        D523 = TypeExtension.Mapper<WCS_Station523, IStation523>(item.Data3),
-                        D90 = new WCS_Station90(),
-                        D91 = new WCS_Station91(),
-                        D80 = new WCS_BCR80(),
-                        D81 = new WCS_BCR81()
-                    };
-                    if (Conv91List.Any(v => v.Entity.Code == item.Entity.Code))
-                    {
-                        var d91 = Conv91List.First(v => v.Entity.Code == item.Entity.Code);
-                        dev.D91 = TypeExtension.Mapper<WCS_Station91, IStation91>(d91.Data);
-                    }
-                    if (Bcrs.Any(v => v.Entity.Code == item.Entity.Code))
-                    {
-                        var d81 = Bcrs.First(v => v.Entity.Code == item.Entity.Code);
-                        dev.D81 = TypeExtension.Mapper<WCS_BCR81, IBCR81>(d81.Data);
-                    }
-                    //保存报警
-                    RedisHub.WMS.Set($"{nameof(EquipmentAlarm)}:{item.Entity.Code}", JsonConvert.SerializeObject(new EquipmentAlarm()
-                    {
-                        Code = item.Entity.Code,
-                        Msg = item.Data3.Alarm.ToString(),
-                        Time = DateTime.Now
-                    }));
-
-                    DevList.Add(dev);
-                }
-                //保存模式
-                var status = ConvList.Select(v => new Tuple<string, string>(v.Entity.Code, v.Data2.Mode.ToString()));
-                RedisHub.WMS.Set($"ConvStatus", JsonConvert.SerializeObject(status));
-                pack.StationDatas = new DeviceDataCollection<StationData>(DateTime.Now, DevList.ToArray());
-
-                //处理堆垛机
-                List<SRMData> srmList = new List<SRMData>();
-                foreach (var item in Srms)
-                {
-                    var dev = new SRMData()
-                    {
-                        Code = item.Entity.Code,
-                        Frame = DateTime.Now,
-                        D520 = TypeExtension.Mapper<WCS_SRM520, ISRM520>(item.Data),
-                        D521 = TypeExtension.Mapper<WCS_SRM521, ISRM521>(item.Data2),
-                        D537 = TypeExtension.Mapper<WCS_SRM537, ISRM537>(item.Data3),
-                    };
-
-                    //保存报警
-                    RedisHub.WMS.Set($"{nameof(EquipmentAlarm)}:{item.Entity.Code}", JsonConvert.SerializeObject(new EquipmentAlarm()
-                    {
-                        Code = item.Entity.Code,
-                        Msg = item.Data3.Alarm.ToString(),
-                        Time = DateTime.Now
-                    }));
-                    srmList.Add(dev);
-                }
-                //保存模式
-                var status1 = Srms.Select(v => new Tuple<string, string>(v.Entity.Code, v.Data2.AutoStatus.ToString()));
-                RedisHub.WMS.Set($"SrmStatus", JsonConvert.SerializeObject(status1));
-                pack.SRMDatas = new DeviceDataCollection<SRMData>(DateTime.Now, srmList.ToArray());
-                pack.Frame = DateTime.Now;
-
-                //保存到Redis
-                RedisHub.Monitor.RPush("Packs", pack);
-                RedisHub.Monitor.Set(nameof(DeviceDataPack), pack);
-                if (RedisHub.Monitor.LLen("Packs") > 500000)
-                {
-                    RedisHub.Monitor.LTrim("Packs", 5000, -1);
-                }
-            }
-            catch (Exception ex)
-            {
-                World.Log(ex.StackTrace, ServiceCenter.Logs.LogLevelEnum.Mid);
-            }
-        }
-    }
-
-    /// <summary>
-    ///  设备报警
-    /// </summary>
-    public class EquipmentAlarm
-    {
-        /// <summary>
-        ///  设备号
-        /// </summary>
-        public string Code { get; set; }
-
-        /// <summary>
-        ///  内容
-        /// </summary>
-        public string Msg { get; set; }
-
-        /// <summary>
-        ///  时间
-        /// </summary>
-        public DateTime Time { get; set; }
-    }
-}

+ 0 - 19
业务工程/时效库/WCS.WorkEngineering/Worlds/DataCollectionWorld.cs

@@ -1,19 +0,0 @@
-using System.ComponentModel;
-
-namespace WCS.WorkEngineering.Worlds
-{
-    /// <summary>
-    ///  数据采集世界,
-    ///  该世界不进行任何的交互处理,仅进行硬件数据采集
-    /// </summary>
-    [Description("数据采集世界")]
-    public class DataCollectionWorld : MainWorld
-    {
-        /// <summary>
-        /// 构造函数
-        /// </summary>
-        public DataCollectionWorld()
-        {
-        }
-    }
-}