Home › Forum › Discussioni su problematiche generali › Trasformazione di un valore REAL in testo
- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 4 anni fa da Sergio Bertana.
-
AutorePost
-
Marzo 28, 2020 alle 5:06 pm #54353GABRIELEGALLIPartecipante
La mia questione è sicuramente basilare ma confesso che non ne riesco a venire fuori. Ho il valore in uscita da un SysGetAnInp (REAL) opportunamente mediato, lo voglio inviare come testo di un SMS attraverso il modulo ModemSMSSend (chiara e funzionante tutta la parte relativa alla configurazione SysSerialPort e ModemCore).
Oltre a fare passare tale valore da un modulo ADR cos’altro devo fare per trasformarlo in testo?
Marzo 28, 2020 alle 5:11 pm #54355Sergio BertanaAmministratore del forumPer trasformare variabili in testo rendiamo disponibili due funzioni SysVarsnprintf e SysLWVarsnprintf, entrambe convertono una variabile in una stringa di testo. La prima serve se si deve stampare in una stringa una sola variabile, la seconda permette di accodare ad una stringa il risultato della conversione della variabile creando una stringa che contiene più valori.
Grazie al campo Format puoi spaziare in una infinità di opzioni per la creazione della stringa valore.
Marzo 31, 2020 alle 10:00 am #54372GABRIELEGALLIPartecipantePer quanto riguarda il linguaggio ST riesco bene ad implementare il programma, ma in FBD non riesco ad implementare la VarTYPE.
Nel mio caso la variabile è un reale e inserisco nel pin la variabile REAL_TYPE ma mi da un errore:
SysVarfprintf1.VarType – error A4108: VR_TYPE => Base object not found
Marzo 31, 2020 alle 10:14 am #54376Sergio BertanaAmministratore del forumPremesso che la IEC-61131 ci ha dato 5 linguaggi per permetterci di utilizzare quello più adatto ad ogni necessità di programmazione, e che per operare con operazioni stringa come ad esempio nel tuo caso sia da preferire di gran lunga il linguaggio ST, questo non toglie che si possa utilizzare anche l’FBD. Ecco come la riga ST:
SysVarsnprintf(ADR(Str), SIZEOF(Str), ‘Value:%3.1f’, REAL_TYPE, ADR(Var));
Diventa in FBD (Screenshot).
-
AutorePost
- Devi essere connesso per rispondere a questo topic.