Skip to main content

Sezione: MacroModulo

In questa sezione vengono descritti i parametri del MacroModulo. La sezione viene creata automaticamente quando si genera un modulo macro. In alternativa, è possibile inserire manualmente la sezione in una dichiarazione di modulo o modificare una sezione generata automaticamente.

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

I dettagli riguardanti la sintassi dei tipi di definizione sono descritti nella sezione Dichiarazione del modulo.

. Specifica:
  • MacroModule: Se questa sezione è definita, allora nessun'altra sezione può apparire all'interno dell'intera dichiarazione del modulo tranne la sezione MetaData. Ogni dichiarazione di modulo con questa sezione è identificata chiaramente come tipo MacroModule. Un'altra sezione MacroModule non è consentito all'interno di una dichiarazione di modulo.

  • Rootmodule: Indica che le seguenti sottosezioni descrivono il sottomodulo radice, che dovrebbe essere 1) la radice di questo tipo MacroModule e 2) inserito come genitore superiore di tutti gli altri sottomoduli del tipo MacroModule.

  • Submodule: Indica che le seguenti sottosezioni descrivono un sottomodulo, che deve essere inserito sotto il sottomodulo radice in un sottoalbero per il tipo MacroModule.

  • MacroParameter: Se questo tipo di sottosezione viene utilizzato in una sezione Submodule O Root, allora può essere indicato che un parametro specifico del sottomodulo definito (o root) dovrebbe esso stesso presentarsi come parametro del modulo macro. Per questo, l'obiettivo della sezione MacroParameter viene utilizzato come nuovo ID parametro per il parametro del modulo macro. Il parametro del sottomodulo dato (o radice) viene quindi definito da Local_ParameterID. Inoltre è possibile creare voci di liste di testo utilizzando le definizioni di New_Name E New_Desc. Queste voci vengono utilizzate per il nome e la descrizione del nuovo parametro del modulo macro anziché per quello del sottomodulo o del parametro root. Tutti gli obiettivi definiti di tutte le sezioni MacroParameter all'interno di un intero modulo macro deve essere chiaro per garantire ID parametri univoci per tutti i parametri del modulo macro.

  • MacroIO: Se questo tipo di sottosezione viene utilizzato nella sezione Submodule O Root, allora si può indicare che un determinato I/O del sottomodulo definito (o root) dovrebbe esso stesso presentarsi come I/O del modulo macro. Per questo, l'obiettivo della sezione MacroIO viene utilizzato come nuovo ID I/O per l'I/O del modulo macro. L'I/O del sottomodulo dato (o radice) viene quindi definito da Local_IOID. Inoltre è possibile creare voci di liste di testo utilizzando le definizioni di New_Name E New_Desc. Queste voci vengono utilizzate per il nome e la descrizione del nuovo I/O del modulo macro invece del sottomodulo o dell'I/O root. Tutti gli obiettivi definiti di tutte le sezioni MacroIO all'interno di un intero modulo macro deve essere chiaro per garantire ID I/O univoci per tutti gli I/O del modulo macro.

  • MacroSlot: Se questa sottosezione viene utilizzata nella sezione Submodule O Root, allora può essere indicato che uno slot specifico del sottomodulo definito (o radice) dovrebbe esso stesso presentarsi come slot del modulo macro. In questo modo è possibile inserire ulteriori istanze del modulo sotto questo slot dell'istanza MacroModule. Per questo, l'obiettivo della sezione MacroSlot viene utilizzato come nuovo ID slot per lo slot del modulo macro. Lo slot del sottomodulo specificato (o radice) viene quindi definito da Local_SlotID. Inoltre è possibile creare una voce in un elenco di testi utilizzando le definizioni New_Role. Questa voce viene utilizzata per il ruolo del nuovo slot del modulo macro anziché quello del sottomodulo o dello slot root. Tutti gli obiettivi definiti di tutte le sezioni MacroSlot all'interno di un intero MacroModule deve essere chiaro per garantire ID slot univoci per tutti gli slot MacroModule.

  • Parent_Instance: Definisce un ID corrispondente a un ID di destinazione di una sezione Rootmodule O Submodule della sezione comprensiva MacroModule. Questa definizione esiste solo all'interno della sezione Submodule. Definisce l'istanza del modulo genitore sotto la quale deve essere inserito il sottomodulo. Questo sottomodulo è descritto nella rispettiva sezione Submodule del MacroModulo. Inoltre, la definizione Parent_Slot è anche richiesto.

  • Parent_Slot: Definisce un ID corrispondente all'ID dello slot situato sotto il tipo di sottomodulo identificato da Parent_Module. Il sottomodulo del tipo MacroModule descritto dalla sezione Submodule è inserito sotto questo slot.

  • Default_Allocation: Questo è identico alla sezione con lo stesso nome sotto le dichiarazioni degli slot (Slot E Slot_Multi). Questa sezione definisce sia per il "modulo root" che per il "sottomodulo" quale tipo di sottomodulo di tipo MacroModule deve essere inserito per quale configurazione di istanza. L'unica differenza è che no Instance_Name può essere definito per Default_Allocation sotto una sezione Rootmodule, ma piuttosto in sezioni Submodule. Il motivo è che le istanze del modulo inserite come "modulo root" ricevono il nome dall'istanza MacroModule e quindi non possono essere inserite per "default".

  • Reference: Mostra che le seguenti sottosezioni descrivono un riferimento al modulo. Viene generato un riferimento sotto l'istanza del modulo Parent_Instance e la fessura Parent_Slot, facendo riferimento al sottomodulo Referenced_Instance. Come il Parent_Instance, questa istanza di riferimento deve provenire dall'insieme del sottomodulo di istanze del modulo root sotto la stessa sezione MacroModule.

. La dichiarazione del modulo di tipo MacroModule deve soddisfare le seguenti condizioni:
  • Non deve essere utilizzato IMPLEMENTED_BY O IMPORTS nella sua dichiarazione del modulo.

  • Deve includere la sezione MetaData E MacroModule. Altrimenti non devono essere utilizzate sezioni aggiuntive.

  • Ce ne deve essere almeno uno Rootmodule sezione sotto il Macro_Module sezione. Inoltre, non deve esserci un secondo Rootmodule sezione.

  • Per ciascuno submodule , entrambi i Parent_Instance e il Parent_Slot deve essere definito all'interno MacroModule. Questo deve quindi essere definito come Local_SlotID entro MacroSlot del Parent_Instance.