林豪 左 2 anni fa
parent
commit
25628979d5

+ 7 - 7
WCS.Core/DataTrans/DataBlock.cs

@@ -50,10 +50,10 @@ namespace WCS.Core.DataTrans
                 if (Entity.NOUPDATE && Data != null) return;
 
                 //读取数据失败,并且已持续3秒钟
-                if (_failed && (DateTime.Now - _aliveTime).TotalMilliseconds < 3000)
-                {
-                    throw new Exception(Entity.NAME + "设备数据读取失败,请检查网络或相关配置项是否正确");
-                }
+                //if (_failed && (DateTime.Now - _aliveTime).TotalMilliseconds < 3000)
+                //{
+                //    throw new Exception(Entity.NAME + "设备数据读取失败,请检查网络或相关配置项是否正确");
+                //}
                 //更新时间
                 _aliveTime = DateTime.Now;
 
@@ -108,9 +108,9 @@ namespace WCS.Core.DataTrans
                 //访问耗时大于50毫秒时记录
                 if (sw.ElapsedMilliseconds > 400)
                 {
-                    //Console.ForegroundColor = ConsoleColor.Yellow;
-                    //Console.WriteLine($"{Entity.PLC.NAME}{Entity.PLC.IP}读取数据耗时:{sw.ElapsedMilliseconds}");
-                    //Console.ResetColor();
+                    Console.ForegroundColor = ConsoleColor.Yellow;
+                    Console.WriteLine($"{Entity.PLC.NAME}{Entity.PLC.IP}读取数据耗时:{sw.ElapsedMilliseconds}");
+                    Console.ResetColor();
                 }
             }
         }

+ 69 - 79
WCS.Entity.Protocol/SRM/ISRM520.cs

@@ -10,189 +10,179 @@ namespace WCS.Entity.Protocol
         #region 工位一
 
         /// <summary>
-        /// WCS心跳信号
+        /// 任务 ID
         /// </summary>
-        short Handshake_1 { get; set; }
-
-        /// <summary>
-        /// 货物数量
-        /// </summary>
-        short RES1_1 { get; set; }
+        int TaskID_1 { get; set; }
 
         /// <summary>
-        /// 备用2
+        /// 任务起始行
         /// </summary>
-        short RES2_1 { get; set; }
+        short RowPos1_1 { get; set; }
 
         /// <summary>
-        /// 货物类型
+        /// 任务行走起始列
         /// </summary>
-        short GoodsType_1 { get; set; }
+        short TravelPos1_1 { get; set; }
 
         /// <summary>
-        /// 行驶速度
+        /// 任务提升起始层
         /// </summary>
-        SCSpeedMode SpeedMode_1 { get; set; }
+        short LiftPos1_1 { get; set; }
 
         /// <summary>
-        /// 起始行
+        /// 任务起始伸叉深度
         /// </summary>
-        short SLine_1 { get; set; }
+        SRMForkPos ForkStartPos1_1 { get; set; }
 
         /// <summary>
-        /// 起始列
+        /// 任务目标行
         /// </summary>
-        short SCol_1 { get; set; }
+        short RowPos2_1 { get; set; }
 
         /// <summary>
-        /// 起始层
+        /// 任务行走目标列
         /// </summary>
-        short SLayer_1 { get; set; }
+        short TravelPos2_1 { get; set; }
 
         /// <summary>
-        /// 起始深度
+        /// 任务提升目标层
         /// </summary>
-        short SDepth_1 { get; set; }
+        short LiftPos2_1 { get; set; }
 
         /// <summary>
-        /// 目标行
+        /// 任务目标伸叉深度
         /// </summary>
-        short ELine_1 { get; set; }
+        SRMForkPos ForkDestPos2_1 { get; set; }
 
         /// <summary>
-        /// 目标列
+        /// 货物类型 根据实际情况决定具体值含义
         /// </summary>
-        short ECol_1 { get; set; }
+        short GoodsType_1 { get; set; }
 
         /// <summary>
-        /// 目标层
+        /// 任务类型
         /// </summary>
-        short ELayer_1 { get; set; }
+        SRMTaskType TaskType_1 { get; set; }
 
         /// <summary>
-        /// 目标深度
+        /// 任务完成确认清除信号
         /// </summary>
-        short EDepth_1 { get; set; }
+        short OK_ACK_1 { get; set; }
 
         /// <summary>
-        ///任务号
+        /// 备用
         /// </summary>
-        int TaskID_1 { get; set; }
+        int RES_1_1 { get; set; }
 
         /// <summary>
-        /// 触发
+        ///备用
         /// </summary>
-        short VoucherNo_1 { get; set; }
+        short RES_1_2 { get; set; }
 
         /// <summary>
-        /// 完成任务触发
+        /// 备用
         /// </summary>
-        short FinishedACK_1 { get; set; }
+        short RES_1_3 { get; set; }
 
         /// <summary>
-        /// 备用3
+        /// 备用
         /// </summary>
-        short RES3_1 { get; set; }
+        short RES_1_4 { get; set; }
 
         /// <summary>
-        /// 备用4
+        /// 备用
         /// </summary>
-        short RES4_1 { get; set; }
+        SRMStatus RES_1_5 { get; set; }
 
         #endregion 工位一
 
         #region 二工位
 
         /// <summary>
-        /// WCS心跳信号
-        /// </summary>
-        short Handshake_2 { get; set; }
-
-        /// <summary>
-        /// 货物数量
+        /// 任务 ID
         /// </summary>
-        short RES1_2 { get; set; }
+        int TaskID_2 { get; set; }
 
         /// <summary>
-        /// 备用2
+        /// 任务起始行
         /// </summary>
-        short RES2_2 { get; set; }
+        short RowPos1_2 { get; set; }
 
         /// <summary>
-        /// 货物类型
+        /// 任务行走起始列
         /// </summary>
-        short GoodsType_2 { get; set; }
+        short Travelpos1_2 { get; set; }
 
         /// <summary>
-        /// 行驶速度
+        /// 任务提升起始层
         /// </summary>
-        SCSpeedMode SCSpeedMode_2 { get; set; }
+        short Liftpos1_2 { get; set; }
 
         /// <summary>
-        /// 起始行
+        /// 任务起始伸叉深度
         /// </summary>
-        short SLine_2 { get; set; }
+        SRMForkPos ForkStartPos1_2 { get; set; }
 
         /// <summary>
-        /// 起始列
+        /// 任务目标行
         /// </summary>
-        short SCol_2 { get; set; }
+        short RowPos2_2 { get; set; }
 
         /// <summary>
-        /// 起始层
+        /// 任务行走目标列
         /// </summary>
-        short SLayer_2 { get; set; }
+        short Travelpos2_2 { get; set; }
 
         /// <summary>
-        /// 起始深度
+        /// 任务提升目标层
         /// </summary>
-        short SDepth_2 { get; set; }
+        short Liftpos2_2 { get; set; }
 
         /// <summary>
-        /// 目标行
+        /// 任务目标伸叉深度
         /// </summary>
-        short ELine_2 { get; set; }
+        SRMForkPos ForkStartPos2_2 { get; set; }
 
         /// <summary>
-        /// 目标列
+        /// 货物类型 根据实际情况决定具体值含义
         /// </summary>
-        short ECol_2 { get; set; }
+        short Goodstype_2 { get; set; }
 
         /// <summary>
-        /// 目标层
+        /// 任务类型
         /// </summary>
-        short ELayer_2 { get; set; }
+        SRMTaskType TaskType_2 { get; set; }
 
         /// <summary>
-        /// 目标深度
+        /// 任务完成确认清除信号
         /// </summary>
-        short EDepth_2 { get; set; }
+        short OK_ACK_2 { get; set; }
 
         /// <summary>
-        ///任务号
+        /// 任务数量
         /// </summary>
-        int TaskID_2 { get; set; }
+        short TaskSum_2 { get; set; }
 
         /// <summary>
-        /// 触发
+        /// 凭证号
         /// </summary>
-        short VoucherNo_2 { get; set; }
+        int VoucherNo_2 { get; set; }
 
         /// <summary>
