Sektion: Decoupled
Diese Sektion definiert sogenannte „Decoupled-Module“. Dies sind Module, die die Eigenschaften von Toplevel-Modulen haben, jedoch auch als Submodul an speziellen Slots (Type:= DECOUPLED
) anderer Module eingefügt werden können. Module können nicht gleichzeitig „Toplevel“ und „Decoupled“ sein.
„Decoupled-Module“ werden mit Hilfe der Sektion Decoupled
in der Moduldeklaration erzeugt. Die Sektion Decoupled
ist fast identisch zur Sektion Toplevel
, wobei nur eine dieser beiden Sektionen in einer Moduldeklaration erlaubt ist.
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
Details über die Syntax der Definitionstypen sind im Kapitel Moduldeklaration beschrieben.
Spezifikation: Die Spezifikation der Sektion Decoupled
entspricht der Beschreibung der Sektion Toplevel
. Zusätzlich kann folgender Parameter definiert werden:
Toplevel_Insertable
definiert, ob ein „Decoupled-Submodul“ auch toplevel, also wie ein Toplevel-Modul, eingefügt werden kann.
Hinweis: Ein "Decoupled“-Modul sollte einen ihm entsprechenden Proxy-Vertreter definieren und implementieren. Der Proxy sollte das selbe Interface wie das „Decoupled“-Modul selbst implementieren. Wenn die Vater-Modulinstanz unterhalb einer anderen Steuerung liegt wie die „Decoupled“-Modulinstanz, kann die „Decoupled“-Modulinstanz dennoch über ihren Proxy-Vertreter in diesen Slot eingefügt werden kann.