Skip to main content

Sección MacroModule

La sección describe los parámetros para el MacroModule. La sección se crea automáticamente cuando genera un módulo macro. Como alternativa, puede insertar la sección en una declaración de módulo manualmente o editar una sección generada automáticamente.

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

Los detalles sobre la sintaxis de los tipos de definición se describen en la sección Declaración del módulo.

. Especificación:
  • MacroModule: si se define esta sección, no se permite que aparezca ninguna otra sección dentro de la declaración del módulo completo excepto la sección MetaData. Cada declaración de módulo con esta sección se identifica claramente como tipo MacroModule. otra seccion MacroModule no está permitido dentro de una declaración de módulo.

  • Rootmodule: Indica que las siguientes subsecciones describen el submódulo raíz, que debe ser 1) la raíz de este tipo de MacroMódulo y 2) insertado como el padre superior de todos los demás submódulos del tipo MacroMódulo.

  • Submodule: Indica que las siguientes subsecciones describen un submódulo, que debe insertarse debajo del submódulo raíz en un subárbol para el tipo MacroModule.

  • MacroParameter: Si este tipo de subsección se usa en una sección Submodule o Root, entonces se puede indicar que un parámetro específico del submódulo definido (o raíz) debe ocurrir en sí mismo como un parámetro del módulo macro. Para ello, el objetivo de la sección MacroParameter se utiliza como un nuevo ID de parámetro para el parámetro del módulo macro. El parámetro del submódulo dado (o raíz) se define entonces por Local_ParameterID. Además, las entradas de la lista de texto se pueden crear utilizando las definiciones de New_Name y New_Desc. Estas entradas se utilizan para el nombre y la descripción del nuevo parámetro del módulo macro en lugar del submódulo o parámetro raíz. Todos los objetivos definidos de todas las secciones. MacroParameter dentro de un módulo de macro completo debe estar claro para garantizar ID de parámetros únicos para todos los parámetros del módulo de macro.

  • MacroIO: Si este tipo de subsección se utiliza en la sección Submodule o Root, entonces se puede indicar que una E/S específica del submódulo definido (o raíz) debe ocurrir en sí misma como una E/S del módulo macro. Para ello, el objetivo de la sección MacroIO se utiliza como una nueva ID de E/S para la E/S del módulo macro. La E/S del submódulo dado (o raíz) se define entonces por Local_IOID. Además, las entradas de la lista de texto se pueden crear usando las definiciones de New_Name y New_Desc. Estas entradas se utilizan para el nombre y la descripción de la nueva E/S del módulo macro en lugar del submódulo o la E/S raíz. Todos los objetivos definidos de todas las secciones. MacroIO dentro de un módulo de macro completo debe estar claro para garantizar ID de E/S únicos para todas las E/S del módulo de macro.

  • MacroSlot: Si esta subsección se utiliza en la sección Submodule o Root, entonces se puede indicar que una ranura específica del submódulo definido (o raíz) debería aparecer como una ranura del módulo macro. De esta forma, se pueden insertar instancias de módulos adicionales debajo de esta ranura de la instancia de MacroModule. El objetivo de la sección MacroSlot luego se usa como un nuevo ID de ranura para la ranura de MacroModule. La ranura del submódulo dado (o raíz) se define entonces por Local_SlotID. Además, se puede crear una entrada de lista de texto usando las definiciones New_Role. Esta entrada se utiliza para la función de la nueva ranura del módulo macro en lugar de la del submódulo o la ranura raíz. Todos los objetivos definidos de todas las secciones. MacroSlot dentro de un MacroModule completo debe estar claro para garantizar ID de ranura únicas para todas las ranuras de MacroModule.

  • Parent_Instance: Define un ID correspondiente a un ID objetivo de una sección Rootmodule o Submodule de la sección envolvente MacroModule. Esta definición existe sólo dentro de la sección Submodule. Define la instancia del módulo principal debajo de la cual se debe insertar el submódulo. Este submódulo se describe en la sección respectiva Submodule del MacroMódulo. Además, la definición Parent_Slot también se requiere.

  • Parent_Slot: Define una ID correspondiente a la ID de la ranura ubicada debajo del tipo de submódulo identificado por Parent_Module. El submódulo del tipo MacroModule descrito en la sección Submodule se inserta debajo de esta ranura.

  • Default_Allocation: Esto es idéntico a la sección del mismo nombre bajo las declaraciones de ranuras (Slot y Slot_Multi). Esta sección define tanto para el "módulo raíz" como para el "submódulo" qué tipo de submódulo del tipo MacroModule debe insertarse para qué configuración de instancia. La única diferencia es que no Instance_Name se puede definir para Default_Allocation bajo una sección Rootmodule, sino en secciones Submodule. La razón de esto es que las instancias de módulo insertadas como "módulo raíz" reciben su nombre de la instancia de MacroModule y, por lo tanto, no se pueden ingresar de manera "predeterminada".

  • Reference: Muestra que las siguientes subsecciones describen una referencia de módulo. Se genera una referencia debajo de la instancia del módulo. Parent_Instance y la ranura Parent_Slot, haciendo referencia al submódulo Referenced_Instance. como el Parent_Instance, esta instancia a la que se hace referencia debe originarse en el conjunto del submódulo de instancias del módulo raíz debajo de la misma sección MacroModule.

. La declaración de módulo de un tipo MacroModule debe cumplir las siguientes condiciones:
  • no se usará IMPLEMENTED_BY o IMPORTS en su declaración de módulo.

  • Debe incluir la sección MetaData y MacroModule. De lo contrario, no se deben utilizar secciones adicionales.

  • Al menos una sección Rootmodule debe estar disponible debajo de la sección MacroModule Además, una segunda sección Rootmodule no puede existir

  • Para cada submodule , ambos Parent_Instance y el Parent_Slot debe definirse dentro MacroModule. Esto debe definirse entonces como Local_SlotID dentro de MacroSlot de El Parent_Instance.