Back to top

Overview of Camming in AKD-Basic

Camming in AKD-Basic

Camming is a method of making a slave AKD-T drive follow a master encoder signal (or a virtual master) in a non-linear fashion.  It is very similar to electronic gearing, except that the slave does not have to match the position of the master.  In camming, the slave AKD-T drive will have defined target position values corresponding to each master encoder position.  You can define up to 1000 data points for the cam profile.  Each data point has the position value of the master encoder and the corresponding target position value of the slave.

Camming is a cyclic process and uses modulo on the master encoder position and the slave position.

Camming parameters and commands:

FB2.ENCRES - number of encoder pulses per rev of the slave motor - This parameter is used the same way as in electronic gearing.

EXTENCODER.POSMODULO - number of master encoder counts (pulses) per cam cycle - This is a setting in the slave program that specifies the roll-over point of the master encoder counts.

User units: Set the user units in the slave AKD-T to whatever you want.

Modulo: Enable Modulo in the slave AKD-T and set the roll-over position (PL.MODP2)
to the position value at which the cam cycle will roll over.  This is the position of the slave AKD-T where you want the position to roll over to zero.  This is the same setup as any modulo application.

Set EXTENCODER.POSMODULO = FB2.ENCRES, if you want your cam cycle to roll over at one motor rev.

Set EXTENCODER.POSMODULO > FB2.ENCRES, if you want your cam cycle to roll over at greater than one motor rev.


Use these commands to create the cam profile:

CAM.CREAT (1, n)  - creates cam profile #1 with n data points

Cam.AddPoint (x, y)  - adds a data point to the cam profile


End Cam.Create  - ends the create block

Cam.Active = 1  - activates cam profile #1


Attached are examples of camming programs:

  • Simple homing and predefined camming points
  • Homing and calculating the camming points in the program
  • Zeroing with absolute encoder and learning camming data points by moving the motor manually
  • Homing and learning camming data points by moving the motor manually