CODESYS SoftMotion: Command position rollover for modulo axes

With a SoftMotion axis configured as "modulo",  it had been observed in a variety of cases that the position command value is failing to rollover at the defined modulo.  

For example, with MC_CamIn (see attached for cam definition):

The consequence of this is that for sufficiently large commanded position, the axis stops:

MC_GearInPos and MC_MoveRelative behave similarly.  

Am I missing something in the setup?

Test axis: IndraDrive, MPB-20 firmware.  CODESYS SoftMotion 4.10.0.0.  ctrlX CODESYS Softmotion Adapter 1.10.0.3.

 

Best reply by eschwellinger

First of all, my preference would be to set the max. travel range to 2^31-1. This is how SoftMotion expect drives to behave.

dwBusModuloMask is an internal variable, so I would not recommend to set it.

The thing with the max. travel-range and the absolute mode of the drive would be an important info for the commissioning guide.

https://www.boschrexroth.com/documents/12605/30723711/CODESYS+SoftMotion+%26+IndraDrive+%E2%80%93+EtherCAT+CoE/df9fb2ea-4108-04a4-aee3-140af1dcc3ad

Instead of using the internal variable dwBusModuloMask  I would recommend to use:

SMC_SetBusBandWidth

But as I said... usually this should not be needed.

 

 

View original
mc_camin_definition.png
24.72KB
mc_gearinpos_rollover_1.png
50.67KB
mc_moverelative_rollover_1.png
26.18KB
4 replies