LabVIEWForum.de - Synchrone Ausführung

LabVIEWForum.de

Normale Version: Synchrone Ausführung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

vor einiger Zeit habe ich mal ein Programm geschrieben, die Messungen sehen aber teilweise so aus als hätte ich doch nen Versatz drin...

Programmidee:
Ich gebe einen digitalen Trigger aus, dieser löst eine Blitzlampe aus. Das Lichtsignal wird von einem Sensor in Spannung gewandelt. Wenn dieser Spannungswert einen bestimmten Wert überschreitet, soll von meiner Hardware eine Spannung ausgegeben werden und gleichzeitig soll an bis zu 8 Eingängen ein Spannungssignal gemessen werden.
Die Hardware ist eine NI PXIE-6356, die sollte hardwareseitig für die Durchführung geeignet sein.

Das Programm: Im LVFConfig werden die Tasks konfiguriert. Im Messungs - VI wird zunächst der Trigger ausgelöst und dann soll die Messung und die Spannungsausgabe starten. Das Originalconfig sieht noch ein bisschen anders aus, aber das will ich hier keinem zumuten. Die Funktion sollte aber dieselbe sein.
Das Config wird in meinem Programm nur einmal zum Start aufgerufen, das Messungs VI wird in einer StateMachine öfter aufgerufen.

Funktioniert es von der Konfiguration so, wie ich mir das vorstelle oder hab ich da doch iwo nen totalen Bock geschossen?

Grüßle
S.
Neue Woche, neuer Versuch:

Hat keiner ne Idee?
Ja, so geht es nicht, da muss man wesentlich trickreicher vorgehen.
Ich mache es so: Ich suche mir das zur gegebenen Aufgabe ähnlichste Beispiel in
Signalerfassung.. mittels Hardware -->
DAQmx --> Synchronisation
experimentiere damit, bis ich alles restlos verstehe, und ändere es dann kleinen iterativen Schritten ab, so dass es im Endergebnis die Aufgabe löst. (Wenn das alles neu für Dich ist: 1 oder zwei Tage werden da nicht reichen)

Ich würde Dir das genau so empfehlen, und wenn Du auf diesem Weg Fragen hast, die sich überschaubar beantworten lassen, dann wird Dir hier bestimmt geholfen.
Mit dem Thema hatte ich mich schon beschäftigt und auch die Beispiele angesehen. Das Ergebnis ist ja auch nur zum Teil auf meinen Mist gewachsen. Ich finde auch nicht, dass die Beispiele "wesentlich" trickreicher sind, aber vielleicht bin ich da zu blauäugig.

Ich hätte (und hab vermutlich) als änlichstes Beispiel das Multi-Function-Synch AI-AO-Ext Dig Trigger.vi und dort den Digitaltrigger durch einen Analogtrigger ersetzt. Desweiteren wird mein Timing durch die Waveform, die ich ausgeben und gleichzeitig die Antwort einlesen will, gesteuert.
Was in meinem Bsp. jetzt wohl noch (unter anderem) falsch ist, ist, dass der Ausgangstask nach dem Eingangstask gestartet wird.

Ich denke, ich werd heut nachmittag nochmal ein paar Tests machen...
(12.12.2012 09:54 )Schwand schrieb: [ -> ]Was in meinem Bsp. jetzt wohl noch (unter anderem) falsch ist, ist, dass der Ausgangstask nach dem Eingangstask gestartet wird.

Was man zuerst startet, ist egal, vorausgesetzt, es ist jedesmal richtig konfiguriert.
Offensichtlich hast Du trotz Studium der Beispiele und Entleihungen daraus das Prinzip der Synchronisation noch nicht verstanden.
Eine Methode ist die:
Gegeben Task A und Tast B, die zu synchronisieren sind. Task A benutzt den eigenen internen Sampletakt, Task B benutzt (mittels Konfiguration über DAQmx Timing) den Sampletakt von A mit.
Dann wird zuerst B gestart, kann aber nicht laufen, weil der von A kommende Sampletakt noch nicht da ist. Erst wenn A gestartet wird, laufen beide Tasks mit exakt gleichem Startzeitpunkt und gleichem Sampletakt los - streng synchron.

Ich habe mir dein VI eine Sek angesehen und dabei konnte ich das zur Synchronisation unentbehrliche Timing-VI nicht sehen. Also kann es so nicht funktionieren.
Ok, du hast aber schon gesehen, dass ich 2 Vis gepostet hab?! In dem LVF-Config.VI sind Timing.VIs drin...oder meinst du was anderes?
Referenz-URLs