-        /// 完成任务触发
+        /// 备用
         /// </summary>
-        short FinishedACK_2 { get; set; }
+        short RES_2_1 { get; set; }
 
         /// <summary>
-        /// 备用3
+        /// 备用
         /// </summary>
-        short RES3_2 { get; set; }
+        short RES_2_2 { get; set; }
 
         /// <summary>
-        /// 备用4
+        /// 备用
         /// </summary>
-        short RES4_2 { get; set; }
+        SRMStatus RES_2_3 { get; set; }
 
         #endregion 二工位
     }
-}
+}

+ 138 - 117
WCS.Entity.Protocol/SRM/ISRM521.cs

@@ -9,303 +9,294 @@ namespace WCS.Entity.Protocol
     {
         #region 一工位
 
-        SRMForkStatus ForkStatus_1 { get; set; }
-
         /// <summary>
-        /// 模式
+        /// 任务 ID
         /// </summary>
-        SCMode Mode_1 { get; set; }
+        int TaskID_1 { get; set; }
 
         /// <summary>
-        /// 运行状态
+        /// 任务起始行
         /// </summary>
-        SCRunStatus Status_1 { get; set; }
+        short RowPos1_1 { get; set; }
 
         /// <summary>
-        /// 起始行
+        /// 任务行走起始列
         /// </summary>
-        short SLine_1 { get; set; }
+        short TravelPos1_1 { get; set; }
 
         /// <summary>
-        /// 起始列
+        /// 任务提升起始层
         /// </summary>
-        short SCol_1 { get; set; }
+        short LiftPos1_1 { get; set; }
 
         /// <summary>
-        /// 起始层
+        /// 任务起始伸叉深度
         /// </summary>
-        short SLayer_1 { get; set; }
+        SRMForkPos ForkStartPos1_1 { get; set; }
 
         /// <summary>
-        /// 起始深度
+        /// 任务目标行
         /// </summary>
-        short SDepth_1 { get; set; }
+        short RowPos2_1 { get; set; }
 
         /// <summary>
-        /// 目标行
+        /// 任务行走目标列
         /// </summary>
-        short ELine_1 { get; set; }
+        short TravelPos2_1 { get; set; }
 
         /// <summary>
-        /// 目标列
+        /// 任务提升目标层
         /// </summary>
-        short ECol_1 { get; set; }
+        short LiftPos2_1 { get; set; }
 
         /// <summary>
-        /// 目标层
+        /// 任务目标伸叉深度
         /// </summary>
-        short ELayer_1 { get; set; }
+        SRMForkPos ForkDestPos2_1 { get; set; }
 
         /// <summary>
-        /// 目标深度
+        /// 完成任务ID
         /// </summary>
-        short EDepth_1 { get; set; }
+        int TaskFinishiID_1 { get; set; }
 
         /// <summary>
-        /// 任务号
+        /// 货叉模式
         /// </summary>
-        int TaskID_1 { get; set; }
+        SRMAutoStatus AutoStatus_1 { get; set; }
 
         /// <summary>
-        /// 触发信号
+        /// 货叉运行状态
         /// </summary>
-        short VoucherNo_1 { get; set; }
+        SRMForkRunStatus RunStatus_1 { get; set; }
 
         /// <summary>
         /// 当前行
         /// </summary>
-        short Line_1 { get; set; }
+        short Srm_Row_1 { get; set; }
 
         /// <summary>
         /// 当前列
         /// </summary>
-        short Col_1 { get; set; }
+        short Srm_Column_1 { get; set; }
 
         /// <summary>
         /// 当前层
         /// </summary>
-        short Layer_1 { get; set; }
-
-        /// <summary>
-        /// 已完成任务号
-        /// </summary>
-        int FinishedTask_1 { get; set; }
+        short Srm_Layer_1 { get; set; }
 
         /// <summary>
-        /// X轴位置(0.1毫米) 行走
+        /// 行走当前位置 MM
         /// </summary>
         [IgnoreChanging]
         int TravelPos_1 { get; set; }
 
         /// <summary>
-        /// Y轴位置 提升
+        /// 提升当前位置 MM
         /// </summary>
         [IgnoreChanging]
         int LiftPos_1 { get; set; }
 
         /// <summary>
-        /// Z轴位置 货叉
+        /// 货叉当前位置 MM 往左为负值,往右为正
         /// </summary>
         [IgnoreChanging]
         int ForkPos_1 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=Start_number1
+        /// 备用
         /// </summary>
-        short RES9_1 { get; set; }
+        [IgnoreChanging]
+        float RES_1_1 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=End_number2
+        /// 货物类型
         /// </summary>
-        short RES10_1 { get; set; }
+        short Goodstype_1 { get; set; }
 
         /// <summary>
-        /// 总里程
+        /// 运行时间(Real)(单位:小时,带小数)
         /// </summary>
         [IgnoreChanging]
-        float TotalKM_1 { get; set; }
+        float Runtime_1 { get; set; }
 
         /// <summary>
-        /// 货物类型
+        /// 备用
         /// </summary>
-        short GoodsType_1 { get; set; }
+        int RES_1_2 { get; set; }
 
         /// <summary>
-        /// 运行时长
+        /// 备用
         /// </summary>
-        [IgnoreChanging]
-        float Runtime_1 { get; set; }
+        short RES_1_3 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=ForkPos2
+        /// 备用
         /// </summary>
-        int RES11_1 { get; set; }
+        short RES_1_5 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=Dest_Xmm
+        /// 备用
         /// </summary>
-        int RES12_1 { get; set; }
+        short RES_1_6 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=Dest_Ymm
+        /// 备用
         /// </summary>
-        int RES13_1 { get; set; }
+        short RES_1_7 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=Dest_Zmm
+        /// 备用
         /// </summary>
-        int RES14_1 { get; set; }
+        short RES_1_8 { get; set; }
+
+        /// <summary>
+        /// 货叉状态
+        /// </summary>
+        SRMForkStatus RES_1_9 { get; set; }
 
         #endregion 一工位
 
         #region 二工位
 
-        SRMForkStatus ForkStatus_2 { get; set; }
-
         /// <summary>
-        /// 模式
+        /// 任务 ID
         /// </summary>
-        SCMode Mode_2 { get; set; }
+        int TaskID_2 { get; set; }
 
         /// <summary>
-        /// 运行状态
+        /// 任务起始行
         /// </summary>
-        SCRunStatus Status_2 { get; set; }
+        short RowPos1_2 { get; set; }
 
         /// <summary>
-        /// 起始行
+        /// 任务行走起始列
         /// </summary>
-        short SLine_2 { get; set; }
+        short TravelPos1_2 { get; set; }
 
         /// <summary>
-        /// 起始列
+        /// 任务提升起始层
         /// </summary>
-        short SCol_2 { get; set; }
+        short LiftPos1_2 { get; set; }
 
         /// <summary>
-        /// 起始层
+        /// 任务起始伸叉深度
         /// </summary>
-        short SLayer_2 { get; set; }
+        SRMForkPos ForkStartPos1_2 { get; set; }
 
         /// <summary>
-        /// 起始深度
+        /// 任务目标行
         /// </summary>
-        short SDepth_2 { get; set; }
+        short RowPos2_2 { get; set; }
 
         /// <summary>
-        /// 目标行
+        /// 任务行走目标列
         /// </summary>
-        short ELine_2 { get; set; }
+        short TravelPos2_2 { get; set; }
 
         /// <summary>
-        /// 目标列
+        /// 任务提升目标层
         /// </summary>
-        short ECol_2 { get; set; }
+        short LiftPos2_2 { get; set; }
 
         /// <summary>
-        /// 目标层
+        /// 任务目标伸叉深度
         /// </summary>
-        short ELayer_2 { get; set; }
+        SRMForkPos ForkDestPos2_2 { get; set; }
 
         /// <summary>
-        /// 目标深度
+        /// 完成任务ID
         /// </summary>
-        short EDepth_2 { get; set; }
+        int TaskFinishiID_2 { get; set; }
 
         /// <summary>
-        /// 任务号
+        /// 货叉模式
         /// </summary>
-        int TaskID_2 { get; set; }
+        SRMAutoStatus AutoStatus_2 { get; set; }
 
         /// <summary>
-        /// 触发信号
+        /// 货叉运行状态
         /// </summary>
-        short VoucherNo_2 { get; set; }
+        SRMForkRunStatus RunStatus_2 { get; set; }
 
         /// <summary>
         /// 当前行
         /// </summary>
-        short Line_2 { get; set; }
+        short Srm_Row_2 { get; set; }
 
         /// <summary>
         /// 当前列
         /// </summary>
-        short Col_2 { get; set; }
+        short Srm_Column_2 { get; set; }
 
         /// <summary>
         /// 当前层
         /// </summary>
-        short Layer_2 { get; set; }
+        short Srm_Layer_2 { get; set; }
 
         /// <summary>
-        /// 已完成任务号
-        /// </summary>
-        int FinishedTask_2 { get; set; }
-
-        /// <summary>
-        /// X轴位置(0.1毫米) 行走
+        /// 行走当前位置 MM
         /// </summary>
         [IgnoreChanging]
         int TravelPos_2 { get; set; }
 
         /// <summary>
-        /// Y轴位置 提升
+        /// 提升当前位置 MM
         /// </summary>
         [IgnoreChanging]
         int LiftPos_2 { get; set; }
 
         /// <summary>
-        /// Z轴位置 货叉
+        /// 货叉当前位置 MM 往左为负值,往右为正
         /// </summary>
         [IgnoreChanging]
         int ForkPos_2 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=Start_number1
+        /// 备用
         /// </summary>
-        short RES9_2 { get; set; }
+        [IgnoreChanging]
+        float RES_2_1 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=End_number2
+        /// 货物类型
         /// </summary>
-        short RES10_2 { get; set; }
+        short Goodstype_2 { get; set; }
 
         /// <summary>
-        /// 总里程
+        /// 运行时间(Real)(单位:小时,带小数)
         /// </summary>
         [IgnoreChanging]
-        float TotalKM_2 { get; set; }
+        float Runtime_2 { get; set; }
 
         /// <summary>
-        /// 货物类型
+        /// 凭证号
         /// </summary>
-        short GoodsType_2 { get; set; }
+        int VoucherNo_2 { get; set; }
 
         /// <summary>
-        /// 运行时长
+        /// 备用
         /// </summary>
-        [IgnoreChanging]
-        float Runtime_2 { get; set; }
+        int RES_2_2 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=ForkPos2
+        /// 备用
         /// </summary>
-        int RES11_2 { get; set; }
+        short RES_2_3 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=Dest_Xmm
+        /// 备用
         /// </summary>
-        int RES12_2 { get; set; }
+        short RES_2_4 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=Dest_Ymm
+        /// 备用
         /// </summary>
-        int RES13_2 { get; set; }
+        short RES_2_5 { get; set; }
 
         /// <summary>
-        /// 备用 PLCname=Dest_Zmm
+        /// 货叉状态
         /// </summary>
-        int RES14_2 { get; set; }
+        SRMForkStatus RES_2_6 { get; set; }
 
         #endregion 二工位
 
@@ -314,21 +305,21 @@ namespace WCS.Entity.Protocol
         /// <summary>
         /// 堆垛机模式
         /// </summary>
-        SCMode SRMMode { get; set; }
+        SRMAutoStatus SRMStatus { get; set; }
 
         /// <summary>
         /// 堆垛机状态
         /// </summary>
-        SCRunStatus SRMStatus { get; set; }
+        SRMFRunStatus SrmRunStatus { get; set; }
 
         /// <summary>
-        /// 总里程
+        /// 堆垛机运行里程数(单位:千米)
         /// </summary>
         [IgnoreChanging]
         float TotalKM { get; set; }
 
         /// <summary>
-        /// 运行时
+        /// 运行时间(Real)(单位:小时,带小数)
         /// </summary>
         [IgnoreChanging]
         float Runtime { get; set; }
@@ -338,6 +329,36 @@ namespace WCS.Entity.Protocol
         /// </summary>
         short Alarm { get; set; }
 
+        /// <summary>
+        /// 备用
+        /// </summary>
+        int RES1 { get; set; }
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        short RES2 { get; set; }
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        short RES3 { get; set; }
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        int RES4 { get; set; }
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        short RES5 { get; set; }
+
+        /// <summary>
+        /// 备用
+        /// </summary>
+        short RES6 { get; set; }
+
         #endregion 公用
     }
