Simulation subsystems provide a way to modularize simulation diagram code. By combining several functions into a subsystem, you reduce the amount of space needed on the simulation diagram, making the simulation easier to navigate visually. Simulation subsystems also are useful for validating, distributing, and reusing portions of the simulation diagram. You can run simulation subsystems as stand-alone VIs or place subsystems within another Simulation Loop or simulation subsystem.
Simulation subsystems do not include a Simulation Loop. Therefore, the entire block diagram of a simulation subsystem is pale yellow. If you want to run that simulation as a stand-alone VI, you configure the parameters of a simulation subsystem by selecting Operate»Configure Simulation Parameters to launch the Configure Simulation Parameters dialog box. You also can configure the execution and appearance of the subsystem by selecting File»VI Properties.
However, if you place that simulation subsystem inside a Simulation Loop, that simulation subsystem inherits the parameters from that Simulation Loop.
![]() |
Note When running a simulation subsystem as a stand-alone VI, you can use standard LabVIEW debugging techniques, such as execution highlighting, breakpoints, probes, and single-stepping. You cannot use these techniques on a subsystem that is within another Simulation Loop. You also cannot step into the subsystem. However, you can set a breakpoint on the entire subsystem by right-clicking the subsystem and selecting Set Breakpoint from the shortcut menu. You also can use a probe or a custom probe to monitor the subsystem output. |
The following figure shows the simulation diagram of a simulation subsystem Newton.vi, which obtains the position of a mass by using Newton's Second Law of Motion.

In the previous figure, this subsystem has front panel controls and indicators, so you can run this subsystem by clicking the Run button. Because Newton.vi does not have a Simulation Loop, you configure the parameters of this subsystem by selecting Operate»Configure Simulation Parameters.
The following figure shows Newton.vi included within the Simulation Loop of another simulation diagram.

In the previous figure, the parameters of the Simulation Loop override any parameters you configured specifically for Newton.vi.
![]() |
Note You create this subsystem and this VI in the Getting Started with the LabVIEW Simulation Module tutorial. |
If you create one or more subsystems that perform the same operation on different data types, you can package those subsystems together to create a polymorphic subsystem. A polymorphic subsystem is a single VI that points to one or more subsystems, called instances. Each instance accepts a different data type for a single input or output terminal. LabVIEW automatically selects the correct instance based on the input data type.
For example, one subsystem could operate on a double-precision floating point number, while another subsystem performs the same operation on a 16-bit integer. Instead of placing both subsystems on the simulation diagram, you can create a polymorphic subsystem that automatically chooses the correct instance.
For a polymorphic subsystem to work, each instance of the polymorphic VI must be a simulation subsystem. You cannot create a polymorphic VI with both VIs and subsystems as instances. Also, each subsystem must have an identical connector pane pattern.