Эх сурвалжийг харах

调整Cnd模型到Motion/Model,调整视觉接口到Vision/SKV0

Yuli 1 сар өмнө
parent
commit
525a04bd6b

+ 1 - 1
SKMC.API/Motion/Control/IMotionChecker.cs

@@ -1,4 +1,4 @@
-using SKMC.Api.Process.Model;
+using SKMC.Api.Motion.Model;
 using System;
 using System.Collections.Generic;
 

+ 50 - 0
SKMC.API/Motion/IMotionCardManager.cs

@@ -0,0 +1,50 @@
+
+using SKMC.Api.Motion.Driver;
+
+namespace SKMC.Api.Motion
+{
+    /// <summary>
+    /// 运动控制卡管理器接口
+    /// </summary>
+    public interface IMotionCardManager
+    {
+        /// <summary>
+        /// 创建控制卡驱动
+        /// </summary>
+        /// <param name="driverName">控制卡驱动名(型号)</param>
+        /// <returns></returns>
+        IMotionDriver Create(string driverName);
+
+        /// <summary>
+        /// 创建控制卡高级接口
+        /// </summary>
+        /// <param name="motionDriver">控制卡驱动</param>
+        /// <returns></returns>
+        IMotionDriverAdvance Create(IMotionDriver motionDriver);
+
+        /// <summary>
+        /// 打开控制卡并初始化
+        /// </summary>
+        /// <param name="motionDriver">控制卡驱动</param>
+        /// <returns></returns>
+        void Open(IMotionDriver motionDriver);
+
+        /// <summary>
+        /// 关闭控制卡
+        /// </summary>
+        void Close();
+
+        /// <summary>
+        /// 获取控制卡驱动
+        /// </summary>
+        /// <returns></returns>
+        IMotionDriver GetMotionDriver();
+
+        /// <summary>
+        /// 获取Ethercat总线连接状态
+        /// </summary>
+        /// <returns></returns>
+        bool GetEcatStatus();
+
+    }
+}

+ 3 - 4
SKMC.API/Process/Model/AxisCnd.cs → SKMC.API/Motion/Model/AxisCnd.cs

@@ -1,16 +1,15 @@
 using SKMC.Api.Common;
-using SKMC.Api.Motion;
-using SKMC.Api.Motion.Model;
+using SKMC.Api.Common.Logger;
 using System;
 
