Cam automat in mapp motion without the axis features

Has anyone used Cam Automat in mapp Motion without the Axis feature, similar to how it was done in ACP10? I’m currently using MC_BR_CamAutomatCommand along with MC_BR_CamAutomatSetPar_AcpAx to configure the Cam Automat, but I keep encountering the following error:

Command: CamAutomatCommandFailed – Too many changes of cam per cycle (master period too short).
I’ve set up a basic Cam Automat configuration for testing purposes.

	McAcpAxCamAutPar.Common.Master.MasterStartPosition 	:= 0.0;
McAcpAxCamAutPar.Common.Master.MasterStartInterval 	:= 0;
McAcpAxCamAutPar.Common.Master.MasterAxis 			:= ADR(gAxis_Master);	
McAcpAxCamAutPar.Common.Master.MaxMasterVelocity 	:= 10000.0;

//-----------------------------------------------------------------------------------------//
//	Cam Automat calulations																						 //
//-----------------------------------------------------------------------------------------//
McAcpAxCamAutPar.State[0].CompensationMode		:= mcCOMP_OFF;
McAcpAxCamAutPar.State[0].MasterFactor			:= 10000;
McAcpAxCamAutPar.State[0].SlaveFactor			:= 0;
//------------------------------------------------------------------------------//
McAcpAxCamAutPar.State[0].Event[0].Type			:= mcEVENT_STATE_END;
McAcpAxCamAutPar.State[0].Event[0].Transition   := mcEVENT_END_OF_STATE;
McAcpAxCamAutPar.State[0].Event[0].NextState	:= 1;

(*********************** State 1: move state ************************************)

McAcpAxCamAutPar.State[1].CompensationMode		:= mcCOMP_OFF;
McAcpAxCamAutPar.State[1].MasterFactor			:= 360000;
McAcpAxCamAutPar.State[1].SlaveFactor			:= 3600;
//------------------------------------------------------------------------------//
McAcpAxCamAutPar.State[1].Event[0].Type			:= mcEVENT_STATE_END;
McAcpAxCamAutPar.State[1].Event[0].Transition   := mcEVENT_END_OF_STATE;
McAcpAxCamAutPar.State[1].Event[0].NextState	:= 1;

Am I using this correctly, or is there a different way to handle it in mapp Motion compared to how it was done in ACP10?
I’ve set up a basic Cam Automat configuration for testing purposes.
Thanks

Can you share your axis configurations as well as what your Reference Distance is for both axes (found in Physical View > Configuration of Drive > Mechanical elements > Rotary to linear transformation > Reference distance)? I got this issue when the master/slave factors were too small relative to their measurement units, and therefore the cam automat seemed to be trying to update too quickly.


this one the slave axis and the master is pure virtual axis


State 1 was defined as follows.

MasterFactor := 3600 / 0.01 = 360000;
SlaveFactor := 36 / 0.01 := 3600;

For every 1 degree of master movement, the slave axis is forced to move 0.01 degrees. This is exactly your measurement resolution value. Too many cam cycles are being attempted in the specified master period (SlaveFactor/MasterFactor = 0.01). Although the measurement resolution values ​​are equal, the master moves too fast for the given parameters, but the slave axis cannot move slowly enough to compensate.

If you aim for 36 degrees of slave movement in one master period, you should change your MasterFactor value as follows.

MasterFactor := 360 / 0.01 = 36000;
SlaveFactor := 36 / 0.01 := 3600;

i tried (MasterFactor = 36000 , Slave Factor = 3600) combination still giving me the same error

The screenshot of the automat is not showing all needed information like CamID.

If it is only for test I would start directly in State 1:
Common.AdvancedParameters.StartStateParam.StartState := 1;
And I would select 1:1 cam profile in State 1:
State[1].CamID := 16#FFFF;

1 Like