Skip to main content
Submitted by Gino on Wed, 03/11/2015 - 10:33

I have a system with two parallel linear motors. Axis A is commanded directly and axis B is slaved to it, so that it receives all the same commands. However, the installation is imperfect, and at the far end of the traverse the axes are off by a noticeable number of counts. Far enough off, in fact, that axes A and B cannot successfully reach their target simultaneously. The conflict that comes from this usually causes the system to shut itself off.

Is there a calibration procedure I could use to solve this? I have in mind something where I can query the encoder positions of each axis A and B as I pull the traverse along the whole length, and from that info form a table or interpolation function to modify the commands sent to axis B. That way instead of A and B getting the same commands, axis B gets whatever command is needed to make it play nicely with axis A. Has anyone done this or have ideas on he best way to make it happen?

Comments 1

Galil_CoryB on 04/01/2015 - 16:38

Gino-
[br]This is absolutely possible is application code or firmware in a few ways. If the system has a linear difference between the A axis and the B axis then changing the gearing ratio (GR) would solve this. An example of this would be that if the B axis was not perfectly parallel to the A axis and the counts the B axis has to move is 10% more, changing the gearing ratio from 1.0 to 1.1 would solve that.
[br]If the issue is a bit less uniform our backlash firmware does have compensation tables for this sort behavior. The position of one axis will add/subtract counts on that axes and/or another axis. Please see the Appnote 2447 (link below). The applications note talks about the axis being mounted to one another orthogonality but they do not have to be.

[br]Appnote 2447:
http://www.galil.com/download/application-note/note2447.pdf