LabVIEWForum.de - Programmstruktur für eine Messaufgabe mit zeitlich nicht konstanten "Blöcken"

LabVIEWForum.de

Normale Version: Programmstruktur für eine Messaufgabe mit zeitlich nicht konstanten "Blöcken"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

für meine Abschlussarbeit möchte ich ein LabVIEW-Programm für eine PXI-System mit Real-Time-Modul erstellen. Leider bin ich noch kein LV-Experte, deshalb würde ich mich freuen wenn der Eine oder Andere hier einen Tipp hat... Die Frage dreht sich darum, wie die Programmstruktur grundsätzlich für die Messaufgabe (die im Anhang skizziert ist) aussehen könnte?

Im Wesentlichen geht es darum, aus einer Messgröße_X eine Ausgangsgröße_Y zu berechnen. Aus- und Eingang sind über eine Datenerfassungskarte angebunden. Nun soll das Programm aber „blockweise“ getaktet sein, wobei dieser Blocklänge nicht konstant ist. Die Blocklänge wird dabei vom vorhergehenden Block festgelegt. Die Skizze zeigt exemplarisch für Block_2, wie der Datenfluss aussehen soll, wobei dies natürlich für jeden Block gilt. Die gestrichelten Pfeile sollen zeigen, dass diese Daten vom vorhergehenden oder darauffolgenden Block bearbeitet werden.
Meine Fragen sind:

  1. Wie kann man eine Programmstruktur aufbauen die das erfüllt? (Einfach eine Zeitgesteuerte Schleife, die vom vorherigen Durchgang den Zeitwert bekommt? Muss man 3 Tasks für Eingabe/Verarbeitung/Ausgabe erstellen?)]1
  2. Wie kann man Werte für den Ausgang puffern, damit diese im nächsten Block vom Analogausgang „abgearbeitet“ werden können? (Es werden später um die 2000 Werte sein, im Beispiel habe ich eben 10 gewählt um die Skizze übersichtlich zu halten)]1


Herzlichen Dank für Antworten!
Hallo Bike,

Zitat:eine PXI-System mit Real-Time-Modul
Ist RealTime Pflicht?

Bei DAQmx wäre das relativ einfach:
1. Einfach eine Schleife, die so viele Samples vom hardwaregetakteten DAQmxKanal abholt, wie gerade benötigt werden.
2. Schieberegister in dieser Schleife… (Ersetze den Begriff "Block" durch "Iteration"!)
(02.02.2017 14:16 )GerdW schrieb: [ -> ]Ist RealTime Pflicht?

Ja, also das ist eben das System auf dem das Ganze später laufen soll. Vorerst experimentiere ich noch mit der myDAQ-Karte.

(02.02.2017 14:16 )GerdW schrieb: [ -> ]1. Einfach eine Schleife, die so viele Samples vom hardwaregetakteten DAQmxKanal abholt, wie gerade benötigt werden.
Ok das mit der Hardware-Taktung muss ich mir mal genauer Anschauen. Die Messwerterfassung muss eben so sein, dass keine Samples ausgelassen werden, wenn eine neue Iteration beginnt und die Messwerte "abgeholt" werden.

(02.02.2017 14:16 )GerdW schrieb: [ -> ]2. Schieberegister in dieser Schleife… (Ersetze den Begriff "Block" durch "Iteration"!)
Super, das habe ich gerade ausprobiert. Wusste ich nicht, dass man per Schieberegister auch komplette Arrays für die nächste Iteration bereitstellen kann...Smile
Hallo Bike,

Zitat:Wusste ich nicht, dass man per Schieberegister auch komplette Arrays für die nächste Iteration bereitstellen kann...
Ich habe gehört, dass auch Cluster und Strings funktionieren sollen! Big Grin

Im Ernst: In 4 Jahren LabVIEW-Nutzung hast du immer nur skalare Werte durch Schieberegister geschoben?
(02.02.2017 14:16 )GerdW schrieb: [ -> ]Hallo Bike,

Zitat:eine PXI-System mit Real-Time-Modul
Ist RealTime Pflicht?

Bei DAQmx wäre das relativ einfach:
1. Einfach eine Schleife, die so viele Samples vom hardwaregetakteten DAQmxKanal abholt, wie gerade benötigt werden.
Das schließt sich jetzt nicht aus. Eine DAQmx-fähige Karte in einem PXI-System mit RT-Controller kannst du genauso mit DAQmx unter RealTime programmieren.

Gruß, Jens
Referenz-URLs