Configurazione dell'attività
Nella configurazione dei task, si definiscono uno o più task per controllare il flusso dei programmi (oggetti POU con tipo Programma) e dei POU da essi richiamati sul dispositivo. Per ogni applicazione è necessario un oggetto Task Configuration. Qui si definisce la sequenza cronologica di richiamo del programma.
Un compito è l'unità di flusso cronologico del programma IEC. Il task definisce la catena di chiamate dei POU (gerarchia delle chiamate).
Ogni compito richiede un nome univoco. Nell'editor di configurazione del task, specificare un elenco di programmi da richiamare. I programmi possono essere specifici per un'applicazione, nel qual caso si trovano nella vista Dispositivi. Oppure un programma può essere valido per l'intero progetto, nel qual caso si trova nella vista POUs. Questi POU sono istanziati nell'intero progetto.
-
È possibile stabilire le priorità di un compito. La prioritizzazione funziona in combinazione con il tipo di compito.
-
Si configura un tipo di attività:
-
Ciclico; per un flusso temporizzato che utilizza un intervallo di ciclo. Le chiamate al programma vengono eseguite entro l'intervallo del ciclo (tempo di ciclo del task).
-
A ruota libera; per un'attività senza un proprio tempo di ciclo di attività
-
Azionato da un evento (interno o esterno) mediante una condizione per l'inizio dell'evento (edge-triggered).
-
Esempi di eventi sono il fronte di salita di una variabile globale di progetto o un interrupt.
-
Stato attivato da una condizione
-
È possibile associare Start, Stop e Reset direttamente all'esecuzione del progetto POU.
-
È inoltre possibile attivare un watchdog.
Lo stack di chiamate viene creato ed eseguito in base a queste impostazioni nella configurazione del task.
In base ai vari stack di chiamate possibili, si determina quale di questi è il più lungo e richiede la maggiore quantità di memoria (stack di chiamate massimo). Per informazioni dettagliate su questo aspetto, vedere la scheda Uso dello stack.
Elaborazione dell'ordine
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à
Suggerimenti utiliPermalink
Tutti i compiti condividono un'immagine del processo.
Il motivo è che un'immagine di processo separata per ogni attività comprometterebbe le prestazioni.
Inoltre, l'immagine di un processo può essere coerente solo per un compito. In questo modo si evitano incongruenze se tutti i task condividono l'immagine del processo.
Quando si sviluppa un progetto, è necessario assicurarsi che i dati di input (VAR_INPUT) siano copiati in una posizione sicura in caso di conflitto. Questo vale anche per i dati di uscita (VAR_OUTPUT).
I POU, come la libreria SysSem, offrono la possibilità di risolvere i problemi di coerenza e sincronizzazione. I problemi di coerenza possono verificarsi anche quando si accede ad altri oggetti globali (variabili globali o POU). I problemi di coerenza si verificano sempre quando più persone leggono e scrivono su una stessa variabile. Anche i POU della libreria SysSem possono aiutare a risolvere questo tipo di conflitti.
-
Configurazione di un'attività
-
Compito IEC a ruota libera
-
Definizioni di jitter e latenza
-
Calcolo dell'utilizzo della pila
-
Multicore