-namespace SKMC.Api.Process.Model
+namespace SKMC.Api.Motion.Model
 {
     /// <summary>
     /// 电机运行条件, 可作为触发动作的条件, 也可以作为告警状态的条件
     /// </summary>
     public class AxisCnd
     {
-        //static readonly ILogger log = LogFactory.Get(typeof(AxisCnd));
+        protected static readonly ILogger log = LogFactory.Get();
 
         private readonly MotionCacher motionCacher = ObjectFactory.Resolve<MotionCacher>();
 

+ 1 - 1
SKMC.API/Process/Model/Cnds.cs → SKMC.API/Motion/Model/Cnds.cs

@@ -1,6 +1,6 @@
 using System.Collections.Generic;
 
-namespace SKMC.Api.Process.Model
+namespace SKMC.Api.Motion.Model
 {
     /// <summary>
     /// 条件匹配帮助类

+ 1 - 3
SKMC.API/Process/Model/DioCnd.cs → SKMC.API/Motion/Model/DioCnd.cs

@@ -1,9 +1,7 @@
 using SKMC.Api.Common;
-using SKMC.Api.Motion;
-using SKMC.Api.Motion.Model;
 using System;
 
-namespace SKMC.Api.Process.Model
+namespace SKMC.Api.Motion.Model
 {
     /// <summary>
     /// IO条件, 可作为触发动作的条件, 也可以作为告警状态的条件

+ 0 - 11
SKMC.API/Motion/MotionCacher.cs

@@ -46,11 +46,6 @@ namespace SKMC.Api.Motion
         /// </summary>
         public List<MotionAxis> MotionAxises { get; set; } = new List<MotionAxis>();
 
-        /// <summary>
-        /// Axis轨迹运动数据集
-        /// </summary>
-        //public List<MotionTraject> MotionTrajects { get; set; } = new List<MotionTraject>();
-
         /// <summary>
         /// DI 模块集
         /// </summary>
@@ -93,12 +88,6 @@ namespace SKMC.Api.Motion
 
         public abstract MotionPdo GetMotionReadPdo(string code);
 
-        [Obsolete("此方法已废弃")]
-        public abstract void SetMotionDi(string code, byte value, bool testMode = false);
-
-        [Obsolete("此方法已废弃")]
-        public abstract void SetMotionDo(string code, byte value, bool testMode = false);
-
         public abstract MotionAxis GetMotionAxis(string axisCode);
 
         public abstract MotionAxis GetMotionAxis(short axisNo);

+ 1 - 0
SKMC.API/Process/Model/ProcessStep.cs

@@ -1,4 +1,5 @@
 using SKMC.Api.Common.Logger;
+using SKMC.Api.Motion.Model;
 using System;
 using System.Collections.Generic;
 using System.Diagnostics;

+ 6 - 6
SKMC.API/Recipe/Config/RecipeConfigStore.cs

@@ -28,23 +28,23 @@ namespace SKMC.Api.Recipe.Config
         /// <summary>
         /// 保存配方参数集
         /// </summary>
-        /// <param name="recipeId">产品配方Id</param>
         /// <param name="recipeParams">产品配方参数集</param>
-        public abstract void SaveRecipeParams(int recipeId, ObservableCollection<RecipeParam> recipeParams);
+        /// <param name="recipeId">产品配方Id, -1表示当前</param>
+        public abstract void SaveRecipeParams(ObservableCollection<RecipeParam> recipeParams, int recipeId = -1);
 
         /// <summary>
         /// 保存配方速度集
         /// </summary>
-        /// <param name="recipeId">产品配方Id</param>
         /// <param name="recipeSpeeds">产品配方速度集</param>
-        public abstract void SaveRecipeSpeeds(int recipeId, ObservableCollection<RecipeSpeed> recipeSpeeds);
+        /// <param name="recipeId">产品配方Id, -1表示当前</param>
+        public abstract void SaveRecipeSpeeds(ObservableCollection<RecipeSpeed> recipeSpeeds, int recipeId = -1);
 
         /// <summary>
         /// 保存配方点位集
         /// </summary>
-        /// <param name="recipeId">产品配方Id</param>
         /// <param name="recipePoints">产品配方点位集</param>
-        public abstract void SaveRecipePoints(int recipeId, ObservableCollection<RecipePoint> recipePoints);
+        /// <param name="recipeId">产品配方Id, -1表示当前</param>
+        public abstract void SaveRecipePoints(ObservableCollection<RecipePoint> recipePoints, int recipeId = -1);
 
     }
 }

+ 30 - 0
SKMC.API/Recipe/RecipeCacher.cs

@@ -16,6 +16,36 @@ namespace SKMC.Api.Recipe
         /// </summary>
         public RecipeProfile RecipeProfile { get; set; }
 
+        /// <summary>
+        /// 流程参数配置集(基础开关型)
+        /// </summary>
+        public ObservableCollection<RecipeParam> GetRecipePublicSwitchParams() => RecipeProfile.RecipePublicSwitchParams;
+
+        /// <summary>
+        /// 流程参数配置集(基础数值型)
+        /// </summary>
+        public ObservableCollection<RecipeParam> GetRecipePublicValueParams() => RecipeProfile.RecipePublicValueParams;
+
+        /// <summary>
+        /// 流程参数配置集(内部开关型)
+        /// </summary>
+        public ObservableCollection<RecipeParam> GetRecipePrivateSwitchParams() => RecipeProfile.RecipePrivateSwitchParams;
+
+        /// <summary>
+        /// 流程参数配置集(内部数值型)
+        /// </summary>
+        public ObservableCollection<RecipeParam> GetRecipePrivateValueParams() => RecipeProfile.RecipePrivateValueParams;
+
+        /// <summary>
+        /// 速度配置集
+        /// </summary>
+        public ObservableCollection<RecipeSpeed> GetRecipeSpeeds() => RecipeProfile.RecipeSpeeds;
+
+        /// <summary>
+        /// 点位配置集
+        /// </summary>
+        public ObservableCollection<RecipePointGroup> GetRecipePointGroups() => RecipeProfile.RecipePointGroups;
+
         /// <summary>
         /// 获取流程参数对象
         /// </summary>

+ 8 - 6
SKMC.API/SKMC.API.csproj

@@ -128,15 +128,16 @@
     <Compile Include="Common\Tcp\TcpClientBase.cs" />
     <Compile Include="Machine\Monitor\MachineLatchTask.cs" />
     <Compile Include="Machine\Monitor\MachineStateLatchMonitor.cs" />
-    <Compile Include="Device\SKVision\SKVisionClient.cs" />
-    <Compile Include="Device\SKVision\SKVisionProtocol.cs" />
-    <Compile Include="Device\SKVision\SKVisionClientBase.cs" />
+    <Compile Include="Vision\SKV0\SKVisionClient.cs" />
+    <Compile Include="Vision\SKV0\SKVisionProtocol.cs" />
+    <Compile Include="Vision\SKV0\SKVisionClientBase.cs" />
     <Compile Include="Machine\Config\MachineConfigStore.cs" />
     <Compile Include="Machine\Control\IMachineBoardControl.cs" />
     <Compile Include="Machine\Control\IMachineButtonControl.cs" />
     <Compile Include="Machine\Control\IMachineTowerLightControl.cs" />
     <Compile Include="Motion\Config\MotionConfigStore.cs" />
     <Compile Include="Motion\Driver\IMotionDriverAdvance.cs" />
+    <Compile Include="Motion\IMotionCardManager.cs" />
     <Compile Include="Motion\Model\MotionAO.cs" />
     <Compile Include="Common\Types\TimestampSet.cs" />
     <Compile Include="Motion\Model\MotionPosition.cs" />
@@ -191,9 +192,9 @@
     <Compile Include="Motion\MotionCacher.cs" />
     <Compile Include="Motion\Model\MotionCnd.cs" />
     <Compile Include="Motion\Config\MotionException.cs" />
-    <Compile Include="Process\Model\AxisCnd.cs" />
-    <Compile Include="Process\Model\Cnds.cs" />
-    <Compile Include="Process\Model\DioCnd.cs" />
+    <Compile Include="Motion\Model\AxisCnd.cs" />
+    <Compile Include="Motion\Model\Cnds.cs" />
+    <Compile Include="Motion\Model\DioCnd.cs" />
     <Compile Include="Process\Model\ProcessStep.cs" />
     <Compile Include="Recipe\RecipeCacher.cs" />
     <Compile Include="Common\Exceptions\ExceptionConfig.cs" />
@@ -211,6 +212,7 @@
   <ItemGroup>
     <Folder Include="Device\Ethercats\Config\" />
     <Folder Include="Device\External\" />
+    <Folder Include="Vision\SKV1\" />
   </ItemGroup>
   <ItemGroup>
     <None Include="app.config" />

+ 1 - 1
SKMC.API/Device/SKVision/SKVisionClient.cs → SKMC.API/Vision/SKV0/SKVisionClient.cs

@@ -5,7 +5,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace SKMC.Api.Device.SKVision
+namespace SKMC.Api.Vision.SKV0
 {
     /// <summary>
     /// 视觉通讯协议基础客户端

+ 1 - 1
SKMC.API/Device/SKVision/SKVisionClientBase.cs → SKMC.API/Vision/SKV0/SKVisionClientBase.cs

@@ -7,7 +7,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace SKMC.Api.Device.SKVision
+namespace SKMC.Api.Vision.SKV0
 {
     /// <summary>
     /// 视觉客户端通用基类

+ 1 - 1
SKMC.API/Device/SKVision/SKVisionProtocol.cs → SKMC.API/Vision/SKV0/SKVisionProtocol.cs

@@ -5,7 +5,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 
-namespace SKMC.Api.Device.SKVision
+namespace SKMC.Api.Vision.SKV0
 {
     /// <summary>
     /// SKVision通讯协议(V0)