Skip to main content

Section: MacroModule

This section describes the parameters for the MacroModule. The section is created automatically when you generate a macro module. As an alternative, you can insert the section into a module declaration manually or edit an automatically generated section.

SEC MacroModule                                              //optional: yes, modifier: None
    SEC Rootmodule : <identifier>                            //optional: no, modifier: None
            SEC MacroParameter : <identifier>                    //optional: yes, modifier: None
                    Local_ParameterID := <parameter ID>;             //optional: no, type: ID
                    New_Name := <parameter name>;                    //optional: no, type: text
                    New_Desc := <parameter description>;             //optional: no, type: text
            END_SEC
            SEC MacroIO : <identifier>                           //optional: yes, modifier: None
                    Local_IOID := <IO ID>;                           //optional: no, type: ID
                    New_Name := <IO name>;                           //optional: yes, type: text
                    New_Desc := <IO description>;                    //optional: yes, type: text
            END_SEC
            SEC MacroSlot : <identifier>                         //optional: yes, modifier: None
                    Local_SlotID := <slot ID>;                       //optional: no, type: ID
                    New_Role := <role name>;                         //optional: yes, type: text
            END_SEC
            SEC Default_Allocation                               //optional: no, modifier: None
                    Module_Name := <module name>;                    //optional: no, type: QID
                    SEC VisuEmbeddings                               //optional: yes, modifier: None
                            Empty := TRUE/FALSE;                         //optional: yes, type: BoolFlag
                            SEC Embedding : <identifier>                 //optional: yes, modifier: None
                                    VisuName := <visu ID>;                   //optional: no, type: ID
                                    ProxyVisuName := <proxy visu ID>;        //optional: no, type: ID
                                    Target := <target ID>;                   //optional: yes, type: ID
                                    LinkId := <linke ID>;                    //optional: yes, type: ID
                            END_SEC
                    END_SEC
                    SEC PageVisu                                     //optional: yes, modifier: None
                            VisuName := <visu ID>;                       //optional: yes, type: ID
                            TopLevelTab := <top level tab>;              //optional: yes, type: ID/Bool
                    END_SEC
                    SEC IOMappings : <identifier>                    //optional: no, modifier: None
                            SEC Mapping : <identifier>                   //optional: yes, modifier: None
                                    NoMapping := TRUE/FALSE;                 //optional: yes, type: BoolFlag
                                    STExpression := <ST expression>;         //optional: yes, type: ID/ST expression
                                    ModuleConnection := <module connection>; //optional: yes, type: ID/ST expression
                            END_SEC
                    END_SEC
                    SEC Parameters : <identifier>                    //optional: yes, modifier: None
                            SEC Param : <identifier>                     //optional: yes, modifier: None
                                    Value := <value ID>;                     //optional: no, type: ID
                            END_SEC
                    END_SEC
            END_SEC
    END_SEC
    SEC Submodule : <identifier>                             //optional: yes, modifier: None
            Parent_Instance := <instance ID>;                    //optional: no, type: ID
            Parent_Slot := <slot ID>;                            //optional: no, type: ID
            SEC MacroParameter : <identifier>                    //optional: yes, modifier: None
                    Local_ParameterID := <parameter ID>;             //optional: no, type: ID
                    New_Name := <parameter name>;                    //optional: yes, type: text
                    New_Desc := <parameter description>;             //optional: yes, type: text
            END_SEC
            SEC MacroIO : <identifier>                           //optional: yes, modifier: None
                    Local_IOID := <IO Id>;                           //optional: no, type: ID
                    New_Name := <IO name>;                           //optional: yes, type: text
                    New_Desc := <IO description>;                    //optional: yes, type: text
            END_SEC
            SEC MacroSlot : <identifier>                         //optional: yes, modifier: None
                    Local_SlotID := <slot ID>;                       //optional: no, type: ID
                    New_Role := <role name>;                         //optional: yes, type: text
            END_SEC
            SEC Default_Allocation                               //optional: no, modifier: None
                    Module_Name := <module name>;                    //optional: no, type: QID
                    Instance_Name := <instance name>;                //optional: no, type: ID
                    SEC VisuEmbeddings                               //optional: no, modifier: None
                            Empty := TRUE/FALSE;                         //optional: yes, type: BoolFlag
                            SEC Embedding : <identifier>                 //optional: yes, modifier: None
                                    VisuName := <visu ID>                    //optional: no, type: ID
                                    ProxyVisuName := <proxy visu ID>         //optional: no, type: ID
                                    Target := <target ID>;                   //optional: yes, type: ID
                                    LinkId := <link ID>;                     //optional: yes, type: ID
                            END_SEC
                    END_SEC
                    SEC PageVisu                                     //optional: yes, modifier: None
                            VisuName := <visu ID>;                       //optional: yes, type: ID
                            TopLevelTap := <top level tab>;              //optional: yes, type: ID/Bool
                    END_SEC
                    SEC IOMappings : <identifier>                    //optional: yes, modifier: None
                            SEC Mapping : <identifier>                   //optional: yes, modifier: None
                                    NoMapping := TRUE/FALSE                  //optional: yes, type: BoolFlag
                                    STExpression := <ST expression>          //optional: yes, type: ID/ST expression
                                    ModuleConnection := <module connection>  //optional: yes, type: ID/ST expression
                            END_SEC
                    END_SEC
                    SEC Parameters                                   //optional: yes, modifier: None
                            SEC Param : <identifier>                     //optional: yes, modifier: None
                            Value := <value>;                           //optional: no, type: ID
                            END_SEC
                    END_SEC
            END_SEC
    END_SEC
    SEC Reference : <identifier>                             //optional: yes, modifier: None
            Parent_Instance := <instance ID>;                    //optional: no, type: ID
            Parent_Slot := <slot ID>;                            //optional: no, type: ID
            Referenced_Instance := <instance ID>;                //optional: no, type: ID
    END_SEC
