林豪 左 1 年之前
父节点
当前提交
27e14924d4
共有 36 个文件被更改,包括 296 次插入102 次删除
  1. 10 11
      WCS.Entity.Protocol/SRM/SRM520.cs
  2. 16 14
      WCS.Entity.Protocol/SRM/SRM521.cs
  3. 4 3
      WCS.Entity.Protocol/SRM/SRM537.cs
  4. 2 3
      WCS.Entity.Protocol/Truss/Truss520.cs
  5. 3 3
      WCS.Entity.Protocol/Truss/Truss521.cs
  6. 2 2
      WCS.Entity.Protocol/Truss/Truss523.cs
  7. 2 2
      WCS.Entity.Protocol/Truss/Truss530.cs
  8. 2 2
      WCS.Entity.Protocol/Truss/Truss531.cs
  9. 28 0
      WCS.WorkEngineering/Extensions/DeviceExtension.cs
  10. 1 1
      WCS.WorkEngineering/Extensions/SRMExtension.cs
  11. 12 0
      WCS.WorkEngineering/Extensions/TrussExtebsion.cs
  12. 1 0
      WCS.WorkEngineering/Protocol/DataStructure/SRMData.cs
  13. 11 0
      WCS.WorkEngineering/Protocol/SRM/ISRM520.cs
  14. 11 0
      WCS.WorkEngineering/Protocol/SRM/ISRM521.cs
  15. 11 0
      WCS.WorkEngineering/Protocol/SRM/ISRM537.cs
  16. 5 7
      WCS.WorkEngineering/Protocol/SRM/SrmEnum.cs
  17. 6 6
      WCS.WorkEngineering/Protocol/SRM/WCS_SRM520.cs
  18. 6 5
      WCS.WorkEngineering/Protocol/SRM/WCS_SRM521.cs
  19. 2 1
      WCS.WorkEngineering/Protocol/SRM/WCS_SRM537.cs
  20. 11 0
      WCS.WorkEngineering/Protocol/Truss/ITruss520.cs
  21. 11 0
      WCS.WorkEngineering/Protocol/Truss/ITruss521.cs
  22. 11 0
      WCS.WorkEngineering/Protocol/Truss/ITruss523.cs
  23. 11 0
      WCS.WorkEngineering/Protocol/Truss/ITruss530.cs
  24. 11 0
      WCS.WorkEngineering/Protocol/Truss/ITruss531.cs
  25. 12 7
      WCS.WorkEngineering/Protocol/Truss/TrussEnum.cs
  26. 1 1
      WCS.WorkEngineering/Systems/AgvSystems.cs
  27. 1 0
      WCS.WorkEngineering/Systems/DataCollectionSysyem.cs
  28. 1 1
      WCS.WorkEngineering/Systems/DeviceWriteSystem.cs
  29. 1 1
      WCS.WorkEngineering/Systems/GetDeviceSystem.cs
  30. 1 1
      WCS.WorkEngineering/Systems/NoInteractionSystems.cs
  31. 2 2
      WCS.WorkEngineering/Systems/SrmDebugSystem.cs
  32. 4 4
      WCS.WorkEngineering/Systems/SrmSystems.cs
  33. 60 0
      WCS.WorkEngineering/Systems/桁架.cs
  34. 2 2
      WCS.WorkEngineering/WebApi/Controllers/WcsController.cs
  35. 20 22
      WCS.WorkEngineering/WorkStart.cs
  36. 1 1
      WCS.WorkEngineering/Worlds/NoInteractionWorld.cs

+ 10 - 11
WCS.Entity.Protocol/SRM/ISRM520.cs → WCS.Entity.Protocol/SRM/SRM520.cs

@@ -1,14 +1,14 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Text;
+using System.ComponentModel;
 
 namespace WCS.Entity.Protocol.SRM
 {
     /// <summary>
-    ///  堆垛机DB520
+    /// 堆垛机DB520
     /// </summary>
-    public interface ISRM520 : IProtocol
+    /// <typeparam name="runSpeed">速度</typeparam>
+    /// <typeparam name="depth">深度</typeparam>
+    /// <typeparam name="taskType">任务类型</typeparam>
+    public interface SRM520<runSpeed, depth, taskType> : IProtocol
     {
         /// <summary>
         ///  单堆垛机是否可以跑全程 ,0正常 1单机全程
@@ -38,7 +38,7 @@ namespace WCS.Entity.Protocol.SRM
         ///  运行速度
         /// </summary>
         [Description("运行速度")]
-        SrmRunSpeedEnum RunSpeed { get; set; }
+        runSpeed RunSpeed { get; set; }
 
         /// <summary>
         ///  任务起始行
@@ -62,7 +62,7 @@ namespace WCS.Entity.Protocol.SRM
         ///  任务起始深度
         /// </summary>
         [Description("任务起始深度")]
-        ForkPosition SDepth { get; set; }
+        depth SDepth { get; set; }
 
         /// <summary>
         ///  任务目标行
@@ -86,7 +86,7 @@ namespace WCS.Entity.Protocol.SRM
         ///  任务目标深度
         /// </summary>
         [Description("任务目标深度")]
-        ForkPosition EDepth { get; set; }
+        depth EDepth { get; set; }
 
         /// <summary>
         ///  任务号
@@ -110,13 +110,12 @@ namespace WCS.Entity.Protocol.SRM
         ///  任务类型
         /// </summary>
         [Description("任务类型")]
-        SrmTaskTypeEnum TaskType { get; set; }
+        taskType TaskType { get; set; }
 
         /// <summary>
         ///  指令类型
         /// </summary>
         [Description("指令类型")]
         short Cmd { get; set; }
-
     }
 }

