Istanziazione di blocchi di funzione (BF)

A norma CEI 61131-3, i blocchi di funzione vengono istanziati in Machine Expert – Safety. Istanziare significa che un BF una volta definito poi può essere usato (istanziato) diverse volte. Ciò vale per tutti i tipi di BF (UOP definite dall'utente, BF di biblioteca, come i BF di base della CEI 61131).

Perché istanziare? Un blocco di funzione ha una memoria interna nella quale memorizza i propri dati di elaborazione (variabili locali). Di conseguenza, i valori d'uscita calcolati dal BF dipendono dai valori memorizzati internamente. Gli stessi valori d'ingresso applicati a una istanza BF quindi non producono necessariamente gli stessi risultati in un'altra istanza di BF. Perciò è necessario memorizzare i dati interni del BF in una zona di memoria separata ogniqualvolta il BF viene elaborato, cioè, per ciascuna istanza BF. Per identificare univocamente ogni istanza BF e separare chiaramente la sua zona di memoria si usano i nomi d'istanza. Il nome di istanza del BF va dichiarato nel foglio di lavoro (FdL) per variabili della UOP nella quale il BF verrà usato.

Ogni BF può essere istanziato in altri BF o nel programma 'Main'.

Esempio

Il BF di biblioteca SF_EmergencyStop dev'essere richiamato due volte nel programma 'Main' per valutare due dispositivi di controllo di arresto di emergenza di sicurezza collegati a segnali d'ingresso/uscita di sicurezza diversi. A tal fine vengono dichiarate due istanze del BF nel FdL per variabili locali della UOP 'Main'. Nel codice, il richiamo di BF si può ora inserire due volte, ciascuna istanza collegata a variabili o segnali d'ingresso/uscita diversi.

Lo stesso vale per un BF definito dall'utente con codice definito in una UOP BF del progetto.

NOTA:

Come i BF definiti a norma CEI 61131 e i BF specifici del Safety Logic Controller(contenuti in una biblioteca), le UOP BF definite dall'utente sono disponibili nell'Assistente di editazione dopo aver editato, salvato e compilato i corrispondenti FdL. In questo modo, il richiamo di un BF definito dall'utente si può inserire con facilità nel codice della UOP chiamante con drag&drop e dichiarando un nome d'istanza. Si veda l'argomento "Inserire blocchi di funzione con l'Assistente di editazione" per dettagli.

Le funzioni (contenute nell'Assistente di editazione) si possono richiamare senza istanziazione poiché non hanno memoria interna.