-}
+}

+ 147 - 20
WCS.Entity.Protocol/SRM/SRMEnum.cs

@@ -2,6 +2,51 @@
 
 namespace WCS.Entity.Protocol.SRM
 {
+    /// <summary>
+    /// 货叉深度
+    /// </summary>
+    public enum SRMForkPos : short
+    {
+        中位 = 0,
+        深度1 = 1,
+        深度2 = 2
+    }
+
+    /// <summary>
+    /// 任务类型
+    /// </summary>
+    public enum SRMTaskType : short
+    {
+        完成任务 = 1,
+        删除任务 = 2,
+        移动任务 = 3,
+        取放货任务 = 4
+    }
+
+    /// <summary>
+    /// SRM状态
+    /// </summary>
+    [Flags]
+    public enum SRMStatus : ushort
+    {
+        RES_1_5 = 1 << 0,
+        RES_1_6 = 1 << 1,
+        RES_1_7 = 1 << 2,
+        RES_1_8 = 1 << 3,
+        RES_1_9 = 1 << 4,
+        RES_1_10 = 1 << 5,
+        RES_1_11 = 1 << 6,
+        RES_1_12 = 1 << 7,
+        RES_1_13 = 1 << 8,
+        RES_1_14 = 1 << 9,
+        RES_1_15 = 1 << 10,
+        RES_1_16 = 1 << 11,
+        RES_1_17 = 1 << 12,
+        RES_1_18 = 1 << 13,
+        RES_1_19 = 1 << 14,
+        RES_1_20 = 1 << 15,
+    }
+
     /// <summary>
     /// 速度模式
     /// </summary>
@@ -12,26 +57,80 @@ namespace WCS.Entity.Protocol.SRM
     }
 
     /// <summary>
-    /// 运行状态
+    /// 货叉运行状态
     /// </summary>
-    public enum SCRunStatus : short
+    public enum SRMForkRunStatus : short
     {
         空闲 = 1,
+        取货伸叉 = 2,
+        取货抬叉 = 3,
+        取货收叉 = 4,
+        放货伸叉 = 5,
+        取货降叉 = 6,
+        放货收叉 = 7,
+        维护 = 99
+    }
+
+    /// <summary>
+    /// 堆垛机运行状态
+    /// </summary>
+    public enum SRMFRunStatus : short
+    {
+        /// <summary>
+        ///
+        /// </summary>
+        空闲 = 1,
+
+        /// <summary>
+        ///
+        /// </summary>
         取货行走 = 2,
+
+        /// <summary>
+        ///
+        /// </summary>
         取货伸叉 = 3,
+
+        /// <summary>
+        ///
+        /// </summary>
         取货抬叉 = 4,
+
+        /// <summary>
+        ///
+        /// </summary>
         取货收叉 = 5,
+
+        /// <summary>
+        ///
+        /// </summary>
         放货行走 = 6,
+
+        /// <summary>
+        ///
+        /// </summary>
         放货伸叉 = 7,
+
+        /// <summary>
+        ///
+        /// </summary>
         取货降叉 = 8,
+
+        /// <summary>
+        ///
+        /// </summary>
         放货收叉 = 9,
+
+        /// <summary>
+        ///
+        /// </summary>
         维护 = 99
     }
 
     /// <summary>
     /// 运行模式
     /// </summary>
