Преглед изворни кода

调整输送机相关协议

林豪 左 пре 2 година
родитељ
комит
2e269d41f3

+ 575 - 0
WCS.Entity.Protocol/EntityEnum.cs

@@ -0,0 +1,575 @@
+using System;
+using System.ComponentModel;
+
+namespace WCS.Entity.Protocol
+{
+    /// <summary>
+    /// 输送机状态
+    /// </summary>
+    [Flags]
+    public enum IstationStatus
+    {
+        /// <summary>
+        /// 手动入库
+        /// </summary>
+        [Description("手动入库")]
+        ManualWare = 1 << 0,
+
+        /// <summary>
+        /// 上位机未分配任务
+        /// </summary>
+        [Description("上位机未分配任务")]
+        NoTask = 1 << 1,
+
+        /// <summary>
+        /// 光电状态
+        /// </summary>
+        [Description("光电状态")]
+        PhStatus = 1 << 2,
+
+        /// <summary>
+        /// AGV放货完成信号
+        /// </summary>
+        [Description("AGV放货完成信号")]
+        AgvPutOk = 1 << 3,
+
+        /// <summary>
+        /// AGV取货完成信号
+        /// </summary>
+        [Description("AGV取货完成信号")]
+        AgvGetOk = 1 << 4,
+
+        /// <summary>
+        /// 选中状态位
+        /// </summary>
+        [Description("选中状态位")]
+        Selected = 1 << 5,
+
+        /// <summary>
+        /// 有货状态位
+        /// </summary>
+        [Description("有货状态位")]
+        InStock = 1 << 6,
+
+        /// <summary>
+        /// 运行状态位
+        /// </summary>
+        [Description("运行状态位")]
+        Run = 1 << 7,
+
+        /// <summary>
+        /// 正转
+        /// </summary>
+        [Description("正转")]
+        Forward = 1 << 8,
+
+        /// <summary>
+        /// 反转
+        /// </summary>
+        [Description("反转")]
+        Reverse = 1 << 9,
+
+        /// <summary>
+        /// 右转
+        /// </summary>
+        [Description("右转")]
+        TurnRight = 1 << 10,
+
+        /// <summary>
+        /// 左转
+        /// </summary>
+        [Description("左转")]
+        TurnLeft = 1 << 11,
+
+        /// <summary>
+        /// 上升
+        /// </summary>
+        [Description("上升")]
+        Rise = 1 << 12,
+
+        /// <summary>
+        /// 下降
+        /// </summary>
+        [Description("下降")]
+        Decline = 1 << 13,
+
+        /// <summary>
+        /// 高位
+        /// </summary>
+        [Description("高位")]
+        High = 1 << 14,
+
+        /// <summary>
+        /// 低位
+        /// </summary>
+        [Description("低位")]
+        Low = 1 << 15,
+
+        /// <summary>
+        /// 左位
+        /// </summary>
+        [Description("左位")]
+        Left = 1 << 16,
+
+        /// <summary>
+        /// 中位
+        /// </summary>
+        [Description("中位")]
+        Middle = 1 << 17,
+
+        /// <summary>
+        /// 右位
+        /// </summary>
+        [Description("右位")]
+        Right = 1 << 18,
+
+        /// <summary>
+        /// 前位
+        /// </summary>
+        [Description("前位")]
+        Ago = 1 << 19,
+
+        /// <summary>
+        /// 后位
+        /// </summary>
+        [Description("后位")]
+        After = 1 << 20,
+
+        /// <summary>
+        /// 设备是否报警  1:报警中 0:默认
+        /// </summary>
+        [Description("设备是否报警 ")]
+        Alarm = 1 << 21,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res1 = 1 << 22,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res2 = 1 << 23,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res3 = 1 << 24,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res4 = 1 << 25,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res5 = 1 << 26,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res6 = 1 << 27,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res7 = 1 << 28,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res8 = 1 << 29,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res9 = 1 << 30,
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        [Description("备用")]
+        Res10 = 1 << 31,
+    }
+
+    /// <summary>
+    /// 输送机任务类型
+    /// </summary>
+    public enum IstationTaskType : short
+    {
+        /// <summary>
+        ///无
+        /// </summary>
+        [Description("无")]
+        None = 0,
+
+        /// <summary>
+        /// 直行
+        /// 当前交互点的下一个地址只有一个是可以不写目标地址,
+        /// 任务类型写入当前类型后货物将自动向前行走
+        /// </summary>
+        [Description("直行")]
+        Straight = 1,
+
+        /// <summary>
+        /// 异常排出
+        /// 异常排出口只有一个时可以不写目标地址,
+        /// 任务类型写入当前类型后货物将自动行走至异常排出口
+        /// </summary>
+        [Description("异常排出")]
+        AbnormalDischarge = 2,
+    }
+
+    /// <summary>
+    /// 输送机请求
+    /// </summary>
+    public enum IstationRequest : short
+    {
+        /// <summary>
+        /// 无
+        /// </summary>
+        [Description("无")]
+        None = 0,
+
+        /// <summary>
+        /// 请求
+        /// </summary>
+        [Description("请求")]
+        Request = 1,
+    }
+
+    /// <summary>
+    /// 输送机故障
+    /// </summary>
+    [Flags]
+    public enum IstationFault : ulong
+    {
+        /// <summary>
+        /// Conv0001外检/扫码故障
+        /// </summary>
+        [Description("Conv0001外检/扫码故障")]
+        Conv0001 = 1L << 0,
+
+        /// <summary>
+        /// Conv0002前超长故障
+        /// </summary>
+        [Description("Conv0002前超长故障")]
+        Conv0002 = 1L << 1,
+
+        /// <summary>
+        /// Conv0003后超长故障
+        /// </summary>
+        [Description("Conv0003后超长故障")]
+        Conv0003 = 1L << 2,
+
+        /// <summary>
+        /// Conv0004左超宽故障
+        /// </summary>
+        [Description("Conv0004左超宽故障")]
+        Conv0004 = 1L << 3,
+
+        /// <summary>
+        /// Conv0005右超宽故障
+        /// </summary>
+        [Description("Conv0005右超宽故障")]
+        Conv0005 = 1L << 4,
+
+        /// <summary>
+        /// Conv0006超高故障
+        /// </summary>
+        [Description("Conv0006超高故障")]
+        Conv0006 = 1L << 5,
+
+        /// <summary>
+        /// Conv0007条码未读出
+        /// </summary>
+        [Description("Conv0007条码未读出")]
+        Conv0007 = 1L << 6,
+
+        /// <summary>
+        /// Conv0008超重
+        /// </summary>
+        [Description("Conv0008超重")]
+        Conv0008 = 1L << 7,
+
+        /// <summary>
+        /// Conv0009总故障
+        /// </summary>
+        [Description("Conv0009总故障")]
+        Conv0009 = 1L << 8,
+
+        /// <summary>
+        /// Conv0010急停故障
+        /// </summary>
+        [Description("Conv0010急停故障")]
+        Conv0010 = 1L << 9,
+
+        /// <summary>
+        /// Conv0011超时故障
+        /// </summary>
+        [Description("Conv0011超时故障")]
+        Conv0011 = 1L << 10,
+
+        /// <summary>
+        /// Conv0012驱动故障
+        /// </summary>
+        [Description("Conv0012驱动故障")]
+        Conv0012 = 1L << 11,
+
+        /// <summary>
+        /// Conv0013空气开关故障
+        /// </summary>
+        [Description("Conv0013空气开关故障")]
+        Conv0013 = 1L << 12,
+
+        /// <summary>
+        /// Conv0014传感器异常故障
+        /// </summary>
+        [Description("Conv0014传感器异常故障")]
+        Conv0014 = 1L << 13,
+
+        /// <summary>
+        /// Conv0015其它故障汇入
+        /// </summary>
+        [Description("Conv0015其它故障汇入")]
+        Conv0015 = 1L << 14,
+
+        /// <summary>
+        /// Conv0016无Ready信号请检查柜内空开
+        /// </summary>
+        [Description("Conv0016无Ready信号请检查柜内空开")]
+        Conv0016 = 1L << 15,
+
+        /// <summary>
+        /// Conv0017超时故障2
+        /// </summary>
+        [Description("Conv0017超时故障2")]
+        Conv0017 = 1L << 16,
+
+        /// <summary>
+        /// Conv0018驱动故障2
+        /// </summary>
+        [Description("Conv0018驱动故障2")]
+        Conv0018 = 1L << 17,
+
+        /// <summary>
+        /// Conv0019空气开关故障2
+        /// </summary>
+        [Description("Conv0019空气开关故障2")]
+        Conv0019 = 1L << 18,
+
+        /// <summary>
+        /// Conv0020左极限故障
+        /// </summary>
+        [Description("Conv0020左极限故障")]
+        Conv0020 = 1L << 19,
+
+        /// <summary>
+        /// Conv0021右极限故障
+        /// </summary>
+        [Description("Conv0021右极限故障")]
+        Conv0021 = 1L << 20,
+
+        /// <summary>
+        /// Conv0022无Ready信号请检查柜内空开2
+        /// </summary>
+        [Description("Conv0022无Ready信号请检查柜内空开2 ")]
+        Conv0022 = 1L << 21,
+
+        /// <summary>
+        /// Conv0023前极限故障
+        /// </summary>
+        [Description("Conv0023前极限故障")]
+        Conv0023 = 1L << 22,
+
+        /// <summary>
+        /// Conv0024后极限故障
+        /// </summary>
+        [Description("Conv0024后极限故障")]
+        Conv0024 = 1L << 23,
+
+        /// <summary>
+        /// Conv0025备用
+        /// </summary>
+        [Description("Conv0025备用")]
+        Conv0025 = 1L << 24,
+
+        /// <summary>
+        /// Conv0026备用
+        /// </summary>
+        [Description("Conv0026备用")]
+        Conv0026 = 1L << 25,
+
+        /// <summary>
+        /// Conv0027备用
+        /// </summary>
+        [Description("Conv0027备用")]
+        Conv0027 = 1L << 26,
+
+        /// <summary>
+        /// Conv0028备用
+        /// </summary>
+        [Description("Conv0028备用")]
+        Conv0028 = 1L << 27,
+
+        /// <summary>
+        /// Conv0029备用
+        /// </summary>
+        [Description("Conv0029备用")]
+        Conv0029 = 1L << 28,
+
+        /// <summary>
+        /// Conv0030备用
+        /// </summary>
+        [Description("Conv0030备用")]
+        Conv0030 = 1L << 29,
+
+        /// <summary>
+        /// Conv0031备用
+        /// </summary>
+        [Description("Conv0031备用")]
+        Conv0031 = 1L << 30,
+
+        /// <summary>
+        /// Conv0032备用
+        /// </summary>
+        [Description("Conv0032备用")]
+        Conv0032 = 1L << 31,
+
+        /// <summary>
+        /// Conv0033备用
+        /// </summary>
+        [Description("Conv0033备用")]
+        Conv0033 = 1L << 32,
+
+        /// <summary>
+        /// Conv0034备用
+        /// </summary>
+        [Description("Conv0034备用")]
+        Conv0034 = 1L << 33,
+
+        /// <summary>
+        /// Conv0035备用
+        /// </summary>
+        [Description("Conv0035备用")]
+        Conv0035 = 1L << 34,
+
+        /// <summary>
+        /// Conv0036备用
+        /// </summary>
+        [Description("Conv0036备用")]
+        Conv0036 = 1L << 35,
+
+        /// <summary>
+        /// Conv0037备用
+        /// </summary>
+        [Description("Conv0037备用")]
+        Conv0037 = 1L << 36,
+
+        /// <summary>
+        /// Conv0038备用
+        /// </summary>
+        [Description("Conv0038备用")]
+        Conv0038 = 1L << 37,
+
+        /// <summary>
+        /// Conv0039备用
+        /// </summary>
+        [Description("Conv0039备用")]
+        Conv0039 = 1L << 38,
+
+        /// <summary>
+        /// Conv0040备用
+        /// </summary>
+        [Description("Conv0040备用")]
+        Conv0040 = 1L << 39,
+
+        /// <summary>
+        /// Conv0041备用
+        /// </summary>
+        [Description("Conv0041备用")]
+        Conv0041 = 1L << 40,
+
+        /// <summary>
+        /// Conv0042备用
+        /// </summary>
+        [Description("Conv0042备用")]
+        Conv0042 = 1L << 41,
+
+        /// <summary>
+        /// Conv0043备用
+        /// </summary>
+        [Description("Conv0043备用")]
+        Conv0043 = 1L << 42,
+
+        /// <summary>
+        /// Conv0044备用
+        /// </summary>
+        [Description("Conv0044备用")]
+        Conv0044 = 1L << 43,
+
+        /// <summary>
+        /// Conv0045备用
+        /// </summary>
+        [Description("Conv0045备用")]
+        Conv0045 = 1L << 44,
+
+        /// <summary>
+        /// Conv0046备用
+        /// </summary>
+        [Description("Conv0046备用")]
+        Conv0046 = 1L << 45,
+
+        /// <summary>
+        /// Conv0047备用
+        /// </summary>
+        [Description("Conv0047备用")]
+        Conv0047 = 1L << 46,
+
+        /// <summary>
+        /// Conv0048备用
+        /// </summary>
+        [Description("Conv0048备用")]
+        Conv0048 = 1L << 47,
+    }
+
+    /// <summary>
+    /// 输送机运行模式
+    /// </summary>
+    public enum IstationAutoStatus
+    {
+        /// <summary>
+        /// 远程/自动
+        /// </summary>
+        [Description("远程/自动")]
+        Remote = 1,
+
+        /// <summary>
+        /// 半自动
+        /// </summary>
+        [Description("半自动")]
+        SemiAutomatic = 2,
+
+        /// <summary>
+        /// 手动
+        /// </summary>
+        [Description("手动")]
+        Manual = 3,
+
+        /// <summary>
+        /// 维护
+        /// </summary>
+        [Description("维护")]
+        Maintain
+    }
+}

