LabVIEWForum.de - zeitabhängig Werte an DAQ weitergeben

LabVIEWForum.de

Normale Version: zeitabhängig Werte an DAQ weitergeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich hoffe, dass ich hier richtig bin. Ich arbeite zur Zeit an einem Projekt, in dem u.A. via LabView, Datenlogger und Frequenzumrichter ein Elektromotor angesteuert werden soll. Nun bin ich auf folgende Probleme gestoßen.

1. Zum einen möchte ich in mein VI eine Art "Zeitschaltuhrfunktion" einbauen; d.h. es soll mit dem Start bzw. Betätigung eines Schalters eine Uhr mitlaufen und nach vorgegebener Zeit (beispielsweise 10 min) ein Signal ausgeben bzw. das Programm stoppen. Nun weis ich nicht, ob es dafür bereits ein fertiges VI gibt, dass ich verwenden kann; und wenn nicht, wie ich das am einfachsten aufbauen könnte.

2. Das zweite Problem: Ich möchte in voreinstellbaren Zeitabständen Werte (bzw. jeweils einen Wert) aus einer Excel-Tabelle auslesen und diesen dann an den DAQ-Assistenten weitergeben, wodurch der angesteurte Elektromotor diesen Wert als Drehzahl anfährt. Dadurch möchte ich einen gewissen "Programmablauf" für den Motor vorgeben. Zum Beispiel: 2min mit Drehzahl 500min^-1, dann 2min mit Drehzahl 600min^-1, usw.. und schließlich irgendwann auf 0min^-1 und den Programmablauf stoppen.
Das Auslesen der Werte habe ich bereits hin bekommen (mit Array indizieren..), jedoch nicht die Zeitabhängigkeit, also dass nach vorgegebener Zeit jeweils ein Wert aus der Tabelle ausgelesen und an den DAQ-Assistenten weitergegeben wird. Zudem habe ich versucht mehrere Werte (z.B. jeweils eine Zeile oder Spalte) auf ein mal auszulesen und weiterzugeben. Dann versucht der DAQ jedoch, jeden Wert einem anderen Ausgang zuzuordnen. Ich habe aber wie gesagt nur einen Ausgang, auf dem dann die Werte nacheinander ausgegeben werden sollen.

Ich hoffe, dass ich meine Probleme einigermaßen klar machen konnte. Ich wäre sehr dankbar, wenn mir jemand möglichst zeitnah helfen könnte. Vielen Dank schon mal im Voraus.

Schöne Grüße
Tom2204
Hallo Tom,


2. Hier bietet sich eine Statemachine an: du hast mindestens zwei States "Daten mit DAQmx ausgeben" und "Warten".
Zitat:Zum Beispiel: 2min mit Drehzahl 500min^-1
Ergibt dann erst State "Daten ausgeben" mit Parameter "500rpm", und dann State "Warten" mit Parameter "2 min"…

1. Es gibt das ExpressVI "ElapsedTime", welches dir anzeigt, ob eine Zeitspanne vergangen ist. Dein "Start-Button" dient dort dann als Auslöser für die Zeitmessung.
Ansonsten baut man sich eine kleine Funktion, die selbst die Zeitdauer (=Differenz) misst und mit dem Limit vergleicht…

Zitat:Das Auslesen der Werte habe ich bereits hin bekommen (mit Array indizieren..)
Bei fest vorgegebenen Tabellen bietet sich auch immer die Autoindizierung in einer FOR-Loop an…
Hallo GerdW,

vielen Dank für deine Tipps. Ich werd das mal alles so versuchen. Sollte ich nicht weiter kommen, melde ich mich nochmal.
Hallo nochmal,

also Punkt 1 hab ich hin bekommen. Beim Punkt 2 weis ich jedoch nicht einmal, wie ich beginnen muss bzw. wie so ein Aufbau ungefähr aussehen muss. Könnte mir da nochmal jemand helfen? Evtl ein kleines Beispiel hochladen.. Wäre wirklich sehr dankbar!
Hallo Tom,

hier mal ein Beispiel zum Thema Autoindizierung:
[attachment=48713]
Super. Danke!! Big Grin
Hallo,

ich hätte mal noch eine Frage im Zusammenhang mit dem oben genannten Problem 2.
Und zwar möchte ich gerne durch Vorgabe (Eingabeaufforderung für Benutzer->Häkchen setzen) entsprechend der Auswahl ein Signal ausgeben, und mit diesem EINE bestimmte SPALTE aus meiner .csv-Datei auslesen. Hintergrund ist der, dass ich verschiedene drehbare Bauelemente mit verschiedenen "Drehzalprogrammen" über meinen Elektromotor anfahren möchte. Je nachdem, wo der Benutzer bei der Eingabeaufforderung das Häkchen setzt. Leider bekomme ich das nicht hin, entsprechend dieser Auswahl die jeweilige Spalte aus meiner Datei auszulesen. (Ich habe also vorgesehen, dass eine Spalte in meiner .csv-Datei ein "Drehzahlprogramm" darstellt.
Ich hoffe, ich nerve nicht, und bin für jede Hilfe und jeden Tipp dankbar!

Schöne Grüße
Tom2204
Hallo Tom,

Zitat:Je nachdem, wo der Benutzer bei der Eingabeaufforderung das Häkchen setzt. Leider bekomme ich das nicht hin, entsprechend dieser Auswahl die jeweilige Spalte aus meiner Datei auszulesen.
Was hast du denn bisher versucht? Wo ist dein Problem damit?
Einfache Möglichkeit: CSV-Daten als 2D-Array einlesen und je nach gewähltem "Häkchen" dann die passende Spalte indizieren.
Hallo Gerd,

ich bin gerade dabei, die Werte über "Aus Tabellenkalkulatikonsdatei lesen" und anschließend "Array indizieren" die Werte auszulesen. Die Zeitvorgabe habe ich - so wie du mir es geraten hast über die Autoindizierung realisiert. Mein Problem liegt nun darin, wie sage ich dem Programm, dass z.B. bei "Häkchen 1" gesetzt die erste Spalte aus der .csv-Datei gelesen werden soll? Ich versuche, die Signale aus der Eingabeaufforderung auf die "Spalten-Index-Eingänge" von dem Array Indizieren- Baustein zu legen und damit dann die entsprechende Spalte weiterzugeben.. Kann das funktionieren, oder bin ich hier völlig auf dem Holzweg?

Tom
Hallo Tom,

Zitat:wie sage ich dem Programm, dass z.B. bei "Häkchen 1" gesetzt die erste Spalte aus der .csv-Datei gelesen werden soll? Ich versuche, die Signale aus der Eingabeaufforderung auf die "Spalten-Index-Eingänge" von dem Array Indizieren- Baustein zu legen
Bilder sagen mehr als 1000 Worte…
Welche Eingabeaufforderung? Ich denke, du hast da ein paar "Häkchen" aka "Kontrollkästchen (System)" auf deinem FP?
Ansonsten gibt es ja die Case-Struktur:
Code:
IF x
  THEN y
  ELSE z
Seiten: 1 2
Referenz-URLs