-    public enum SCMode : short
+    public enum SRMAutoStatus : short
     {
         远程 = 1,
         半自动 = 2,
@@ -45,22 +144,50 @@ namespace WCS.Entity.Protocol.SRM
     [Flags]
     public enum SRMForkStatus : ushort
     {
-        握手 = 1 << 0,
-        取货完成 = 1 << 1,
-        放货完成 = 1 << 2,
-        设备故障 = 1 << 3,
-        任务完成 = 1 << 4,
-        有货 = 1 << 5,
-        货叉中位 = 1 << 6,
-        WCS能否发任务 = 1 << 7,
-        备用1 = 1 << 8,
-        备用2 = 1 << 9,
-        备用3 = 1 << 10,
-        备用4 = 1 << 11,
-        备用5 = 1 << 12,
-        备用6 = 1 << 13,
-        备用7 = 1 << 14,
-        备用8 = 1 << 15,
+        /// <summary>
+        /// 完成取货信号
+        /// </summary>
+        Get_Finishi = 1 << 0,
+
+        /// <summary>
+        /// 完成放货信号
+        /// </summary>
+        Put_Finishi = 1 << 1,
+
+        /// <summary>
+        /// 设备故障状态
+        /// </summary>
+        Alarm = 1 << 2,
+
+        /// <summary>
+        /// 当前任务完成
+        /// </summary>
+        Task_Finishi = 1 << 3,
+
+        /// <summary>
+        /// 设备上有货
+        /// </summary>
+        Loaded = 1 << 4,
+
+        /// <summary>
+        /// 货叉在原位
+        /// </summary>
+        Fork_Center = 1 << 5,
+
+        /// <summary>
+        /// 反馈WCS能否发任务
+        /// </summary>
+        IssueTask = 1 << 6,
+
+        RES_1_9 = 1 << 7,
+        RES_1_10 = 1 << 8,
+        RES_1_11 = 1 << 9,
+        RES_1_12 = 1 << 10,
+        RES_1_13 = 1 << 11,
+        RES_1_14 = 1 << 12,
+        RES_1_15 = 1 << 13,
+        RES_1_16 = 1 << 14,
+        RES_1_17 = 1 << 15,
     }
 
     /// <summary>
@@ -137,4 +264,4 @@ namespace WCS.Entity.Protocol.SRM
         取放货托盘总数超限 = 1L << 61,
         安全门急停 = 1L << 62,
     }
-}
+}

+ 87 - 75
WCS.Entity.Protocol/SRM/WCS_SRM520.cs

@@ -11,148 +11,160 @@ namespace WCS.Entity.Protocol
     [DataContract]
     public class WCS_SRM520 : WCS_PROTOCOLDATA, ISRM520
     {
-        [SugarColumn(ColumnDescription = "WCS心跳信号")]
+        #region 工位一
+
+        /// <summary>
+        /// 任务 ID
+        /// </summary>
+        [SugarColumn(ColumnDescription = "任务 ID")]
         [DataMember(Order = 0)]
-        public short Handshake_1 { get; set; }
+        public int TaskID_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物数量")]
+        /// <summary>
+        /// 任务起始行
+        /// </summary>
+        [SugarColumn(ColumnDescription = "任务起始行")]
         [DataMember(Order = 1)]
-        public short RES1_1 { get; set; }
+        public short RowPos1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用")]
+        /// <summary>
+        /// 任务起始行
+        /// </summary>
+        [SugarColumn(ColumnDescription = "任务起始行")]
         [DataMember(Order = 2)]
-        public short RES2_1 { get; set; }
+        public short TravelPos1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物类型")]
+        /// <inheritdoc/>
+        [SugarColumn(ColumnDescription = "任务提升起始层")]
         [DataMember(Order = 3)]
-        public short GoodsType_1 { get; set; }
+        public short LiftPos1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "速度")]
+        /// <inheritdoc/>
+        [SugarColumn(ColumnDescription = "任务起始伸叉深度")]
         [DataMember(Order = 4)]
-        public SCSpeedMode SpeedMode_1 { get; set; }
+        public SRMForkPos ForkStartPos1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始行")]
+        /// <inheritdoc/>
+        [SugarColumn(ColumnDescription = "任务目标行")]
         [DataMember(Order = 5)]
-        public short SLine_1 { get; set; }
+        public short RowPos2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始列")]
+        [SugarColumn(ColumnDescription = "任务行走目标列")]
         [DataMember(Order = 6)]
-        public short SCol_1 { get; set; }
+        public short TravelPos2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始层")]
+        [SugarColumn(ColumnDescription = "任务提升目标层")]
         [DataMember(Order = 7)]
-        public short SLayer_1 { get; set; }
+        public short LiftPos2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始深度")]
+        [SugarColumn(ColumnDescription = "任务目标伸叉深度")]
         [DataMember(Order = 8)]
-        public short SDepth_1 { get; set; }
+        public SRMForkPos ForkDestPos2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标行")]
+        [SugarColumn(ColumnDescription = "货物类型")]
         [DataMember(Order = 9)]
-        public short ELine_1 { get; set; }
+        public short GoodsType_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标列")]
+        [SugarColumn(ColumnDescription = "任务类型")]
         [DataMember(Order = 10)]
-        public short ECol_1 { get; set; }
+        public SRMTaskType TaskType_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标层")]
+        [SugarColumn(ColumnDescription = "任务完成确认清除信号")]
         [DataMember(Order = 11)]
-        public short ELayer_1 { get; set; }
+        public short OK_ACK_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标深度")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 12)]
-        public short EDepth_1 { get; set; }
+        public int RES_1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "任务号")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 13)]
-        public int TaskID_1 { get; set; }
+        public short RES_1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "触发")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 14)]
-        public short VoucherNo_1 { get; set; }
+        public short RES_1_3 { get; set; }
 
-        [SugarColumn(ColumnDescription = "完成任务触发")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 15)]
-        public short FinishedACK_1 { get; set; }
+        public short RES_1_4 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用3")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 16)]
-        public short RES3_1 { get; set; }
+        public SRMStatus RES_1_5 { get; set; }
+
+        #endregion 工位一
+
+        #region 工位二
 
-        [SugarColumn(ColumnDescription = "备用4")]
+        [SugarColumn(ColumnDescription = "任务 ID")]
         [DataMember(Order = 17)]
-        public short RES4_1 { get; set; }
+        public int TaskID_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "WCS心跳信号")]
+        [SugarColumn(ColumnDescription = "任务起始行")]
         [DataMember(Order = 18)]
-        public short Handshake_2 { get; set; }
+        public short RowPos1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物数量")]
+        [SugarColumn(ColumnDescription = "任务行走起始列")]
         [DataMember(Order = 19)]
-        public short RES1_2 { get; set; }
+        public short Travelpos1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用2")]
+        [SugarColumn(ColumnDescription = "任务提升起始层")]
         [DataMember(Order = 20)]
-        public short RES2_2 { get; set; }
+        public short Liftpos1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物类型")]
+        [SugarColumn(ColumnDescription = "任务起始伸叉深度")]
         [DataMember(Order = 21)]
-        public short GoodsType_2 { get; set; }
+        public SRMForkPos ForkStartPos1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "行驶速度")]
+        [SugarColumn(ColumnDescription = "任务目标行")]
         [DataMember(Order = 22)]
-        public SCSpeedMode SCSpeedMode_2 { get; set; }
+        public short RowPos2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始行")]
+        [SugarColumn(ColumnDescription = "任务行走目标列")]
         [DataMember(Order = 23)]
-        public short SLine_2 { get; set; }
+        public short Travelpos2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始列")]
+        [SugarColumn(ColumnDescription = "任务提升目标层")]
         [DataMember(Order = 24)]
-        public short SCol_2 { get; set; }
+        public short Liftpos2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始层")]
+        [SugarColumn(ColumnDescription = "任务目标伸叉深度")]
         [DataMember(Order = 25)]
-        public short SLayer_2 { get; set; }
+        public SRMForkPos ForkStartPos2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始深度")]
+        [SugarColumn(ColumnDescription = "货物类型")]
         [DataMember(Order = 26)]
-        public short SDepth_2 { get; set; }
+        public short Goodstype_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标行")]
+        [SugarColumn(ColumnDescription = "任务类型")]
         [DataMember(Order = 27)]
