Generate Structured Text Code for Reusable Subsystems
This example shows how to simulate and generate structured text code for an atomic reusable subsystem. Reusable subsystems enable you to model commonly used blocks as a subsystem and reuse the subsystems multiple times within a model. Use reusable subsystems in your model to :
Facilitate team-based development.
Optimize the time, to make model changes by making changes to one subsystem and copying the subsystem to all other locations in the model where the subsystem is used.
Reduce complexity of the generated code by generating a single shared function block.
To generate code for the reusable subsystems, mark the child subsystems as atomic by right-clicking the subsystem blocks, selecting
Block Parameters (Subsystem), and then selecting
Treat as atomic unit under the
The model consists of a top-level atomic subsystem called
ReusableSubsystem. Under the top-level subsystem there are two identical atomic subsystems
Open the model:
To generate structured text code, do one of the following:
Open the PLC Coder app. Select the
ReusableSubsystemblock and click
Generate PLC Code.
### Generating PLC code for 'plcdemo_reusable_subsystem/ReusableSubsystem'. ### Using model settings from 'plcdemo_reusable_subsystem' for PLC code generation parameters. ### Begin code generation for IDE codesys23. ### Emit PLC code to file. ### Creating PLC code generation report plcdemo_reusable_subsystem_codegen_rpt.html. ### PLC code generation successful for 'plcdemo_reusable_subsystem/ReusableSubsystem'. ### Generated files: plcsrc/plcdemo_reusable_subsystem.exp
Structure of Generated Code
The generated structured text code consists of a single shared function block
S1 as a result of code reuse optimizations. The generated structured text code for the reusable subsystem consists of these components:
Subsystem instance variables: The subsystems
S2are declared as instances of
S1. The code invokes these two instances separately by passing in different inputs to the function block.
Function calls: This part of the code contains calls to the subsystem instance variable declarations with the different inputs required for each instance of
Reusable function block definition: This part of the code contains code for the components inside the
S1subsystem. This function block definition is called by the code in the function calls section.
This image shows the different components of the generated structured text code.
Close the Model
To close the model: