Set Up Model for Controlling Program Execution - MATLAB & Simulink (original) (raw)

To enable control of when generated code stops executing, for example, for instrumentation purposes, use the model configuration parameter Stop time or the Stop Simulation block.

When specifying stop time for generated code:

For the Stop Simulation block, the code generator inserts a call to thertmSetStopRequested macro in the generated code. Amain function can then check the setting ofstopRequestedFlag. For more information, see Real-Time Model Data Structure.

Absolute Time Considerations

Some blocks have a dependency on absolute time (see Blocks That Depend on Absolute Time). If your model uses a block that depends on absolute time you might want to set up the code generated from the model to run indefinitely (withStop time set to inf). The structure and macros that you use to do this depends on your system target file. For simulation targets, such as the one for Simulink® accelerator mode, the code generator produces the SimStruct data structure and corresponding macros. For other system target files, such asgrt.tlc and ert.tlc, the code generator produces thertModel data structure and corresponding macros. ThertModel data structure eliminates the potential for timer overflows that might occur during program execution. For more information, see Real-Time Model Data Structure and S-Function SimStruct Functions.

If you know how long an application that depends on absolute time needs to run, you can prevent timers from overflowing and force the use of optimal word sizes by changing the setting of model configuration parameter Application lifespan (days). See Optimize Memory Usage and Prevent Overflows for Time Counters for details.

Embedded Coder Considerations

For Simulink Coder, the code generator always honors the specified stop time from the generated static main function (see Static Main Function Module). When using Embedded Coder, the code generator honors a stop time setting if you select one of these model configuration parameters:

If you do not select one of these parameters, the program runs indefinitely.

The ERT system target file provides generated and static examples of theert_main.c file. This file controls the overall model code execution by:

Override Stop Time Set in Generated Code

From the Microsoft® Windows® command prompt or UNIX®1 command line, you can override the stop time that was set up for a generated program. To override the stop time, use the -tf switch.

The program runs for n seconds. If n isinf, the program runs indefinitely.

Custom Target Considerations

For a custom target, if you provide your own custom static main.c file, consider including support for stopping program execution. Use the macrosrtmGetErrorStatus and rtmGetStopRequested to check the settings of the error status and simulation stop requested flags in the real-time model data structure (rtModel).

For more information, see Real-Time Model Data Structure and Custom Software for Target Hardware.

See Also

Topics


1 UNIX is a registered trademark of The Open Group in the United States and other countries.