LabVIEWForum.de - Daten erfassung und verarbeitung mit cDAQ

LabVIEWForum.de

Normale Version: Daten erfassung und verarbeitung mit cDAQ
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Morgen alle zusammen ,

Ich fang erstmal ganz von vorne an, damit ihr mein Problem besser verstehen könnt.

In meinem Projekt benutze ich zurzeit ein cDAQ-System mit verschiedenen Modulen. Dieses wird für einen Simulator benötigt, dabei werden Signale (Analoge und Digitale)

1) Erfasst in einem Diagramm dargestellt und für die Weiterverarbeitung benutzt.
2) Nach der Verarbeitung werden die Signale wieder an den Simulator ausgegeben.

Es entsteht also ein Regelkreis, mit dem in erster Linie die Geschwindigkeit der Motoren in Abhängigkeit von anderen Parametern (Bremsdruck) gesteuert wird. Da ich keine Erfahrungen mit LV vorher hatte, versuchte ich mich erstmal mit den Beispielen von LV auseinander zu setzen, um die Logik besser zu verstehen. Mein geschriebenes Programm funktioniert zurzeit meiner Meinung nach recht gut, aber dass ist nur meine Meinung (eines Anfängers).

Ich wollte jetzt allgemein Fragen, was ich vielleicht beim Programmieren falsch bzw. anders machen kann, um die Rechengeschwindigkeit zu optimieren? Weiterhin hab ich bei der Darstellung der gemessenen Werte einige Probleme und zwar möchte ich gerne dass die Darstellung bei der Zeit t0 anfängt und bei der Zeit tx endet. Ich hab zwar schon einen Beitrag zu diesem Thema in dem Forum gefunden, aber ich werde leider daraus nicht schlauer.

Ich bedanke mich im Voraus!

Lv86_img
Bin zwar neu hier im Forum, aber habe schon ein bisschen Erfahrung mit LabVIEW.
Darum würdest du vielleicht dein VI auf 8.5 downgraden, dann könnte ichs mir auch mal angucken!!

mfg Cerbi
Hallo kcccp,

Verbesserungspotenzial ist immer vorhanden.[list]
[*]Als erstes fällt natürlich DAQ ins Auge. Du könntes bei der Datenerzeugung die vier Kanäle zu einem Task zusammennehmen. Bei der Datenerfassung machst dus ja schon so. Starte den Tast außerhalb der Schleife, in der du die Daten erfasst bzw. erzeugst und stoppe/lösche ihn auch erst, wenn du keine weiteren Daten erfassen/erzeugen willst. <>
[*]Packe die Filter und alle Formelknoten in eine Forschleife. Versuche am besten, auf die Formelknoten zu verzichte.<>
[st]Wenn du das gemacht hast lad es nochmal hoch. Viel Spass.
Hallo Julius,

Ich hab jetzt mein VI ein bisschen verändert, die Datenerfassung hab ich jetzt zu einem Task hinzugefügt, weiterhin hab ich einige Variablen, die vor dem Simulationsbeginn eingegeben werden, vor die While Schleife getan. Außerdem schlägst mir vor die Filtern und die Formelknoten in die For Schleife zu packen, kannst du mir vielleicht kurz erklären welchen Vorteil ich dadurch erzwinge und wie lange meine For Schleife laufen soll? Weil ich so zu sagen im jeden durchlauf meiner Programm Daten einlesen, verarbeiten und ausgeben möchte.

Ich hab jetzt mein VI auch für LV 8.5 hochgeladen.

Danke Julius und Cerbi


Mit freundlichen Grüßen
Sven
DAQ übergibt dir ein Array und du wendest auf die Elemente, bis auf das erste Element, immer die gleiche Rechenoperationen an. Die Forschleife zwingt sich daher geradezu auf, denn dort kannst du mit dem Array hineingehen und die Funktionen wiederholt auf jedes Element des Array anwenden. Du bräuchtest nur noch unterscheiden, ob du in der Iteration 0 bist oder nicht, um das erste Element im Array anders zu behandeln. Die Vorteile einer solchen Struktur sind immens. Das wirst du spätestens merken, wenn Änderungen am Code erforderlich sind oder Siganle hinzukommen.
Hallo Julius,

es tut mir leid dass ich erst jetzt antworte, es hat sich einiges in dieser Zeit verändert:


1)Ich benutze zur Zeit eine andere Hardware für die Signalerfassung (cRIO-Chassis Scan- Enigiene- Modus)
2)Ich musste mein Programm umschreiben und hab dabei auf die allgemeine Vorschläge zum LV programmieren geachtet (soweit es ging).

Leider kann ich den Vorschlag, mit der For- Schleife nicht realisieren, es fehlt mir an Erfahrung, deshalb wollte ich dich fragen ob du einige Bsp. kennst in denen man so etwas zu sehen bekommt?

Gruß
Sven
Also ich hab es gelöst, nun hab muss ich mein Array in 4 Signale auftrennen, kann mir einer sagen wie es geht ?


Gruß
Sven

Lv86_img
Index-Array Funktion verwenden!?

Gruß, Jens
Hi ,
danke für die schnelle Antwort, leider kann ich mit der Index Array Funktion nichts anfangen , wo finde ich die Funktion überhaupt ?

thx
Sven
Die Funktion heißt "Array indizieren" und befindet sich in der Funktionspalette des Blockdiagramms unter:

Programmierung->Array->Array indizieren

LG
Torsten
Seiten: 1 2
Referenz-URLs