Section : MacroModule
Cette section décrit les paramètres du MacroModule. La section est créée automatiquement lorsque vous générez un module de macro. Comme alternative, vous pouvez insérer manuellement la section dans une déclaration de module ou modifier une section générée automatiquement.
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_SECLes détails concernant la syntaxe des types de définition sont décrits dans la section Déclaration des modules.
- MacroModule: Si cette section est définie, aucune autre section n'est autorisée à apparaître dans l'ensemble de la déclaration du module, à l'exception de la section- MetaData. Chaque déclaration de module avec cette section est clairement identifiée comme type MacroModule. Une autre rubrique- MacroModulen'est pas autorisé dans une déclaration de module.
- Rootmodule: Indique que les sous-sections suivantes décrivent le sous-module racine, qui doit être 1) la racine de ce type MacroModule et 2) inséré en tant que parent supérieur de tous les autres sous-modules du type MacroModule.
- Submodule: Indique que les sous-sections suivantes décrivent un sous-module, qui doit être inséré sous le sous-module racine dans une sous-arborescence pour le type MacroModule.
- MacroParameter: Si ce type de sous-section est utilisé dans une section- Submoduleou- Root, on peut alors indiquer qu'un paramètre spécifique du sous-module défini (ou racine) doit lui-même apparaître en tant que paramètre du module macro. Pour cela, la cible de la section- MacroParameterest utilisé comme nouvel ID de paramètre pour le paramètre de module de macro. Le paramètre du sous-module donné (ou racine) est alors défini par- Local_ParameterID. De plus, des entrées de liste de textes peuvent être créées à l'aide des définitions de- New_Nameet- New_Desc. Ces entrées sont utilisées pour le nom et la description du nouveau paramètre de module de macro au lieu de celui du sous-module ou du paramètre racine. Toutes les cibles définies de toutes les sections- MacroParameterdans un module de macro entier doit être clair pour garantir des ID de paramètres uniques pour tous les paramètres de module de macro.
- MacroIO: Si ce type de sous-section est utilisé dans la section- Submoduleou- Root, on peut alors indiquer qu'une E/S spécifique du sous-module défini (ou racine) doit elle-même apparaître comme une E/S du module macro. Pour cela, la cible de la section- MacroIOest utilisé comme nouvel ID d'E/S pour les E/S du module macro. L'E / S du sous-module (ou racine) donné est alors défini par- Local_IOID. De plus, des entrées de liste de textes peuvent être créées à l'aide des définitions de- New_Nameet- New_Desc. Ces entrées sont utilisées pour le nom et la description de la nouvelle E/S du module macro au lieu du sous-module ou de l'E/S racine. Toutes les cibles définies de toutes les sections- MacroIOdans un module macro entier doit être clair pour garantir des ID d'E/S uniques pour toutes les E/S du module macro.
- MacroSlot: Si cette sous-section est utilisée dans la section- Submoduleou- Root, on peut alors indiquer qu'un emplacement spécifique du sous-module défini (ou racine) doit lui-même apparaître comme un emplacement du macro-module. De cette manière, des instances de module supplémentaires peuvent être insérées sous cet emplacement de l'instance de MacroModule. Pour cela, la cible de la section- MacroSlotest utilisé comme nouvel ID d'emplacement pour l'emplacement du module macro. L'emplacement du sous-module donné (ou racine) est alors défini par- Local_SlotID. De plus, une entrée de liste de textes peut être créée à l'aide des définitions- New_Role. Cette entrée est utilisée pour le rôle du nouvel emplacement de module macro au lieu de celui du sous-module ou de l'emplacement racine. Toutes les cibles définies de toutes les sections- MacroSlotà l'intérieur d'un MacroModule entier doit être clair pour garantir des ID d'emplacement uniques pour tous les emplacements de MacroModule.
- Parent_Instance: Définit un ID correspondant à un ID cible d'une section- Rootmoduleou- Submodulede la section englobante- MacroModule. Cette définition n'existe que dans la section- Submodule. Il définit l'instance du module parent sous laquelle le sous-module doit être inséré. Ce sous-module est décrit par la section correspondante- Submoduledu MacroModule. De plus, la définition- Parent_Slotest également requis.
- Parent_Slot: Définit un ID correspondant à l'ID d'emplacement situé sous le type de sous-module identifié par- Parent_Module. Le sous-module de type MacroModule décrit par la section- Submoduleest inséré sous cette fente.
- Default_Allocation: Ceci est identique à la section du même nom sous les déclarations d'emplacement (- Slotet- Slot_Multi). Cette section définit à la fois pour le "module racine" et le "sous-module" quel type de sous-module de type MacroModule doit être inséré pour quelle configuration d'instance. La seule différence est que non- Instance_Namepeut être défini pour- Default_Allocationsous une rubrique- Rootmodule, mais plutôt sous les rubriques- Submodule. La raison en est que les instances de module insérées en tant que "module racine" reçoivent leur nom de l'instance MacroModule et ne peuvent donc pas être saisies par "défaut".
- Reference: Indique que les sous-sections suivantes décrivent une référence de module. Une référence est générée sous l'instance du module- Parent_Instanceet la fente- Parent_Slot, faisant référence au sous-module- Referenced_Instance. Comme le- Parent_Instance, cette instance référencée doit provenir de l'ensemble du sous-module d'instances de module racine sous la même section- MacroModule.
- Il ne doit pas utiliser - IMPLEMENTED_BYou- IMPORTSdans sa déclaration de module.
- Il doit inclure la section - MetaDataet- MacroModule. Sinon, les sections supplémentaires ne doivent pas être utilisées.
- Il doit y avoir au moins un - Rootmodulerubrique sous le- Macro_Modulesection. De plus, il ne doit pas y avoir une seconde- Rootmodulesection.
- Pour chaque - submodule, à la fois le- Parent_Instanceet le- Parent_Slotdoit être défini dans- MacroModule. Celle-ci doit alors être définie comme- Local_SlotIDdans- MacroSlotdu- Parent_Instance.