IMotionDriverAdvance.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using SKMC.Api.Motion.Model;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace SKMC.Api.Motion.Driver
  8. {
  9. /// <summary>
  10. /// 运动控制高级功能接口
  11. /// </summary>
  12. public interface IMotionDriverAdvance
  13. {
  14. /// <summary>
  15. /// 创建多轴插补坐标
  16. /// </summary>
  17. /// <param name="InterpNo">插补系编号</param>
  18. /// <param name="axisNos">关联的电机轴集合</param>
  19. /// <returns>执行结果, 0执行成功, 其他为错误码</returns>
  20. int CreateMultiInterpSys(short InterpNo, short[] axisNos);
  21. /// <summary>
  22. /// 删除多轴插补坐标
  23. /// </summary>
  24. /// <param name="InterpNo">插补系编号</param>
  25. /// <returns>执行结果, 0执行成功, 其他为错误码</returns>
  26. int RemoveMultiInterpSys(short InterpNo);
  27. /// <summary>
  28. /// 添加多轴插补数据(两轴)
  29. /// </summary>
  30. /// <param name="InterpNo">插补系编号</param>
  31. /// <param name="axis1Data">轴1的绝对位置集合,需要关联CreateMultiInterpSys的axisNos[0]</param>
  32. /// <param name="axis2Data">轴2的绝对位置集合,需要关联CreateMultiInterpSys的axisNos[1]</param>
  33. /// <param name="speed">基础速度</param>
  34. /// <param name="acc">基础加速度</param>
  35. /// <param name="blendType">过渡类型</param>
  36. /// <param name="blendRatio">过渡曲率</param>
  37. /// <returns></returns>
  38. int AddMultiInterpData(short InterpNo, List<double> axis1Data, List<double> axis2Data,
  39. double speed, double acc, short blendType = 1, double blendRatio = 0.1);
  40. /// <summary>
  41. /// 清除多轴插补数据
  42. /// </summary>
  43. /// <param name="InterpNo">插补系编号</param>
  44. /// <returns></returns>
  45. int ClearMultiInterpData(short InterpNo);
  46. /// <summary>
  47. /// 清除多轴插补错误/报警
  48. /// </summary>
  49. /// <param name="InterpNo">插补系编号</param>
  50. /// <returns></returns>
  51. int ClearMultiInterpError(short InterpNo);
  52. /// <summary>
  53. /// 开始多轴插补移动
  54. /// </summary>
  55. /// <param name="InterpNo">插补系编号</param>
  56. /// <returns></returns>
  57. int StartMultiInterpMove(short InterpNo);
  58. /// <summary>
  59. /// 等待多轴插补移动到位
  60. /// </summary>
  61. /// <param name="InterpNo">插补系编号</param>
  62. /// <param name="timeout">超时时间(毫秒)</param>
  63. /// <param name="errAction">运行异常或超时后的处理</param>
  64. /// <returns></returns>
  65. int WaitMultiInterpArrival(short InterpNo, int timeout, Action errAction);
  66. /// <summary>
  67. /// 停止多轴插补移动(到位后需要调用)
  68. /// </summary>
  69. /// <param name="InterpNo">插补系编号</param>
  70. /// <returns></returns>
  71. int StopMultiInterpMove(short InterpNo);
  72. }
  73. }