+ 16 - 14
WCS.Entity.Protocol/SRM/ISRM521.cs → WCS.Entity.Protocol/SRM/SRM521.cs

@@ -1,32 +1,35 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Text;
+using System.ComponentModel;
 
 namespace WCS.Entity.Protocol.SRM
 {
     /// <summary>
-    ///  堆垛机DB521
+    /// 堆垛机DB521
     /// </summary>
-    public interface ISRM521 : IProtocol
+    /// <typeparam name="status">状态</typeparam>
+    /// <typeparam name="autoStatus">运行模式</typeparam>
+    /// <typeparam name="runStatus">运行状态</typeparam>
+    /// <typeparam name="runSpeed">运行速度</typeparam>
+    /// <typeparam name="depth">深度</typeparam>
+    /// <typeparam name="taskType">任务类型</typeparam>
+    public interface SRM521<status, autoStatus, runStatus, runSpeed, depth, taskType> : IProtocol
     {
         /// <summary>
         ///  状态
         /// </summary>
         [Description("状态")]
-        SrmStatus Status { get; set; }
+        status Status { get; set; }
 
         /// <summary>
         ///  自动状态
         /// </summary>
         [Description("自动状态")]
-        SrmAutoStatus AutoStatus { get; set; }
+        autoStatus AutoStatus { get; set; }
 
         /// <summary>
         ///  运行状态
         /// </summary>
         [Description("运行状态")]
-        SrmRunStatus RunStatus { get; set; }
+        runStatus RunStatus { get; set; }
 
         /// <summary>
         ///  任务起始行
@@ -50,7 +53,7 @@ namespace WCS.Entity.Protocol.SRM
         ///  任务起始深度
         /// </summary>
         [Description("任务起始深度")]
-        ForkPosition SDepth { get; set; }
+        depth SDepth { get; set; }
 
         /// <summary>
         ///  任务目标行
@@ -74,7 +77,7 @@ namespace WCS.Entity.Protocol.SRM
         ///  任务目标深度
         /// </summary>
         [Description("任务目标深度")]
-        ForkPosition EDepth { get; set; }
+        depth EDepth { get; set; }
 
         /// <summary>
         ///  任务号
@@ -134,13 +137,13 @@ namespace WCS.Entity.Protocol.SRM
         ///  运行速度
         /// </summary>
         [Description("运行速度")]
-        SrmRunSpeedEnum RunSpeed { get; set; }
+        runSpeed RunSpeed { get; set; }
 
         /// <summary>
         ///  任务类型
         /// </summary>
         [Description("任务类型")]
-        SrmTaskTypeEnum TaskType { get; set; }
+        taskType TaskType { get; set; }
 
         /// <summary>
         ///  运行总里程
@@ -183,6 +186,5 @@ namespace WCS.Entity.Protocol.SRM
         /// </summary>
         [Description("备用")]
         int Res6 { get; set; }
-
     }
 }

+ 4 - 3
WCS.Entity.Protocol/SRM/ISRM537.cs → WCS.Entity.Protocol/SRM/SRM537.cs

@@ -3,14 +3,15 @@
 namespace WCS.Entity.Protocol.SRM
 {
     /// <summary>
-    ///  堆垛机DB523
+    /// 堆垛机DB523
     /// </summary>
-    public interface ISRM537 : IProtocol
+    /// <typeparam name="alarm">报警</typeparam>
+    public interface SRM537<alarm> : IProtocol
     {
         /// <summary>
         ///  报警内容
         /// </summary>
         [Description("报警内容")]
-        SrmAlarm Alarm { get; set; }
+        alarm Alarm { get; set; }
     }
 }

+ 2 - 3
WCS.Entity.Protocol/Truss/Truss520.cs

@@ -5,7 +5,7 @@ namespace WCS.Entity.Protocol.Truss
     /// <summary>
     ///  桁架DB520 设备调度
     /// </summary>
