Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PPMAC - Disable limits not supported #122

Open
LeandroMartinsdS opened this issue Feb 21, 2024 · 0 comments
Open

PPMAC - Disable limits not supported #122

LeandroMartinsdS opened this issue Feb 21, 2024 · 0 comments

Comments

@LeandroMartinsdS
Copy link
Contributor

LeandroMartinsdS commented Feb 21, 2024

In TurboPMAC, the limits are monitored by examining the ix24 variables. However, in PowerPMAC, ix24 represents the address of the servo-loop being used. PowerPMAC also includes protection against writing to invalid addresses.
The element Motor[%d].pLimits should be used instead.

This difference makes operations like i%d24=i%d24&$FDFFFF and i%d24=i%d24|$20000 invalid in PowerPMAC. Moreover, these operations do not disable or enable the limits as one might expect.
The correct operation should be something like Motor[%d].pLimits=0 for disabing, and Motor[%d].pLimits=Gate3[%d].Chan[%d].Status.a for enabling (preferably that address should be stored when disabling the limits).

When checking ix24, the response formats differ between TurboPMAC and PowerPMAC:

  • TurboPMAC uses the $%x format.
  • PowerPMAC uses the %d format.

Ultimately, these differences might lead to undesired behavior in two scenarios:

  • When homing into the limits, which is necessary to disable the limit faults.
  • When performing a safety check present in pmacAxis::getAxisStatus, which flags if the limits are disabled without the driver’s knowledge.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant