using SKMC.Api.Motion.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SKMC.Api.Motion.Driver { /// /// 运动控制高级功能接口 /// public interface IMotionDriverAdvance { /// /// 创建多轴插补坐标 /// /// 插补系编号 /// 关联的电机轴集合 /// 执行结果, 0执行成功, 其他为错误码 int CreateMultiInterpSys(short InterpNo, short[] axisNos); /// /// 删除多轴插补坐标 /// /// 插补系编号 /// 执行结果, 0执行成功, 其他为错误码 int RemoveMultiInterpSys(short InterpNo); /// /// 添加多轴插补数据(两轴) /// /// 插补系编号 /// 轴1的绝对位置集合,需要关联CreateMultiInterpSys的axisNos[0] /// 轴2的绝对位置集合,需要关联CreateMultiInterpSys的axisNos[1] /// 基础速度 /// 基础加速度 /// 过渡类型 /// 过渡曲率 /// int AddMultiInterpData(short InterpNo, List axis1Data, List axis2Data, double speed, double acc, short blendType = 1, double blendRatio = 0.1); /// /// 清除多轴插补数据 /// /// 插补系编号 /// int ClearMultiInterpData(short InterpNo); /// /// 清除多轴插补错误/报警 /// /// 插补系编号 /// int ClearMultiInterpError(short InterpNo); /// /// 开始多轴插补移动 /// /// 插补系编号 /// int StartMultiInterpMove(short InterpNo); /// /// 等待多轴插补移动到位 /// /// 插补系编号 /// 超时时间(毫秒) /// 运行异常或超时后的处理 /// int WaitMultiInterpArrival(short InterpNo, int timeout, Action errAction); /// /// 停止多轴插补移动(到位后需要调用) /// /// 插补系编号 /// int StopMultiInterpMove(short InterpNo); } }