IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Asynchrones Empfangen über RS232
CB
post 24. Oct 2006, 19:30
Post #1


proven Member
****

Group: Administrators
Posts: 315
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



In diesem Beispiel wird demonstriert, wie man ohne einen vorgegeben Sende-/Empfangstakt Botschaften mit einer vorgegebenen Struktur über RS232 empfangen und parsen kann.

Attached Image


Attached File  RS232Demo.LV71.zip ( 34.92K ) Number of downloads: 1390


ein paar Erläuterungen zum Blockdiagramm:

Attached Image


als erstes muss der Treiber für den Com-Port initialisiert werden. Dies geschieht mit dem VISA Configure Serial Port VI. Wenn hierbei kein Fehler aufgetreten ist, dann wird in der While-Schleife zyklisch geprüft, ob Daten im RS232 Eingangspuffer vorhanden sind. Wenn nein, dann wartet das Programm einfach 250 ms, wenn JA, werden die Daten aus dem Puffer gelesen (VISA Read) und in den Zwischenspeicher geschoben.

Bei jedem Schleifendurchlauf wird der Inhalt des Zwischenspeichers dahingehend geprüft, ob der darin enthaltene String dem Prototyp der zu empfangenden Daten-Strings entspricht (Länge, Format, etc ...) Wenn dies zutrifft, wird der String mit dem VI "Scan from String geparst.

Bei Parsing werden 2 Schritte angewandt: zunächst wird mit "Match Pattern" geprüft ob das Format stimmt. Wenn das zutrifft gibt "Match Pattern" den "machting substring" aus, der an die Funktion "Scan from String" weitergereicht wird. "Scan from String" macht aus dem String in dem Beispiel dann eine Zahl (Format: Double)

Das "wait for next ms multiple"-VI ist im Case "0" versteckt:

Attached Image


gewartet wird also nur, wenn keine Daten zur Verarbeitung anliegen, ansonsten werden die neuen Daten schnellstmöglich abgeholt und verarbeitet ...


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 08.07.2020 - 14:46