-        public short ELine_2 { get; set; }
+        public SRMTaskType TaskType_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标列")]
+        [SugarColumn(ColumnDescription = "任务完成确认清除信号")]
         [DataMember(Order = 28)]
-        public short ECol_2 { get; set; }
+        public short OK_ACK_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标层")]
+        [SugarColumn(ColumnDescription = "任务数量")]
         [DataMember(Order = 29)]
-        public short ELayer_2 { get; set; }
+        public short TaskSum_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标深度")]
+        [SugarColumn(ColumnDescription = "凭证号")]
         [DataMember(Order = 30)]
-        public short EDepth_2 { get; set; }
+        public int VoucherNo_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "任务号")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 31)]
-        public int TaskID_2 { get; set; }
+        public short RES_2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "触发")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 32)]
-        public short VoucherNo_2 { get; set; }
+        public short RES_2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "完成任务触发")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 33)]
-        public short FinishedACK_2 { get; set; }
-
-        [SugarColumn(ColumnDescription = "备用3")]
-        [DataMember(Order = 34)]
-        public short RES3_2 { get; set; }
+        public SRMStatus RES_2_3 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用4")]
-        [DataMember(Order = 35)]
-        public short RES4_2 { get; set; }
+        #endregion 工位二
     }
 }

+ 150 - 126
WCS.Entity.Protocol/SRM/WCS_SRM521.cs

@@ -11,256 +11,280 @@ namespace WCS.Entity.Protocol
     [DataContract]
     public class WCS_SRM521 : WCS_PROTOCOLDATA, ISRM521
     {
-        [SugarColumn(ColumnDescription = "货叉状态")]
+        #region 工位一
+
+        [SugarColumn(ColumnDescription = "任务 ID")]
         [DataMember(Order = 0)]
-        public SRMForkStatus ForkStatus_1 { get; set; }
+        public int TaskID_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "模式")]
+        [SugarColumn(ColumnDescription = "任务起始行")]
         [DataMember(Order = 1)]
-        public SCMode Mode_1 { get; set; }
+        public short RowPos1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "运行状态")]
+        [SugarColumn(ColumnDescription = "任务行走起始列")]
         [DataMember(Order = 2)]
-        public SCRunStatus Status_1 { get; set; }
+        public short TravelPos1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始行")]
+        [SugarColumn(ColumnDescription = "任务提升起始层")]
         [DataMember(Order = 3)]
-        public short SLine_1 { get; set; }
+        public short LiftPos1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始列")]
+        [SugarColumn(ColumnDescription = "任务起始伸叉深度")]
         [DataMember(Order = 4)]
-        public short SCol_1 { get; set; }
+        public SRMForkPos ForkStartPos1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始层")]
+        [SugarColumn(ColumnDescription = "任务目标行")]
         [DataMember(Order = 5)]
-        public short SLayer_1 { get; set; }
+        public short RowPos2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始深度")]
+        [SugarColumn(ColumnDescription = "任务行走目标列")]
         [DataMember(Order = 6)]
-        public short SDepth_1 { get; set; }
+        public short TravelPos2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标行")]
+        [SugarColumn(ColumnDescription = "任务提升目标层")]
         [DataMember(Order = 7)]
-        public short ELine_1 { get; set; }
+        public short LiftPos2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标列")]
+        [SugarColumn(ColumnDescription = "任务目标伸叉深度")]
         [DataMember(Order = 8)]
-        public short ECol_1 { get; set; }
+        public SRMForkPos ForkDestPos2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标层")]
+        [SugarColumn(ColumnDescription = "完成任务ID")]
         [DataMember(Order = 9)]
-        public short ELayer_1 { get; set; }
+        public int TaskFinishiID_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标深度")]
+        [SugarColumn(ColumnDescription = "货叉模式")]
         [DataMember(Order = 10)]
-        public short EDepth_1 { get; set; }
+        public SRMAutoStatus AutoStatus_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "任务号")]
+        [SugarColumn(ColumnDescription = "货叉运行状态")]
         [DataMember(Order = 11)]
-        public int TaskID_1 { get; set; }
+        public SRMForkRunStatus RunStatus_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "触发信号")]
+        [SugarColumn(ColumnDescription = "当前行")]
         [DataMember(Order = 12)]
-        public short VoucherNo_1 { get; set; }
+        public short Srm_Row_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "当前")]
+        [SugarColumn(ColumnDescription = "当前")]
         [DataMember(Order = 13)]
-        public short Line_1 { get; set; }
+        public short Srm_Column_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "当前")]
+        [SugarColumn(ColumnDescription = "当前")]
         [DataMember(Order = 14)]
-        public short Col_1 { get; set; }
+        public short Srm_Layer_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "当前层")]
+        [SugarColumn(ColumnDescription = "行走当前位置 MM")]
         [DataMember(Order = 15)]
-        public short Layer_1 { get; set; }
+        public int TravelPos_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "已完成任务号")]
+        [SugarColumn(ColumnDescription = "提升当前位置 MM")]
         [DataMember(Order = 16)]
-        public int FinishedTask_1 { get; set; }
+        public int LiftPos_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "X轴位置(0.1毫米) 行走")]
+        [SugarColumn(ColumnDescription = "货叉当前位置 MM 往左为负值,往右为正")]
         [DataMember(Order = 17)]
-        public int TravelPos_1 { get; set; }
+        public int ForkPos_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "Y轴位置 提升")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 18)]
-        public int LiftPos_1 { get; set; }
+        public float RES_1_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "Z轴位置 货叉")]
+        [SugarColumn(ColumnDescription = "货物类型")]
         [DataMember(Order = 19)]
-        public int ForkPos_1 { get; set; }
+        public short Goodstype_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=Start_number1")]
+        [SugarColumn(ColumnDescription = "运行时间(Real)(单位:小时,带小数)")]
         [DataMember(Order = 20)]
-        public short RES9_1 { get; set; }
+        public float Runtime_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=End_number2")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 21)]
-        public short RES10_1 { get; set; }
+        public int RES_1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "总里程")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 22)]
-        public float TotalKM_1 { get; set; }
+        public short RES_1_3 { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物类型")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 23)]
-        public short GoodsType_1 { get; set; }
+        public short RES_1_5 { get; set; }
 
-        [SugarColumn(ColumnDescription = "运行时长")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 24)]
-        public float Runtime_1 { get; set; }
+        public short RES_1_6 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=ForkPos2")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 25)]
-        public int RES11_1 { get; set; }
+        public short RES_1_7 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=Dest_Xmm")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 26)]
-        public int RES12_1 { get; set; }
+        public short RES_1_8 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=Dest_Ymm")]
+        [SugarColumn(ColumnDescription = "货叉状态")]
         [DataMember(Order = 27)]
-        public int RES13_1 { get; set; }
+        public SRMForkStatus RES_1_9 { get; set; }
+
+        #endregion 工位一
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=Dest_Zmm")]
+        #region 工位二
+
+        [SugarColumn(ColumnDescription = "任务 ID")]
         [DataMember(Order = 28)]
-        public int RES14_1 { get; set; }
+        public int TaskID_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "货叉状态")]
+        [SugarColumn(ColumnDescription = "任务起始行")]
         [DataMember(Order = 29)]
-        public SRMForkStatus ForkStatus_2 { get; set; }
+        public short RowPos1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "模式")]
+        [SugarColumn(ColumnDescription = "任务行走起始列")]
         [DataMember(Order = 30)]
-        public SCMode Mode_2 { get; set; }
+        public short TravelPos1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "运行状态")]
+        [SugarColumn(ColumnDescription = "任务提升起始层")]
         [DataMember(Order = 31)]
-        public SCRunStatus Status_2 { get; set; }
+        public short LiftPos1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始行")]
+        [SugarColumn(ColumnDescription = "任务起始伸叉深度")]
         [DataMember(Order = 32)]
-        public short SLine_2 { get; set; }
+        public SRMForkPos ForkStartPos1_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始列")]
+        [SugarColumn(ColumnDescription = "任务目标行")]
         [DataMember(Order = 33)]
-        public short SCol_2 { get; set; }
+        public short RowPos2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始层")]
+        [SugarColumn(ColumnDescription = "任务行走目标列")]
         [DataMember(Order = 34)]
