Nella configurazione dei task, si definiscono uno o più task per il controllo e l'esecuzione del programma applicativo nel PLC. Ogni applicazione deve includere un oggetto «Task Configuration».
Un task è un'unità di flusso temporale di un programma IEC. È definito da un nome, una priorità e un tipo, che determina quale condizione attiva l'avvio dell'attività. È possibile definire questa condizione in base al tempo (intervallo ciclico, a ruota libera) o al verificarsi di un evento interno o esterno per elaborare il task. Esempi di eventi sono il fronte di salita di una variabile globale del progetto o un evento di interrupt del controllore.
Un task chiama uno o più blocchi di programma (POU). Questi programmi possono essere specifici dell'applicazione (oggetti sotto l'applicazione nella struttura del dispositivo) o del progetto (oggetti disponibili nella vista POU). Nel caso di un programma specifico per un progetto, l'applicazione istanzia il programma globale del progetto. Se CODESYS elabora il task nel ciclo corrente, i programmi vengono eseguiti per la durata di un ciclo.
Con la combinazione di priorità e condizione, si definisce l'ordine di elaborazione dei compiti.
È possibile configurare un watchdog per ogni task. È anche possibile associare Start, Stop e Reset direttamente all'esecuzione del progetto POU.
Regole per l'ordine di elaborazione dei compiti definiti
-
Se la condizione del task è soddisfatta, CODESYS elabora il task.
-
Se più task soddisfano la condizione per essere elaborati contemporaneamente, CODESYS elabora prima i task con la priorità più alta.
-
Se più task con lo stesso livello di priorità soddisfano la condizione per essere elaborati contemporaneamente, CODESYS elabora per primo il task che è in coda da più tempo.
-
Le chiamate al programma vengono elaborate nell'ordine in cui appaiono nella finestra di configurazione del task.
-
Se un programma chiamato ha lo stesso nome nell'albero dei dispositivi dell'applicazione e in una libreria o in un progetto globale nella vista POU, viene utilizzato il programma dell'applicazione.
Note importanti
Tutti i compiti condividono un'immagine del processo. Il motivo è che avere un'immagine
di processo individuale per ogni attività comprometterebbe le prestazioni. Tuttavia,
l'immagine del processo può essere coerente solo con un compito. Quando si crea un
progetto, è necessario assicurarsi che l'applicazione copi i dati di input e output
in una posizione sicura in caso di conflitti. I moduli, come la libreria SysSem, permettono di risolvere i problemi di coerenza e sincronizzazione.
I problemi di coerenza possono verificarsi anche quando si accede ad altri oggetti
globali, come variabili globali o blocchi. I problemi di coerenza si verificano sempre
se diversi task leggono e scrivono su una variabile. I moduli, come la libreria SysSem, sono disponibili come soluzione.
-
Vedi anche:⮫ Configurazione attività, ⮫ Configurazione attività
-
Creazione di una configurazione di attività
-
Definizioni di jitter e latenza
-
Multicore