Tipi di task

Introduzione

La sezione seguente descrive i vari tipi di task disponibili per il programma, oltre a una descrizione delle loro caratteristiche.

Task ciclico

A un task ciclico viene assegnata una durata del ciclo fissa mediante l'impostazione Intervallo nella sezione Tipo della sottoscheda Configurazione per il task in questione. Ogni tipo di task ciclico viene eseguito come indicato di seguito:

G-SE-0006869.1.gif-high.gif

 

 

1. Ingressi di lettura: gli stati dell'ingresso fisico sono scritti nelle variabili della memoria di ingresso %I e vengono eseguite altre operazioni di sistema.

2. Elaborazione del task: viene elaborato il codice utente (POU, ecc.) definito nel task. Le variabili della memoria di uscita %Q sono aggiornate in base alle istruzioni del loro programma applicativo non non ancora scritte nelle uscite fisiche durante questa operazione.

3. Scrittura uscite: le variabili della memoria di uscita %Q sono modificate con qualunque forzatura uscite che è stata definita; tuttavia, la scrittura delle uscite fisiche dipende dal tipo di uscita ed istruzioni utilizzate.

Per ulteriori informazioni sulla definizione del task ciclo bus, vedere EcoStruxure Machine Expert - Guida alla programmazione e Impostazioni di Modicon M251 Logic Controller.

4. Tempo intervallo rimanente: il firmware del controller esegue l'elaborazione del sistema e qualsiasi altro task a priorità più bassa.

NOTA: Se si definisce un periodo troppo breve per un task ciclico, esso viene ripetuto immediatamente dopo la scrittura sulle uscite e senza eseguire task di priorità più bassa o altre elaborazioni del sistema. Ciò influisce sull'esecuzione di tutti i task, provoca il superamento dei limiti del watchdog del sistema e la generazione di un'eccezione del watchdog del sistema.

NOTA: Quando il tempo di ciclo del task è impostato a un valore inferiore a 3 ms, occorre prima monitorare la durata effettiva del task nella schermata Monitoraggio task durante la messa in servizio al fine di garantire che sia costantemente più bassa del tempo di ciclo del task configurato. Se è maggiore, è possibile che il ciclo del task non sia rispettato senza causare un timeout del watchdog del ciclo del task e il passaggio del controller allo stato HALT. Per evitare il più possibile questa condizione, quando il tempo di ciclo del task è impostato su un valore inferiore a 3 ms, sono imposti i limiti reali di +1 ms se su qualsiasi ciclo il tempo di ciclo calcolato supera leggermente il tempo di ciclo configurato.

NOTA: Si può ottenere e impostare l'intervallo di un task ciclico tramite l'applicazione usando le funzioni GetCurrentTaskCycle e SetCurrentTaskCycle. (Per ulteriori dettagli, fare riferimento alla Toolbox Advance Library Guide).

Task a esecuzione libera

I task a esecuzione libera non hanno una durata fissa. In modalità a esecuzione libera, ciascuna scansione del task inizia quando la scansione precedente è stata completata e dopo un breve periodo di elaborazione del sistema. Ogni tipo di task a esecuzione libera viene eseguito come indicato di seguito:

G-SE-0006870.1.gif-high.gif

 

 

1. Ingressi di lettura: gli stati dell'ingresso fisico sono scritti nelle variabili della memoria di ingresso %I e vengono eseguite altre operazioni di sistema.

2. Elaborazione del task: viene elaborato il codice utente (POU, ecc.) definito nel task. Le variabili della memoria di uscita %Q sono aggiornate in base alle istruzioni del loro programma applicativo non non ancora scritte nelle uscite fisiche durante questa operazione.

3. Scrittura delle uscite: le variabili della memoria di uscita %Q sono modificate con una forzatura definita dell'uscita; tuttavia, la scrittura delle uscite fisiche dipende dal tipo di uscita e dalle istruzioni utilizzate.

Per ulteriori informazioni sulla definizione del task ciclo bus, vedere EcoStruxure Machine Expert - Guida alla programmazione e Impostazioni di Modicon M251 Logic Controller.

4. Elaborazione del sistema: il firmware del controller esegue l'elaborazione del sistema e qualsiasi altro task a priorità più bassa (ad esempio: gestione HTTP, gestione Ethernet, gestione parametri).

NOTA: Se si desidera definire l'intervallo del task, consultare Task ciclico.

Task evento

Questo tipo di task è gestito da evento e avviato da una variabile del programma. Inizia sul fronte di salita della variabile booleana associata all'evento trigger, a meno che non sia presente un task con precedenza a priorità più alta. In questo caso, il task evento si avvia in base alle assegnazioni di priorità dei task.

Passo

Azione

1

Fare doppio clic su TASK nella Struttura Applicazioni.

2

Selezionare Evento dall'elenco Tipo nella schermata Configurazione.

3

Fare clic sul pulsante Accesso facilitato G-SE-0029549.2.gif-high.gif a destra del campo Evento.

Risultato: viene visualizzata la finestra Accesso facilitato.

4

Spostarsi nella struttura della finestra di dialogo Accesso facilitato per trovare e assegnare la variabile my_Var.

NOTA: Quando un task evento viene attivato a una frequenza troppo alta, il controller passa allo stato HALT (Eccezione). La frequenza massima di eventi è 6 eventi al millisecondo. Se il task evento viene attivato a una frequenza più alta, viene registrato il messaggio 'Numero ISR superato' nella pagina di registro dell'applicazione.

Task evento esterno

Questo tipo di task è gestito da evento e avviato dal rilevamento di un evento funzione hardware o correlato all'hardware. Viene avviato quando si verifica un evento, a meno che sia presente un task con priorità più alta. In questo caso, il task evento esterno si avvia in base alle assegnazioni di priorità dei task.

Il task evento esterno è associato all'evento CAN Sync. Per associare l'evento CAN_1_SYNC a un task evento esterno, selezionarlo dall'elenco a discesa Evento esterno nella scheda Configurazione.

NOTA: CAN Sync è un oggetto evento specifico che dipende dalla configurazione del gestore CANopen.