Skip to main content

Sección: Decoupled

Esta sección define "módulos desacoplados". Estos son módulos con las propiedades de los módulos de nivel superior, pero también se pueden insertar como submódulos en ranuras específicas (Type:= DECOUPLED) de otros módulos. Los módulos no pueden ser "de nivel superior" y "desacoplados" al mismo tiempo.

Los "módulos desacoplados" se generan utilizando la sección Decoupled en la declaración del módulo. La sección Decoupled es casi idéntica a la sección Toplevel; sin embargo, sólo se permite una de estas secciones en una declaración de módulo.

SEC Decoupled                                       //optional: yes, modifier: [UPDATE]
    GVL_Name := <GVL name>;                         //optional: yes, type: literal
    Default_Application := <default application>;   //optional: yes, type: QID
    Default_POUPool := <TRUE/FALSE>;                //optional: yes, type: BoolFlag
    Pragmas := [<pragma1>, <pragma2>,...];          //optional: yes, type: Pragmalist
    Toplevel_Insertable := <TRUE/FALSE>;            //optional: yes, type: BoolFlag
    SEC Standard_Task : <task name>                 //optional: yes, modifier: [HIDE,UPDATE]
            Name := <task name>;                        //optional: no, type: ID
            Desc := <task description>;                 //optional: no, type: Text)
            Flags:= <flag>;                             //optional: no, type: StdTaskFlags)
    END_SEC
    SEC Custom_Task : <task name>                   //optional: yes, modifier: [UPDATE]
            Priority := <priority>;                     //optional: no, type: Subrange(0 .. 31)
            Interval :=  <interval>;                    //optional: no, type: TimeLiteral)
            Flags:= <flag>;                             //optional: no, type: CustomTaskFlags)
    END_SEC
END_SEC

Los detalles sobre la sintaxis de los tipos de definición se describen en el capítulo sobre la declaración del módulo.

Especificación: La especificación de la sección. Decoupled Corresponde a la descripción de la sección. Toplevel. Además, se pueden definir los siguientes parámetros:

  • Toplevel_Insertable define si un "submódulo desacoplado" también se puede insertar en el nivel superior como un módulo de nivel superior.

Nota: Un "módulo desacoplado" debe definir e implementar un proxy respectivo. El proxy debe implementar la misma interfaz que el "módulo desacoplado". Si la instancia del módulo principal se encuentra bajo otro controlador como instancia del módulo "desacoplado", entonces la instancia del módulo "desacoplado" aún se puede insertar en esta ranura a través de su proxy.