+ 14 - 32
WCS.Entity.Protocol/Station/IStation520.cs

@@ -1,4 +1,6 @@
-namespace WCS.Entity.Protocol
+using System.ComponentModel;
+
+namespace WCS.Entity.Protocol.Station
 {
     /// <summary>
     ///
@@ -8,51 +10,31 @@
         /// <summary>
         ///  任务号
         /// </summary>
-        int Tasknum { get; set; }
-
-        /// <summary>
-        /// 货物数条码 涂布入库口代表AGV任务
-        /// </summary>
-        int Goodscode { get; set; }
-
-        /// <summary>
-        /// 货物数量(1.两个位置放1个货物,2.两个位置放2个货物)
-        /// </summary>
-        short Goodsnum { get; set; }
-
-        /// <summary>
-        /// 货物高度
-        /// </summary>
-        short GoodsSize { get; set; }
+        [Description("任务号")]
+        int TaskNumber { get; set; }
 
         /// <summary>
         /// 起始地址
         /// </summary>
-        short Goodsstart { get; set; }
+        [Description("起始地址")]
+        short GoodsStart { get; set; }
 
         /// <summary>
         /// 目标地址
         /// </summary>
-        short Goodsend { get; set; }
+        [Description("目标地址")]
+        short GoodsEnd { get; set; }
 
         /// <summary>
-        /// 请求
+        /// 任务类型
         /// </summary>
-        IstationRequest Request { get; set; }
-
-        /// <summary>
-        /// 命令类型
-        /// </summary>  
-        IstationCmdType CmdType { get; set; }
+        [Description("任务类型")]
+        IstationTaskType TaskType { get; set; }
 
         /// <summary>
         /// 凭证号 每次累加
         /// </summary>
+        [Description("凭证号")]
         short VoucherNo { get; set; }
-
-        /// <summary>
-        /// 输送机状态
-        /// </summary>
-        IstationStatus Istation521Status { get; set; }
     }