-        public short SLayer_2 { get; set; }
+        public short TravelPos2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "起始深度")]
+        [SugarColumn(ColumnDescription = "任务提升目标层")]
         [DataMember(Order = 35)]
-        public short SDepth_2 { get; set; }
+        public short LiftPos2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标行")]
+        [SugarColumn(ColumnDescription = "任务目标伸叉深度")]
         [DataMember(Order = 36)]
-        public short ELine_2 { get; set; }
+        public SRMForkPos ForkDestPos2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标列")]
+        [SugarColumn(ColumnDescription = "完成任务ID")]
         [DataMember(Order = 37)]
-        public short ECol_2 { get; set; }
+        public int TaskFinishiID_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标层")]
+        [SugarColumn(ColumnDescription = "货叉模式")]
         [DataMember(Order = 38)]
-        public short ELayer_2 { get; set; }
+        public SRMAutoStatus AutoStatus_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "目标深度")]
+        [SugarColumn(ColumnDescription = "货叉运行状态")]
         [DataMember(Order = 39)]
-        public short EDepth_2 { get; set; }
+        public SRMForkRunStatus RunStatus_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "任务号")]
+        [SugarColumn(ColumnDescription = "当前行")]
         [DataMember(Order = 40)]
-        public int TaskID_2 { get; set; }
+        public short Srm_Row_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "触发信号")]
+        [SugarColumn(ColumnDescription = "当前列")]
         [DataMember(Order = 41)]
-        public short VoucherNo_2 { get; set; }
+        public short Srm_Column_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "当前")]
+        [SugarColumn(ColumnDescription = "当前")]
         [DataMember(Order = 42)]
-        public short Line_2 { get; set; }
+        public short Srm_Layer_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "当前列")]
+        [SugarColumn(ColumnDescription = "行走当前位置 MM")]
         [DataMember(Order = 43)]
-        public short Col_2 { get; set; }
+        public int TravelPos_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "当前层")]
+        [SugarColumn(ColumnDescription = "提升当前位置 MM")]
         [DataMember(Order = 44)]
-        public short Layer_2 { get; set; }
+        public int LiftPos_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "已完成任务号")]
+        [SugarColumn(ColumnDescription = "货叉当前位置 MM 往左为负值,往右为正")]
         [DataMember(Order = 45)]
-        public int FinishedTask_2 { get; set; }
+        public int ForkPos_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "X轴位置(0.1毫米) 行走")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 46)]
-        public int TravelPos_2 { get; set; }
+        public float RES_2_1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "Y轴位置 提升")]
+        [SugarColumn(ColumnDescription = "货物类型")]
         [DataMember(Order = 47)]
-        public int LiftPos_2 { get; set; }
+        public short Goodstype_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "Z轴位置 货叉")]
+        [SugarColumn(ColumnDescription = "运行时间(Real)(单位:小时,带小数)")]
         [DataMember(Order = 48)]
-        public int ForkPos_2 { get; set; }
+        public float Runtime_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=Start_number1")]
+        [SugarColumn(ColumnDescription = "凭证号")]
         [DataMember(Order = 49)]
-        public short RES9_2 { get; set; }
+        public int VoucherNo_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=End_number2")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 50)]
-        public short RES10_2 { get; set; }
+        public int RES_2_2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "总里程")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 51)]
-        public float TotalKM_2 { get; set; }
+        public short RES_2_3 { get; set; }
 
-        [SugarColumn(ColumnDescription = "货物类型")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 52)]
-        public short GoodsType_2 { get; set; }
+        public short RES_2_4 { get; set; }
 
-        [SugarColumn(ColumnDescription = "运行时长")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 53)]
-        public float Runtime_2 { get; set; }
+        public short RES_2_5 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=ForkPos2")]
+        [SugarColumn(ColumnDescription = "货叉状态")]
         [DataMember(Order = 54)]
-        public int RES11_2 { get; set; }
+        public SRMForkStatus RES_2_6 { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=Dest_Xmm")]
+        #endregion 工位二
+
+        #region 公用
+
+        [SugarColumn(ColumnDescription = "堆垛机模式")]
         [DataMember(Order = 55)]
-        public int RES12_2 { get; set; }
+        public SRMAutoStatus SRMStatus { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=Dest_Ymm")]
+        [SugarColumn(ColumnDescription = "堆垛机状态")]
         [DataMember(Order = 56)]
-        public int RES13_2 { get; set; }
+        public SRMFRunStatus SrmRunStatus { get; set; }
 
-        [SugarColumn(ColumnDescription = "备用 PLCname=Dest_Zmm")]
+        [SugarColumn(ColumnDescription = "堆垛机运行里程数(单位:千米)")]
         [DataMember(Order = 57)]
-        public int RES14_2 { get; set; }
+        public float TotalKM { get; set; }
 
-        [SugarColumn(ColumnDescription = "堆垛机模式")]
+        [SugarColumn(ColumnDescription = "运行时间(Real)(单位:小时,带小数)")]
         [DataMember(Order = 58)]
-        public SCMode SRMMode { get; set; }
+        public float Runtime { get; set; }
 
-        [SugarColumn(ColumnDescription = "堆垛机状态")]
+        [SugarColumn(ColumnDescription = "堆垛机是否异常 1:异常 0:正常")]
         [DataMember(Order = 59)]
-        public SCRunStatus SRMStatus { get; set; }
+        public short Alarm { get; set; }
 
-        [SugarColumn(ColumnDescription = "总里程")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 60)]
-        public float TotalKM { get; set; }
+        public int RES1 { get; set; }
 
-        [SugarColumn(ColumnDescription = "运行时长")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 61)]
-        public float Runtime { get; set; }
+        public short RES2 { get; set; }
 
-        [SugarColumn(ColumnDescription = "堆垛机是否异常 1:异常 0:正常")]
+        [SugarColumn(ColumnDescription = "备用")]
         [DataMember(Order = 62)]
-        public short Alarm { get; set; }
+        public short RES3 { get; set; }
+
+        [SugarColumn(ColumnDescription = "备用")]
+        [DataMember(Order = 63)]
+        public int RES4 { get; set; }
+
+        [SugarColumn(ColumnDescription = "备用")]
+        [DataMember(Order = 64)]
+        public short RES5 { get; set; }
+
+        [SugarColumn(ColumnDescription = "备用")]
+        [DataMember(Order = 65)]
+        public short RES6 { get; set; }
+
+        #endregion 公用
     }
 }

+ 1 - 1
WCS.Entity.Protocol/Station/IStation523.cs

@@ -11,6 +11,6 @@ namespace WCS.Entity.Protocol.Station
         /// 警报
         /// </summary>
         [Description("警报")]
-        StationFault Alarm { get; set; }
+        IstationFault Alarm { get; set; }
     }
 }

+ 1 - 1
WCS.Entity.Protocol/Station/WCS_Station523.cs

@@ -15,6 +15,6 @@ namespace WCS.Entity.Protocol.Station
         /// </summary>
         [SugarColumn(ColumnDescription = "警报")]
         [DataMember(Order = 0)]
-        public StationFault Alarm { get; set; }
+        public IstationFault Alarm { get; set; }
     }
 }

+ 1 - 1
WCS.Service/DeviceExtentions.cs

@@ -13,7 +13,7 @@ namespace WCS.Service
     {
         public static string AddrCurrent(this WCS_TASK source, Db db)
         {
-            var q1 = db.Default.Queryable<WCS_Station520>().Where(v => v.ISLAST && v.Tasknum == source.ID).Select(v => new TemporaryModel
+            var q1 = db.Default.Queryable<WCS_Station520>().Where(v => v.ISLAST && v.TaskNumber == source.ID).Select(v => new TemporaryModel
             {
                 TYPE = 1,
                 CODE = v.DEVICE.CODE

+ 13 - 12
WCS.Service/Worker.cs

@@ -91,16 +91,16 @@ namespace WCS.Service
                             db.Default.CodeFirst.InitTables(typeof(WCS_USERS));
                             db.Default.CodeFirst.InitTables(typeof(WCS_StatusLog));
                             db.Default.CodeFirst.InitTables(typeof(WCS.Entity.PlcRawData));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_BCR80));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_RGV520));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_RGV521));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_RGV523));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_SRM520));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_SRM521));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_SRM537));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_Station520));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_Station521));
