Hello Guest it is April 29, 2024, 03:13:39 AM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - TeknicServo

Pages: « 1 2
11
Mach4 General Discussion / Re: Integrating Clearpath SD Motors With Mach4
« on: February 13, 2020, 10:34:29 AM »
Hi joshwalsh7,

I am an engineer at Teknic and ran across your post. I don’t have much familiarity with Mach, so I can’t comment on integrating the HLFB signal, but maybe I can give you a little insight on how to debug the problem you’re having.

As mcardoso said, the majority of mispositioning problems in servo-driven systems are mechanical. The rest are either electrical (noise or intermittent wiring) or software (sending the axis somewhere other than where you meant to send it). The first step to troubleshoot this problem is to figure out whether the problem is mechanical, electrical, or software.

Given that most mispositioning problems are mechanical, let’s start there. Not knowing your exact mechanical system makes it a little difficult for me to pick the optimum approach, but a good start is to see if the motor shaft itself is returning to the correct spot. Because you expressed your error as a linear amount (0.002 inches), as opposed to angular (e.g., degrees), I’m guessing that the drift you measured is relative to the mechanics not the motor shaft. To troubleshoot, we will want to measure what the motor shaft itself is doing.

One way you might be able to do this is to make a mark with a Sharpie marker on the tip of the motor shaft and make a second mark on something that doesn’t move (e.g., the front flange of the motor) that lines up with the first mark. If that’s not possible, figure out a way to point something directly at the mark on the shaft, like the tip of a dial indicator. (If you don’t know what I mean by a dial indicator, you can see one being used in this ClearPath video: https://youtu.be/-LubKmpB5-8?t=251 .)

Now run your axis enough times to be confident that you would see the “drift” in the mechanics and then see if the motor shaft is in the correct position. If it is, you can be pretty confident that you have mechanical slip somewhere in your mechanics. Troubleshooting the cause of the slippage is highly dependent on your particular design, but the first thing I usually look for is the use of set screws; they’re the single biggest cause of mechanical slip.

Barring any unusual servo configuration settings (e.g., torque foldback at the end of move, or a non-zero position deadband), any servo that uses a position integrator will always go to the position that it is told to go, or it will shut down. (Even with an end-of-move torque foldback or deadband, the error would not accumulate.) So, if the shaft isn’t in the position you expect and the motor drive hasn’t shut down, then you can be sure the motor is being (unintentionally) told to go to the incorrect position.

This can happen in a number of ways, for example: 1) your step signals might have high frequency electrical noise that is perceived to be extra steps (in either or both directions). This is not likely a problem with ClearPath because of its optically isolated and filtered inputs. 2) Intermittent wiring might cause the loss of steps (especially if the control cable is moving or being flexed during motion). 3) If the position drift is imperceptible on any given move, but slowly increases with each move, you might have a timing issue when you change directions. If the direction polarity change is too close to the start of steps, you might get a couple of steps in the wrong direction that can accumulate over time. 4) The software, especially if you’re doing math to determine the move length (as opposed to always sending a fixed integer number of steps), may be rounding in a way that leads to an incorrect position.

Describing how to troubleshoot every one of these possibilities is not practical for this post, but one hint is to see if you can tell whether the drift is repeatable (the same amount of error for each move, accumulating over time), or random. Items 1 and 2 above would tend to be random, while 3 and 4 would tend to be more consistent on each move.

Finally, regarding the use of HLFB (High Level FeedBack): Any following error you might have during a move will not accumulate into a static error that persists when the motion stops. Following error (aka, “tracking error”) is transient. Assuming your servo uses a non-zero position loop integrator (almost always true), and you don’t have a position deadband (ClearPath never uses a deadband; it has an anti-hunt/anti-dither algorithm that does not require a deadband), you will not end up with a static position error even if you send a new move before the previous move has settled. So, using HLFB to know when the move has settled will not solve your position drift problem. Although that’s not to say that connecting HLFB isn’t useful for other reasons.

HLFB (configured to show you whether you are tracking within your desired window) is useful to know if you’re pushing the servo past its limits (e.g., acceleration is too high, mechanics are binding, speed is too high for the bus voltage being used, etc.) or the servo has shut down. In a point-to-point application, you might use HLFB to make sure an axis is within its desired position tolerance before doing something on another axis. For example, before making a Z-axis move to place an IC on a circuit board, you would want to make sure the X and Y axes are settled in their correct positions. The ClearPath manual describes a number of ways to configure and use the HLFB signal.

Hope this helps.

Best regards,
Warren

Pages: « 1 2