林豪 左 1 year ago
parent
commit
23f781a5d4
28 changed files with 149 additions and 65 deletions
  1. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/DataStructure/BCRData.cs
  2. 10 5
      业务工程/分拣库/WCS.Entity.Protocol/DataStructure/RGVData.cs
  3. 15 2
      业务工程/分拣库/WCS.Entity.Protocol/DataStructure/RobotData.cs
  4. 23 0
      业务工程/分拣库/WCS.Entity.Protocol/DataStructure/StationData.cs
  5. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot520.cs
  6. 2 1
      业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot521.cs
  7. 2 1
      业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot522.cs
  8. 2 1
      业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot530.cs
  9. 2 1
      业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot531.cs
  10. 0 1
      业务工程/分拣库/WCS.Entity.Protocol/Robot/WCS_Robot520.cs
  11. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/Robot/WCS_Robot521.cs
  12. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/Station/WCS_Station524.cs
  13. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/Station/WCS_Station525.cs
  14. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/Truss/ITruss520.cs
  15. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/Truss/ITruss521.cs
  16. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/Truss/WCS_Truss520.cs
  17. 1 1
      业务工程/分拣库/WCS.Entity.Protocol/Truss/WCS_Truss521.cs
  18. 1 0
      业务工程/分拣库/WCS.WorkEngineering/Extensions/DeviceExtension.cs
  19. 57 39
      业务工程/分拣库/WCS.WorkEngineering/ProtocolProxy.cs
  20. 18 1
      业务工程/分拣库/WCS.WorkEngineering/Systems/DataCollectionSysyem.cs
  21. 1 0
      业务工程/分拣库/WCS.WorkEngineering/Systems/RGVSystems.cs
  22. 1 0
      业务工程/分拣库/WCS.WorkEngineering/Systems/环形库/机械臂cs.cs
  23. 1 0
      业务工程/分拣库/WCS.WorkEngineering/Systems/环形库/环形库码垛结束.cs
  24. 1 0
      业务工程/分拣库/WCS.WorkEngineering/WorkStart.cs
  25. 1 1
      业务工程/时效库/WCS.Entity.Protocol/Truss/ITruss520.cs
  26. 1 1
      业务工程/时效库/WCS.Entity.Protocol/Truss/ITruss521.cs
  27. 1 1
      业务工程/时效库/WCS.Entity.Protocol/Truss/WCS_Truss520.cs
  28. 1 1
      业务工程/时效库/WCS.Entity.Protocol/Truss/WCS_Truss521.cs

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/DataStructure/BCRData.cs

@@ -13,6 +13,6 @@ namespace WCS.Entity.Protocol.DataStructure
         /// <summary>
         ///  扫码结果
         /// </summary>
-        public WCS_BCR81 Bcr81 { get; set; }
+        public WCS_BCR81 D81 { get; set; }
     }
 }

+ 10 - 5
业务工程/分拣库/WCS.Entity.Protocol/DataStructure/RGVData.cs

@@ -1,17 +1,22 @@
 using System.Runtime.Serialization;
+using WCS.Entity.Protocol.BCR;
+using WCS.Entity.Protocol.RGV;
 
 namespace WCS.Entity.Protocol.DataStructure
 {
     [DataContract]
     public class RGVData : DeviceData
     {
-        //[DataMember(Order = 5)]
-        //public WCS_RGV520 D520 { get; set; }
+        [DataMember(Order = 3)]
+        public WCS_RGV520 D520 { get; set; }
+
+        [DataMember(Order = 4)]
+        public WCS_RGV521 D521 { get; set; }
 
-        //[DataMember(Order = 3)]
-        //public WCS_RGV521 D521 { get; set; }
+        [DataMember(Order = 5)]
+        public WCS_BCR81 D81 { get; set; }
 
-        //[DataMember(Order = 4)]
+        //[DataMember(Order = 5)]
         //public WCS_RGV523 D523 { get; set; }
     }
 }

+ 15 - 2
业务工程/分拣库/WCS.Entity.Protocol/DataStructure/RobotData.cs

@@ -1,11 +1,24 @@
 using System.Runtime.Serialization;