-}
+}

+ 20 - 76
WCS.Entity.Protocol/Station/IStation521.cs

@@ -1,6 +1,6 @@
-using System;
+using System.ComponentModel;
 
-namespace WCS.Entity.Protocol
+namespace WCS.Entity.Protocol.Station
 {
     /// <summary>
     /// 输送机交互信号 读
@@ -10,99 +10,43 @@ namespace WCS.Entity.Protocol
         /// <summary>
         ///  任务号
         /// </summary>
-        int Tasknum { get; set; }
-
-        /// <summary>
-        /// 货物数条码 涂布入库扫码位是AGV任务号
-        /// </summary>
-        int Goodscode { get; set; }
-
-        /// <summary>
-        /// 货物数量(1.两个位置放1个货物,2.两个位置放2个货物)
-        /// </summary>
-        short Goodsnum { get; set; }
-
-        /// <summary>
-        /// 货物高度
-        /// </summary>
-        short GoodsSize { get; set; }
+        [Description("任务号")]
+        int TaskNumber { get; set; }
 
         /// <summary>
         /// 起始地址
         /// </summary>
-        short Goodsstart { get; set; }
+        [Description("起始地址")]
+        short GoodsStart { get; set; }
 
         /// <summary>
         /// 目标地址
         /// </summary>
-        short Goodsend { get; set; }
+        [Description("目标地址")]
+        short GoodsEnd { get; set; }
 
         /// <summary>
-        /// 请求
+        /// 凭证号 每次累加
         /// </summary>
-        IstationRequest Request { get; set; }
+        [Description("凭证号")]
+        short VoucherNo { get; set; }
 
         /// <summary>
-        /// 命令类型
+        /// 请求
         /// </summary>
-        IstationCmdType CmdType { get; set; }
+        [Description("请求")]
+        IstationRequest Request { get; set; }
 
         /// <summary>
-        /// 凭证号 每次累加
+        /// 运行模式
         /// </summary>
-        short VoucherNo { get; set; }
+        [Description("运行模式")]
+        IstationAutoStatus AutoStatus { get; set; }
 
         /// <summary>
-        /// 输送机状态
+        /// 状态
         /// </summary>
+        [Description("状态")]
         IstationStatus Status { get; set; }
     }
