Home > Forum > Diskussionen über allgemeine Probleme > String-Parsing vom seriellen Port
- Dieses Thema hat 2 Antworten, 2 Teilnehmer und wurde zuletzt aktualisiert 1 Jahr, 10 Monaten da Stefano.
-
AutorPost
-
Mai 20, 2022 bei 3: 54 pm #65318StefanoPartecipante
Ich muss eine alte Druckmaschine an ein SCADA anschließen, um ihren Betrieb zu überwachen.
Die Presse gibt mir 4 saubere Kontakte mit den Signalen:- Zyklus läuft
- Automatische Operation
- Handbetrieb
- Stopp wegen Alarmes hat auch eine serielle Schnittstelle, an der ein Nur-Text-Drucker angeschlossen werden sollte, der am Ende jedes Zyklus einen String ausgibt, der etwa zehn Betriebswerte und ein Zeilenumbruchzeichen enthält. Also sowas wie:
"1.33 84.9 7893 22.5 6.74 usw. usw."
"1.93 87.4 7894 23.5 6.94 usw. usw."Strings sind immer 80 Zeichen lang, Werte würden als rechtsbündige Felder mit fester Breite erscheinen.
Ich sollte die digitalen Werte erfassen und auf ein Wort per Modbus TCP zur Verfügung stellen, was recht trivial ist. Lesen Sie gleichzeitig die Zeichenfolge von der seriellen Zeile bis zum Zeilenendezeichen, verwerfen Sie die ungültigen Zeilen (wenn die Maschine berechnet, dass es sich um ein neues Blatt handelt, gibt sie die Spaltenüberschriften und Bindestriche aus), teilen Sie die Felder auf, Konvertieren Sie sie von Text in Zahlen und stellen Sie sie über Modbus zur Verfügung. Speichern Sie die empfangenen Zeichenfolgen möglicherweise in einer Textdatei zum Debuggen.
Ich dachte an die Verwendung eines MPS056A320.
Die Idee war, eine Schleife zu machen, die jeweils ein Zeichen aus der Seriennummer liest und es an einen Puffer anhängt. Wenn Sie die 80 Zeichen oder das Zeilenumbruchzeichen erreicht haben, teilen Sie den String in X-Strings der Dimension Yx und konvertieren Sie sie mit SysVarsscanf. Wenn SysVarsscanf keine Fehler ausgibt, kopieren Sie die Daten an die Orte, die über Modbus erreichbar sind.
Der Ansatz ist ein bisschen niedrig, aber er fühlt sich für mich ziemlich robust an.
Gibt es fortgeschrittenere Bibliotheken, die mir entgehen?Mai 23, 2022 bei 10: 29 bin #65321Sergio BertanaAdministrator des ForumsIch würde sagen, dass es die beste Lösung ist, wenn Sie sich das Kapitel ansehen Semplice protocollo seriale in der FB-Dokumentation SysSerialPortfinden Sie bereits einen Ansatzpunkt für Ihre Bewerbung.
Juni 8, 2022 bei 11: 28 am #65484StefanoPartecipanteUm die Anwendung zu debuggen, wäre es nützlich, eine Webseite zu haben, die das Protokoll der über die Serie angekommenen Zeichenfolgen anzeigt. Genau das, was die Systemwebseite tut, die Protokolle anzeigt. Gibt es eine Standardmethode, um es zu replizieren und sich an eine andere Textdatei zu lehnen?
-
AutorPost
- Sie müssen angemeldet sein, um auf dieses Thema antworten zu können.