Mit Hilfe der Beispiele und der Tipps hier im Forum, habe ich Funktionen für mein VI schon einzeln ausprobiert und getestet (Auslesen, Schreiben, Ausgeben, alles ohne Express-VIs etc.). Beim Erstellen des eigentlichen VIs bin ich nun auf ein Problem gestoßen:
In meinem LV-VI möchte ich u.a. analoge Daten winkelsynchron auslesen und speichern. Dazu soll ein Drehgeber (mittels ICs auf 512 Inkremente/Umdrehung reduziert) den Sample-Takt vorgeben.
Die maximale Rate des Signals liegt bei 51,2 kHz.
Derzeitig verwende ich eine NI 6024E, eine NI 6343 liegt aber schon bereit, es fehlt nur noch der passende Rechner.
Da das VI auch laufen soll, wenn sich der angeschlossene Motor noch nicht dreht, wollte ich die externe Quelle des Sample-Taktes abhängig vom Status des Motors in einem Case (n=0?) auswählen lassen.
Motor dreht: externe Quelle
Motor steht: OnBoardClock
Im Anhang befindet sich der Screenshot der betreffenden Programmecke und das zugehörige Haupt, sowie Sub-VI.
Der untere Bereich des Haupt-VIs ist noch in Arbeit, nicht erschrecken.^_^
Task erstellen, Kanal erzeugen, Timing und Task starten liegen alle außerhalb der While-Schleife, ich kann die Takt-Quelle also nicht einfach mit einer Leitung an das Timingmodul übergeben, so weit ist es klar. Task stoppen und zurücksetzen sind dann natürlich auch wieder außerhalb der Schleife.
Die Übergabe mittels Eigenschaftsknoten, der seine Referenz auf der source (Anzeige der ausgewählten Quelle) hat funktioniert allerdings nicht. (Kontrolle durch source aktuell)
Welche Möglichkeit bietet sich zur Übergabe der Quelle an?
Timing und Task starten in die Schleife zu verlegen dürfte der Performance abträglich sein.
Main_sampleclk.vi (Größe: 39,15 KB / Downloads: 233)
motor_sub.vi (Größe: 23,51 KB / Downloads: 207)
Vielen, vielen Dank im Vorraus!
Roman