gmschoon Posted July 31, 2018 Share Posted July 31, 2018 Trying to implement master/follower with follower position compensation for a dual motor control driven gear (two worm gears driving main slew ring). Presently, the setup has the two motors driving in opposite directions with motor 2 following motor 1 trajectory. This works fine, however we want to offset the position of the follower (motor 2) relative to the master (motor 1) trajectory based on a cam/comp table. // present relevant configuration Motor[1].ServoCtrl = 1 Motor[2].ServoCtrl = 8 CompTable[0].Target[0] = Motor[2].CompDesPos.a The correct value based on the table and position of the master is written to the "Motor[2].CompDesPos" register as expected, however "Motor[2].DesPos" does not reflect this offset. It appears that for master/follower (ServoCtrl=8) mode, the master trajectory is applied directly at "Motor[2].DesPos" (or some point further) in the attached diagram and ignores offsets applied by comp tables. Is it possible to apply a comp table while having a master/follower configuration or is it necessary to apply servo loop cascading settings (Motor[x].MasterCtrl) to achieve this? Thanks Link to comment Share on other sites More sharing options...
curtwilson Posted August 2, 2018 Share Posted August 2, 2018 Because Motor 2 is in follower mode, it does not compute its own desired position, which means it ignores its own CompDesPos register. If you want the equivalent* effect, use a comp table whose target is Motor[2].CompPos, not CompDesPos. In this case, the offsets should be of the opposite sign (you can set the table scale factor to a negative number). *When the offset is to the actual position, changes in the offset do not affect feedforward calculations into the servo loop. With a worm gear mechanism, I don't think this will make any difference to you. Link to comment Share on other sites More sharing options...
Recommended Posts