+using WCS.Entity.Protocol.Robot;
 
 namespace WCS.Entity.Protocol.DataStructure
 {
     [DataContract]
     public class RobotData : DeviceData
     {
-        //[DataMember(Order = 3)]
-        //public WCS_Robot Data { get; set; }
+        [DataMember(Order = 3)]
+        public WCS_Robot520 D520 { get; set; }
+
+        [DataMember(Order = 4)]
+        public WCS_Robot521 D521 { get; set; }
+
+        [DataMember(Order = 5)]
+        public WCS_Robot522 D522 { get; set; }
+
+        [DataMember(Order = 6)]
+        public WCS_Robot530 D530 { get; set; }
+
+        [DataMember(Order = 7)]
+        public WCS_Robot531 D531 { get; set; }
     }
 }

+ 23 - 0
业务工程/分拣库/WCS.Entity.Protocol/DataStructure/StationData.cs

@@ -1,7 +1,9 @@
 using System.Runtime.Serialization;
 using WCS.Entity.Protocol.BCR;
 using WCS.Entity.Protocol.DataStructure;
+using WCS.Entity.Protocol.Robot;
 using WCS.Entity.Protocol.Station;
+using WCS.Entity.Protocol.Truss;
 
 namespace WCS.Entity.Protocol.Protocol.DataStructure
 {
@@ -31,5 +33,26 @@ namespace WCS.Entity.Protocol.Protocol.DataStructure
 
         [DataMember(Order = 9)]
         public WCS_BCR81 D81 { get; set; }
+
+        [DataMember(Order = 10)]
+        public WCS_BCR83 D83 { get; set; }
+
+        [DataMember(Order = 11)]
+        public WCS_Station524 D524 { get; set; }
+
+        [DataMember(Order = 12)]
+        public WCS_Station525 D525 { get; set; }
+
+        [DataMember(Order = 13)]
+        public WCS_Truss530 D530 { get; set; }
+
+        [DataMember(Order = 14)]
+        public WCS_Truss531 D5531 { get; set; }
+
+        [DataMember(Order = 15)]
+        public WCS_Robot530 DR530 { get; set; }
+
+        [DataMember(Order = 16)]
+        public WCS_Robot531 DR531 { get; set; }
     }
 }

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot520.cs

@@ -1,6 +1,6 @@
 using System.ComponentModel;
 
