Programma

Panoramica

Un programma è un oggetto POU che restituisce uno o più valori durante il funzionamento. Vengono mantenuti tutti i valori dall'ultima volta in cui il programma è stato eseguito fino all'esecuzione successiva. Tuttavia, non vi sono istanze separate di programmi, a differenza dei blocchi funzione. Quando si chiama un blocco funzione, vengono modificati solo i valori di una determinata istanza del blocco funzione. Le modifiche vengono attuate solo quando si richiama nuovamente la stessa istanza. Le modifiche al valore di programma vengono mantenute fino al successivo richiamo del programma anche se chiamato da un'altra POU.

Aggiunta di un programma

Per aggiungere un programma 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 Programma, immettere un nome per il programma e selezionare il linguaggio di implementazione desiderato. Fare clic su Apri per confermare. Viene visualizzata la vista dell'editor, dove è possibile iniziare a modificare il nuovo programma.

Dichiarazione di un programma

Sintassi:

PROGRAM <nome programma>

Seguono le dichiarazioni delle variabili di ingresso, di uscita e delle variabili del programma. Le variabili di accesso sono disponibili come opzioni.

Esempio di un programma

Program_Components00094.jpg

 

 

Chiamata di un programma

Un programma può essere richiamato da un'altra POU. Non è consentita, tuttavia, la chiamata di un programma in una funzione. Non vi sono istanze di programmi.

Se una POU ha chiamato un programma e se i valori del programma sono stati modificati, tali modifiche vengono mantenute fino al successivo richiamo del programma. Ciò vale anche se viene chiamata dall'interno di un'altra POU. Si tenga presente che questo caso è diverso dalla chiamata di un blocco funzione. Quando si chiama un blocco funzione, vengono modificati solo i valori di una determinata istanza del blocco funzione. Le modifiche entrano in gioco solo quando si richiama nuovamente la stessa istanza.

Per impostare i parametri di ingresso e/o uscita durante la chiamata di un programma, negli editor di linguaggio testuale (ad esempio ST), assegnare i valori ai parametri dopo il nome del programma riportato tra parentesi. Nel caso dei parametri di ingresso, per questa assegnazione utilizzare :=, come per l'inizializzazione delle variabili nella posizione di dichiarazione. Per i parametri di uscita, utilizzare =>. Vedere l'esempio seguente.

Se il programma è inserito tramite l'Accesso facilitato, con l'opzione Inserire con argomenti nella vista di implementazione di un editor di linguaggio testuale, verrà visualizzato automaticamente secondo questa sintassi, con tutti i parametri, anche se l'assegnazione dei parametri non è indispensabile.

Esempio di chiamate di programmi

Programma in IL:

CAL               PRGexample               (
         in_var:= 33                       )
LD                PRGexample.out_var       
ST                erg

Esempio con assegnazione dei parametri (Accesso facilitato con l'opzione Inserire con argomenti):

Programma in IL con argomenti:

CAL               PRGexample               (
         in_var:= 33                       ,
        out_var=> erg                      )

Esempio in ST

PRGexample(in_var:= 33);
erg := PRGexample.out_var;

Esempio con assegnazione di parametri (Accesso facilitato con l'opzione Inserire con argomenti, come descritto sopra):

PRGexample (in_var:=33, out_var=>erg );

Esempio in FBD

Programma in FBD:

Program_Components00095.jpg