-    public interface Truss520 : IProtocol
+    public interface Truss520<cmdType> : IProtocol
     {
         #region 工位一
 
@@ -175,7 +175,7 @@ namespace WCS.Entity.Protocol.Truss
         ///  任务完成处理结束
         /// </summary>
         [Description("任务完成处理结束")]
-        public short ACK { get; set; }
+        public cmdType CmdType { get; set; }
 
         /// <summary>
         ///  凭证号,触发信号
@@ -184,4 +184,3 @@ namespace WCS.Entity.Protocol.Truss
         public short VoucherNo { get; set; }
     }
 }
- 

+ 3 - 3
WCS.Entity.Protocol/Truss/Truss521.cs

@@ -5,7 +5,7 @@ namespace WCS.Entity.Protocol.Truss
     /// <summary>
     ///  桁架DB521 设备调度
     /// </summary>
-    public interface Truss521 : IProtocol
+    public interface Truss521<status, cmdType> : IProtocol
     {
         #region 工位一
 
@@ -175,13 +175,13 @@ namespace WCS.Entity.Protocol.Truss
         ///  状态
         /// </summary>
         [Description("状态")]
-        public TrussStatusEnum Status { get; set; }
+        public status Status { get; set; }
 
         /// <summary>
         ///  完成任务
         /// </summary>
         [Description("完成任务")]
-        public short Finish { get; set; }
+        public cmdType CmdType { get; set; }
 
         /// <summary>
         ///  凭证号,触发信号

+ 2 - 2
WCS.Entity.Protocol/Truss/Truss523.cs

@@ -5,12 +5,12 @@ namespace WCS.Entity.Protocol.Truss
     /// <summary>
     ///  桁架DB523 设备调度
     /// </summary>
-    public interface Truss523 : IProtocol
+    public interface Truss523<alarm> : IProtocol
     {
         /// <summary>
         ///  报警内容
         /// </summary>
         [Description("报警内容")]
-        TrussAlarm Alarm { get; set; }
+        alarm Alarm { get; set; }
     }
 }

+ 2 - 2
WCS.Entity.Protocol/Truss/Truss530.cs

@@ -5,7 +5,7 @@ namespace WCS.Entity.Protocol.Truss
     /// <summary>
     ///  桁架 码垛工位
     /// </summary>
-    public interface Truss530 : IProtocol
+    public interface Truss530<cmdType> : IProtocol
     {
         /// <summary>
         ///  垛形
@@ -23,7 +23,7 @@ namespace WCS.Entity.Protocol.Truss
         ///  码垛结束
         /// </summary>
         [Description("码垛结束")]
-        public TrussCmdType CmdType { get; set; }
+        public cmdType CmdType { get; set; }
 
         /// <summary>
         ///  凭证号,触发信号

+ 2 - 2
WCS.Entity.Protocol/Truss/Truss531.cs

@@ -5,7 +5,7 @@ namespace WCS.Entity.Protocol.Truss
     /// <summary>
     /// 桁架 码垛工位 60工位版
     /// </summary>
-    public interface Truss531 : IProtocol
+    public interface Truss531<cmdType> : IProtocol
     {
         #region 任务集
 
@@ -387,7 +387,7 @@ namespace WCS.Entity.Protocol.Truss
         ///  码垛结束
         /// </summary>
         [Description("码垛结束")]
-        public TrussCmdType CmdType { get; set; }
+        public cmdType CmdType { get; set; }
 
         /// <summary>
         ///  凭证号,触发信号

+ 28 - 0
WCS.WorkEngineering/Extensions/DeviceExtension.cs

@@ -110,6 +110,7 @@ namespace WCS.WorkEngineering.Extensions
         #endregion 一轨双车堆垛机
 
         RGV = 1 << 25,
+        桁架 = 1 << 26
     }
 
     /// <summary>
@@ -174,6 +175,33 @@ namespace WCS.WorkEngineering.Extensions
         public string IP { get; set; }
     }
 
+    /// <summary>
+    /// 桁架信息
+    /// </summary>
+    public class TrussSegmentInfo
+    {
+        /// <summary>
+        ///  构造函数
+        /// </summary>
+        /// <param name="code"></param>
+        /// <param name="ip">ip</param>
+        public TrussSegmentInfo(int code, string ip)
+        {
+            Code = code;
+            IP = ip;
+        }
+
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+        public int Code { get; set; }
+
+        /// <summary>
+        ///  输送机段所属IP
+        /// </summary>
+        public string IP { get; set; }
+    }
+
     /// <summary>
     ///  扫码器信息
     /// </summary>

+ 1 - 1
WCS.WorkEngineering/Extensions/SRMExtension.cs

@@ -1,8 +1,8 @@
 using ServiceCenter.Extensions;
 using WCS.Core;
 using WCS.Entity;