-
-    /// <summary>
-    /// 输送机请求
-    /// </summary>
-    public enum IstationRequest : short
-    {
-        无 = 0,
-        扫码入库 = 1,
-        请求分配目标地址 = 2,
-        月台出库口任务完成 = 3,
-        堆垛机放货完成请求目标地址 = 4,
-    }
-
-    /// <summary>
-    /// 输送机确认
-    /// </summary>
-    public enum IstationCmdType : short
-    {
-        无 = 0,
-        扫码入库 = 1,
-        分配目标地址 = 2,
-        月台出库口任务完成 = 3,
-        堆垛机放货完成请求目标地址 = 4,
-    }
-
-    /// <summary>
-    /// 输送机状态
-    /// </summary>
-    [Flags]
-    public enum IstationStatus : ushort
-    {
-        手动入库 = 1 << 0,
-        备用2 = 1 << 1,
-        RES3 = 1 << 2,
-        上位机未分配任务 = 1 << 3,
-        光电状态 = 1 << 4,
-        外检扫码故障 = 1 << 5,
-        前超长故障 = 1 << 6,
-        后超长故障 = 1 << 7,
-        左超宽故障 = 1 << 8,
-        右超宽故障 = 1 << 9,
-        超高故障 = 1 << 10,
-        条码未读出 = 1 << 11,
-        超重 = 1 << 12,
-        AGV放货完成信号 = 1 << 13,
-        AGV取货完成信号 = 1 << 14,
-        RES7 = 1 << 15,
-    }
-}
+}

