La versione 1.1 di EcoStruxure Machine Expert non supporta i controllori M258, LMC058 e LMC078.

Funzione

Panoramica

Una funzione è una POU che quando viene elaborata produce esattamente un elemento di dati (che può consistere di più elementi, come campi o strutture). La chiamata nei linguaggi testuali può avvenire come un operatore nelle espressioni.

Aggiunta di una funzione

Per assegnare la funzione a un'applicazione esistente, selezionare il nodo dell'applicazione nella Struttura applicazioni, fare clic sul pulsante verde con il segno più ed eseguire il comando POU.... In alternativa, fare clic con il pulsante destro del mouse sul nodo Applicazione ed eseguire il comando Aggiungi oggetto > POU dal menu contestuale. Per aggiungere un POU indipendente dall'applicazione, selezionare il nodo Globale nella Struttura applicazioni ed eseguire gli stessi comandi..

Nella finestra di dialogo Aggiungi POU, selezionare l'opzione Funzione. Immettere un Nome (<nome funzione>) e un Return Data Type (<tipo dati>) per la nuova funzione e selezionare il linguaggio di implementazione desiderato. Per scegliere il tipo di dati restituito, fare clic sul pulsante ... per aprire la finestra di dialogo dell'Accesso facilitato. Fare clic su Apri per confermare. La vista dell'editor per la nuova funzione si apre ed è possibile iniziare la modifica.

Dichiarazione di una funzione

Sintassi:

FUNCTION <nome funzione> : <tipo dati>

Seguono le dichiarazioni delle variabili di ingresso e delle variabili delle funzioni.

Assegnare un risultato alla funzione. Questo significa che il nome della funzione viene utilizzato come variabile di uscita.

Non dichiarare le variabili locali come RETAIN o PERSISTENT in una funzione, perché non avrà alcun effetto..

Esempio di una funzione in ST: questa funzione richiede 3 variabili di ingresso e restituisce il prodotto delle ultime due sommato alla prima.

G-SE-0027210.1.gif-high.gif

 

 

Chiamata di una funzione

La chiamata di una funzione in ST può presentarsi come un operando nelle espressioni.

In IL, è possibile posizionare la chiamata di una funzione solo nelle azioni di un passo o all'interno di una transizione.

Le funzioni, a differenza di un programma o di un blocco funzione, non contengono informazioni sullo stato interno. Ciò significa che la chiamata di una funzione con gli stessi argomenti (parametri di ingresso) fornisce sempre gli stessi valori (uscita). Per questa ragione, le funzioni non possono contenere indirizzi e variabili globali.

Esempio di chiamate di funzione in IL

Chiamate di funzione in IL;

LD               5
Fct              3               ,
                 22
ST               result

Esempio di chiamate di funzione in ST

result := fct1(5,3,22);

Esempio di chiamate di funzione in FBD

Chiamate di funzione in FBD:

G-SE-0027208.1.gif-high.gif

 

 

Esempio:

fun(formal1 := actual1, actual2); // -> error message
fun(formal2 := actual2, formal1 := actual1); // same semantics as the following:
fun(formal1 := actual1, formal2 := actual2);

In base allo standard IEC 61131-3, le funzioni possono avere uscite aggiuntive. Possono essere assegnate nella chiamata della funzione. In ST, ad esempio, secondo la seguente sintassi:

out1 => <variabile uscita 1> | out2 => <variabile uscita 2> | ...altre variabili uscita

Esempio

La funzione fun è definita con 2 variabili di ingresso in1 e in2 e due variabili di uscita out1 e out2. I valori di uscita di fun vengono scritti nelle variabili dichiarate localmente loc1 e loc2.

fun(in1 := 1, in2 := 2, out1 => loc1, out2 => loc2);