Vai al contenuto

Trasmissione valore variabili su UDP

Home Forum Programmazione IEC 61131 (LogicLab) Trasmissione valore variabili su UDP

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

    In un sistema recentemente realizzato con un modulo CPU SlimLine ho due variabili di tipo REAL che devo trasmettere in UDP sulla rete ethernet.

    Su di un PC gira un software che aspetta le due variabili nel seguente formato: <carattere di start> <variabile1> <carattere separatore> <variabile2> <carattere terminatore>. Potete darmi una idea di come come posso costruire la stringa da trasmettere ?

    #38196
    Sergio Bertana
    Amministratore del forum

    Ecco la stampa di un semplice programma che utilizzando la funzione SysVarsnprintf crea il messaggio da inviare e poi usando la funzione SysUDPSktSend è possibile inviarlo in UDP. Come si vede ho reralizzato un PROGRAM in linguaggio ST che gestisce una temporizzazione, ad ogni secondo incrementa il valore di due variabili REAL e ne invia il valore in UDP.

    Nel mio caso il valore è inviato all’indirizzo 192.168.0.42 su porta 2000, e come si vede dallo screenshot ho messo Toolly come server UDP in ascolto sulla porta e ricevo i dati inviati dallo SlimLine. Come carattere di inizio ho scelto “[” come separatore “-” e come terminatore “]”, ma puoi scegliere i caratteri che desideri, basta modificarli nella funzione SysVarsnprintf.

    Per semplificarti la decodifica della stringa ricevuta, puoi anche fissare il numero delle cifre trasmesse modificando la formattazione del numero nella funzione SysVarsnprintf. %.2f forza 2 cifre decimali, .3f fissa al minimo 7 cifre 3 intere il punto e 3 decimali (Esempio se il valore è 95.32 verrà riportato come 095.320). Allego programma sorgente per download.

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