Interfaccia

Panoramica

L'uso delle interfacce è uno degli strumenti della programmazione a oggetti. Una POU di interfaccia definisce un insieme di metodi e proprietà senza un'implementazione. Un'interfaccia può essere descritta come l'involucro vuoto di un blocco funzione e, per poter essere realizzata nelle istanze di quest'ultimo, deve essere implementata nella dichiarazione del blocco funzione. Un blocco funzione può implementare una o più interfacce.

Lo stesso metodo può essere realizzato con parametri identici ma codice di implementazione diverso, da parte di blocchi funzione differenti. Un'interfaccia, quindi, può essere utilizzata o richiamata in qualsiasi POU senza bisogno che questa identifichi il particolare blocco funzione interessato.

Esempio di definizione dell'interfaccia e utilizzo in un blocco funzione

Un' interfaccia IFT viene inserita sotto un'applicazione. Contiene 2 metodi Method1 e Method2. Né l'interfaccia né i metodi contengono codice implementativo. Solo la dichiarazione dei metodi deve essere completata con le dichiarazioni delle variabili desiderate:

Interfaccia con due metodi:

È possibile inserire uno o più blocchi funzione, implementando l'interfaccia ITF definita sopra.

Creazione di un blocco funzione che implementa un'interfaccia

Quando il blocco funzione POU viene aggiunto alla Struttura applicazioni, i metodi Method1 e Method2 vengono automaticamente inseriti sotto, come definito da ITF. Qui, potranno essere completati con codice implementativo specifico del blocco funzione.

Uso dell'interfaccia nella definizione del blocco funzione

Un'interfaccia può estendere altre interfacce utilizzando EXTENDS (vedere l'esempio seguente Esempio di estensione di un'interfaccia) nella relativa definizione.

Proprietà dell'interfaccia

Un'interfaccia può anche definire una proprietà d'interfaccia, costituita dai due metodi di accesso Get e/o Set. Per ulteriori informazioni sulle proprietà, consultare il capitolo Proprietà. La proprietà di un'interfaccia, come i metodi eventualmente inclusi, è semplicemente un prototipo, nel senso che non include codice implementativo. Come i metodi, viene aggiunta automaticamente al blocco funzione che implementa l'interfaccia, dove può essere completata con codice di programmazione specifico.

Considerazioni

Tenere presente quanto segue:

  • Non è consentito dichiarare variabili in un'interfaccia. Un'interfaccia non ha un corpo (parte di implementazione) né azioni. Nell'interfaccia viene definita solo una raccolta di metodi, che possono avere solo variabili di ingresso, di uscita e di I/O.

  • Le variabili dichiarate con il tipo di un'interfaccia sono considerate riferimenti.

  • A un blocco funzione che implementa un'interfaccia devono essere assegnati metodi e proprietà con il nome esattamente uguale a quello utilizzato nell'interfaccia. Devono contenere ingressi, uscite e I/O con nomi esattamente identici.

NOTA: Quando si copia o si sposta un metodo o una proprietà da una POU a un'interfaccia, le implementazioni in essi contenute vengono automaticamente eliminate. Quando si esegue una copia o uno spostamento da un'interfaccia a una POE, viene richiesto di specificare il linguaggio di implementazione desiderato.

Inserimento di un'interfaccia

Per aggiungere un'interfaccia a un'applicazione, selezionare il nodo Applicazione nella Struttura applicazioni, fare clic sul pulsante verde con il segno più e selezionare Aggiungi altri oggetti... > Interfaccia. In alternativa, eseguire il comando Aggiungi oggetto > Interfaccia. Se si seleziona il nodo Globale prima di eseguire il comando, la nuova interfaccia è disponibile per tutte le applicazioni.

Nella finestra di dialogo Add Interface immettere un nome per la nuova interfaccia (<nome interfaccia>). Eventualmente, è possibile attivare l'opzione Esteso: se si desidera che l'interfaccia corrente sia un'estensione di un'altra interfaccia.

Esempio di estensione di un'interfaccia

Se ITF1 estende ITF_base, tutti i metodi descritti da ITF_base saranno automaticamente disponibili in ITF1.

Estensione di un'interfaccia

Fare clic su Aggiungi per confermare le impostazioni. Si apre la vista dell'editor per la nuova interfaccia.

Dichiarazione di un'interfaccia

Sintassi

INTERFACE <nome interfaccia>

Per un'interfaccia che ne estende un'altra:

INTERFACE <nome interfaccia> EXTENDS <nome interfaccia base>

Esempio

INTERFACE interface1 EXTENDS interface_base

Aggiunta della raccolta di metodi desiderati

Per completare la definizione dell'interfaccia, aggiungere la raccolta di metodi desiderati. Per questo scopo, selezionare il nodo interfaccia nella Struttura applicazioni ed eseguire il comando Metodo di interfaccia.... Viene visualizzata la finestra di dialogo Add Interface Method, per la definizione di un metodo da includere nell'interfaccia. In alternativa, selezionare il nodo dell'interfaccia nella Struttura applicazioni, fare clic sul pulsante verde con il segno blu e selezionare Interface Method. Aggiungere tutti i metodi desiderati, tenendo presente che possono avere solo variabili di ingresso, variabili di uscita e variabili di I/O, ma non il corpo (parte di implementazione).