Configurazione di un task specifico
Quando si inserisce un task nel nodo Configurazione task di Applicazioni, si apre la vista dell'editor di task per impostare la configurazione dei task con la scheda Configurazione.
La stessa scheda si apre anche facendo doppio clic su un task disponibile, ad esempio MAST, per modificare la configurazione del task.
NOTA: è possibile cambiare il nome del task modificando la relativa voce nella Struttura applicazioni.
Inserire gli attributi desiderati.
Priorità |
|
---|---|
Priorità (0...31) |
Un numero compreso tra 0 e 31. 0 è la priorità più alta, 31 è la più bassa. Il valore predefinito per i nuovi task è definito dal controller. NOTA: Per individuare le impostazioni appropriate per i task dell'applicazione, considerare le impostazioni del task specifiche del controller. Ciò può essere importante quando si assegna la priorità ai task dedicati alle comunicazioni, in relazione ad argomenti come la sicurezza informatica. È possibile incrementare la robustezza del sistema impostando i task dell'applicazione a una priorità più alta dei task di comunicazione. |
Tipo |
|
---|---|
Il dispositivo di destinazione definisce i tipi di task supportati. Per alcuni dispositivi di destinazione non sono disponibili tutti i tipi. Consultare la Guida alla programmazione del controller specifico per ulteriori informazioni. |
|
Ciclico |
Il task viene elaborato in modo ciclico, secondo la definizione del tempo (tempo di ciclo del tempo) fornita nel campo Intervallo (vedere sotto). |
Evento |
Il task viene avviato non appena la variabile definita nel campo Evento incontra un fronte di salita. |
A esecuzione libera |
Il task viene elaborato non appena si avvia il programma e alla fine di un'esecuzione viene riavviato automaticamente in un loop continuo. Il tempo di ciclo non è definito. |
Esterno |
Il task viene avviato non appena si verifica l'evento di sistema definito nel campo Evento esterno. Gli eventi supportati e inclusi nell'elenco di selezione dipendono dalla destinazione. (Da non confondere con gli eventi di sistema). |
Stato |
Il task viene avviato se la variabile definita nel campo Evento è TRUE. |
Voci obbligatorie a seconda del tipo di task
Voce |
Descrizione |
---|---|
Intervallo (ad esempio, t#200ms) |
Obbligatorio per il tipo di task Ciclico. Il tempo (in millisecondi [ms]]) dopo il quale il task deve essere riavviato. Quando si imposta il tempo di ciclo del task, considerare il sistema di bus utilizzato dall'applicazione. Ad esempio, su un sistema di bus CAN è possibile impostare il Task ciclo bus nella scheda Mapping I/O CANopen Il tempo di ciclo del task deve corrispondere alla velocità di trasmissione e al numero di frame utilizzati sul bus. Inoltre, i tempi impostati per heartbeat, nodeguarding e sincronizzazione devono sempre essere multipli del tempo di ciclo del task. In caso contrario, i frame CAN potrebbero non essere riconosciuti. Per ulteriori informazioni, consultare la parte Editor dei dispositivi della guida in linea di EcoStruxure Machine Expert. |
Evento |
Obbligatorio per il tipo Evento o controllato da un Evento esterno. Variabile globale booleana che viene attivata all'inizio del task non appena viene rilevato un fronte di salita. Premere il pulsante ... o richiamare l'Accesso facilitato per ottenere un elenco di tutte le variabili di evento globali disponibili. NOTA: Se l'evento che controlla un task deriva da una voce, deve esserci almeno un task non controllato da eventi. Altrimenti, gli I/O non verranno mai aggiornati e il task non sarà mai avviato. NOTA: Sono consentite solo le variabili IEC interne. Fare riferimento a una proprietà (compreso parametri di sistema) in un task evento determina il rilevamento di un errore di eccezione watchdog durante il download. |
Differenze tra stato ed evento
Il fatto che l'evento specificato sia TRUE soddisfa la condizione di avvio di un task controllato dallo stato, mentre un task controllato da eventi richiede il cambiamento dell'evento da FALSE a TRUE. Se l'evento cambia troppo rapidamente da TRUE a FALSE e poi di nuovo a TRUE, questo evento potrebbe non venire rilevato e quindi il task Evento non verrà avviato.
L'esempio che segue illustra il comportamento del task come reazione a un evento (riga verde):
Nei punti di campionamento 1...4, i task di diverso tipo mostrano reazioni differenti:
Comportamento in un punto: |
1 |
2 |
3 |
4 |
---|---|---|---|---|
Stato |
Nessun avvio |
Avvio |
Avvio |
Avvio |
Evento |
Nessun avvio |
Avvio |
Nessun avvio perché l'evento è cambiato troppo rapidamente da TRUE a FALSE e poi di nuovo a TRUE |
Nessun avvio |
Per ogni task, è possibile configurare un controllo del tempo (watchdog).
Le impostazioni predefinite del watchdog dipendono dal controller.
Quando l'opzione Attiva è abilitata, cioè se riporta il segno di spunta, il watchdog è attivato. Quando il watchdog del task è attivato, viene rilevato un errore di Eccezione se il tempo di esecuzione del task supera il limite di tempo del task definito (Tempo). L'applicazione contenente il task in cui si è verificato l'errore e le applicazioni secondarie corrispondenti vengono arrestate. Come conseguenza, anche i task di queste applicazioni vengono arrestati. Viene presa in considerazione la Sensibilità definita. Se l'opzione Aggiorna I/O in stop è abilitata nella finestra di dialogo delle impostazioni del controller, le uscite vengono impostate sui valori predefiniti, a seconda della specifica piattaforma del controller. La funzione non è disponibile per tutti i controller supportati. Consultare la Guida alla programmazione del controller specifico.
Possono verificarsi i casi seguenti:
oDiversi timeout consecutivi:
oSensibilità: 0, 1 - eccezione nel ciclo 1
oSensibilità: 2 - eccezione nel ciclo 2
oSensibilità: n - eccezione nel ciclo n
NOTA: Il limite superiore di Sensibilità (n) dipende dal controller. Per ulteriori informazioni su Sensibilità, Tempo del task e altri parametri correlati, consultare la Guida alla programmazione del controller, capitolo Watchdog di task e sistema.
oSingolo timeout: eccezione se il tempo del ciclo corrente è più lungo di (limite tempo task * sensibilità).
Esempio:
Tempo=t#10 ms, Sensibilità=5 (Un'eccezione viene indicata non appena l'esecuzione del task supera 50 ms.)
Tempo (ad es. t#200ms) |
Definisce il tempo di esecuzione massimo consentito per un task. Quando la durata del task supera questo valore, il controller segnala un'eccezione del watchdog del task. |
Sensibilità |
Definisce il numero di eccezioni di watchdog del task che devono verificarsi prima che il controller rilevi un errore delll'applicazione. |
NOTA: La funzione Monitoraggio non è disponibile in modalità di simulazione.
Consultare la Guida alla programmazione del controller specifico, capitolo Watchdog di task e sistema, per informazioni su tempo del task, sensibilità e altri possibili parametri di watchdog.
Le POU controllate dal task sono elencate qui in una tabella con il nome del POU e un Commento facoltativo. Sopra la tabella sono riportati i comandi per la modifica:
oPer definire una nuova POU, aprire la finestra di dialogo Accesso facilitato con il comando Aggiungi chiamata. Scegliere uno dei programmi disponibili nel progetto. È anche possibile aggiungere POU di tipo programma all'elenco, trascinandole dalla Struttura applicazioni.
oPer sostituire una chiamata a un programma con un'altra, selezionare la voce nella tabella, aprire l'Accesso facilitato con il comando Modifica chiamata e scegliere un altro programma.
oPer eliminare una chiamata, selezionarla nella tabella e utilizzare il comando Rimuovi chiamata.
oIl comando Apri POU permette di aprire il programma selezionato nell'editor corrispondente.
La sequenza delle chiamate alle POU elencate, dall'alto al basso, determina la sequenza di esecuzione in modalità online. Per passare da una voce selezionata a un'altra nell'elenco, utilizzare i comandi Sposta su e Sposta giù.