Vai al contenuto

Gestire avvio e standby dei task

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 2 anni fa da matteo11.
Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Autore
    Post
  • #71399
    matteo11
    Partecipante

    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’.

    #71403
    Sergio Bertana
    Amministratore del forum

    Mi 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.

    #71404
    matteo11
    Partecipante

    Buongiorno 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?

    #71410
    Sergio Bertana
    Amministratore del forum

    L’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.

    #71435
    matteo11
    Partecipante

    Perfetto!

    Proprio quello che cercavo.

    Grazie per il supporto

Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Devi essere connesso per rispondere a questo topic.