Vai al contenuto

Come usare le strutture

Home Forum Informazioni ambiente di sviluppo LogicLab Come usare le strutture

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

    Scusate l’ingnoranza in materia ma è la prima volta che uso le strutture. Ho questo problema:
    quando creo una struttura, ad es. StructColori contenente chiaro e scuro, come posso nell’editare un programma prelevare StructColori.chiaro

    Per capirci nell’esempio gestione ricette si vede come variabile in ingresso del function block ONOFFCYCLE Rcp.Cy1Off. Dove la trovo per trascinarla come variabile in ingresso di una mia funzione ?

    #38999
    Massimo
    Moderatore

    Nella tua domanda probabilmente ti stai riferendo all’esempio riportato in questo topic. Quando si crea una struttura e’ come dire che si crea un nuovo tipo dati. Per cui per usarla, occorre dichiarare una variabile di tipo struttura. Nel suo caso ad esempio MyVar di tipo StructColori. Poi nel programma si userà MyVar.chiaro. Dai una occhiata a questo topic.

    #39137
    Alessandro
    Partecipante

    Ho creato una struttura dati che ho dichiarato come parametro IN-OUT di un Blocco Funzionale. Nel programma utente vado poi a pasare una variabile di tipo struttura dati che ho creato per passarla al blocco ma, in fase di compilazione mi esce un errore del tipo:

    TEST(1$FB:IST_1) – error A4151:  IST_STAT_1 => Structure not allowed

    Esiste qualche maniera di passare una struttura dati come parametro ad un blocco funzionale ?

    #39140
    Sergio Bertana
    Amministratore del forum

    Per passare strutture dati a blocchi funzione occorre utilizzare il passaggio per indirizzo e non per valore. Puoi dichiarare un tuo FB che ha come parametro in ingresso un puntatore allla struttura da te definita (Screenshot).

    Nell’esempio riportato la struttura MYDATASTRUCT viene passata per indirizzo, il FB ha il parametro In definito di tipo @MYDATASTRUCT. Nel programma al FB LclFB di tipo MyFB viene passato l’indirizzo della variabile LclDS di tipo MYDATASTRUCT. Come si vede dalla finestra di watch vaolorizzando il campo LclDS.MyUInt con il valore 5, il FB può eseguire la moltiplicazione e valorizzare il campo LclDS.MyUDint con il valore 50.

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