Vai al contenuto

Blocco funzione per estrapolare media mobile

Home Forum Programmazione IEC 61131 (LogicLab) Blocco funzione per estrapolare media mobile

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35214
    Anonimo
    Inattivo

    Ho la necessità di creare un blocco funzione (in ladder) da cui estrapolare una media mobile. Questo blocco funzione dovrà avere un buffer di 64 variabili in cui la prima censita viene “dimenticata” nel momento in cui il buffer e’ pieno e si rende necessario lo spazio per la memorizzazione di un nuovo valore.

    Da queste variabili estrarrò poi una media, ogni variabile conterrà un numero 1~100. Mi chiedevo se, con gli array, esista un modo per gestire la cosa senza dover allocare tutte le singole variabili, censirne il contenuto e spostarle tutte di un posto all’occorrenza, affinché venga “dimenticata” la prima e “fatto spazio” per la memorizzazione dell’ultima in ordine di tempo.

    #37253
    Sergio Bertana
    Amministratore del forum

    Il problema che poni è facilmente realizzabile, ma non utilizzerei il linguaggio Ladder per la soluzione. La normativa IEC 61131 non a caso mette a disposizione 5 linguaggi per la realizzazione del proprio progetto. Per ogni problema infatti c’è un linguaggio più indicato per trovarne la soluzione.

    Il tuo è un problema di calcolo, quindi ecco che è consigliabile utilizzare il linguaggio ST (Structured text) per la soluzione. Ti ho preparato un esempio che tramite una semplice FB in ST gestisce la media. Il blocco funzione di media potrà poi essere tranquillamente utilizzato in un tuo programma ladder.

    Questo programma funziona sul simulatore PC, quindi lo si può provare semplicemente senza disporre di nessun hardware particolare. Stampa programma e download programma sorgente.

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