LabVIEWForum.de - Queue State Machine - Datenerfassung Synchonisieren

LabVIEWForum.de

Normale Version: Queue State Machine - Datenerfassung Synchonisieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallöchen...

Ich bastel jetzt seit einiger Zeit an einem Prüfstand.

Für die grundlegende Struktur hatte ich mich an folgendes Beispiel gehalten:
https://decibel.ni.com/content/docs/DOC-32964

Ich möchte ein BUS System ansprechen auf das ich Lesen und Schreiben muss und ein Gerät per RS232 (siehe http://www.labviewforum.de/Thread-Serial...nsproblem) anspreche.

Nun wollte ich mit obigen Beispiel einmal für mein BUSsystem eine Queue erstellen und eins für die RS232 Schnittstelle.

Muss aber feststellen das das ganze wohl nicht clever ist.. Ich auch nicht scheinbar um mehrmaliges öffnen schließen der Schnittstellen komme... Ich auch einfach keine Synchrone Datenabfrage hinbekomme..

Mein Problem ist jetzt dass meine RS232 Schnittstelle ca. alle 2 Sek ein Signal sendet und mein Bussystem wesentlich schneller abfragen kann. Am liebsten würde ich jetzt immer wenn ich an der Rs232 Schnittstelle ein Signal aufnehme ich zeitgleich alle Daten meines Bussystems auslese. Ich vermute mal das ganze ist wohl nur mit parallelen Queues zu lösen? Ich werde morgen mal etwas hochladen.. Habe meine USB Stick leider liegen lassen.. Über Anregungen würde ich mich freuen. Im Moment liegen teilweise 2 Sekunden zwischen meinen Messwerten der beiden Schnittstellen..

Besten Gruß
Hallo tiger,

Zitat:Ich möchte ein BUS System ansprechen auf das ich Lesen und Schreiben muss und ein Gerät per RS232 … anspreche.
Du hast zwei voneinander unabhängige Geräte, die (anscheinend) nicht zu synchronisieren sind: einfach beide parallel abfragen…

Zitat:Muss aber feststellen das das ganze wohl nicht clever ist..
Warum nicht? Das ist (IMHO) die beste Möglichkeit!

Zitat:Ich auch nicht scheinbar um mehrmaliges öffnen schließen der Schnittstellen komme...
Das kann man ohne VI und ohne Wissen um deinen Prüfstand und dessen Funktion nicht bewerten.
IMHO sollte man so gut wie immer ohne mehrmaliges Port-Öffnen/-Schließen auskommen!

Zitat:Ich auch einfach keine Synchrone Datenabfrage hinbekomme..
Nein, nicht wenn die Geräte nicht zu synchronisieren sind.

Zitat:Am liebsten würde ich jetzt immer wenn ich an der Rs232 Schnittstelle ein Signal aufnehme ich zeitgleich alle Daten meines Bussystems auslese.
Finde ich nicht schön.
Ich löse solche Probleme, dass ich die Daten vom schnellsten Gerät kontinuierlich einlese und die anderen Gerätedaten in einem separaten Buffer ablegen. Für die langsamen Geräte ist immer der letzte Messwert der "aktuelle" - und der steht im Buffer…
Hallo Gerd,

ich hab mal schnell was zusammengeklickt..

anbei meine VIs

Der Stromzähler schafft halt alle 2 Sekunden

Das BUSsystem bremse ich gerade mit 1 Sekunde Timing..

natürlich bekomm ich so kein ganz genaues Timing hin..

Wäre es so sinnvoll einfach Daten zu Sammeln und später dann per Timecode zuzuordnen.. Sehe da gerade erstmal keine andere Möglichkeit.

Bin noch etwas unbedarft mit LabView.

Besten Gruß Granti
Das SubVI I-8701 ist rekursiv. d.h es ruft sich selbst auf. Das funktioniert so aber nicht. Was soll das überhaupt, bzw. würdest du das erst mal korrigieren?
Hallo Lucki,

verstehe gerade nicht inwieweit das ganze rekursiv ist?
In dem 8701.. wird ein SUBVi aufgerufen "serial poll" das die Daten per Befehl vom BUS holt.
Es ruft sich aber nicht selber auf.
Also bei dem was Du gepostet hast ruft das VI I-87018.vi im seinem Blockdiagramm das VI I-87018.vi, also sich sebst, auf. So etwas nennt man rekursiv.
[attachment=55637]
Korrektur: Das richtige SubVI im I-87018.vi ist das "Serial.vi". Das wird aber bei mir im System nicht gefunden, gepostet hast Du's auch nicht. Deshalb hatte sich das falsche VI dort eingenistet.
Ok eigentlich ist dort ein anderes SUBVI was ich aber nicht hochladen kann. Ich habe es jetzt aber geändert.
Anbei noch einmal alles korrigiert.
Ich sehe da einen Konflikt, die beiden VI greifen gleichzeitig auf eine Serielle Schnittstelle zu.
Die behindern sich doch, oder?
Ja da hast du Recht! Und genau da Liegt auch einer meiner Probleme..
Ich sollte wohl nacheinander auf die Module zugreifen da hast du Recht. Danke!

Wobei mir noch nicht ganz klar ist wie ich das am besten bewerkstellige..

Jeder Schleifendurchgang den Adresswert wechseln oder besser mit einer Queue arbeiten die eine andere aufruft.. Oder ganz simpel per Sequenz? ..

Das einfachste ist wohl die beiden einfach hintereinander zu verbinden ich Depp.. Tongue
Hallöchen ich noch einmal..

Ich möchte meine Whileschleifen beliebig Starten und Beenden.. und das immer mal wieder.. Dazu habe ich eine Hilfe unter

http://www.labviewforum.de/Thread-While-...nd-stoppen

gefunden, aber das ganze ist ja mit Variablen gestaltet die ich gerne Vermeiden möchte.. gibt es denn sonst noch eine Potente simple Lösung? Werde mich jetzt einmal mit Meldern auseinander setzen..
Seiten: 1 2
Referenz-URLs