11.09.2011, 19:47
11.09.2011, 21:39
Jupp vielen Dank!!! Du hast mir sehr geholfen. Genau so wollte ich es machen, wusste aber nicht genau wie ich es umsetzen sollte.
10.09.2014, 14:46
Auch ich möchte mit einem Programm Daten aus Excel einlesen.
Dabei stoße ich auf folgendes Problem. Ich selbst bin noch nicht lange LabView kundig, doch benötige es für meine Abschlussarbeit. Über einen Dritten bin ich an einen Funktionsgenerator gekommen, der mir über eine Interface Karte gewünschte Spannungen nach bestimmter Zeit ausspuckt (es handelt sich dabei um die Dimmung einer LED als Lichtquelle).
Die DLL habe ich mit eingebunden bekommen, sodass die Werte an meine Karte ausgegeben werden.
Des Weiteren möchte ich nun aber die Möglichkeit haben in der VI Daten aus Excel einzulesen. Dabei gehe ich in die obere Schleife des VIs und trage im FALSE Case folgende Struktur im Blockdiagramm ein:
![[Bild: attachment.php?aid=50706]](https://www.labviewforum.de/attachment.php?aid=50706)
Mir ist nun nicht ganz klar, welche Schaltverhalten ich für das boolesche Element wählen muss, dass er nach dem laden der Excel-Datei direkt wieder in das TRUE Case wechselt. Außerdem soll er die Funktion in einem Plot (mit beschrifteten Achsen) ausspucken und nicht in einem zweiten Plot.
Wäre super wenn jemand mir da auf die Sprünge helfen könnte. Ich bin wie gesagt noch frischen Lernen mit LabView.
Danke im Voraus.
Joj0o
Dabei stoße ich auf folgendes Problem. Ich selbst bin noch nicht lange LabView kundig, doch benötige es für meine Abschlussarbeit. Über einen Dritten bin ich an einen Funktionsgenerator gekommen, der mir über eine Interface Karte gewünschte Spannungen nach bestimmter Zeit ausspuckt (es handelt sich dabei um die Dimmung einer LED als Lichtquelle).
Die DLL habe ich mit eingebunden bekommen, sodass die Werte an meine Karte ausgegeben werden.
Des Weiteren möchte ich nun aber die Möglichkeit haben in der VI Daten aus Excel einzulesen. Dabei gehe ich in die obere Schleife des VIs und trage im FALSE Case folgende Struktur im Blockdiagramm ein:
Mir ist nun nicht ganz klar, welche Schaltverhalten ich für das boolesche Element wählen muss, dass er nach dem laden der Excel-Datei direkt wieder in das TRUE Case wechselt. Außerdem soll er die Funktion in einem Plot (mit beschrifteten Achsen) ausspucken und nicht in einem zweiten Plot.
Wäre super wenn jemand mir da auf die Sprünge helfen könnte. Ich bin wie gesagt noch frischen Lernen mit LabView.
Danke im Voraus.
Joj0o
10.09.2014, 15:43
Hallo JojDo,
schon mal nicht schlecht für den Anfang. Nun gilt es aber, etwas besser THINK DATAFLOW umzusetzen!
Ich habe dein VI mal etwas bearbeitet:
- lokale Variablen meiden, LabVIEW arbeitet DATAFLOW-basiert! Stattdessen bieten sich Schieberegister an, ich habe mal "M" und "End Rampe" entsprechend umgesetzt.
- NIEMALS das Label von Controls löschen! In C würdest du doch auch nicht "":=""+"" statt a:=b+c schreiben! Wenn dich etwas auf dem FP stört: Rechtsklick->Sichtbare Objekte…
- Wenn Dinge in beiden Cases einer Case-Struktur gleich ausgeführt werden, dann gehören diese Dinge nicht in die Case-Struktur hinein! So habe ich in deinem VI schon ein paar lokale Variablen eingespart…
Schau mal, ob du damit etwas anfangen kannst…
schon mal nicht schlecht für den Anfang. Nun gilt es aber, etwas besser THINK DATAFLOW umzusetzen!
Ich habe dein VI mal etwas bearbeitet:
- lokale Variablen meiden, LabVIEW arbeitet DATAFLOW-basiert! Stattdessen bieten sich Schieberegister an, ich habe mal "M" und "End Rampe" entsprechend umgesetzt.
- NIEMALS das Label von Controls löschen! In C würdest du doch auch nicht "":=""+"" statt a:=b+c schreiben! Wenn dich etwas auf dem FP stört: Rechtsklick->Sichtbare Objekte…
- Wenn Dinge in beiden Cases einer Case-Struktur gleich ausgeführt werden, dann gehören diese Dinge nicht in die Case-Struktur hinein! So habe ich in deinem VI schon ein paar lokale Variablen eingespart…
Schau mal, ob du damit etwas anfangen kannst…
11.09.2014, 10:33
Danke erst einmal für die schnelle Hilfe. So macht man das also übersichtlich
...
Das Einlesen funktioniert nun soweit über das "Read from Spreadsheet File VI". (nach richtigen Einstellen des delimiter und der number of rows)
Dabei habe ich nun aber weitere zwei Probleme:
1. Es öffnet sich nach Einlesen der Datei immer direkt wieder der "file path"...
Die Funktion die eingelesen werden soll, ist dann zwar auf dem Graphen zu sehen, aber er springt immer wieder direkt in die "False-Case" Struktur.
2. Sollen die eingelesenen Werte auch an meinen Analogen Output gehen, um die eingelesenen Werte in der Rampe zu fahren.
Wie realisiere ich das?

Das Einlesen funktioniert nun soweit über das "Read from Spreadsheet File VI". (nach richtigen Einstellen des delimiter und der number of rows)
Dabei habe ich nun aber weitere zwei Probleme:
1. Es öffnet sich nach Einlesen der Datei immer direkt wieder der "file path"...
Die Funktion die eingelesen werden soll, ist dann zwar auf dem Graphen zu sehen, aber er springt immer wieder direkt in die "False-Case" Struktur.
2. Sollen die eingelesenen Werte auch an meinen Analogen Output gehen, um die eingelesenen Werte in der Rampe zu fahren.
Wie realisiere ich das?
11.09.2014, 10:37
Hallo JojDo,
- Wenn dein "file path" leer ist, kommt natürlich der Filedialog - so wie es in der Hilfe zur Funktion steht!
Zitat:1. Es öffnet sich nach Einlesen der Datei immer direkt wieder der "file path"...- Wenn dein Button FALSE ist, wird auch der Case ausgewählt. Wenn du das nicht willst, darf dein Button nicht FALSE sein!
- Wenn dein "file path" leer ist, kommt natürlich der Filedialog - so wie es in der Hilfe zur Funktion steht!
Zitat:Mir ist nun nicht ganz klar, welche Schaltverhalten ich für das boolesche Element wählen muss, dass er nach dem laden der Excel-Datei direkt wieder in das TRUE Case wechselt.Es bietet sich ein Latch-Modus an. Der Defaultwert für den Button sollte TRUE sein…
Zitat:2. Sollen die eingelesenen Werte auch an meinen Analogen Output gehen, um die eingelesenen Werte in der Rampe zu fahren.Du hast doch schon eine Analogwert-Ausgabe in deinem VI, was brauchst du denn noch?
11.09.2014, 11:54
zu Zitat 2.:
Ich möchte, dass entweder die Werte manuell in den Array "Zeit [s] | Sollwert [V]" eingeben können, sowie der Funktionsgenerator davor ja auch schon funktioniert hat, oder ich durch klicken auf den Button "Daten aus Excel lesen" Daten in den Array lade (das funktioniert nun (Zitat 1. und TRUE-FALSE Stellung abgehakt)).
Dabei soll jeweils sich der Plot an die aktuellen Werte anpassen und bei Start das Signal an den Analog Output Channel liefern.
So wie du mir die Datei umgeschrieben hast geht der Output der Rampe vom "Read From Spreadsheet File" nur an den Graphen, oder?
Ich stehe echt auf dem Schlauch

Hilfe!
Ich möchte, dass entweder die Werte manuell in den Array "Zeit [s] | Sollwert [V]" eingeben können, sowie der Funktionsgenerator davor ja auch schon funktioniert hat, oder ich durch klicken auf den Button "Daten aus Excel lesen" Daten in den Array lade (das funktioniert nun (Zitat 1. und TRUE-FALSE Stellung abgehakt)).
Dabei soll jeweils sich der Plot an die aktuellen Werte anpassen und bei Start das Signal an den Analog Output Channel liefern.
So wie du mir die Datei umgeschrieben hast geht der Output der Rampe vom "Read From Spreadsheet File" nur an den Graphen, oder?
Ich stehe echt auf dem Schlauch


Hilfe!

11.09.2014, 13:02
Hallo JojDo,
Schau mal ins Attachment: Ich habe eine Case-Struktur, die darüber entscheidet, welche Daten verwendet werden. Der Rest ("Funktionsgenerator", Graph, etc.) gehört nicht in die Case-Struktur!
Zitat:Ich möchte, dass entweder die Werte manuell in den Array "Zeit [s] | Sollwert [V]" eingeben können, sowie der Funktionsgenerator davor ja auch schon funktioniert hat, oder ich durch klicken auf den Button "Daten aus Excel lesen" Daten in den Array ladeWarum packst du auch alles in die verschiedenen Cases hinein? Wie ich oben schon einmal sagte:
Zitat:Wenn Dinge in beiden Cases einer Case-Struktur gleich ausgeführt werden, dann gehören diese Dinge nicht in die Case-Struktur hinein!
Schau mal ins Attachment: Ich habe eine Case-Struktur, die darüber entscheidet, welche Daten verwendet werden. Der Rest ("Funktionsgenerator", Graph, etc.) gehört nicht in die Case-Struktur!
11.09.2014, 17:35
Vielen Dank... Ich habe es nun vom Aufbau verstanden und selbst noch mal umgebaut 
Du hast mir echt wahnnsinnig geholfen. !!!

Du hast mir echt wahnnsinnig geholfen. !!!