Vai al contenuto

Utilizzo delle funzioni nel linguaggio ST

Home Forum Programmazione IEC 61131 (LogicLab) Utilizzo delle funzioni nel linguaggio ST

Stai visualizzando 3 post - dal 1 a 3 (di 3 totali)
  • Autore
    Post
  • #35780
    Paolo
    Partecipante

    Buonasera, come da descrizione, alle prime armi, mi trovo in difficoltà nonostante i numerosi esempi su vs. sito, per capire come:

    1) Scrivere una propria funzione in linguaggio ST
    2) Richiamarla all’occorrenza da qualsiasi altro pezzo di codice ST

    La funzione in questo caso dovrà lavorare su delle variabili globali, semplicemente facendo dei calcoli e memorizzandoli.

    #38897
    Sergio Bertana
    Amministratore del forum

    L’argomento funzioni e blocchi funzioni è trattato in molti topics del forum ti rimando a questo topic che tratta l’utilizzo di variabili globali nelle funzioni. Interessante è anche questo topic dove vi sono esempi di come realizzare funzioni e blocchi funzione.

    Venendo alla tua domanda però come troverai scritto nel topic a cui ti ho rimandato ti ricordo che solo i FB possono accedere a variabili globali, le funzioni possono operare solo con variabili di ingresso e una sola variabile di ritorno.

    Ma anche se è possibile da FB operare direttamente su variabili globali (Si utilizza la dichiarazione VAR_EXTERNAL) è una pratica sconsigliata in quanto nel momento in cui esporti il FB ti troverai con delle dipendenze esterne che se non presenti nel programma dove il FB viene importato daranno errori di compilazione.

    Ho preparato un esempio (Ecco lo screenshot in simulazione su PC) che esprime i concetti riportati. Come si vede dalla stampa del programma, ho realizzato due funzioni. La funzione MyFunPtr ha come parametro un puntatore ed in questo modo può fare riferimento a variabili globali (Occorre passare alla funzione l’indirizzo della variabile). In questo modo la funzione può sia leggere che scrivere il valore del parametro (Download programma).

    #38898
    Paolo
    Partecipante

    Grazie mille, come al solito siete la nostra ancora di salvezza! Ora è tutto chiaro.

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