Sezione: Disaccoppiato
Questa sezione definisce i "moduli disaccoppiati". Si tratta di moduli con le proprietà dei moduli di primo livello, ma possono essere inseriti anche come sottomoduli in appositi slot (Type:= DECOUPLED
) di altri moduli. I moduli non possono essere "toplevel" e "disaccoppiati" contemporaneamente.
I "moduli disaccoppiati" vengono generati utilizzando la sezione Decoupled
nella dichiarazione del modulo. La sezione Decoupled
è quasi identico alla sezione Toplevel
; tuttavia, solo una di queste sezioni è consentita in una dichiarazione di modulo.
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
I dettagli riguardanti la sintassi dei tipi di definizione sono descritti nel capitolo relativo alla dichiarazione del modulo.
Specifica: la specifica della sezione Decoupled
corrisponde alla descrizione della sezione Toplevel
. Inoltre è possibile definire i seguenti parametri:
Toplevel_Insertable
definisce se un "sottomodulo disaccoppiato" può essere inserito anche in primo livello come un modulo di primo livello.
Nota: un "modulo disaccoppiato" dovrebbe definire e implementare un rispettivo proxy. Il proxy dovrebbe implementare la stessa interfaccia del "modulo disaccoppiato". Se l'istanza del modulo genitore si trova sotto un altro controller come istanza del modulo "disaccoppiato", allora l'istanza del modulo "disaccoppiato" può comunque essere inserita in questo slot tramite il suo proxy.