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.