Skip to main content

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.