Main Content


Determine the time of the next sample time hit




C, C++


void mdlGetTimeOfNextVarHit(SimStruct *S)



SimStruct representing an S-Function block.


The Simulink® engine invokes this optional method at a major time step when the variable sample time registered by this S-function has a hit. This method is used by the Simulink engine to determine the time of the next sample hit for variable sample time. The S-function should set this next sample hit using ssSetTNext macro in this method. The time of the next hit must be greater than the current simulation time as returned by ssGetT. The S-function must implement mdlGetTimeOfNextVarHit if it operates at a variable sample time.

For Level-2 MATLAB S-functions, use a sample time of -2 to specify a variable sample time. The S-function's output method should then update the NextTimeHit property of the instance of the Simulink.MSFcnRunTimeBlock class representing the S-Function block to set the time of the next sample time hit. See /msfcn_vs.m for an example.

For Level-1 MATLAB S-functions, a flag of 4 is passed to the S-function when the next sample time hit needs to be calculated.


The time of the next hit can be a function of the input signals.


  static void mdlGetTimeOfNextVarHit(SimStruct *S)
    time_T offset = getOffset();
  	time_T timeOfNextHit = ssGetT(S) + offset;
  	ssSetTNext(S, timeOfNextHit);

Version History

Introduced before R2006a