Vai al contenuto

Personalizzare esecuzione programma su sistema

Home Forum Programmazione IEC 61131 (LogicLab) Personalizzare esecuzione programma su sistema

Stai visualizzando 5 post - dal 1 a 5 (di 5 totali)
  • Autore
    Post
  • #45757
    Riccardo Lucatuorto
    Partecipante

    Esiste un meccanismo con cui riuscire a fare la leader election tra più moduli CPU? In modo da avere ad esempio nel caso di comunicazione tra moduli CPU (Topic) una sola versione del software, ed in automatico viene eletto il master e gli altri automaticamente si impostino come slave.

    #45759
    Sergio Bertana
    Amministratore del forum

    Chi vuole personalizzare l’esecuzione di un programma in modo da avere un unico programma sorgente che si comporti in modo diverso in base al sistema dove viene eseguito ha diverse possibilità.

    Da programma si può controllare l’UniqueID del sistema (Variabile SysUniqueID) e comportarsi di conseguenza in base al valore. La controindicazione e che se si sostituisce il prodotto si ha un UniqueID diverso.

    Da pagina web UserInfo si imposta una delle 4 variabili SysUSet, il programma si comporterà di conseguenza in base al valore. Naturalmente sostituendo il prodotto occorre reimpostare la variabile sul nuovo prodotto.

    Si utilizzano alcuni ingressi digitali per creare un codice in base a cui il programma si comporterà.

    #45783
    Riccardo Lucatuorto
    Partecipante

    Forse mi sono spiegato male, la leader election la vorrei fare dinamicamente magari appoggiandosi su un sistema esterno con funzione di observer che assegna il ruolo di master al primo che la richiede, gli altri trovando il ruolo già assegnato si configurano come slave.

    Successivamente con il sistema in esecuzione non rimane altro che controllare se il master esiste ancora ed eventualmente ricominciare l’elezione dall’inizio se il master è andato in errore.

    #45810
    Sergio Bertana
    Amministratore del forum

    Se ho capito la tua esigenza la potrei soluzionare ad esempio utilizzando uno SlimLine observer (Con IP statico), con la FB SysTCPServer metto in ascolto un servizio di gestione coordinamento. Tutti gli SlimLine della rete di comunicazione alla accensione si connettono all’observer chiedendo che ruolo devono avere. Al primo che si connette verrà assegnato il ruolo di master, agli altri il ruolo di slaves.

    Per aumentare l’affidabilità della rete, i vari SlimLine potrebbero dialogare con l’observer in una sorta di heartbeat, l’observer in caso di errore comunicazione con il master può reinizializzare tutti i  dispositivi riassegnando il ruolo di master.

    Tutto quello espresso è in teoria fattibile ma non esistono al momento programmi specifici che lo realizzano.

    #45827
    Riccardo Lucatuorto
    Partecipante

    Grazie per la risposta, esattamente, anche se l’idea non era usare un PLC, ma avere un rack di raspberry Pi (da 3 a 4) con istallato software tipo consul.io che con usa semplice API HTTP permette di fare la leader election (questo perché il software che sto facendo con interfaccia e logiche di controllo gira comunque su raspberry)

    https://www.consul.io/docs/guides/leader-election.html

    In questo modo posso gestire tutte le logiche di failsafe in caso di mancanza del master od  avere comunque l’impianto funzionante anche se non completamente in caso di guasto di uno dei PLC al piano.

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