Vai al contenuto

Gestione di un semaforo tra task

Home Forum Programmazione IEC 61131 (LogicLab) Gestione di un semaforo tra task

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35226
    Michele
    Partecipante

    Salve a tutti, come dalla descrizione del mio msg ho la necessità di gestire una variabile condivisa tra due task. Ho un task che gestisce un logica sviluppata in LD e precisamente il modulo acquistato presso elsist per la gestione del DLMS. L’altro task sviluppato da me è scritto i ST ed invia tramite UPD il dato letto con il task LD.

    La mia necessità è gestire l’operazione di invio solo quando il task LD per la lettura ha terminato l’operazione e letto un determinato valore. Ho creato una var BOOL globale e sul task che ho sviluppato in ST non ho nessun problema a gestirla ma non so come gestire questa variabile impostandola a TRUE sul LD.

    #37271
    Sergio Bertana
    Amministratore del forum

    Mi sembra di capire che più che tra due tasks il tuo problema sia di gestire un comando tra due programmi. Sia il programma LD di gestione DLMS che il tuo programma ST di gestione dialogo UDP devono essere e sicuramente lo saranno entrambi eseguiti nella task Back.

    Cerco di dare una breve spiegazione di come è gestita l’esecuzione nello SlimLine, esistono 4 tasks di esecuzione, ed è possibile forzare l’esecuzione dei vari programmi collegandoli alla relativa task (Screenshot). All’interno di ogni task i programmi sono eseguiti nell’ordine in cui sono riportati (Nella task Back prima viene eseguito il programma LDProgram e poi STProgram).

    Come hai già fatto notare tu tutte le variabili globali sono visibili da tutti i programmi e da tutte le tasks, quindi se tu definisci una variabile BOOL globale la puoi settare dal programma LD e la puoi testare dal programma ST. Nel mio programma di esempio nel programma LD ad ogni attivazione di SysClock1000 attivo per un loop la variabile BOOL Flag. Nel programma ST se Flag è attivo incremento Counter. In questo modo Counter verrà incrementato ad ogni secondo, stampa e download programma.

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