Schönen Tag,
In meinem beiliegenden Programm gebe ich Druck und Zeiten und andere atm nicht relevante Dinge in eine Tabelle ein diese Tabelle wird dann "abgearbeitet" und erzeugt mir ein Ausgangssignal. (im beileigenden Prog nur Simuliert)
Diese Tabelle würde ich gerne einlesen können (csv file) danach falls nötig noch etwas daran ändern und dann erst abarbeiten.
Und an den letzen beiden Punkten scheitert es einlesen funktioniert aber statt das eingelesen File abzuarbeiten wir die Vorgabe schleife hochgezählt ohne deren Inhalt durchzuführen.
hoffe jemand kann mich in die richtige Richtung stossen.
mfg kirsc
Ps. hoffe das Prog ist nicht zuuu unübersichtlich
(18.05.2011 14:31 )Kirsc schrieb: [ -> ]Diese Tabelle würde ich gerne einlesen können (csv file)...
...einlesen funktioniert ...
Eine Einlesen ist nicht zu erkennen, das Programm greift lediglich auf die Tabellendaten des Controls zurück. Oder bin ich blind?
(18.05.2011 14:31 )Kirsc schrieb: [ -> ]Und an den letzen beiden Punkten scheitert es einlesen funktioniert aber statt das eingelesen File abzuarbeiten wir die Vorgabe schleife hochgezählt ohne deren Inhalt durchzuführen.
Wenn die 'Vorgabe'-Schleife ausgeführt wird, werden auch die Daten der Tabelle hergenommen und die danachfolgende Auswertung findet auch statt. Was verstehtst du unter 'deren Inhalt druchzuführen' genau?
Erste Herangehensweiße, wenn man untersuchen will, wenn ein Programm das macht, was es macht, aber nicht das, was man denkt, dass es dies macht: debuggen und zwar mit
- Hightlightmodus (Lampe)
- Sonden
- Haltepunkten und Durchsteppen
Hier noch ein hilfreicher Link dazu, falls noch nicht bekannt:
Debugging Tools in NI LabVIEW
http://www.ni.com/gettingstarted/labview...am Toolbar
Beste Grüße,
NWO
(19.05.2011 10:32 )NWOmason schrieb: [ -> ]Eine Einlesen ist nicht zu erkennen, das Programm greift lediglich auf die Tabellendaten des Controls zurück. Oder bin ich blind?
Bist nicht Blind hatte die Einlese funktion rausgenommen damit es eventuell verständlich ist was dieses chaos eigentlich machen soll.
Wenn ich die genannte Tabelle durch eine Einlese funktion ersetze wird sie zwar eingelesen ( Tabelle als Indikator ) aber das Programm zählt die "Vorgabe" also die For-Schleife hoch und ich komm nicht dahinter wie ich das verhindere.
Sprich daten einlesen und dann erst abarbeiten.
Hab es mit wait sequenz und sonstigen Schleifen probiert aber es kommt immer der gleiche Käse raus und ich tipp mal ich seh denn Wald vor lauter Bäumen nicht mehr..
(19.05.2011 10:55 )Kirsc schrieb: [ -> ]Sprich daten einlesen und dann erst abarbeiten.
Ah, okay. Jetzt wird es klarer. Du möchtest zuerst die Daten einlesen, und dann die Schleife erst starten.
Im Prinzip musst du halt sicherstellen, dass die Schleife erst startet, wenn die richtigen Werte in der Tabelle drinstehen. Die ganze Berechung startet ja erst, wenn die Bedingung des Cases erfüllt ist (Die beiden Simlampen müssten ein sein und der Startknopf gedrückt, wenn ich das richtig herausgelesen habe). Alternativ noch einen Button einfügen, der bestätigt, dass die Daten der Tabelle gültig sind und nun die Auswertung beginnen kann.
(19.05.2011 10:55 )Kirsc schrieb: [ -> ]... aber es kommt immer der gleiche Käse raus und ich tipp mal ich seh denn Wald vor lauter Bäumen nicht mehr..
Wohl eher, weil dein VI mittlerweile an Übersichtlichkeit etwas gelitten hat. Räume doch erstmal das BD auf. Und lagere sinnvolle Operationen in Sub-VIs aus (z.B. die Casestrukturen mit den Vergleichen, usw.).
Ich hoffe, das hilft dir erstmal weiter.
Beste Grüße,
NWO
Ich sag mal Thx einlesen funktioniert jetzt (csv file sollte halt auch das richtige Format haben sprich nicht eine spalte zuwenig)
bleibt noch die frage wie ich die Daten nach dem einlesen nochmal bearbeiten kann.
atm hab ich die wahl entweder händisch eingebene Tabelle abarbeiten oder eben das csv file.
sprich wie kann ich die werte aus dem file in eine Control Tabelle einlesen oder geht das nicht so wie ich es mir vorstelle?
Was das aufräumen angeht in der aktuell laufenden Version ist es das nur in der ist bereits Bus eingebunden und somit nur mehr mit entsprechender Hardware lauffähig daher die ältere Version des Programms.
Hallo
Einfach eine Lokale Variable von der Tabelle erstellen und die Eingelesenen Daten da rein statt direkt weiter verarbeiten
Dann kannst du die bearbeiten und dann mit Knopfdruck den Rest starten.
T
Nur lässt sich von der Tabelle keine lokale Variable erstellen :-(
(20.05.2011 06:24 )Kirsc schrieb: [ -> ]Nur lässt sich von der Tabelle keine lokale Variable erstellen :-(
Weil deine Tabelle keinen Namen hat
[
attachment=33862]
Beste Grüße,
NWO
ok nun is offizell ich mag labview nicht
Danke nochmal
(20.05.2011 06:39 )Kirsc schrieb: [ -> ]ok nun is offizell ich mag labview nicht
Warum das denn? Versuch doch mal in einer anderen Programmiersprache (C/C++, JAVA, etc.) eine Variable zu deklarieren ohne Namen, da wird dich der Compiler/Entwicklungsumgebung wüst beschimpfen. LabVIEW hingegen führt dein Programm trotzdem aus
Wobei man natürlich _immer_ Namen für Elemente vergeben sollte, allein schon der Struktur und des Lesbarkeitswillen.
Beste Grüße,
NWO