Funzioni (FUN) sono unità organizzazione programmi (Program Organization Units, POU) che dopo l'esecuzione ritornano un dato come risultato e un qualsivoglia numero di valori di uscita delle classi VAR_OUTPUT e VAR_IN_OUT. Specificando il tipo di risultato VOID la funzione non porta risultati.
L'accesso a variabili globali è possibile tramite VAR_EXTERNAL, VAR_EXTERNAL_RETAIN o VAR_EXTERNAL_CONSTANT.
Le funzioni non contengono informazioni sullo stato interno, questo significa che la chiamata di una funzione con gli stessi valori di ingresso delle classi VAR_INPUT, VAR_IN_OUT and VAR_EXTERNAL fornisce sempre lo stesso risultato e gli stessi valori di uscita delle classi VAR_OUTPUT, VAR_IN_OUT e VAR_EXTERNAL.
Control FPWIN Pro7 offre due tipi di funzioni:
Istruzioni di sistema delle librerie di sistema
IEC standard library
FP library
FP tool library
FP pulsed library
Funzioni definite da utente
Potete programmare le vostre funzioni e conservarle in una libreria utente. Le nuove funzioni saranno poi disponibili in tutti i progetti nei quali è installata la libreria utente.
Le funzioni possono essere scritte nei seguenti linguaggi di programmazione:
Ladder diagram (LD) o Function block diagram (FBD)
Structured text (ST)
Instruction list (IL)
Le funzioni non possono essere allocate ad un task perché possono solo essere caricate da un programma, una funzione o un Function Block.
Non sono possibili chiamate ricorsive di una funzione.
FUN1() -> FUN2() -> FUN3() -> FUN1()
non ammesso.
FUN1 (FUN2 (FUN3 (FUN4 (FUN5 (x)))))
.
Numero massimo di chiamate funzione nidificate |
Tipi di PLC |
---|---|
16 |
FP7 |
10 |
Nuovi tipi di PLC a 16-bit PLC del tipo FP0H, FP_XH, FP0R |
15 |
Vecchi tipi di PLC a 16 bit |
Fatta eccezione per le funzioni ST o IL, che vengono chiamate senza parametri formali, le funzioni non necessitano variabili come risultati di funzione e alle uscite.
Quando viene chiamata una funzione con parametri formali nell'editor ST, vale che:
Per argomenti con parametri formali, l'ordine dei parametri non ha importanza.
Con funzioni utente, l'ingresso e l'uscita EN possono essere omessi. EN omesso verrà interpretato come TRUE.