-namespace WCS.Entity.Protocol.Protocol.Robot
+namespace WCS.Entity.Protocol.Robot
 {
     /// <summary>
     ///  机械臂520

+ 2 - 1
业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot521.cs

@@ -1,6 +1,7 @@
 using System.ComponentModel;
+using WCS.Entity.Protocol.Protocol.Robot;
 
-namespace WCS.Entity.Protocol.Protocol.Robot
+namespace WCS.Entity.Protocol.Robot
 {
     /// <summary>
     ///  机械臂521

+ 2 - 1
业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot522.cs

@@ -1,6 +1,7 @@
 using System.ComponentModel;
+using WCS.Entity.Protocol.Protocol.Robot;
 
-namespace WCS.Entity.Protocol.Protocol.Robot
+namespace WCS.Entity.Protocol.Robot
 {
     /// <summary>
     ///  机械臂DB522

+ 2 - 1
业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot530.cs

@@ -1,6 +1,7 @@
 using System.ComponentModel;
+using WCS.Entity.Protocol.Protocol.Robot;
 
-namespace WCS.Entity.Protocol.Protocol.Robot
+namespace WCS.Entity.Protocol.Robot
 {
     /// <summary>
     ///  机械臂码垛工位DB530

+ 2 - 1
业务工程/分拣库/WCS.Entity.Protocol/Robot/IRobot531.cs

@@ -1,6 +1,7 @@
 using System.ComponentModel;
+using WCS.Entity.Protocol.Protocol.Robot;
 
-namespace WCS.Entity.Protocol.Protocol.Robot
+namespace WCS.Entity.Protocol.Robot
 {
     /// <summary>
     ///   机械臂码垛工位DB531

+ 0 - 1
业务工程/分拣库/WCS.Entity.Protocol/Robot/WCS_Robot520.cs

@@ -1,5 +1,4 @@
 using System.Runtime.Serialization;
-using WCS.Entity.Protocol.Protocol.Robot;
 
 namespace WCS.Entity.Protocol.Robot
 {

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/Robot/WCS_Robot521.cs

@@ -4,7 +4,7 @@ using WCS.Entity.Protocol.Protocol.Robot;
 namespace WCS.Entity.Protocol.Robot
 {
     [DataContract]
-    internal class WCS_Robot521 : IRobot521
+    public class WCS_Robot521 : IRobot521
     {
         [DataMember(Order = 0)]
         public int TaskNumber1 { get; set; }

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/Station/WCS_Station524.cs

@@ -3,7 +3,7 @@
 namespace WCS.Entity.Protocol.Station
 {
     [DataContract]
-    internal class WCS_Station524 : IStation524
+    public class WCS_Station524 : IStation524
     {
         [DataMember(Order = 0)]
         public int TaskNumber { get; set; }

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/Station/WCS_Station525.cs

@@ -3,7 +3,7 @@
 namespace WCS.Entity.Protocol.Station
 {
     [DataContract]
-    internal class WCS_Station525 : IStation525
+    public class WCS_Station525 : IStation525
     {
         [DataMember(Order = 1)]
         public short NextIndex { get; set; }

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/Truss/ITruss520.cs

@@ -175,7 +175,7 @@ namespace WCS.Entity.Protocol.Truss
         ///  任务完成处理结束
         /// </summary>
         [Description("任务完成处理结束")]
-        public TrussCmdType CmdType { get; set; }
+        public short CmdType { get; set; }
 
         /// <summary>
         ///  凭证号,触发信号

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/Truss/ITruss521.cs

@@ -181,7 +181,7 @@ namespace WCS.Entity.Protocol.Truss
         ///  桁架码垛位指令类型
         /// </summary>
         [Description("桁架码垛位指令类型")]
-        public TrussCmdType CmdType { get; set; }
+        public short CmdType { get; set; }
 
         /// <summary>
         ///  凭证号,触发信号

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/Truss/WCS_Truss520.cs

@@ -84,7 +84,7 @@ namespace WCS.Entity.Protocol.Truss
         public short TaskSum2 { get; set; }
 
         [DataMember(Order = 26)]
-        public TrussCmdType CmdType { get; set; }
+        public short CmdType { get; set; }
 
         [DataMember(Order = 27)]
         public short VoucherNo { get; set; }

+ 1 - 1
业务工程/分拣库/WCS.Entity.Protocol/Truss/WCS_Truss521.cs

@@ -87,7 +87,7 @@ namespace WCS.Entity.Protocol.Truss
         public TrussStatus Status { get; set; }
 
         [DataMember(Order = 28)]
-        public TrussCmdType CmdType { get; set; }
+        public short CmdType { get; set; }
 
         [DataMember(Order = 29)]
         public short VoucherNo { get; set; }

+ 1 - 0
业务工程/分拣库/WCS.WorkEngineering/Extensions/DeviceExtension.cs

@@ -5,6 +5,7 @@ using ServiceCenter.Redis;
 using WCS.Core;
 using WCS.Entity.Protocol.BCR;
 using WCS.Entity.Protocol.Protocol.Robot;
+using WCS.Entity.Protocol.Robot;
 using WCS.Entity.Protocol.Station;
 using WCS.Entity.Protocol.Truss;
 

+ 57 - 39
业务工程/分拣库/WCS.WorkEngineering/ProtocolProxy.cs

@@ -68,46 +68,64 @@ namespace WCS.WorkEngineering
 
             //}
 
-            //try
-            //{
-            //    var datas = DataCollectionSysyem.AllDatas;
-            //    if (Device.Code.StartsWith("SRM"))
-            //    {
-            //        if (!datas.ContainsKey(Device.Code))
-            //            datas[Device.Code] = new SRMData { Code = Device.Code };
-            //    }
-            //    else if (Device.Code.StartsWith("RGV"))
-            //    {
-            //        if (!datas.ContainsKey(Device.Code))
-            //            datas[Device.Code] = new RGVData { Code = Device.Code };
-            //    }
-            //    else if (Device.Code == "Robot")
-            //    {
-            //        if (!datas.ContainsKey(Device.Code))
-            //            datas[Device.Code] = new RobotData { Code = Device.Code };
-            //    }
-            //    else if (Device.Code.Length == 4)
-            //    {
-            //        if (!datas.ContainsKey(Device.Code))
-            //            datas[Device.Code] = new StationData { Code = Device.Code };
-            //    }
+            try
+            {
+                var datas = DataCollectionSysyem.AllDatas;
+                if (Device.Code.StartsWith("SRM"))
+                {
+                    if (!datas.ContainsKey(Device.Code))
+                        datas[Device.Code] = new SRMData { Code = Device.Code };
+                }
+                else if (Device.Code.StartsWith("RGV"))
+                {
+                    if (!datas.ContainsKey(Device.Code))
+                        datas[Device.Code] = new RGVData { Code = Device.Code };
+                }
+                else if (Device.Code == "Robot")
+                {
+                    if (!datas.ContainsKey(Device.Code))
+                        datas[Device.Code] = new RobotData { Code = Device.Code };
+                }
+                else if (Device.Code.Length == 4)
+                {
+                    if (!datas.ContainsKey(Device.Code))
+                        datas[Device.Code] = new StationData { Code = Device.Code };
+                }
 
-            //    if (!datas.TryGetValue(Device.Code, out var data)) return;
-            //    data.Frame = DateTime.Now;
-            //    var p = data.GetType().GetProperties().FirstOrDefault(v => v.PropertyType == ProtocolType);
-            //    if (p == null)
-            //    {
-            //        Console.WriteLine("类型" + data.GetType().Name + "不包含类型为" + ProtocolType.Name + "的属性");
-            //    }
-            //    else
-            //    {
-            //        p.SetValue(data, Items);
-            //    }
-            //}
-            //catch (Exception ex)
-            //{
-            //    Console.WriteLine(ex.Message);
-            //}
+                if (!datas.TryGetValue(Device.Code, out var data)) return;
+                data.Frame = DateTime.Now;
+                var p = data.GetType().GetProperties().FirstOrDefault(v => v.PropertyType == ProtocolDataType);
+                if (p == null)
+                {
+                    Console.WriteLine("类型" + data.GetType().Name + "不包含类型为" + ProtocolType.Name + "的属性");
+                }
+                else
+                {
+                    p.SetValue(data, GenA(ProtocolDataType, Items));
+                }
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.Message);
+            }
+        }
+
+        public object GenA(Type type, Dictionary<string, PlcItem> items)
+        {
+            var a = Activator.CreateInstance(type);
+            foreach (var ty in type.GetProperties())
+            {
+                foreach (var item in items)
+                {
+                    if (ty.Name == item.Key)
+                    {
+                        ty.SetValue(a, item.Value.Value);
+                        break;
+                    }
+                }
+            }
+
+            return a;
         }
 
         private object Copy(object obj, Type type)

+ 18 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/DataCollectionSysyem.cs

@@ -10,13 +10,14 @@ using WCS.Entity.Protocol.Protocol.DataStructure;
 using WCS.Entity.Protocol.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Extensions;
+using WCS.WorkEngineering.Worlds;
 
 namespace WCS.WorkEngineering.Systems
 {
     /// <summary>
     ///  数据采集系统
     /// </summary>
-    //[BelongTo(typeof(DataCollectionWorld))]
+    [BelongTo(typeof(DataCollectionWorld))]
     [Description("数据采集系统")]
     public class DataCollectionSysyem : DeviceSystem<SRM>
     {
@@ -42,6 +43,22 @@ namespace WCS.WorkEngineering.Systems
 
         public override void Do(SRM obj)
         {
+            var gs = AllDatas.GroupBy(v => v.Value.GetType());
+
+            DeviceDataPack pack = new DeviceDataPack();
+            pack.Frame = DateTime.Now;
+            foreach (var g in gs)
+            {
+                var value = g.Select(v => v.Value).ToArray();
+                var etype = g.Key;
+                var type = typeof(DeviceDataCollection<>).MakeGenericType(etype);
+                var coll = Activator.CreateInstance(type, DateTime.Now, value);
+                var p = pack.GetType().GetProperties().Where(v => v.PropertyType == type).First();
+                p.SetValue(pack, coll);
+            }
+
+            var a = AllDatas;
+            var b = 0;
             //try
             //{
             //    //DeviceDataPack pack = new DeviceDataPack();

+ 1 - 0
业务工程/分拣库/WCS.WorkEngineering/Systems/RGVSystems.cs

@@ -7,6 +7,7 @@ using WCS.Entity;
 using WCS.Entity.Protocol.BCR;
 using WCS.Entity.Protocol.Protocol.Robot;
 using WCS.Entity.Protocol.RGV;
+using WCS.Entity.Protocol.Robot;
 using WCS.Entity.Protocol.Station;
 using WCS.Entity.Protocol.Truss;
 using WCS.WorkEngineering.Extensions;

+ 1 - 0
业务工程/分拣库/WCS.WorkEngineering/Systems/环形库/机械臂cs.cs

@@ -6,6 +6,7 @@ using System.ComponentModel;
 using WCS.Core;
 using WCS.Entity;
 using WCS.Entity.Protocol.Protocol.Robot;
+using WCS.Entity.Protocol.Robot;
 using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.WebApi.Controllers;

+ 1 - 0
业务工程/分拣库/WCS.WorkEngineering/Systems/环形库/环形库码垛结束.cs

@@ -6,6 +6,7 @@ using System.ComponentModel;
 using WCS.Core;
 using WCS.Entity;
 using WCS.Entity.Protocol.Protocol.Robot;
+using WCS.Entity.Protocol.Robot;
 using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.WebApi.Controllers;

+ 1 - 0
业务工程/分拣库/WCS.WorkEngineering/WorkStart.cs

@@ -6,6 +6,7 @@ using WCS.Entity;
 using WCS.Entity.Protocol.BCR;
 using WCS.Entity.Protocol.Protocol.Robot;
 using WCS.Entity.Protocol.RGV;
+using WCS.Entity.Protocol.Robot;
 using WCS.Entity.Protocol.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.Entity.Protocol.Truss;

+ 1 - 1
业务工程/时效库/WCS.Entity.Protocol/Truss/ITruss520.cs

@@ -175,7 +175,7 @@ namespace WCS.Entity.Protocol.Truss
         ///  任务完成处理结束
         /// </summary>
         [Description("任务完成处理结束")]
-        public TrussCmdType CmdType { get; set; }
+        public short CmdType { get; set; }
 
         /// <summary>
         ///  凭证号,触发信号

+ 1 - 1
业务工程/时效库/WCS.Entity.Protocol/Truss/ITruss521.cs

@@ -181,7 +181,7 @@ namespace WCS.Entity.Protocol.Truss
         ///  桁架码垛位指令类型
         /// </summary>
         [Description("桁架码垛位指令类型")]
-        public TrussCmdType CmdType { get; set; }
+        public short CmdType { get; set; }
 
         /// <summary>
         ///  凭证号,触发信号

+ 1 - 1
业务工程/时效库/WCS.Entity.Protocol/Truss/WCS_Truss520.cs

@@ -84,7 +84,7 @@ namespace WCS.Entity.Protocol.Truss
         public short TaskSum2 { get; set; }
 
         [DataMember(Order = 26)]
-        public TrussCmdType CmdType { get; set; }
+        public short CmdType { get; set; }
 
         [DataMember(Order = 27)]
         public short VoucherNo { get; set; }

+ 1 - 1
业务工程/时效库/WCS.Entity.Protocol/Truss/WCS_Truss521.cs

@@ -87,7 +87,7 @@ namespace WCS.Entity.Protocol.Truss
         public TrussStatus Status { get; set; }
 
         [DataMember(Order = 28)]
-        public TrussCmdType CmdType { get; set; }
+        public short CmdType { get; set; }
 
         [DataMember(Order = 29)]
         public short VoucherNo { get; set; }