Setting up conveyor tracking on Fairino robots using an encoder. This has been tested on objects ranging from 2.4m to 9m in length on continuous conveyors. Here's what you need to know.

Hardware setup

  • Connect an encoder with differential outputs to the encoder ports on the control box
  • Use a digital input (e.g. DI4) as the trigger signal — this tells the robot to start tracking when a part arrives
  • The trigger can come from a proximity sensor, photoelectric sensor, or any other part-detection device

Tracking vs Tracking Motion — the key difference

TrackingTracking Motion
Robot follows the encoder position onlyRobot follows encoder AND makes additional movements on other axes
Moves along with the objectCan pick/place while tracking
Good for: spraying, gluing, inspectionGood for: pick & place on moving conveyor
Simpler to configureMore complex, but more capable

Configuration steps

  1. Go to WebApp → Settings → Tracking Configuration
  2. Set encoder parameters: resolution (pulses per unit distance), direction of travel
  3. Define the tracking axis — usually the base X coordinate for a linear conveyor
  4. Run the setup wizard — it will ask you to teach start and end positions while the conveyor is at a known encoder position
  5. Configure the trigger input (which DI signal starts/stops tracking)

Important technical notes

  • Old vs new firmware behavior: Older firmware versions track based on base X coordinate. Newer versions use TCP X coordinate. This can cause unexpected behavior when upgrading firmware on an existing tracking setup.
  • Work object coordinates define the direction of movement, not start/end positions — those are defined by the teaching points stored during the wizard setup.
  • Debugging: Use RegisterVar() to monitor encoder values in real-time through the WebApp. Also useful: GetWObjOffset(1) to read the current work object offset.

Known limitations

  • The robot may pause between tracking moves — this is a known limitation that affects continuous tracking operations. The pause occurs between individual motion commands (MoveL, MoveJ).
  • For very long objects (>2m), make sure your tracking window is large enough and the encoder resolution provides sufficient accuracy over the full length.
  • If simulating without a real conveyor: you can use a switch on DI and manually rotate the encoder for testing, but the behavior differs from continuous conveyor motion.

Reference

manual.fairino.support — Extended Axis / Tracking Configuration