Un blocco funzione è una POU che fornisce uno o più valori durante l'elaborazione di un programma del controller. A differenza di una funzione, tutti i valori delle variabili d’uscita e le necessarie variabili interne verranno mantenuti da un’esecuzione del blocco funzione all’altra. Pertanto, la chiamata di un blocco funzione con gli stessi argomenti (parametri di ingresso) non sempre produce gli stessi valori di uscita.
Oltre alla funzionalità descritta dallo standard IEC11631-3, è supportata anche la programmazione a oggetti e i blocchi funzione possono essere definiti come estensioni di altri blocchi funzione. Possono includere le definizioni dell'interfaccia riguardanti la chiamata del metodo. Durante la programmazione con i blocchi funzione, quindi, è possibile utilizzare l'ereditarietà.
Un blocco funzione viene sempre chiamato tramite un'istanza, che è una riproduzione (copia) del blocco funzione.
Per aggiungere un blocco funzione a un'applicazione esistente, selezionare il relativo nodo nella
, fare clic sul pulsante verde con il più e selezionare . In alternativa, fare clic con il pulsante destro del mouse sul nodo ed eseguire il comando . Per creare un blocco funzione indipendente da un'applicazione, selezionare il nodo nella .Nella finestra di dialogo
, selezionare l'opzione , immettere il (<identificatore>) del blocco funzione e scegliere il desiderato.È anche possibile impostare le seguenti opzioni:
Opzione |
Descrizione |
---|---|
|
Immettere il nome di un altro blocco funzione disponibile nel progetto, che sarà la base di quello corrente. Per ulteriori informazioni, vedere Estensione di un blocco funzione. |
|
Immettere i nomi delle interfacce disponibili nel progetto, che dovranno essere implementate nel blocco funzione corrente. È possibile immettere varie interfacce, separate da virgole. Per ulteriori informazioni, vedere Implementazione delle interfacce. |
|
Per motivi di compatibilità, gli specificatori dell'accesso sono facoltativi. Lo specificatore è disponibile come equivalente se non si imposta alcuno specificatore.In alternativa, scegliere una delle opzioni dell'elenco di selezione:
|
|
Scegliere il linguaggio di programmazione desiderato per tutti gli oggetti metodo e proprietà creati con l'implementazione dell'interfaccia, indipendentemente da quello impostato per il blocco funzione in sé. |
Fare clic su
per confermare le impostazioni. La vista dell'editor per il nuovo blocco funzione si apre ed è possibile iniziare la modifica.Sintassi
FUNCTION_BLOCK <specificatore accesso> <nome blocco funzione> | EXTENDS <nome blocco funzione> | IMPLEMENTS <elenco nomi interfacce separati da virgole>
Segue la dichiarazione delle variabili. È inoltre possibile raggruppare ingressi e uscite per nasconderli o visualizzarli rapidamente quando si utilizza il blocco funzione in un editor FBD o LD. Consultare inoltre il capitolo Attributo Pingroup.