Yuli 4 дней назад
Родитель
Сommit
6a313248d8

+ 10 - 0
SKMC.API/Motion/Model/MotionAxis.cs

@@ -220,6 +220,16 @@ namespace SKMC.Api.Motion.Model
             set { _gearScale = value; }
         }
 
+        private int _speedRPM;
+        /// <summary>
+        /// 电机最大转速 单位:r/min
+        /// </summary>
+        public int SpeedRPM
+        {
+            get { return _speedRPM; }
+            set { _speedRPM = value; }
+        }
+
         private double _distanceR;
 
         /// <summary>

+ 16 - 0
SKMC.API/Recipe/Config/RecipeConfigStore.cs

@@ -60,5 +60,21 @@ namespace SKMC.Api.Recipe.Config
         /// <param name="recipeSpeeds">产品配方速度集</param>
         /// <param name="recipeId">产品配方Id, -1表示当前</param>
         public abstract void SaveRecipeSpeeds(ObservableCollection<RecipeSpeed> recipeSpeeds, int recipeId = -1);
+        /// <summary>
+        /// 查询配方速度分组集合
+        /// </summary>
+        /// <returns></returns>
+        public abstract ObservableCollection<RecipeSpeedGroup> QueryRecipeSpeedGroups();
+        /// <summary>
+        /// 查询配方点位集合
+        /// </summary>
+        /// <returns></returns>
+        public abstract ObservableCollection<RecipePoint> QueryRecipePoints();
+        /// <summary>
+        /// 保存速度组集
+        /// </summary>
+        /// <param name="recipeSpeedGroups"></param>
+        /// <param name="recipeId"></param>
+        public abstract void SaveRecipeSpeedGroups(ObservableCollection<RecipeSpeedGroup> recipeSpeedGroups, int recipeId = -1);
     }
 }

+ 10 - 0
SKMC.API/Recipe/Model/RecipeProfile.cs

@@ -97,5 +97,15 @@ namespace SKMC.Api.Recipe.Model
         /// 点位配置集
         /// </summary>
         public ObservableCollection<RecipePointGroup> RecipePointGroups { get; set; }
+
+        /// <summary>
+        /// 速度分组配置集
+        /// </summary>
+        public ObservableCollection<RecipeSpeedGroup> RecipeSpeedGroups { get; set; }
+
+        /// <summary>
+        /// 点位配置集
+        /// </summary>
+        public ObservableCollection<RecipePoint> RecipePoints { get; set; }
     }
 }

+ 10 - 0
SKMC.API/Recipe/Model/RecipeSpeed.cs

@@ -108,5 +108,15 @@ namespace SKMC.Api.Recipe.Model
             set { _radio = value; }
         }
 
+        private long groupId;
+        /// <summary>
+        /// 速度分组Id
+        /// </summary>
+        public long GroupId
+        {
+            get { return groupId; }
+            set { groupId = value; }
+        }
+
     }
 }

+ 19 - 0
SKMC.API/Recipe/Model/RecipeSpeedGroup.cs

@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SKMC.Api.Recipe.Model
+{
+    /// <summary>
+    /// 速度分组
+    /// </summary>
+    public class RecipeSpeedGroup
+    {
+        public long Id { get; set; }
+        public long RecipeId { get; set; }
+        public string Name { get; set; }
+        public int CurrentUsed { get; set; }
+    }
+}

+ 42 - 2
SKMC.API/Recipe/RecipeCacher.cs

@@ -1,7 +1,10 @@
 using SKMC.Api.Recipe.Config;
 using SKMC.Api.Recipe.Model;
+using System;
 using System.Collections.Generic;
 using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.Linq;
 
 namespace SKMC.Api.Recipe
 {
@@ -10,7 +13,6 @@ namespace SKMC.Api.Recipe
     /// </summary>
     public abstract class RecipeCacher
     {
-
         /// <summary>
         /// 当前使用的配方
         /// </summary>
@@ -66,13 +68,36 @@ namespace SKMC.Api.Recipe
         /// <summary>
         /// 速度配置集
         /// </summary>
-        public ObservableCollection<RecipeSpeed> GetRecipeSpeeds() => RecipeProfile.RecipeSpeeds;
+        // public ObservableCollection<RecipeSpeed> GetRecipeSpeeds() => RecipeProfile.RecipeSpeeds;
+
+        /// <summary>
+        /// 速度配置集
+        /// 考虑到速度切换需要先进入“速度设置”页面才能获取到速度挡位。暂时先默认选择第一个速度组。
+        /// </summary>
+        public ObservableCollection<RecipeSpeed> GetRecipeSpeeds()
+        {
+            ObservableCollection<RecipeSpeed> recipeSpeeds = new ObservableCollection<RecipeSpeed>();
+            var usedGroup = GetRecipeSpeedGroups().FirstOrDefault(t => t.CurrentUsed == 1);
+            if (usedGroup == null) throw new ArgumentException($"Cannot Get Speed Group[{usedGroup.Name}]");
+            recipeSpeeds = GetRecipeSpeeds(usedGroup);
+            return recipeSpeeds;
+        }
 
         /// <summary>
         /// 点位配置集
         /// </summary>
         public ObservableCollection<RecipePointGroup> GetRecipePointGroups() => RecipeProfile.RecipePointGroups;
 
+        /// <summary>
+        /// 速度分组配置集
+        /// </summary>
+        public ObservableCollection<RecipeSpeedGroup> GetRecipeSpeedGroups() => RecipeProfile.RecipeSpeedGroups;
+
+        /// <summary>
+        /// 点位配置集
+        /// </summary>
+        public ObservableCollection<RecipePoint> GetRecipePoints() => RecipeProfile.RecipePoints;
+
         /// <summary>
         /// 获取流程参数对象
         /// </summary>
@@ -116,5 +141,20 @@ namespace SKMC.Api.Recipe
         /// <param name="speedCode">速度码</param>
         /// <returns></returns>
         public abstract RecipeSpeed GetRecipeSpeed(string speedCode);
+
+        /// <summary>
+        /// 获取速度分组下的速度集合
+        /// </summary>
+        /// <param name="group"></param>
+        /// <returns></returns>
+        public ObservableCollection<RecipeSpeed> GetRecipeSpeeds(RecipeSpeedGroup group)
+        {
+            ObservableCollection<RecipeSpeed> speedModels = new ObservableCollection<RecipeSpeed>
+                (
+                    RecipeProfile.RecipeSpeeds.Where(model => model.GroupId == group.Id)
+                );
+            if (speedModels == null) throw new ArgumentException($"Cannot Get Speed Group[{group.Name}]");
+            return speedModels;
+        }
     }
 }

+ 0 - 1
SKMC.API/SKMC.API.csproj

@@ -154,7 +154,6 @@
     <Compile Include="Machine\Model\MachineSlaveError.cs" />
     <Compile Include="Machine\Monitor\MachineLatchTask.cs" />
     <Compile Include="Machine\Monitor\MachineStateLatchMonitor.cs" />
-    <Compile Include="Motion\Driver\IMotionDriverError.cs" />
     <Compile Include="Vision\SKV0\SKVisionClient.cs" />
     <Compile Include="Vision\SKV0\SKVisionProtocol.cs" />
     <Compile Include="Vision\SKV0\SKVisionClientBase.cs" />