using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TeamAAS.Global.Devices; using static TeamAAS.Motion.Enums.MotionEnums; using static TeamAAS.Motion.Events.CardAxisEventArgs; namespace TeamAAS.Motion.Interfaces { /// /// 单轴控制接口 /// public interface IAxis { // --- 1. 属性 (Properties) --- /// 轴号 int AxisNo { get; } /// 轴名称(如 "X", "Y", "Z") string Name { get; set; } // 1.1 状态属性 /// 轴当前状态(使能、运动中、错误等)[reference:9] AxisState State { get; } /// 轴是否已使能 bool IsEnabled { get; } /// 轴是否正在运动中 bool IsMoving { get; } /// 轴是否已完成回零 bool IsHomed { get; } // 1.2 位置与速度属性 /// 指令位置(控制器发送的目标位置) double CommandPosition { get; } /// 实际反馈位置(来自编码器)[reference:10] double ActualPosition { get; } /// 实际反馈速度 double ActualVelocity { get; } // 1.3 运动参数属性[reference:12] /// 运行速度 double Velocity { get; set; } /// 加速度 double Acceleration { get; set; } /// 减速度 double Deceleration { get; set; } /// 加加速度(S曲线平滑因子) double Jerk { get; set; } // --- 2. 方法 (Methods) --- // 2.1 使能与控制 /// 使能轴(开启伺服) void Enable(); /// 关闭轴使能 void Disable(); // 2.2 运动指令[reference:14] /// 绝对运动:移动到指定绝对位置 void MoveTo(double position); /// 相对运动:从当前位置移动指定距离 void MoveBy(double distance); /// 点动/连续运动:以指定速度持续运动 void Jog(double velocity); /// 停止运动(以设定减速度减速停止) void Stop(); // 2.3 回零操作[reference:15] /// 执行回零操作 /// 回零模式 void Home(HomeMode mode = HomeMode.Default); // 2.4 参数与位置设定 /// 设置当前位置(用于建立坐标系) void SetPosition(double position); /// 批量设置运动参数 void SetMotionParams(MotionParams parameters); // --- 3. 事件 (Events) --- /// 轴开始运动时触发 event EventHandler MotionStarted; /// 轴运动完成时触发 event EventHandler MotionCompleted; /// 轴状态发生变化时触发 event EventHandler StateChanged; /// 轴发生错误时触发 event EventHandler ErrorOccurred; } }