Troubleshooting/Modifying Hardware

From ZaberWiki
Jump to navigation Jump to search

Introduction

Although Zaber endeavors to make our products easy to use, some tasks are unavoidably more complex. Modifying the hardware of a Zaber product (e.g., adding a limit sensor or encoder) is one such task.

Things to Check

After configuring the modified hardware it is important to check that the product still behaves as expected. The following are some suggestions of things to check, but the main goal should be to fully exercise the hardware that has been added or changed.

Homing
Send the home command to ensure that the product can still home from different positions. If the home sensor/encoder index mark is not at the start/end of travel, check that it can still home from either side of the sensor.
Movement
Homing is more robust to invalid configurations than normal movement commands. Send a move abs ... command to ensure it moves to the position you expect and performs well (e.g., no grinding sounds, etc.).
Limits
Ensure that the device never tries to exceed the specified limits. Sending move max and move min commands are good ways to check this behaviour. Also check that each limit triggers when expected and has the expected side effects (if any).

Troubleshooting

Here is a list of some symptoms and some of their possible causes. Please contact Zaber Customer Support for further assistance.

Symptom Possible Cause Remediation
The motor stalls (FS warning flag) driver.current.run or driver.current.servo is too low The controller may not be providing enough current to drive the motor, especially when loaded. Increase driver.current.run or driver.current.servo, being careful to ensure that the motor does not over heat.
encoder.#.dir is incorrect Ensure that encoder.#.dir (where # is the number of each enabled encoder port) is consistent with driver.dir. To be consistent the settings do not necessarily have to match; they just to be set such that encoder.#.pos and pos increase together.
encoder.#.ratio.mult and encoder.#.ratio.div are incorrect If encoder.#.ratio.mult and encoder.#.ratio.div do not represent the mechanics of the system, encoder.#.pos will be incorrect. The controller will then incorrectly adjust how it is controlling the motor to compensate. See the protocol manual for details on how to properly set these settings.
The motion is choppy or the axis makes grinding sounds encoder.#.ratio.mult and encoder.#.ratio.div are incorrect