Concordo sul fatto che il linguaggio ST (Structured Text) è molto simile al linguaggio C, ne condivide alcune sintassi IF, FOR, WHILE, CASE (Ha lo stesso significato di SWITCH) e questo unito all’utilizzo dei puntatori e delle strutture dati permette di realizzare programmi complessi.
Ma ora vediamo di comprendere il significato di Task, l’ambiente LogicLab come hai detto giustamente tu esegue la task di Boot al primo loop di avvio, in questa task si devono eseguire tutti i programmi di inizializzazione. Viene poi gestito un sistema multitasks basato su tre tasks.
Fast: Eseguita di default ogni 1 mS interrompendo sia la Back che la Slow (La funzione SysSetTaskLpTime permette di impostare tempi di esecuzione da 100 µS a 10 mS). I programmi eseguiti in questa task gestiscono logica veloce. E’ possibile catturare segnali digitali che hanno durata molto breve. In questo post ad esempio viene gestita la acquisizione di un lettore RFID.
Slow: Eseguita di default ogni 10 mS interrompendo la Back (La funzione SysSetTaskLpTime permette di impostare tempi di esecuzione da 1 mS a 100 mS). Inserire in questa task tutti i programmi che controllano le sequenze logiche di funzionamento di un impianto. La certezza del tempo di esecuzione garantisce il corretto funzionamento dell’impianto.
Back: Eseguita nel tempo libero, il suo tempo di scansione non è determinato, può variare da veloce meno di 1 mS a lento decine di mS. In questa task si eseguono i programmi che non sono deterministici, esempio calcoli, gestione I/O analogico ed I/O digitale non utilizzati nel funzionamento di un impianto. In questa task devono essere inserite tutte le comunicazioni sia seriali che TC/IP oltre a tutte le funzioni di accesso al file system.