LabVIEWForum.de - Oszilloskop Auslesen und Motor zeitgleich starten

LabVIEWForum.de

Normale Version: Oszilloskop Auslesen und Motor zeitgleich starten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich weiß zwar nicht ob das Thema hier bei der Signaldarstellung so 100% richtig platziert ist aber hoffe trotz dem auf Antworten.

ich habe folgendes Problem:
Ich habe zwei Programme, welche jeweils für sich stehend auch wie gewünscht funktionieren.
Das erste Program dient dem Auslesen eines Oszis. Das zweite Program dient dem Steuern eines Servomotors. Nun möchte ich diese beiden Unterprogramme in ein Program überführen, welches den Auslesestart des Oszis sowie den start des Motors zeitgleich ermöglicht. Dies ist bei allen Versuchen, die ich bisher unternommen habe Misslungen. Entweder startet der Motor oder das Auslesen des Oszis. Dies geschied aber nie simultan. Als relativ blutiger LV-Anfänger bin ich für jeden Lösungsvorschlag dankbar.

Gruß,
Hazle

lv11_img
Hallo Hazle,

Hast du schon versucht, die beiden VIs einfach in ein "Main-VI" zu legen?
Eventuell, so wie in dem Bild zu sehen.

MfG Carsten
Hallo Carsten,

das habe ich natürlich schon probiert (sowie im angehängten Bild). Allerdings passiert folgendes wenn ich beide Programme in einem Main habe:
1. Das Motorprogramm wird abgespielt.
2. Nachdem das Motorprogramm abgespielt wurde, wird das Oszidisplay Angezeigt.

Was ich jedoch eigentlich möchte ist, dass die Anzeige des Oszidisplays zeitkontinuierlich geschieht und nicht durch das Motorprogramm unterbrochen wird.

Gruß,
Hazle
Ich hätte da eine Frage zu deiner Motorsteuerung. Muss die denn auf jeden Fall Immer zyklisch ausgeführt werden? Wenn nicht würde eventuell eine Producer-Consumer-Struktur behilflich sein. Dann wird der Teil der Motorsteuerung immer nur bei einer "Wertänderung" der Controls ausgeführt. Das würde das Display dann immer nur kurzzeitig verzögern. Das zyklische aktualisieren der Anzeige kannst du dann per Eventstruktur und deren Timeoutzeit bzw. einem periodisch erzeugten Event aktualisieren lassen.

MfG Carsten

PS: Producer-Consumer findest du in LabVIEW unter "Neu von Vorlage".
Das Beste wäre, wenn man das synchrone Starten hardwaremäßig machen könnte. Beipielsweise: Wenn es an der Motorsteuerung einen Boolschen Ausgang gibt, der den Start des Motors anzeigt, könnte man damit den Oszi triggern.
Wenn man es softwaremäßig macht, dann gibt es, wenn es sich um NI-Produkte handelt, hervorragende Möglichkeiten zur Synchroniation. Bei dir wird es womöglich nicht ideal funktionieren. Aber erst mal solltest Du es wenigstens ernsthaft versuchen, bis jetzt sehe ich da noch nichts.
Denn: Es nützt doch nichts, die beiden VI gleichzeitig zu starten. Bei beiden werden ja vor dem Start der jeweiligen Hardware irgendwelche Konfigurationen ausgeführt, die unterschiedlich lange dauern. Außerdem weiß man nicht, in welcher zeitlichen Ordnung das Ganze überhaupt ausgeführt wird. Z.B ist denkbar, daß zuerst nur das eine VI ausgeführt wird, und zwar so lange, bis es dort im Programmablauf zu einem Wait kommt. Diese Zeit wird dann dazu benutzt, das andere VI abzuarbeiten. Von einem synchronem Start kann da überhaupt keine Rede sein.

Es kommt darauf an, dass die eigentlichen Startaufrufe innerhalb der beiden VIs so gleichzeitig wie möglich gestartet werden. Welches die Startaufrufe sind, weiß ich nicht, und noch undurschsichtiger wird die Sache, weil sich die Startaufrufe bei Dir womöglich in Schleifen mit unterschiedlichen Umlaufzeiten befinden. Wie soll da Synchronisation überhaupt funktionieren können?

Prinzipiell müßte man es so machen:

Varante 1: Alles (A und B) in einem VI
Man bräuchte eine Sequenz mit 3 Rahmen:
Rahemen 1: Code für Konfiguration A und B
Rahmen 2: Start A und B
Rahmen 3: Datenerfassung usw.
Man braucht nicht unbedingt Sequenzrahmen, die Reihenfolgs läßt sich auch mit dem Fehlerstrang manipulieren.

Variante 2: A und B in getrennten SubVIs
Mit den VIs "Rendezvous" kann man erreichen, das bestimmte Punkte in den beiden VIs gleichzeitig ausgeführt werden. Am besten das Beispiel studieren.
Referenz-URLs