-                            //db.Default.CodeFirst.InitTables(typeof(WCS_Station523));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_BCR80));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_RGV520));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_RGV521));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_RGV523));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_SRM520));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_SRM521));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_SRM537));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_Station520));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_Station521));
+                            db.Default.CodeFirst.InitTables(typeof(WCS_Station523));
                         });
                         break;
 
@@ -156,7 +156,7 @@ namespace WCS.Service
             #endregion 创建虚拟PLC
 
             //是否启用虚拟PLC
-            Configs.AddSystemMode(SystemMode.虚拟plc);
+            //Configs.AddSystemMode(SystemMode.虚拟plc);
             //日志发布事件s
             Configs.PublishEvent += () =>
             {
@@ -183,7 +183,8 @@ namespace WCS.Service
                     var items = db.Default.Queryable<WCS_DEVICEPROTOCOL>()
                     .Includes(d => d.DEVICE, r => r.ROUTES)
                     .Includes(d => d.DEVICE, p => p.PATHS)
-                    .Includes(d => d.DB, p => p.PLC).ToArray();
+                    .Includes(d => d.DB, p => p.PLC).ToArray().Where(d => d.DB != null&&d.DB.PLC!=null&&d.DB.PLC.ENABLED).ToArray();
+                    
                     var objects = items.Select(v => v.Data()).ToArray();
                     LogicHandler.AllObjects.AddRange(objects);
 

+ 35 - 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.SRM;
 using WCS.Entity.Protocol.Station;
 using WCS.Service.Helpers;
 using LogHelper = WCS.Service.Helpers.LogHelper;
@@ -951,7 +952,7 @@ namespace WCS.Service.Extensions
 
             Db.Do(db =>
             {
-                var taskIds = new List<int>() { Data2.FinishedTask_1, Data2.FinishedTask_2 }.ToArray();
+                var taskIds = new List<int>() { Data2.TaskFinishiID_1, Data2.TaskFinishiID_2 }.ToArray();
 
                 for (int i = 0; i < taskIds.Length; i++)
                 {
@@ -968,12 +969,12 @@ namespace WCS.Service.Extensions
                     {
                         if (i == 0)
                         {
-                            Data.FinishedACK_1 = 1;
+                            Data.OK_ACK_1 = 1;
                             Data.TaskID_1 = 0;
                         }
                         else
                         {
-                            Data.FinishedACK_2 = 1;
+                            Data.OK_ACK_2 = 1;
                             Data.TaskID_2 = 0;
                         }
 
@@ -1015,7 +1016,7 @@ namespace WCS.Service.Extensions
 
             Db.Do(db =>
             {
-                var taskIds = new List<int>() { Data2.FinishedTask_1, Data2.FinishedTask_2 }.ToArray();
+                var taskIds = new List<int>() { Data2.TaskFinishiID_1, Data2.TaskFinishiID_2 }.ToArray();
 
                 for (int i = 0; i < taskIds.Length; i++)
                 {
@@ -1026,12 +1027,12 @@ namespace WCS.Service.Extensions
 
                     if (i == 0)
                     {
-                        Data.FinishedACK_1 = 1;
+                        Data.OK_ACK_1 = 1;
                         Data.TaskID_1 = 0;
                     }
                     else
                     {
-                        Data.FinishedACK_2 = 1;
+                        Data.OK_ACK_2 = 1;
                         Data.TaskID_2 = 0;
                     }
                 }
@@ -1116,17 +1117,17 @@ namespace WCS.Service.Extensions
         /// <param name="goodsnum">货物数量</param>
         public void WriteTask1(Task task, short goodsnum)
         {
-            InfoLog.INFO_SRMINFO($"出库--写入堆垛机[{Entity.CODE}]1工位-开始:[{Data.TaskID_1}][{Data.SLine_1}][{Data.SCol_1}][{Data.SLayer_1}][{Data.ELine_1}][{Data.VoucherNo_1}]--[{Data.RES1_1}]");
-            Data.TaskID_1 = task.ID;
-            Data.SLine_1 = task.Line;
-            Data.SCol_1 = task.Col;
-            Data.SLayer_1 = task.Layer;
-            Data.ELine_1 = task.SRMSTATION.ToShort();
-            Data.ECol_1 = 0;
-            Data.ELayer_1 = 0;
-            Data.RES1_1 = goodsnum;
-            Data.VoucherNo_1++;
-            InfoLog.INFO_SRMINFO($"出库--写入堆垛机[{Entity.CODE}]1工位-结束:[{Data.TaskID_1}][{Data.SLine_1}][{Data.SCol_1}][{Data.SLayer_1}][{Data.ELine_1}][{Data.VoucherNo_1}]--[{Data.RES1_1}]");
+            //InfoLog.INFO_SRMINFO($"出库--写入堆垛机[{Entity.CODE}]1工位-开始:[{Data.TaskID_1}][{Data.SLine_1}][{Data.SCol_1}][{Data.SLayer_1}][{Data.ELine_1}][{Data.VoucherNo_1}]--[{Data.RES1_1}]");
+            //Data.TaskID_1 = task.ID;
+            //Data.SLine_1 = task.Line;
+            //Data.SCol_1 = task.Col;
+            //Data.SLayer_1 = task.Layer;
+            //Data.ELine_1 = task.SRMSTATION.ToShort();
+            //Data.ECol_1 = 0;
+            //Data.ELayer_1 = 0;
+            //Data.RES1_1 = goodsnum;
+            //Data.VoucherNo_1++;
+            //InfoLog.INFO_SRMINFO($"出库--写入堆垛机[{Entity.CODE}]1工位-结束:[{Data.TaskID_1}][{Data.SLine_1}][{Data.SCol_1}][{Data.SLayer_1}][{Data.ELine_1}][{Data.VoucherNo_1}]--[{Data.RES1_1}]");
         }
 
         /// <summary>
@@ -1136,17 +1137,17 @@ namespace WCS.Service.Extensions
         /// <param name="goodsnum">货物数量</param>
         public void WriteTask2(Task task, short goodsnum)
         {
-            InfoLog.INFO_SRMINFO($"出库--写入堆垛机[{Entity.CODE}]2工位-开始:[{Data.TaskID_2}][{Data.SLine_2}][{Data.SCol_2}][{Data.SLayer_2}][{Data.ELine_2}][{Data.VoucherNo_2}]--[{Data.RES1_2}]");
-            Data.TaskID_2 = task.ID;
-            Data.SLine_2 = task.Line;
-            Data.SCol_2 = task.Col;
-            Data.SLayer_2 = task.Layer;
-            Data.ELine_2 = task.SRMSTATION.ToShort();
-            Data.ECol_2 = 0;
-            Data.ELayer_2 = 0;
-            Data.RES1_2 = goodsnum;
-            Data.VoucherNo_2++;
-            InfoLog.INFO_SRMINFO($"出库--写入堆垛机[{Entity.CODE}]2工位-结束:[{Data.TaskID_2}][{Data.SLine_2}][{Data.SCol_2}][{Data.SLayer_2}][{Data.ELine_2}][{Data.VoucherNo_2}]--[{Data.RES1_2}]");
+            //InfoLog.INFO_SRMINFO($"出库--写入堆垛机[{Entity.CODE}]2工位-开始:[{Data.TaskID_2}][{Data.SLine_2}][{Data.SCol_2}][{Data.SLayer_2}][{Data.ELine_2}][{Data.VoucherNo_2}]--[{Data.RES1_2}]");
+            //Data.TaskID_2 = task.ID;
+            //Data.SLine_2 = task.Line;
+            //Data.SCol_2 = task.Col;
+            //Data.SLayer_2 = task.Layer;
+            //Data.ELine_2 = task.SRMSTATION.ToShort();
+            //Data.ECol_2 = 0;
+            //Data.ELayer_2 = 0;
+            //Data.RES1_2 = goodsnum;
+            //Data.VoucherNo_2++;
+            //InfoLog.INFO_SRMINFO($"出库--写入堆垛机[{Entity.CODE}]2工位-结束:[{Data.TaskID_2}][{Data.SLine_2}][{Data.SCol_2}][{Data.SLayer_2}][{Data.ELine_2}][{Data.VoucherNo_2}]--[{Data.RES1_2}]");
         }
 
         /// <summary>
@@ -1190,42 +1191,42 @@ namespace WCS.Service.Extensions
                     switch (Entity.CODE)
                     {
                         case "SRM3":
-                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMStatus == SRMAutoStatus.远程 && task)
                                 throw new DoException("SRM4正在执行出库任务");
                             break;
 
                         case "SRM4":
                             srm = Device.Find("SRM3").Create<SRMDevice>();
                             task = db.Default.Queryable<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM3" && v.TYPE == TaskType.出库);
-                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMStatus == SRMAutoStatus.远程 && task)
                                 throw new DoException("SRM3正在执行出库任务");
                             break;
 
                         case "SRM5":
                             srm = Device.Find("SRM6").Create<SRMDevice>();
                             task = db.Default.Queryable<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM6" && v.TYPE == TaskType.出库);
-                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMStatus == SRMAutoStatus.远程 && task)
                                 throw new DoException("SRM6正在执行出库任务");
                             break;
 
                         case "SRM6":
                             srm = Device.Find("SRM5").Create<SRMDevice>();
                             task = db.Default.Queryable<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM5" && v.TYPE == TaskType.出库);
-                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMStatus == SRMAutoStatus.远程 && task)
                                 throw new DoException("SRM5正在执行出库任务");
                             break;
 
                         case "SRM7":
                             srm = Device.Find("SRM8").Create<SRMDevice>();
                             task = db.Default.Queryable<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM8" && v.TYPE == TaskType.出库);
-                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMStatus == SRMAutoStatus.远程 && task)
                                 throw new DoException("SRM8正在执行出库任务");
                             break;
 
                         case "SRM8":
                             srm = Device.Find("SRM7").Create<SRMDevice>();
                             task = db.Default.Queryable<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM7" && v.TYPE == TaskType.出库);
-                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMStatus == SRMAutoStatus.远程 && task)
                                 throw new DoException("SRM7正在执行出库任务");
                             break;
                     }

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

@@ -104,7 +104,7 @@ namespace WCS.Service.Extensions
         /// <param name="db"></param>
         public static List<WCS_TASK> ValidTaskCheck(this List<FinishTaskList<string>> devs, Db db)
         {
-            var taskIds = devs.Select(v => v.Station.Data2.Tasknum).ToList();
+            var taskIds = devs.Select(v => v.Station.Data2.TaskNumber).ToList();
             var taskList = db.Default.Queryable<WCS_TASK>().Where(v => taskIds.Contains(v.ID)).ToList();
             var task = taskList.FirstOrDefault() ?? throw new WarnException($"ValidTaskCheck 无任务"); ;
             var taskCount = db.Default.Queryable<WCS_TASK>().Count(v => v.TaskGroupKey == task.TaskGroupKey && v.TYPE == TaskType.入库);

+ 3 - 3
WCS.WorkEngineering/Helpers/FinishTaskList.cs

@@ -62,9 +62,9 @@ namespace WCS.Service.Helpers
         /// <exception cref="WarnException"></exception>
         public static void Valid(this List<FinishTaskList<string>> finishes)
         {
-            var maxGoodsnum = finishes.Select(v => v.Station.Data2.Goodsnum).OrderByDescending(v => v).FirstOrDefault();
-            if (finishes.Count != maxGoodsnum) throw new WarnException($"可用货物数{finishes.Count},实际货物数{maxGoodsnum}");
-            if (!finishes.Any()) throw new DoException("没有任务");
+            //var maxGoodsnum = finishes.Select(v => v.Station.Data2.).OrderByDescending(v => v).FirstOrDefault();
+            //if (finishes.Count != maxGoodsnum) throw new WarnException($"可用货物数{finishes.Count},实际货物数{maxGoodsnum}");
+            //if (!finishes.Any()) throw new DoException("没有任务");
         }
 
         /// <summary>

+ 2 - 2
WCS.WorkEngineering/Works/SRM/SRMWork.cs

@@ -11,12 +11,12 @@ namespace WCS.Service.Works.SRM
     {
         protected override void Do(Device<ISRM520, ISRM521, ISRM537> obj)
         {
-            //obj.Data.ECol_1 = (short)22l;
+            obj.Data.TaskID_1 = (int)22l;
         }
 
         protected override bool SelectDevice(WCS_DEVICE dev)
         {
-            return dev.Is(DF.SRM);
+            return dev.CODE.Contains("SRM");
         }
     }
 }

+ 6 - 9
WCS.WorkEngineering/Works/Station/一楼入库.cs

@@ -14,7 +14,7 @@ using WCS.Service.Helpers;
 
 namespace WCS.Service.Works.Station
 {
-    [WorkTitle(typeof(ProductHandler), "扫码入库")]
+    //[WorkTitle(typeof(ProductHandler), "扫码入库")]
     internal class 扫码入库 : Work<StationDeviceGroup>
     {
         protected override void Do(StationDeviceGroup obj)
@@ -35,7 +35,7 @@ namespace WCS.Service.Works.Station
                 obj.BcrStationIsForbid();
                 //设备组无论单卷还是双卷都必须满足的条件
                 if (obj.Items.Any(v => v.Data.VoucherNo != v.Data2.VoucherNo)) throw new WarnException($"等待任务执行--凭证号不一致");
-                if (obj.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.运行状态位))) throw new WarnException($"设备运行中");
+                if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.Run))) throw new WarnException($"设备运行中");
 
                 //成功创建的任务
                 var finishTaskList = new List<FinishTaskList<int>>();
