Position Fault and Max Position Error
Last updated
Last updated
We’ve all been there: Press GO, the cue begins but then stops well before its target and Spikemark is displaying yellow highlights and the cursed Position Fault icon.
Inevitably this happens under intense stares from the artistic team and lots of pressure to “just make it work”. Before you begin looking for a job raising Alpacas or turning off Abort on Position Error, which we do not recommend, what else can be done? Read on to learn what Abort on Position Error means and how Spikemark conjures up the mystical Max Position Error.
Spikemark keeps an eye on the actual position of the machine and compares that to where it should be at any given time through the cued movement. If the actual position error is greater than the Max Position Error value, the movement will be stopped and you will see the Position Fault icon in Spikemark.
A slow speed move with a small Position Lag Time
Unattainable speed
If the machine can't go as fast as you are asking it to - it will always be behind.
Encoder loss
If the encoder signal is lost (or simply not connected) it will be behind
Motor/Encoder direction mismatch
If the FWD command is returning REV counts, Spikemark will see the position error grow and fault out
Poor motor tuning
This is a bit more challenging to quantify...
Position - This is the actual that the encoder is reading the machine to be at
Desired Position - when running in a Cue, this readout is where the position is expected to be based on the values in the Movement
Position Error = Desired Position - Actual Position. If the position error exceed what is set for the max position error, the cue will abort and you will see the position fault icon.
Peak Position Error - This is the largest position error value this axis has seen since this value was last reset.
Throughout a cue, Spikemark is constantly calculating where a machine is supposed to be, and comparing that number to where the machine is in reality. If that discrepancy becomes larger than the Max Position Error, Spikemark will stop that motor and indicate a Position Error.
Notice that if you try to enter in a value too high for the Max Position Error, Spikemark will autocorrect this to being a smaller number. This is because the motion controller inside the Stagehand has a maximum allowable Max Position Error (MPE) value is 32,767 raw encoder counts. Therefore, this Maximum Max Position Error is dependent on your position scale and therefore your encoder resolution. So with a higher encoder resolution, you get more precise position feedback, but you also reduce your Maximum Max Position Error.
The MPE is given in scaled position units such as inches or degrees. Therefore, if you have a position scale of 10,000 encoder counts per inch, the largest MPE you can input will equal 3.2767” [32,767 raw encoder counts ÷ 10,000 encoder counts/inch = 3.2767 inch]. Below is a table of stock CCI machines and their MPE values as a real world reference:
Machine | Counts/Unit | MPE | Units |
Pushstick V2 | 3145.87 | 10.42 | Inches |
Revolver | 5585.048 | 5.87 | Degrees |
CM Chain Hoist | 29520.16239 | 1.11 | Inches |
You can set the MPE to be lower than this maximum, but Spikemark wont let you set a value higher. Try for yourself: Try setting the MPE for the Pushstick V2 to be 15", you will notice that it corrects itself to ~10.42".
Position Lag is another way to look at the MPE value. The idea behind Position Lag Time is to allow you a max time for how long a movement can be in a position error before faulting.
However, the motion controller cannot take a time input for Max Position Error. Therefore, Position Lag Time is calculated dynamically based on the speed of the current movement.
When the cue is loaded, Spikemark will calculate a Position Lag Value(Maximum Position Error based on the Position Lag Value) and compare it to the entered Max Position Error value, and then will use the smaller value as the Max Position Error for that move.
Let's say we have a show with a Pushstick V2. From the table above we know the MPE is 10.42" and we have the Position Lag Time set to .5 seconds. If we run a cue with a speed of 30"/s.
The Position Lag Value will equal
Since Spikemark will use the smaller value of the Position Lag Value and the inputted MPE, from the MPE field, the loaded MPE will be 10.42"
However, if use the same Pushstick V2 with the same MPE Value and Position Lag time, but a cue with a speed of 12"/s:
The Position Lag Value will equal
Since Spikemark will use the smaller value of the Position Lag Value and the inputted MPE, from the MPE field, the loaded MPE will be 6" not 10.42"
Make sense? I hope so. The short answer is that both the inputted Max Position Error and Position Lag Time will effect the actual loaded Max Position Error and will stop a motor if exceeded.
If the encoder direction is moving opposite to the motor direction, this position error will increase fast and fault. If you turn off "Abort On Position Error" this machine will likley speed up and speed up to correct for the error until it is running at full speed in the opposite direction. Keep "Abort on Position Error" checked and turned on to prevent a machine from running away.
Make sure that when you are jogging from the face of the Stagehand that Forward has encoder count counting up and Reverse has encoder counts counting down.
If you encoder is not being powered, missing a phase, or is not physically connected to the moving machine, the position feedback to not be sent to the motion controller, and like a Mismatch, the machine will likely start to run away or position fault. Check that you encoder is getting power, is wired correctly, and is mechanically secured to track position accurately.
The motion controller auto-magically is comparing the Actual Position vs. the Desired Position, and will speed up or slow down the motor to correct any Position Error even if it isn't a Position Error Fault. Motor Tuning adjusts how this Position Error Correcting is achieved.
If you are position faulting due to tuning, increasing the Proportional Gain will likely prevent you from faulting, but may also create motion that isn't buttery smooth. Adding Derivative gain could help smooth it out.
You can also try Auto-tuning(drive level) to make sure the motor is being powered optimally.
We want all of our effects to have the least amount of error. So making sure the mechanics are tight, everything is wired correctly, and optimizing the tuning, should be the first steps to getting rid of position faults.
However, sometimes we have sloppy mechanics in our effect and have to work with what we have. This is where you increase you Max Position Error or Position Lag Time Values.
But what if you are already at the maximum values for Max Position Error and Position Lag Time, and are still getting position faults, what should you do?
Try Motor Tuning again
Swap in a new encoder with a lower resolution. If you use an encoder with half the resolution, you will double your Maximum Allowable Max Position Error.
If this is selected, Spikemark will use the smaller of the numbers as discussed above to stop the motion of a motor when the Max Position Error has been exceeded.
Deselect this and the move will continue, regardless of how far off it may be, until Spikemark receives feedback that the motor is located within the Target Tolerance of the target destination.
If you are having an encoder issue, turning off Abort On Position Error could result in a motor that increases speed until you e-stop the machine. This could be very dangerous.
Turning off Abort On Position Error should only be used for troubleshooting and without scenery attached and with nothing near the machine.