领胜LDS 键盘AOI检测项目
wells.liu
2020-07-07 eb57feeff1d274dcd1a9bc767981d37d4837f959
src/Bro.Common.Device/DeviceBase/MotionCardBase.cs
@@ -26,6 +26,50 @@
        public abstract ResponseMessage MoveToPoint(IOperationConfig opConfig);
        public abstract void ResetAlarm();
        public abstract ResponseMessage Run(IOperationConfig config);
        /// <summary>
        /// 清除状态
        /// </summary>
        /// <param name="startAxisIndex">起始轴号</param>
        /// <param name="count">数量</param>
        /// <returns></returns>
        public abstract bool ClearStatus(int startAxisIndex, int count);
        /// <summary>
        /// 读取轴状态
        /// </summary>
        /// <param name="axisNum">轴号</param>
        /// <returns></returns>
        public abstract int GetAxisStatus(int axisNum);
        /// <summary>
        /// 位置清零
        /// </summary>
        /// <param name="startAxisIndex">起始轴号</param>
        /// <param name="count">数量</param>
        /// <returns></returns>
        public abstract bool PositionReset(int startAxisIndex, int count);
        public abstract bool AllAxisOn();
        public abstract bool AllAxisOff();
        public abstract Task<bool> AxisOnAsync(int axisNum);
        public abstract Task<bool> AxisOffAsync(int axisNum);
        /// <summary>
        /// 单个轴 运动(点到点 jog 回零...)
        /// </summary>
        /// <param name="optionPara">运动参数对象</param>
        public abstract Task<bool> SingleAxisMoving(MovingOption optionPara);
        /// <summary>
        /// 某个轴运动停止
        /// </summary>
        /// <param name="axisNum">轴号</param>
        /// <param name="option">0表示平滑停止,1表示紧急停止</param>
        /// <returns></returns>
        public abstract Task<bool> MoveStop(int axisNum, int option);
        public virtual void ExcuteMonitorInvoke(DateTime dateTime, string invokeDevice, IDevice device, IMonitorSet monitorSet)
        {
@@ -47,9 +91,17 @@
            }
        }
        /// <summary>
        /// IO的监听值
        /// </summary>
        public List<IOItem> MonitorValues { get; set; } = new List<IOItem>();
        public abstract void WriteOutput(short cardNum, short index, IOValue value);
        /// <summary>
        /// 轴的运动状态值
        /// </summary>
        public List<AxisMovingStatus> AxisMovingOptionValues { get; set; } = new List<AxisMovingStatus>();
        public abstract void WriteOutput(short index, IOValue value);
    }
    public class MotionCardInitialConfigBase : InitialConfigBase, IMonitorConfig
@@ -148,7 +200,7 @@
    }
    [Device("MotionOperationSet", "运动操作配置基类", EnumHelper.DeviceAttributeType.OperationConfig)]
    public class MotionCardOperationSet :  IComplexDisplay
    public class MotionCardOperationSet : IComplexDisplay
    {
        [Category("IO操作配置")]
        [DisplayName("IO预检查定义集合")]
@@ -156,6 +208,7 @@
        [TypeConverter(typeof(CollectionCountConvert))]
        [Editor(typeof(IORefrenceItemCollectionEditor), typeof(UITypeEditor))]
        public List<IORefrenceItem> PreCheckIOCollection { get; set; } = new List<IORefrenceItem>();
        [Category("IO操作配置")]
        [Description("超时设置,单位:ms")]
        [DisplayName("IO预检查超时")]
@@ -187,7 +240,7 @@
        [DisplayName("运动配置集合")]
        [Description("MovingOps:运动配置集合")]
        [TypeConverter(typeof(ComplexObjectConvert))]
        [Editor(typeof(PropertyObjectEditor),typeof(UITypeEditor))]
        [Editor(typeof(PropertyObjectEditor), typeof(UITypeEditor))]
        public MotionOperationCollection MotionOperationCollection { get; set; } = new MotionOperationCollection();