Acasă > forum > Discuții privind problemele generale > Analiza șirurilor din portul serial
- Acest subiect are 2 răspunsuri, 2 participanți și a fost actualizat ultima dată 1 an, acum 10 luni da Stefano.
-
AutorPost
-
Mai 20, 2022 la 3: 54 pm #65318Stefanoparticipant
Trebuie să interfațăm o presă veche cu un SCADA pentru a-i monitoriza funcționarea.
Presa îmi oferă 4 contacte curate cu semnalele:- Ciclu în curs
- Funcționare automată
- Funcționare manuală
- Opriți din cauza alarmeiare, de asemenea, un port serial, la care trebuie conectată o imprimantă de text, care la sfârșitul fiecărui ciclu scoate un șir care conține aproximativ zece valori de funcționare și un nou caracter de linie. Deci ceva de genul:
"1.33 84.9 7893 22.5 6.74 etc. etc."
"1.93 87.4 7894 23.5 6.94 etc. etc."Șirurile au întotdeauna 80 de caractere, valorile ar părea a fi câmpuri cu lățime fixă aliniate la dreapta.
Ar trebui să achiziționez valorile digitale și să le fac disponibile pe un cuvânt prin modbus TCP, ceea ce este destul de banal. În același timp, citiți șirul de la linia de serie până la caracterul de sfârșit de linie, aruncați liniile nevalide (când aparatul calculează că se află pe o foaie nouă, emite titlurile coloanelor și liniuțele), împărțiți câmpurile, convertiți le de la text la număr și le puneți la dispoziție prin modbus. Poate salvați șirurile primite într-un fișier text pentru depanare.
Mă gândeam să folosesc un MPS056A320.
Ideea a fost să facem o buclă care să citească câte un caracter din serial și să-l adauge la un buffer. Odată ce ați atins cele 80 de caractere sau caracterul newline, împărțiți șirul în X șiruri de dimensiune Yx și convertiți-le cu SysVarsscanf. Dacă SysVarsscanf nu dă erori, atunci copiați datele în locațiile accesibile prin modbus.
Abordarea este puțin la nivel scăzut, dar mi se pare destul de robustă.
Există biblioteci mai avansate care îmi scapă?Mai 23, 2022 la 10: 29 am #65321Sergio BertanaAdministrator al forumuluiAș spune că este cea mai bună soluție, dacă te uiți la capitol Semplice protocollo seriale în documentația FB SysSerialPort, găsiți deja un punct de plecare pentru aplicația dvs.
Iunie 8, 2022 la 11: 28 am #65484StefanoparticipantPentru a depana aplicația ar fi util să aveți o pagină web care să arate jurnalul șirurilor sosite prin serial. Exact ceea ce face pagina web a sistemului care afișează jurnalele. Există o modalitate standard de a o replica sprijinindu-se pe un fișier text diferit?
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.