-using WCS.Entity.Protocol.SRM;
 using WCS.WorkEngineering.Protocol.RGV;
+using WCS.WorkEngineering.Protocol.SRM;
 
 namespace WCS.WorkEngineering.Extensions
 {

+ 12 - 0
WCS.WorkEngineering/Extensions/TrussExtebsion.cs

@@ -0,0 +1,12 @@
+using WCS.Core;
+using WCS.WorkEngineering.Protocol.Truss;
+
+namespace WCS.WorkEngineering.Extensions
+{
+    public class Truss : Device<ITruss520, ITruss521, ITruss523, ITruss530, ITruss531>
+    {
+        public Truss(Device device, World world) : base(device, world)
+        {
+        }
+    }
+}

+ 1 - 0
WCS.WorkEngineering/Protocol/DataStructure/SRMData.cs

@@ -1,5 +1,6 @@
 using System.Runtime.Serialization;
 using WCS.Entity.Protocol.SRM;
+using WCS.WorkEngineering.Protocol.SRM;
 
 namespace WCS.Entity.Protocol.DataStructure
 {

+ 11 - 0
WCS.WorkEngineering/Protocol/SRM/ISRM520.cs

@@ -0,0 +1,11 @@
+using WCS.Entity.Protocol.SRM;
+
+namespace WCS.WorkEngineering.Protocol.SRM
+{
+    /// <summary>
+    ///  堆垛机DB520
+    /// </summary>
+    public interface ISRM520 : SRM520<SrmRunSpeed, SrmForkPosition, SrmTaskType>
+    {
+    }
+}

+ 11 - 0
WCS.WorkEngineering/Protocol/SRM/ISRM521.cs

@@ -0,0 +1,11 @@
+using WCS.Entity.Protocol.SRM;
+
+namespace WCS.WorkEngineering.Protocol.SRM
+{
+    /// <summary>
+    ///  堆垛机DB521
+    /// </summary>
+    public interface ISRM521 : SRM521<SrmStatus, SrmAutoStatus, SrmRunStatus, SrmRunSpeed, SrmForkPosition, SrmTaskType>
+    {
+    }
+}

+ 11 - 0
WCS.WorkEngineering/Protocol/SRM/ISRM537.cs

@@ -0,0 +1,11 @@
+using WCS.Entity.Protocol.SRM;
+
+namespace WCS.WorkEngineering.Protocol.SRM
+{
+    /// <summary>
+    ///  堆垛机DB523
+    /// </summary>
+    public interface ISRM537 : SRM537<SrmAlarm>
+    {
+    }
+}

+ 5 - 7
WCS.Entity.Protocol/SRM/SrmEnum.cs → WCS.WorkEngineering/Protocol/SRM/SrmEnum.cs

@@ -1,12 +1,11 @@
-using System;
-using System.ComponentModel;
+using System.ComponentModel;
 
-namespace WCS.Entity.Protocol.SRM
+namespace WCS.WorkEngineering.Protocol.SRM
 {
     /// <summary>
     /// 运行模式
     /// </summary>
-    public enum SrmRunSpeedEnum : short
+    public enum SrmRunSpeed : short
     {
         /// <summary>
         ///  默认
@@ -24,7 +23,7 @@ namespace WCS.Entity.Protocol.SRM
     /// <summary>
     /// 任务类型
     /// </summary>
-    public enum SrmTaskTypeEnum : short
+    public enum SrmTaskType : short
     {
         /// <summary>
         ///  默认 出入库使用该任务类型
@@ -60,7 +59,7 @@ namespace WCS.Entity.Protocol.SRM
     /// <summary>
     /// 货叉位置
     /// </summary>
-    public enum ForkPosition : short
+    public enum SrmForkPosition : short
     {
         /// <summary>
         ///  中位
@@ -443,7 +442,6 @@ namespace WCS.Entity.Protocol.SRM
         [Description("行走抱闸空开")]
         行走抱闸空开 = 1L << 25,
 
-
         /// <summary>
         ///  起升马达保护器
         /// </summary>

+ 6 - 6
WCS.Entity.Protocol/SRM/WCS_SRM520.cs → WCS.WorkEngineering/Protocol/SRM/WCS_SRM520.cs

@@ -1,12 +1,12 @@
 using System.Runtime.Serialization;
 
-namespace WCS.Entity.Protocol.SRM
+namespace WCS.WorkEngineering.Protocol.SRM
 {
     /// <summary>
     ///  SRM520
     /// </summary>
     [DataContract]
-    public class WCS_SRM520 :ISRM520
+    public class WCS_SRM520 : ISRM520
     {
         /// <inheritdoc/>
         [DataMember(Order = 0)]
@@ -26,7 +26,7 @@ namespace WCS.Entity.Protocol.SRM
 
         /// <inheritdoc/>
         [DataMember(Order = 4)]
-        public SrmRunSpeedEnum RunSpeed { get; set; }
+        public SrmRunSpeed RunSpeed { get; set; }
 
         /// <inheritdoc/>
         [DataMember(Order = 5)]
@@ -42,7 +42,7 @@ namespace WCS.Entity.Protocol.SRM
 
         /// <inheritdoc/>
         [DataMember(Order = 8)]
-        public ForkPosition SDepth { get; set; }
+        public SrmForkPosition SDepth { get; set; }
 
         /// <inheritdoc/>
         [DataMember(Order = 9)]
@@ -58,7 +58,7 @@ namespace WCS.Entity.Protocol.SRM
 
         /// <inheritdoc/>
         [DataMember(Order = 12)]
-        public ForkPosition EDepth { get; set; }
+        public SrmForkPosition EDepth { get; set; }
 
         /// <inheritdoc/>
         [DataMember(Order = 13)]
@@ -74,7 +74,7 @@ namespace WCS.Entity.Protocol.SRM
 
         /// <inheritdoc/>
         [DataMember(Order = 16)]
-        public SrmTaskTypeEnum TaskType { get; set; }
+        public SrmTaskType TaskType { get; set; }
 
         /// <inheritdoc/>
         [DataMember(Order = 17)]

+ 6 - 5
WCS.Entity.Protocol/SRM/WCS_SRM521.cs → WCS.WorkEngineering/Protocol/SRM/WCS_SRM521.cs

@@ -1,4 +1,5 @@
 using System.Runtime.Serialization;
+using WCS.WorkEngineering.Protocol.SRM;
 
 namespace WCS.Entity.Protocol.SRM
 {
@@ -34,7 +35,7 @@ namespace WCS.Entity.Protocol.SRM
 
         /// <inheritdoc/>
         [DataMember(Order = 6)]
-        public ForkPosition SDepth { get; set; }
+        public SrmForkPosition SDepth { get; set; }
 
         /// <inheritdoc/>
         [DataMember(Order = 7)]
@@ -50,7 +51,7 @@ namespace WCS.Entity.Protocol.SRM
 
         /// <inheritdoc/>
         [DataMember(Order = 10)]
-        public ForkPosition EDepth { get; set; }
+        public SrmForkPosition EDepth { get; set; }
 
         /// <inheritdoc/>
         [DataMember(Order = 11)]
@@ -90,17 +91,17 @@ namespace WCS.Entity.Protocol.SRM
 
         /// <inheritdoc/>
         [DataMember(Order = 20)]
-        public SrmRunSpeedEnum RunSpeed { get; set; }
+        public SrmRunSpeed RunSpeed { get; set; }
 
         /// <inheritdoc/>
         [DataMember(Order = 21)]
-        public SrmTaskTypeEnum TaskType { get; set; }
+        public SrmTaskType TaskType { get; set; }
 
         /// <inheritdoc/>
         [DataMember(Order = 22)]
         public float TotalKm { get; set; }
 
-        /// <inheritdoc/>/// <inheritdoc/>
+        /// <inheritdoc/>
         [DataMember(Order = 23)]
         public short GoodsType { get; set; }
 

+ 2 - 1
WCS.Entity.Protocol/SRM/WCS_SRM537.cs → WCS.WorkEngineering/Protocol/SRM/WCS_SRM537.cs

@@ -1,4 +1,5 @@
 using System.Runtime.Serialization;
+using WCS.WorkEngineering.Protocol.SRM;
 
 namespace WCS.Entity.Protocol.SRM
 {
@@ -6,7 +7,7 @@ namespace WCS.Entity.Protocol.SRM
     ///  SRM537
     /// </summary>
     [DataContract]
-    public class WCS_SRM537 :  ISRM537
+    public class WCS_SRM537 : ISRM537
     {
         /// <inheritdoc/>
         [DataMember(Order = 0)]

+ 11 - 0
WCS.WorkEngineering/Protocol/Truss/ITruss520.cs

@@ -0,0 +1,11 @@
+using WCS.Entity.Protocol.Truss;
+
+namespace WCS.WorkEngineering.Protocol.Truss
+{
+    /// <summary>
+    ///  桁架DB520 设备调度
+    /// </summary>
+    public interface ITruss520 : Truss520<short>
+    {
+    }
+}

+ 11 - 0
WCS.WorkEngineering/Protocol/Truss/ITruss521.cs

@@ -0,0 +1,11 @@
+using WCS.Entity.Protocol.Truss;
+
+namespace WCS.WorkEngineering.Protocol.Truss
+{
+    /// <summary>
+    ///  桁架DB521 设备调度
+    /// </summary>
+    public interface ITruss521 : Truss521<TrussStatus, short>
+    {
+    }
+}

+ 11 - 0
WCS.WorkEngineering/Protocol/Truss/ITruss523.cs

@@ -0,0 +1,11 @@
+using WCS.Entity.Protocol.Truss;
+
+namespace WCS.WorkEngineering.Protocol.Truss
+{
+    /// <summary>
+    ///  桁架DB523 设备调度
+    /// </summary>
+    public interface ITruss523 : Truss523<TrussAlarm>
+    {
+    }
+}

+ 11 - 0
WCS.WorkEngineering/Protocol/Truss/ITruss530.cs

@@ -0,0 +1,11 @@
+using WCS.Entity.Protocol.Truss;
+
+namespace WCS.WorkEngineering.Protocol.Truss
+{
+    /// <summary>
+    ///  桁架 码垛工位
+    /// </summary>
+    public interface ITruss530 : Truss530<TrussCmdType>
+    {
+    }
+}

+ 11 - 0
WCS.WorkEngineering/Protocol/Truss/ITruss531.cs

@@ -0,0 +1,11 @@
+using WCS.Entity.Protocol.Truss;
+
+namespace WCS.WorkEngineering.Protocol.Truss
+{
+    /// <summary>
+    /// 桁架 码垛工位 60工位版
+    /// </summary>
+    public interface ITruss531 : Truss531<TrussCmdType>
+    {
+    }
+}

+ 12 - 7
WCS.Entity.Protocol/Truss/TrussEnum.cs → WCS.WorkEngineering/Protocol/Truss/TrussEnum.cs

@@ -1,12 +1,11 @@
-using System;
-using System.ComponentModel;
+using System.ComponentModel;
 
-namespace WCS.Entity.Protocol.Truss
+namespace WCS.WorkEngineering.Protocol.Truss
 {
     /// <summary>
     ///  桁架状态
     /// </summary>
-    public enum TrussStatusEnum : short
+    public enum TrussStatus : short
     {
         /// <summary>
         ///  空闲
@@ -27,10 +26,16 @@ namespace WCS.Entity.Protocol.Truss
         Alarm = 3,
 
         /// <summary>
-        ///  维护/手动
+        ///  维护
         /// </summary>
-        [Description("维护/手动")]
-        Manual = 3,
+        [Description("维护")]
+        KeepInRepair = 4,
+
+        /// <summary>
+        ///  手动
+        /// </summary>
+        [Description("手动")]
+        Manual = 5,
     }
 
     /// <summary>

+ 1 - 1
WCS.WorkEngineering/Systems/AgvSystems.cs

@@ -5,10 +5,10 @@ using ServiceCenter.SqlSugars;
 using System.ComponentModel;
 using WCS.Core;
 using WCS.Entity;
-using WCS.Entity.Protocol.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.Protocol.RGV;
+using WCS.WorkEngineering.Protocol.SRM;
 using WCS.WorkEngineering.WebApi.Controllers;
 using WCS.WorkEngineering.Worlds;
 using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;

+ 1 - 0
WCS.WorkEngineering/Systems/DataCollectionSysyem.cs

@@ -9,6 +9,7 @@ using WCS.Entity.Protocol.Station;
 using WCS.Service.Worlds;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.Protocol.BCR;
+using WCS.WorkEngineering.Protocol.SRM;
 
 namespace WCS.Service.Systems
 {

+ 1 - 1
WCS.WorkEngineering/Systems/DeviceWriteSystem.cs

@@ -1,7 +1,7 @@
 using WCS.Core;
-using WCS.Entity.Protocol.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Extensions;
+using WCS.WorkEngineering.Protocol.SRM;
 using WCS.WorkEngineering.Worlds;
 
 namespace WCS.WorkEngineering.Systems

+ 1 - 1
WCS.WorkEngineering/Systems/GetDeviceSystem.cs

@@ -1,8 +1,8 @@
 using WCS.Core;
-using WCS.Entity.Protocol.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.Protocol.BCR;
+using WCS.WorkEngineering.Protocol.SRM;
 using WCS.WorkEngineering.Worlds;
 
 namespace WCS.WorkEngineering.Systems

+ 1 - 1
WCS.WorkEngineering/Systems/NoInteractionSystems.cs

@@ -16,7 +16,7 @@ namespace WCS.WorkEngineering.Systems
     /// <summary>
     ///  无交互系统
     /// </summary>
-    [BelongTo(typeof(NoInteractionWorld))]
+    [BelongTo(typeof(MainWorldd))]
     [Description("无交互系统")]
     public class NoInteractionSystems : DeviceSystem<Station>
     {

+ 2 - 2
WCS.WorkEngineering/Systems/SrmDebugSystem.cs

@@ -1,7 +1,7 @@
 using WCS.Core;
-using WCS.Entity.Protocol.SRM;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.Protocol.RGV;
+using WCS.WorkEngineering.Protocol.SRM;
 using WCS.WorkEngineering.Worlds;
 
 namespace WCS.WorkEngineering.Systems
@@ -43,7 +43,7 @@ namespace WCS.WorkEngineering.Systems
     {
         public string SrmCode { get; set; }
 
-        public SrmTaskTypeEnum srmTaskType { get; set; }
+        public SrmTaskType srmTaskType { get; set; }
 
         public short SLine { get; set; }
 

+ 4 - 4
WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -5,10 +5,10 @@ using ServiceCenter.SqlSugars;
 using System.ComponentModel;
 using WCS.Core;
 using WCS.Entity;
-using WCS.Entity.Protocol.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.Protocol.RGV;
+using WCS.WorkEngineering.Protocol.SRM;
 using WCS.WorkEngineering.WebApi.Controllers;
 using WCS.WorkEngineering.WebApi.Models.AGV.Response;
 using WCS.WorkEngineering.Worlds;
@@ -227,7 +227,7 @@ namespace WCS.WorkEngineering.Systems
                 obj.Data.ELine = addrTo[0].ToShort();
                 obj.Data.ECol = addrTo[1].ToShort();
                 obj.Data.ELayer = addrTo[2].ToShort();
-                obj.Data.TaskType = SrmTaskTypeEnum.MoveGoods;
+                obj.Data.TaskType = SrmTaskType.MoveGoods;
                 obj.Data.VoucherNo++;
                 World.Log($"堆垛机任务处理:结束---下发移库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
             }
@@ -286,7 +286,7 @@ namespace WCS.WorkEngineering.Systems
                 World.Log($"堆垛机任务处理:开始--下发入库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
                 //下发任务
                 obj.Data.TaskNumber = taskInfo.ID;
-                obj.Data.TaskType = SrmTaskTypeEnum.Default;
+                obj.Data.TaskType = SrmTaskType.Default;
                 obj.Data.SLine = station.Entity.Code.ToShort();
                 obj.Data.SCol = 0;
                 obj.Data.SLayer = 0;
@@ -378,7 +378,7 @@ namespace WCS.WorkEngineering.Systems
                 obj.Data.ELine = taskInfo.SrmStation.ToShort();
                 obj.Data.ECol = 0;
                 obj.Data.ELayer = 0;
-                obj.Data.TaskType = SrmTaskTypeEnum.Default;
+                obj.Data.TaskType = SrmTaskType.Default;
                 obj.Data.VoucherNo++;
                 World.Log($"堆垛机任务处理:结束---下发出库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
             }

+ 60 - 0
WCS.WorkEngineering/Systems/桁架.cs

@@ -0,0 +1,60 @@
+using ServiceCenter.Logs;
+using System.ComponentModel;
+using WCS.Core;
+using WCS.WorkEngineering.Extensions;
+using WCS.WorkEngineering.Protocol.Truss;
+using WCS.WorkEngineering.Worlds;
+
+namespace WCS.WorkEngineering.Systems
+{
+    /// <summary>
+    ///  桁架
+    /// </summary>
+    [BelongTo(typeof(MainWorldd))]
+    [Description("桁架")]
+    public class 桁架 : DeviceSystem<Truss>
+    {
+        protected override bool ParallelDo => true;
+
+        protected override bool SaveLogsToFile => true;
+
+        public override void Do(Truss obj)
+        {
+            if (obj.Data.VoucherNo != obj.Data2.VoucherNo) throw new KnownException($"凭证号不一致,DB520:{obj.Data.VoucherNo}-DB521:{obj.Data2.VoucherNo}", LogLevelEnum.High);
+            if (!obj.Data2.Status.HasFlag(TrussStatus.Idle)) return;
+
+            obj.Data.DestPosition_1 = 15;
+            obj.Data.TargetPallte1 = 11;
+            obj.Data.Task1_1 = 1;
+            obj.Data.Dest1_1 = 1;
+            obj.Data.Task1_2 = 2;
+            obj.Data.Dest1_2 = 2;
+            obj.Data.Task1_3 = 3;
+            obj.Data.Dest1_3 = 3;
+            obj.Data.Task1_4 = 4;
+            obj.Data.Dest1_4 = 4;
+            obj.Data.Task1_5 = 5;
+            obj.Data.Dest1_5 = 5;
+            obj.Data.TaskSum1 = 5;
+            obj.Data.DestPosition_2 = 17;
+            obj.Data.TargetPallte2 = 11;
+            obj.Data.Task2_1 = 6;
+            obj.Data.Dest2_1 = 6;
+            obj.Data.Task2_2 = 7;
+            obj.Data.Dest2_2 = 7;
+            obj.Data.Task2_3 = 8;
+            obj.Data.Dest2_3 = 8;
+            obj.Data.Task2_4 = 9;
+            obj.Data.Dest2_4 = 9;
+            obj.Data.Task2_5 = 10;
+            obj.Data.Dest2_5 = 10;
+            obj.Data.TaskSum2 = 5;
+            obj.Data.VoucherNo++;
+        }
+
+        public override bool Select(Device dev)
+        {
+            return dev.HasFlag(Extensions.DeviceFlags.桁架);
+        }
+    }
+}

+ 2 - 2
WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

@@ -12,8 +12,8 @@ using System.Text;
 using WCS.Core;
 using WCS.Entity;
 using WCS.Entity.Protocol.DataStructure;
-using WCS.Entity.Protocol.SRM;
 using WCS.WorkEngineering.Extensions;
+using WCS.WorkEngineering.Protocol.SRM;
 using WCS.WorkEngineering.Systems;
 using WCS.WorkEngineering.WebApi.Models.WCS.Request;
 using WCS.WorkEngineering.WebApi.Models.WCS.Response;
@@ -474,7 +474,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         /// <param name="value5">目标列</param>
         /// <param name="value6">目标层</param>
         [HttpPost]
-        public void SrmDeBug(string srmcod, SrmTaskTypeEnum typeEnum, short value1, short value2, short value3, short value4, short value5, short value6)
+        public void SrmDeBug(string srmcod, SrmTaskType typeEnum, short value1, short value2, short value3, short value4, short value5, short value6)
         {
             World.GetSystemInstance<SrmDebugSystem>().Invoke(new SrmDebugInfo
             {

+ 20 - 22
WCS.WorkEngineering/WorkStart.cs

@@ -1,11 +1,12 @@
 using PlcSiemens.Core.Extension;
 using ServiceCenter;
 using WCS.Core;
-using WCS.Entity.Protocol.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.WorkEngineering.Extensions;
 using WCS.WorkEngineering.Protocol.BCR;
 using WCS.WorkEngineering.Protocol.RGV;
+using WCS.WorkEngineering.Protocol.SRM;
+using WCS.WorkEngineering.Protocol.Truss;
 using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;
 
 namespace WCS.WorkEngineering
@@ -118,28 +119,25 @@ namespace WCS.WorkEngineering
 
             #endregion 初始化RGV相关信息
 
-            #region 初始化机械臂相关信息
-
-            //List<RGVSegmentInfo> RgvInfo = new List<RGVSegmentInfo>
-            //{
-            //    new RGVSegmentInfo( 1, "10.30.37.113"),
-            //    new RGVSegmentInfo( 2, "10.30.37.118"),
-            //    new RGVSegmentInfo( 3, "10.30.37.123"),
-            //    new RGVSegmentInfo( 4, "10.30.37.128"),
-            //    new RGVSegmentInfo( 5, "10.30.37.133"),
-            //    new RGVSegmentInfo( 6, "10.30.37.138")
-            //};
-
-            //foreach (var item in RgvInfo)
-            //{
-            //    var conv = new Device($"RGV{item.Code}");
-            //    conv.AddFlag(DeviceFlags.RGV);
-            //    conv.AddProtocol<IRGV520>(0, 520, item.IP);
-            //    conv.AddProtocol<IRGV521>(0, 521, item.IP);
-            //    //conv.AddProtocol<IStation523>(, 523, item.IP);
-            //}
+            #region 初始化桁架相关信息
 
-            #endregion 初始化RGV相关信息
+            List<TrussSegmentInfo> TrussInfo = new List<TrussSegmentInfo>
+            {
+                new TrussSegmentInfo( 1, "10.30.37.211"),
+            };
+
+            foreach (var item in TrussInfo)
+            {
+                var conv = new Device($"Truss{item.Code}");
+                conv.AddFlag(DeviceFlags.桁架);
+                conv.AddProtocol<ITruss520>(0, 520, item.IP);
+                conv.AddProtocol<ITruss521>(0, 521, item.IP);
+                conv.AddProtocol<ITruss523>(0, 523, item.IP);
+                conv.AddProtocol<ITruss530>(0, 530, item.IP);
+                conv.AddProtocol<ITruss531>(0, 531, item.IP);
+            }
+
+            #endregion 初始化桁架相关信息
 
             #region 初始化堆垛机相关信息
 

+ 1 - 1
WCS.WorkEngineering/Worlds/NoInteractionWorld.cs

@@ -6,7 +6,7 @@ namespace WCS.WorkEngineering.Worlds
     /// 非交互世界
     /// </summary>
     [Description("非交互世界")]
-    public class NoInteractionWorld : MainWorld
+    public class MainWorldd : MainWorld
     {
         /// <summary>
         ///  世界执行周期间隔