+ 4 - 67
WCS.Entity.Protocol/Station/IStation523.cs

@@ -1,6 +1,6 @@
-using System;
+using System.ComponentModel;
 
-namespace WCS.Entity.Protocol
+namespace WCS.Entity.Protocol.Station
 {
     /// <summary>
     /// 输送机状态读取协议
@@ -10,70 +10,7 @@ namespace WCS.Entity.Protocol
         /// <summary>
         /// 警报
         /// </summary>
+        [Description("警报")]
         StationFault Alarm { get; set; }
-
-        /// <summary>
-        /// 备用
-        /// </summary>
-        short RES { get; set; }
-
-        /// <summary>
-        /// 允许状态 值为零时是手动
-        /// </summary>
-        StationStatus Status { get; set; }
-
-        /// <summary>
-        /// 运行时间
-        /// </summary>
-        [IgnoreChanging]
-        float RunTime { get; set; }
-    }
-
-    /// <summary>
-    /// 输送机故障
-    /// </summary>
-    [Flags]
-    public enum StationFault : ushort
-    {
-        总故障 = 1 << 0,
-        急停故障 = 1 << 1,
-        超时故障 = 1 << 2,
-        驱动故障 = 1 << 3,
-        空气开关故障 = 1 << 4,
-        传感器异常故障 = 1 << 5,
-        其它故障汇入 = 1 << 6,
-        无Ready信号请检查柜内空开 = 1 << 7,
-        超时故障2 = 1 << 8,
-        驱动故障2 = 1 << 9,
-        空气开关故障2 = 1 << 10,
-        左极限故障 = 1 << 11,
-        右极限故障 = 1 << 12,
-        无Ready信号请检查柜内空开2 = 1 << 13,
-        前极限故障 = 1 << 14,
-        后极限故障 = 1 << 15,
-    }
-
-    /// <summary>
-    /// 输送机状态
-    /// </summary>
-    [Flags]
-    public enum StationStatus : ushort
-    {
-        自动 = 1 << 0,
-        选中状态位 = 1 << 1,
-        有货状态位 = 1 << 2,
-        运行状态位 = 1 << 3,
-        正转 = 1 << 4,
-        反转 = 1 << 5,
-        上升_右转 = 1 << 6,
-        下降_左转 = 1 << 7,
-        高位 = 1 << 8,
-        低位 = 1 << 9,
-        左位 = 1 << 10,
-        中位 = 1 << 11,
-        右位 = 1 << 12,
-        前位 = 1 << 13,
-        后位 = 1 << 14,
-        备用 = 1 << 15,
     }
-}
+}

+ 30 - 29
WCS.Entity.Protocol/Station/WCS_Station520.cs

@@ -1,4 +1,5 @@
-using SqlSugar;
+using System.ComponentModel;
+using SqlSugar;
 using System.Runtime.Serialization;
 
 namespace WCS.Entity.Protocol.Station
