IMotionDriverAdvance.cs 3.0 KB

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