Home › Forum › Discussioni su problematiche generali › Parsing stringa da porta seriale
- Questo topic ha 2 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 9 mesi fa da Stefano.
-
AutorePost
-
Maggio 20, 2022 alle 3:54 pm #65318StefanoPartecipante
Devo interfacciare una vecchia pressa ad uno scada per monitorarne il funzionamento.
La pressa mi da 4 contatti puliti con i segnali:– Ciclo in corso
– Funzionamento automatico
– Funzionamento manuale
– Arresto per allarmeha poi una porta seriale, a cui andrebbe collegata una stampante solo testo, che a fine di ogni ciclo emette una stringa contenente una decina di valori di funzionamento e un carattere di new line. Quindi qualcosa tipo:
” 1.33 84.9 7893 22.5 6.74 ecc ecc”
” 1.93 87.4 7894 23.5 6.94 ecc ecc”Le stringhe sono sempre lunghe 80 caratteri, i valori sembrerebbero campi a larghezza fissa allineati a destra.
Io dovrei acquisire i valori digitali e renderli disponibili su una word via modbus TCP, che è abbastanza banale. Contestualmente leggere la stringa dalla seriale fino al carattere di fine linea, scartare le righe non valide (quando la macchina calcola di essere su un nuovo foglio emette le intestazioni di colonna e dei trattini) dividere i campi, convertirli da testo a numero e renderli disponibili via modbus. Magari salvare le stringhe ricevute su di un file di testo per avere un debug.
Pensavo di usare un MPS056A320.
L’idea era di fare un ciclo che legge una carattere alla volta dalla seriale e lo accoda ad un buffer. Una volta raggiunti gli 80 caratteri, o il carattere di fine linea, dividere la stringa in X stringhe di dimensione Yx e convertirle con SysVarsscanf. Se SysVarsscanf non da errori allora copiare i dati nelle locazioni raggiungibili da modbus.
L’approccio è un po’ a basso livello ma mi pare abbastanza robusto.
Ci sono librerie più evolute che mi sfuggono?Maggio 23, 2022 alle 10:29 am #65321Sergio BertanaAmministratore del forumDirei che è la soluzione migliore, se dai una occhiata al capitolo Semplice protocollo seriale nella documentazione del FB SysSerialPort, trovi già una base di partenza per la tua applicazione.
Giugno 8, 2022 alle 11:28 am #65484StefanoPartecipantePer fare il debug dell’applicazione mi farebbe comodo avere una pagina web che mostri il log delle stringe arrivate tramite seriale. Esattamente la cosa che fa la pagina web di sistema che mostra i log. C’è un modo standard per replicarla appoggiata ad un diverso file di testo?
-
AutorePost
- Devi essere connesso per rispondere a questo topic.