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_SECLos 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_Insertabledefine 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.