This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 通过 SpainTAC Move 进行位置转换

Guru**** 2381880 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/685832/position-transitions-with-spaintac-move

美好的一天!

感谢 TI,我在控制伺服电机方面度过了一段美好的时光:)。

我使用了以下函数:

STPOSMOVE_setPositionStep_mrev (stObj->posMoveHandle、gMotorVars.PosStepInt_MRev、gMotorVars.PosStepFrac_MRev);
我必须设置 PosStepInt_MRev、PosStepFrac_MRev 才能转到我的目标位置、

现在、我喜欢像 所有伺服驱动器一样按脉冲和方向工作。

请告诉我如何通过脉冲和方向 而不是" PosStepInt_MRev、PosStepFrac_MRev "在位置模式下运行伺服电机?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您必须添加一些代码来将脉冲和方向信号转换为 PosStepInt_MRev 和 PosStepFrac_MRev。转换系数基于电机和位置传感器规格。 然后调用 STPOSMOVE_setPositionStep_mrev (stObj->posMoveHandle、gMotorVars.PosStepInt_MRev、gMotorVars.PosStepFrac_MRev)来设置目标位置。

    PosStepInt_MRev 是机械旋转的整数部分、PosStepFrac_MRev 是机械旋转的分数部分。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的 Yanming 尽快回复。

    您可能知道位置环路的更新时间为1kHz (1ms 间隔),因此这是我可以收集脉冲并将 ti 转换为 (PosStepInt_MRev 和 PosStepFrac_MRev)的时间,该部件非常简单。

    但问题是、执行一  个 STPOSMOVE_setPositionStep_mrev (stObj->posMoveHandle、gMotorVars.PosStepInt_MRev、gMotorVars.PosStepFrac_MRev)后会有很长的延迟。

    实际上会像这个  STPOSMOVE_setPositionStep_mrev (...)一样运行    长期交易      STPOSMOVE_setPositionStep_mrev (...)  。

    如何去移动它!

    您确定我们可以使用  STPOSMOVE_setPositionStep_mrev 来控制脉冲和方向了。 如果是、我很高兴您能向您解释一下、谢谢。

    此致。

    Dave。

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,您可以使用 STPOSMOVE_setPositionStep_mrev ()通过脉冲和方向实现位置控制。 您可以更改 ISR_TICKS_PER_SPINTAC_TICK 以根据要求降低延迟。 您还可以更改 gMotorVars.MaxVel_KRPM、gMotorVars.MaxAccel_krpmps 和 gMotorVars.MaxDecel_krpmps 以改善响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Yanming

    你(们)好

    最终我可以解决我的问题:)

    问题来自 STPOSMOVE_Setsample_Sec(),需要减少它!

    无论如何都谢谢
    祝你一切顺利。
    Dave。