END_SEC

Details regarding the syntax of definition types are described in the section Module Declaration.

. Specification:
  • MacroModule: If this section is defined, then no other section is allowed to appear within the entire module declaration except the section MetaData. Each module declaration with this section is identified clearly as type MacroModule. Another section MacroModule is not allowed within a module declaration.

  • Rootmodule: Indicates that the following subsections describe the root submodule, which should be 1) the root of this type MacroModule and 2) inserted as the top parent of all other submodule of the type MacroModule.

  • Submodule: Indicates that the following subsections describe a submodule, which should be inserted under the root submodule in a subtree for the type MacroModule.

  • MacroParameter: If this kind of subsection is used in a section Submodule or Root, then it can be indicated that a specific parameter of the defined submodule (or root) should itself occur as a parameter of the macro module. For this, the target of the section MacroParameter is used as a new parameter ID for the macro module parameter. The parameter of the given submodule (or root) is then defined by Local_ParameterID. In addition, textlist entries can be created using the definitions of New_Name and New_Desc. These entries are used for the name and description of the new macro module parameter instead of that of the submodule or root parameter. All defined targets of all sections MacroParameter within an entire macro module must be clear to ensure unique parameters IDs for all macro module parameters.

  • MacroIO: If this kind of subsection is used in the section Submodule or Root, then it can be indicated that a specific I/O of the defined submodule (or root) should itself occur as an I/O of the macro module. For this, the target of the section MacroIO is used as a new I/O ID for the macro module I/O. The I/O of the given submodule (or root) is then defined by Local_IOID. In addition, textlist entries can be created using the definitions of New_Name and New_Desc. These entries are used for the name and description of the new macro module I/O instead of the submodule or root I/O. All defined targets of all sections MacroIO within an entire macro module must be clear to ensure unique I/O IDs for all macro module I/Os.

  • MacroSlot: If this subsection is used in the section Submodule or Root, then it can be indicated that a specific slot of the defined submodule (or root) should itself occur as a slot of the macro module. In this way, additional module instances can be inserted below this slot of the MacroModule instance. For this, the target of the section MacroSlot is used as a new slot ID for the macro module slot. The slot of the given submodule (or root) is then defined by Local_SlotID. In addition, a text list entry can be created using the definitions New_Role. This entry is used for the role of the new macro module slot instead of that of the submodule or root slot. All defined targets of all sections MacroSlot within an entire MacroModule must be clear to ensure unique slot IDs for all MacroModule slots.

  • Parent_Instance: Defines an ID corresponding to a target ID of a section Rootmodule or Submodule of the encompassing section MacroModule. This definition exists only within the section Submodule. It defines the parent module instance below which the submodule should be inserted. This submodule is described by the respective section Submodule of the MacroModule. Moreover, the definition Parent_Slot is also required.

  • Parent_Slot: Defines an ID corresponding to the slot ID located under the submodule type identified by Parent_Module. The submodule of the MacroModule type described by the section Submodule is inserted below this slot.

  • Default_Allocation: This is identical to the section of the same name under the slot declarations (Slot and Slot_Multi). This section defines for both the "root module" and the "submodule" which kind of submodule of the MacroModule type should be inserted for which instance configuration. The only difference is that no Instance_Name can be defined for Default_Allocation under a section Rootmodule, but rather under sections Submodule. The reason for this is that the module instances inserted as "root module" receive their name from the MacroModule instance and therefore cannot be entered by "default".

  • Reference: Shows that the following subsections describe a module reference. A reference is generated below the module instance Parent_Instance and the slot Parent_Slot, referencing the submodule Referenced_Instance. As the Parent_Instance, this referenced instance must originate from the set of the submodule of root module instances below the same section MacroModule.

. The module declaration of a MacroModule type must satisfy the following conditions:
  • It shall not use IMPLEMENTED_BY or IMPORTS in its module declaration.

  • It must include the section MetaData and MacroModule. Otherwise, additional sections must not be used.

  • There has to be at least one Rootmodule section below the Macro_Module section. Moreover, there must not be a second Rootmodule section.

  • For each submodule , both the Parent_Instance and the Parent_Slot must be defined within MacroModule. This must then be defined as Local_SlotID within MacroSlot of the Parent_Instance.