@@ -68,7 +68,6 @@ namespace WCS.Service.Works.Station
                             WMSTASK = int.Parse(info.WMSTaskNum),
                             TaskGroupKey = info.TaskGroupKey,
                             ADDRNEXT = next,
-                            HEIGHT = dev.Data2.GoodsSize,
                             FLOOR = 1
                         };
 
@@ -76,7 +75,7 @@ namespace WCS.Service.Works.Station
                         finishTaskList.Add(new FinishTaskList<int>(task.WMSTASK, item.Station));
 
                         var msg = $"下达从{dev.Entity.CODE}移动至{next}的PLC指令。";
-                        msg += $"[{dev.Data.Tasknum}][{dev.Data.Goodsstart}][{dev.Data.Goodsend}][{dev.Data.VoucherNo}[{dev.Data2.VoucherNo}]";
+                        msg += $"[{dev.Data.TaskNumber}][{dev.Data.GoodsStart}][{dev.Data.GoodsEnd}][{dev.Data.VoucherNo}[{dev.Data2.VoucherNo}]";
                         task.CreateStatusLog(db, msg, this.GetType());
                     }
                     //两个任务一起创建
@@ -91,11 +90,9 @@ namespace WCS.Service.Works.Station
                         var task = db.Default.Queryable<WCS_TASK>().First(v => v.WMSTASK == finishTask.FinishCode);
                         if (task == null) continue;
 
-                        finishTask.Station.Data.Tasknum = task.ID;
-                        finishTask.Station.Data.Goodsstart = task.ADDRFROM.ToShort();
-                        finishTask.Station.Data.Goodsend = task.ADDRNEXT.ToShort();
-                        finishTask.Station.Data.Goodsnum = finishTaskList.Count.ToShort();
-                        finishTask.Station.Data.CmdType = IstationCmdType.扫码入库;
+                        finishTask.Station.Data.TaskNumber = task.ID;
+                        finishTask.Station.Data.GoodsStart = task.ADDRFROM.ToShort();
+                        finishTask.Station.Data.GoodsEnd = task.ADDRNEXT.ToShort();
                         finishTask.Station.Data.VoucherNo++;
                     }
                 });