APIs, concepts, guides, and more
Post Trajectory Gearing

Combine electronic gearing with point-to-point motion on a geared axis, applying the gearing offset after the slave axis’ motion processing, enabling correctional or superimposed motions.

🔹 What is Post Trajectory Gearing

If your application needs electronic gearing AND the ability to command point to point motion on a geared Axis, you want to use Post Trajectory Gearing (PTG) and not the standard electronic gearing. It’s just like regular electronic gearing but the gearing offset is applied after the slave Axis’ motion is processed. The PTG geared position is added to the EtherCAT position demand and subtracted from the Axis’ ActualPosition.

This means that a PTG slave will appear to not be in motion when its master is moving. This allows for us to make correctional or superimposed motions on the slave while it is following the master.


What is the reaction time for Post Trajectory Gearing?

Post Trajectory Gearing is updated every sample.

What drive modes are supported?

Post Trajectory Gearing is limited to drives working in Cyclic Synchronous Position Mode. Post Trajectory Gearing is always based on Command Position deltas.

My Command and Actual Positions don’t make any sense. How can I get my axis’ actual position?

When using PTG the geared offset is calculated each sample and is applied each sample as a delta. It is applied to the slave axis’ position demand which is sent over EtherCAT.

This means that your command and actual positions are relative to this position demand, so if you want to see where your axis ‘actually’ is, you can subtract out the geared offset.

ulong axisGearingOffsetAddress = axis.AddressGet(RSIAxisAddressType.RSIAxisAddressTypePOST_TRAJECTORY_GEARING_POSITION);
Double actualCommandPosition = axis.CommandPositionGet() - axis.CountsToUserUnits(controller.MemoryDoubleGet(axisGearingOffsetAddress));
double MemoryDoubleGet(uint64_t address)
Read a 64-bit double value from controller memory.