Home › Forum › Informazioni ambiente di sviluppo LogicLab › Gestire avvio e standby dei task
- Questo topic ha 4 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 6 mesi fa da matteo11.
-
AutorePost
-
Aprile 4, 2023 alle 11:52 am #71399matteo11Partecipante
Volevo sapere se sia possibile creare un task MAIN dal quale poter avviare o mettere in standby altri task scritti in FB.
Idealmente volevo attraverso un selettore far si che si attivi un task piuttosto di altri, lasciando questi ultimi ‘congelati’.
Aprile 4, 2023 alle 3:54 pm #71403Sergio BertanaAmministratore del forumMi parli di task scritti in FB, quindi sono dei function block?
Se sono function block basta non eseguire la chiamata dell’istanza e tutto il FB rimane congelato.
Da programma non è possibile eseguire chiamate a programmi, tutti iprogrammi inseriti nelle varie tasks di esecuzione Boot, Fast, Slow, Back sono sempre eseguiti secondo l’ordine di chiamata dall’alto verso il basso.
Ma se tu all’inizio del programma inserisci una istruzione RETURN condizionata da una variabile BOOL, potrai dal tuo programma Main attivare/disattivare le variabili che gestiscono l’esecuzione. Uscendo con un RETURN all’inizio del progranma tutto il programma rimane congelato all’ultima esecuzione.
Aprile 4, 2023 alle 5:08 pm #71404matteo11PartecipanteBuongiorno e grazie per la riposta.
In realtà mi sono espresso male, i programmi sono scritti in FBD.
Ogni programma ha diverse righe e lo scopo è quello di congelare i programmi che non avrebbe senso far girare in certe circostanze.
Quindi la soluzione è quella di prevedere una istruzione di RETURN, come da te scritto.
In questo caso, che linguaggio deve essere utilizzato per poter usare tale istruzione?
Aprile 5, 2023 alle 8:16 am #71410Sergio BertanaAmministratore del forumL’istruzione RETURN può essere utilizzata in tutti i linguaggi, se utilizzi FBD ecco nello screenshot un esempio di utilizzo.
Come vedi dal progetto attivando la variabile Execute verranno eseguiti tutti i rami successivi e Counter verrà incrementato. Disattivando la variabile l’esecuzione si arresta ed il valore di Counter resterà invariato.
Naturalmente per gestire da un programma principale le varie esecuzioni dei tuoi programmi FBD dovrai utilizzare variabili globali di abilitazione.
Aprile 5, 2023 alle 9:38 am #71435matteo11PartecipantePerfetto!
Proprio quello che cercavo.
Grazie per il supporto
-
AutorePost
- Devi essere connesso per rispondere a questo topic.