LabVIEWForum.de - 250HZ Signal über UART von PC zu MCB2300 und zurück ?

LabVIEWForum.de

Normale Version: 250HZ Signal über UART von PC zu MCB2300 und zurück ?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich möchte ein 250Hz Signal vom PC auf das MCB2300 Board schicken um es dort zu verarbeiten (hab´s hier mal stark auf´s wesentliche vereinfacht). Und hatte dafür den UART gewählt.
Ich sende/empfange einfach in einer While Schleife, welche alle 4ms ausgeführt wird.
Das funktioniert auch prinzipiell, jedoch gehen wird nicht alles übertragen bzw. empfangen.

Was die Datenübertragung angeht bin ich leider sehr unerfahren und habe daher sehr sicher einen (oder mehr Fehler). Eventuell kann das ja mal jemand anschauen und mir ein Tipp geben oder ein Link zu einem Beispiel dafür.

Gruß & Danke

amin

Lv86_img[attachment=19855]
Lv86_img[attachment=19856]
Hallo,

damit man sich das alles etwas besser vorstellen kann, habe ich mal einen Screenshot von einem Sendesignal und dem zurück empfangenen gemacht.
[attachment=19862]

Gruß

amin
Hallo,

ein Punkt habe ich inzwischen selbst herausgefunden. Und zwar scheint das Hauptproblem zu sein, dass sich unnötig viel Sende.
Nun benutze ich Byte Array to String. Und benutze somit nur noch 3 Byte anstelle der 16 (zuvor) und habe auch die Datenrate auf 57600 erhöht.
Jetzt wird das Signal erheblich besser übertragen. Jedoch hat es nach wie vor einige minimale Fehler. Hat jemand noch eine idee ?

Gruß & Danke

amin
Wirklich absolut stabile 4ms Loop-Time unter Windows (also einem Nicht-Realtime-System)? Ich würde sagen, vergiss es...

Gruß, Jens
Also meinst Du, dass die Synchronisation beim Senden und empfangen bei 250hz nicht funktioniert ?

Weil ich konnte durch Erhöhung der Baudrate und veringerung der gesendeten Daten zwischenzeitlich ein erheblich besseres Ergebnis ezielen:
[attachment=19892]
Jedoch bekomme ich´s noch immer nicht perfekt hin. Eine Fehlsynchronisation wäre eventuell eine möglichkeit. Aber ich kann mir nicht vorstellen, dass die Zeit so arg abdriftet, dass noch immer einige Werte verloren gehen.

Hier mal die VIs, der erheblich besseren Version:
Lv86_img[attachment=19893]
Lv86_img[attachment=19894]

Eventuell sieht ja noch jemand was ich besser machen könnte. Auf die 250hz kann ich leider nicht verzichten.

Gruß & Danke

amin
Hat keiner einen Tipp für mich ?
Weil zwischenzeitlich komme ich leider nicht mehr weiter Huh
Hallo,

leider habe ich noch immer das Problem.
Zwischenzetlich habe ich das gnaze mal mit LabVIEW 2009 probiert und bekomme hier sinnvolle Fehlermeldungen.
Und zwar scheint es zu einen Überlauf zu kommen:
[attachment=20503]

Hat jemand eine Idee wie ich das beheben kann ?

Gruß

amin
Ich würde auf gepuffertes Senden übergehen und jedes Paket mit einem Zeitstempel (oder Counter) versehen. Dann ist ja das Timing nicht mehr so wichtig. Den Zeitstempel sollte man auf jeden Fall auf beiden Seiten auswerten.
Hallo,

danke erstmal für den Tipp.
Hast Du zufällig ein Besipiel für die gepufferte Übertragung ?

Gruß & Danke

amin
Z.B. einfach 10 Sequenzen in ein Array sammeln und dann diese in einer For-Loop ohne Vezögerung dazwischen abschicken. Beim Empfangen einfach alles empfangen. Nicht vergessen: Timeout != Wartezeit. Beim Empfangen solltest du beim Konfigurieren der Schnittstelle einen Timeout einstellen und ohne Wartezeit in der Schleife empfangen.
Seiten: 1 2
Referenz-URLs