Skip to main content

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_SEC

Les détails concernant la syntaxe des types de définition sont décrits dans la section Déclaration des modules.

. Spécification:
  • 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 MacroModule n'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 Submodule ou 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 MacroParameter est 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_Name et 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 MacroParameter dans 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 Submodule ou 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 MacroIO est 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_Name et 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 MacroIO dans 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 Submodule ou 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 MacroSlot est 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 Rootmodule ou Submodule de 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 Submodule du MacroModule. De plus, la définition Parent_Slot est é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 Submodule est inséré sous cette fente.

  • Default_Allocation: Ceci est identique à la section du même nom sous les déclarations d'emplacement (Slot et 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_Name peut être défini pour Default_Allocation sous 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_Instance et 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.

. La déclaration de module d'un type MacroModule doit satisfaire les conditions suivantes :
  • Il ne doit pas utiliser IMPLEMENTED_BY ou IMPORTS dans sa déclaration de module.

  • Il doit inclure la section MetaData et MacroModule. Sinon, les sections supplémentaires ne doivent pas être utilisées.

  • Il doit y avoir au moins un Rootmodule rubrique sous le Macro_Module section. De plus, il ne doit pas y avoir une seconde Rootmodule section.

  • Pour chaque submodule , à la fois le Parent_Instance et le Parent_Slot doit être défini dans MacroModule. Celle-ci doit alors être définie comme Local_SlotID dans MacroSlot du Parent_Instance.