@@ -10,44 +11,44 @@ namespace WCS.Entity.Protocol.Station
     [DataContract]
     public class WCS_Station520 : WCS_PROTOCOLDATA, IStation520
     {
+        /// <summary>
+        /// 任务号
+        /// </summary>
         [SugarColumn(ColumnDescription = "任务号")]
+        [Description("任务号")]
         [DataMember(Order = 0)]
-        public int Tasknum { get; set; }
+        public int TaskNumber { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物数条码 涂布入库口代表AGV任务")]
+        /// <summary>
+        /// 起始地址
+        /// </summary>
+        [SugarColumn(ColumnDescription = "起始地址")]
+        [Description("起始地址")]
         [DataMember(Order = 1)]
-        public int Goodscode { get; set; }
+        public short GoodsStart { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物数量(1.两个位置放1个货物,2.两个位置放2个货物)")]
+        /// <summary>
+        /// 目标地址
+        /// </summary>
+        [SugarColumn(ColumnDescription = "目标地址")]
+        [Description("目标地址")]
         [DataMember(Order = 2)]
-        public short Goodsnum { get; set; }
+        public short GoodsEnd { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物高度")]
+        /// <summary>
+        /// 任务类型
+        /// </summary>
+        [SugarColumn(ColumnDescription = "任务类型")]
+        [Description("任务类型")]
         [DataMember(Order = 3)]
-        public short GoodsSize { get; set; }
+        public IstationTaskType TaskType { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始地址")]
+        /// <summary>
+        /// 凭证号
+        /// </summary>
+        [SugarColumn(ColumnDescription = "凭证号")]
+        [Description("凭证号")]
         [DataMember(Order = 4)]
-        public short Goodsstart { get; set; }
-
-        [SugarColumn(ColumnDescription = "目标地址")]
-        [DataMember(Order = 5)]
-        public short Goodsend { get; set; }
-
-        [SugarColumn(ColumnDescription = "请求")]
-        [DataMember(Order = 6)]
-        public IstationRequest Request { get; set; }
-
-        [SugarColumn(ColumnDescription = "命令类型")]
-        [DataMember(Order = 7)]
-        public IstationCmdType CmdType { get; set; }
-
-        [SugarColumn(ColumnDescription = "凭证号 每次累加")]
-        [DataMember(Order = 8)]
         public short VoucherNo { get; set; }
-
-        [SugarColumn(ColumnDescription = "输送机状态")]
-        [DataMember(Order = 9)]
-        public IstationStatus Istation521Status { get; set; }
     }
 }

+ 41 - 24
WCS.Entity.Protocol/Station/WCS_Station521.cs

@@ -1,4 +1,5 @@
 using SqlSugar;
+using System.ComponentModel;
 using System.Runtime.Serialization;
 
 namespace WCS.Entity.Protocol.Station
@@ -7,44 +8,60 @@ namespace WCS.Entity.Protocol.Station
     [DataContract]
     public class WCS_Station521 : WCS_PROTOCOLDATA, IStation521
     {
+        /// <summary>
+        /// 任务号
+        /// </summary>
         [SugarColumn(ColumnDescription = "任务号")]
+        [Description("任务号")]
         [DataMember(Order = 0)]
-        public int Tasknum { get; set; }
+        public int TaskNumber { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物数条码 涂布入库扫码位是AGV任务号")]
+        /// <summary>
+        /// 起始地址
+        /// </summary>
+        [SugarColumn(ColumnDescription = "起始地址")]
+        [Description("起始地址")]
         [DataMember(Order = 1)]
-        public int Goodscode { get; set; }
+        public short GoodsStart { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物数量(1.两个位置放1个货物,2.两个位置放2个货物)")]
+        /// <summary>
+        /// 目标地址
+        /// </summary>
+        [SugarColumn(ColumnDescription = "目标地址")]
+        [Description("目标地址")]
         [DataMember(Order = 2)]
-        public short Goodsnum { get; set; }
+        public short GoodsEnd { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物高度")]
+        /// <summary>
+        /// 凭证号
+        /// </summary>
+        [SugarColumn(ColumnDescription = "凭证号")]
+        [Description("凭证号")]
         [DataMember(Order = 3)]
-        public short GoodsSize { get; set; }
+        public short VoucherNo { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始地址")]
+        /// <summary>
+        /// 请求
+        /// </summary>
+        [SugarColumn(ColumnDescription = "请求")]
+        [Description("请求")]
         [DataMember(Order = 4)]
-        public short Goodsstart { get; set; }
+        public IstationRequest Request { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标地址")]
+        /// <summary>
+        /// 运行模式
+        /// </summary>
+        [SugarColumn(ColumnDescription = "运行模式")]
+        [Description("运行模式")]
         [DataMember(Order = 5)]
-        public short Goodsend { get; set; }
+        public IstationAutoStatus AutoStatus { get; set; }
 
-        [SugarColumn(ColumnDescription = "请求")]
+        /// <summary>
+        /// 状态
+        /// </summary>
+        [SugarColumn(ColumnDescription = "状态")]
+        [Description("状态")]
         [DataMember(Order = 6)]
-        public IstationRequest Request { get; set; }
-
-        [SugarColumn(ColumnDescription = "命令类型")]
-        [DataMember(Order = 7)]
-        public IstationCmdType CmdType { get; set; }
-
-        [SugarColumn(ColumnDescription = "凭证号 每次累加")]
-        [DataMember(Order = 8)]
-        public short VoucherNo { get; set; }
-
-        [SugarColumn(ColumnDescription = "输送机状态")]
-        [DataMember(Order = 9)]
         public IstationStatus Status { get; set; }
     }
 }

+ 3 - 12
WCS.Entity.Protocol/Station/WCS_Station523.cs

@@ -10,20 +10,11 @@ namespace WCS.Entity.Protocol.Station
     [DataContract]
     public class WCS_Station523 : WCS_PROTOCOLDATA, IStation523
     {
+        /// <summary>
+        /// 警报
+        /// </summary>
         [SugarColumn(ColumnDescription = "警报")]
         [DataMember(Order = 0)]
         public StationFault Alarm { get; set; }
-
-        [SugarColumn(ColumnDescription = "备用")]
-        [DataMember(Order = 1)]
-        public short RES { get; set; }
-
-        [SugarColumn(ColumnDescription = "允许状态 值为零时是手动")]
-        [DataMember(Order = 2)]
-        public StationStatus Status { get; set; }
-
-        [SugarColumn(ColumnDescription = "运行时间")]
-        [DataMember(Order = 3)]
-        public float RunTime { get; set; }
     }
 }

+ 36 - 34
WCS.WorkEngineering/Extensions/DeviceExtension.cs

@@ -12,6 +12,7 @@ using WCS.Core.Redis;
 using WCS.Entity;
 using WCS.Entity.Protocol;
 using WCS.Entity.Protocol.RGV;
+using WCS.Entity.Protocol.Station;
 using WCS.Service.Helpers;
 using LogHelper = WCS.Service.Helpers.LogHelper;
 using TaskStatus = WCS.Entity.TaskStatus;
@@ -365,13 +366,13 @@ namespace WCS.Service.Extensions
         /// <param name="type">给当前设备组下发任务时需要的请求</param>
         /// <returns>true:不满足执行条件需要进行停止执行  false:表示满足条件不需要停止执行 </returns>
         /// <exception cref="Exception"></exception>
-        public void WhetherToExecute(IstationRequest type = IstationRequest.)
+        public void WhetherToExecute(IstationRequest type = IstationRequest.None)
         {
             foreach (var item in Items)
             {
-                if (item.Data.VoucherNo != item.Data2.VoucherNo) throw new WarnException($"等待{item.Entity.CODE}执行任务{item.Data.Tasknum},凭证号不一致");
-                if (item.Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException($"{item.Entity.CODE}运行中");
-                if (!item.Data2.Status.HasFlag(IstationStatus.光电状态)) throw new DoException($"[{item.Entity.CODE}]无光电");
+                if (item.Data.VoucherNo != item.Data2.VoucherNo) throw new WarnException($"等待{item.Entity.CODE}执行任务{item.Data.TaskNumber},凭证号不一致");
+                if (item.Data2.Status.HasFlag(IstationStatus.Run)) throw new DoException($"{item.Entity.CODE}运行中");
+                if (!item.Data2.Status.HasFlag(IstationStatus.PhStatus)) throw new DoException($"[{item.Entity.CODE}]无光电");
             }
         }
 
@@ -381,8 +382,8 @@ namespace WCS.Service.Extensions
         /// <returns></returns>
         public List<Device<IStation520, IStation521, IStation523>> RGVGetTaskedDevice()
         {
-            var a = Items.Where(v => v.Data2.Status.HasFlag(IstationStatus.光电状态) && v.Data2.Tasknum > 10000)
-                        .Where(v => v.Entity.CODE.ToShort() != v.Data2.Goodsend && v.Data2.Goodsend != 0)
+            var a = Items.Where(v => v.Data2.Status.HasFlag(IstationStatus.PhStatus) && v.Data2.TaskNumber > 10000)
+                        .Where(v => v.Entity.CODE.ToShort() != v.Data2.GoodsEnd && v.Data2.GoodsEnd != 0)
                         .ToList();
             return a.Count == 0 ? null : a;
         }
@@ -396,8 +397,7 @@ namespace WCS.Service.Extensions
             if (Entity.CODE is "G2" or "G3") return true;
             var dCount = Device.Where(v => v.CODE is "G1" or "G1340" or "G1337").Select(v => v.Create<StationDeviceGroup>()).Count(v =>
             {
-                var count = v.Items.Count(v => !v.Data3.Status.HasFlag(StationStatus.运行状态位) && !v.Data2.Status.HasFlag(IstationStatus.光电状态) && v.Data2.Tasknum < 10000
-                  && v.Data3.Status.HasFlag(StationStatus.自动));
+                var count = v.Items.Count(v => !v.Data2.Status.HasFlag(IstationStatus.Run) && !v.Data2.Status.HasFlag(IstationStatus.PhStatus) && v.Data2.TaskNumber < 10000);
                 return count == 2 ? true : false;
             });
             var rCount = rgvDevice.RGVList.Count(v => v.Data.DestPosition_1 == 1);
@@ -415,17 +415,17 @@ namespace WCS.Service.Extensions
             //获取需要执行的设备信息
             foreach (var dev in Items)
             {
-                if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
+                if (!dev.Data2.Status.HasFlag(IstationStatus.PhStatus))
                 {
                     InfoLog.INFO_INFO($"{dev.Entity.CODE}--没有光电");
                     continue;
                 }
-                if (dev.Data2.Request != IstationRequest.扫码入库)
+                if (dev.Data2.Request != IstationRequest.Request)
                 {
                     InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有扫码入库请求--1", Entity.CODE);
                     continue;
                 };
-                if (dev.Data2.Tasknum > 10000)
+                if (dev.Data2.TaskNumber > 10000)
                 {
                     InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求,但已有任务号", Entity.CODE);
                     continue;
@@ -455,17 +455,17 @@ namespace WCS.Service.Extensions
             //获取需要执行的设备信息
             foreach (var dev in Items)
             {
-                if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
+                if (!dev.Data2.Status.HasFlag(IstationStatus.PhStatus))
                 {
                     InfoLog.INFO_INFO($"{dev.Entity.CODE}--没有光电");
                     continue;
                 }
-                if (dev.Data2.Request != IstationRequest.请求分配目标地址)
+                if (dev.Data2.Request != IstationRequest.Request)
                 {
                     InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有分配目标地址请求--2", Entity.CODE);
                     continue;
                 };
-                if (dev.Data2.Tasknum < 10000)
+                if (dev.Data2.TaskNumber < 10000)
                 {
                     InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求没有任务号", Entity.CODE);
                     continue;
@@ -529,8 +529,8 @@ namespace WCS.Service.Extensions
                 throw new WarnException("已有RGV执行中");
             foreach (var item in Items)
             {
-                if (item.Data3.Status.HasFlag(StationStatus.运行状态位)) return false;
-                if (!item.Data2.Status.HasFlag(IstationStatus.光电状态)) return false;
+                if (item.Data2.Status.HasFlag(IstationStatus.Run)) return false;
+                if (!item.Data2.Status.HasFlag(IstationStatus.PhStatus)) return false;
             }
 
             return true;
@@ -562,40 +562,42 @@ namespace WCS.Service.Extensions
         /// <param name="type">给当前设备组下发任务时需要的请求</param>
         /// <returns>true:不满足执行条件需要进行停止执行  false:表示满足条件不需要停止执行 </returns>
         /// <exception cref="Exception"></exception>
-        public void WhetherToExecute(IstationRequest type = IstationRequest.)
+        public void WhetherToExecute(IstationRequest type = IstationRequest.None)
         {
             //正在运行
-            if (Data3.Status.HasFlag(StationStatus.运行状态位)) throw new DoException("运行中");
+            if (Data2.Status.HasFlag(IstationStatus.Run)) throw new DoException("运行中");
             //上一次的任务还未执行
             if (Data.VoucherNo != Data2.VoucherNo)
-                throw new WarnException($"等待任务[{Data2.Tasknum}]执行");
+                throw new WarnException($"等待任务[{Data2.TaskNumber}]执行");
             //没有光电
-            if (!Data2.Status.HasFlag(IstationStatus.光电状态)) throw new DoException("无光电"); ;
+            if (!Data2.Status.HasFlag(IstationStatus.PhStatus)) throw new DoException("无光电"); ;
             //没有任务号
             switch (type)
             {
-                case IstationRequest.:
-                    if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
+                case IstationRequest.None:
+                    if (Data2.TaskNumber < 10000 && Data.TaskNumber < 10000)
                         throw new WarnException($"设备无任务");
                     break;
 
-                case IstationRequest.扫码入库:
-                    if (Data2.Tasknum > 10000 && Data.Tasknum > 10000)
+                case IstationRequest.Request:
+                    if (Data2.TaskNumber > 10000 && Data.TaskNumber > 10000)
                         throw new WarnException($"设备已有任务任务");
                     break;
 
-                case IstationRequest.堆垛机放货完成请求目标地址:
-                    if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
-                        throw new WarnException($"设备无任务信息");
-                    break;
-
-                case IstationRequest.请求分配目标地址:
-                    if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
-                        throw new WarnException($"设备无任务信息");
-                    break;
+                //case IstationRequest.堆垛机放货完成请求目标地址:
+                //    if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
+                //        throw new WarnException($"设备无任务信息");
+                //    break;
+
+                //case IstationRequest.请求分配目标地址:
+                //    if (Data2.Tasknum < 10000 && Data.Tasknum < 10000)
+                //        throw new WarnException($"设备无任务信息");
+                //    break;
+                default:
+                    throw new ArgumentOutOfRangeException(nameof(type), type, null);
             }
             //没有请求
-            if (type != IstationRequest. && Data2.Request != type)
+            if (type != IstationRequest.None && Data2.Request != type)
                 throw new WarnException($"有光电无{type}请求");
         }