Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich bin ein absoluter Neuling und habe mich bislang mit Suche, Lektüre hier und in den Beispielen über Wasser gehalten.
Jedoch komme ich jetzt nicht mehr weiter.
Folgedes:
Ich habe eine Steuerung für einen Versuch erstellt, die die Parameter aus einem Datenfile einliest und dann an die Geräte weitergibt.
Das tut auch soweit alles.
Jetzt meine Fragen:
- Das ganze ist allmählich sehr groß und massig geworden, wie kann ich es am besten noch mehr "verschlanken" ? Bzw eleganter lösen?
- ich habe das Problem das meine Graphen der aktuellen Werte nicht als eigenständige Linien, sondern nur als gestapelte Punkte auf dem Diagramm erscheinen die mitder Zeit mitlaufen und alle in gleicher Farbe. Oder auch gar nicht anzeigen....
- Wie bekomme ich es hin, das die Graphen der Temperatur komplett über den ganzen "Messzeitraum" angezeigt werden und nicht nur ausschnittsweise?
- Sobald ich meinen While-Schleifen ein Timing geben will, tut gar nichts mehr...
- Ich würde gerne eine "Kontrolle" (Über/Unterschreiten bestimmter Werte)der Temperaturen am "rechten Ende" einführen, diese darf jedoch erst nach einer bestimmten Zeit t aktiv sein, da das während dem "startup" sonst sofort abbricht.
Auch über sonstige Tipps zur Verbesserung des Programms bin ich dankbar.
Meine Güte, das ist ja riesig !
Wie wäre es mit SubVI's um mehr Übersicht zu bekommen ? Einfach Bereich markieren und über Edit->Create SubVI zusammenfassen, passenden Namen vergeben und schon kannst du viele Elemente zu einem SubVI verkleinern. Du hast doch schon in deinem BD Bereiche mit Überschriften versehen (z.B. Modul 1:PWM Signale), diese kannst du zu SubVI's zusammenfassen.
das hatte ich mir auch überlegt aber wenn ich subs erstelle wird es mit den vielen verbindungen ein ziemliches Chaos....
darum dachte ich vll gibt es bessere Möglichkeiten den Code zu vereinfachen....?
' schrieb:das hatte ich mir auch überlegt aber wenn ich subs erstelle wird es mit den vielen verbindungen ein ziemliches Chaos....
darum dachte ich vll gibt es bessere Möglichkeiten den Code zu vereinfachen....?
Code an sich zu vereinfachen ist für einen Aussenstehenden schwer, denn nur du weißt was es mit gewissen Codebereichen auf sich hat und wie es zu funzen hat. Ich weiß nicht, wie lange du an diesem Programm gearbeitet hast, aber um den Code noch zu vereinfachen braucht es sicher nicht nur eine Stunde. Allerdings wiederholen sich Bereiche immer wieder, die könntest du zu SubVI's zusammenfassen.
Wieso hast du nicht von Anfang an logische Bereiche bzw. Funktionsbereiche zusammengefasst ? Einzelne Bereiche kann man viel besser optimieren als ein riesiges BD wie deins.
Wenn du nun etwas in einem BD verändert, kann das Auswirkungen auf den Rest haben. Alleine schon die Verwendung der vielen lokalen Variablen - Wahnsinn.
Noch etwas: Versteh mich nicht falsch, ich bin schliesslich auch noch eine Anfängerin, aber du machst es dir selbst schwer, weil dein ganzes Programm quasi in einem einzigen VI steckt. In Zukunft solltest du deine VIs klein halten, d.h. maximal eine Bildschirmgröße, sonst verliert man den Überblick. Ok ?
mir wurde das Programm als Grundgrüst gegeben und dann musste ich daran weiterwerkeln....leider....
Ich bin nicht wirklich der "guru" was PRogrammieren allgemein angeht, wie man ja sieht.
Darum hatte ich ja auch gefragt wie es möglich wäre manche Bereiche zu vereinfachen, eben auch wegen der vielen Lok. Variablen.
Ich bin für jeden Tip dankbar den ich bekommen kann.
Habe es jetzt zusammengefasst, jedoch ergibt das nicht wirklich eine große "Platzersparnis"....
*verzweifel*
1. Lassen sich vielleicht einige Variablen in ein Array zusammenfassen?
2. Der Index-Array-Aufruf lässt sich erweitern (mit der Maus nach unten aufziehen). So fragst du mehrere nacheinanderfolgende Elemente mit einem BD-Element ab.
Ansonsten, s. erst mal Hinweise von Katsumi.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Dein VI läßt sich mit Arraybildung, for-Schleifen und Indexing auf eine winzigen Bruchteil reduzieren. Ich habe mir mal die Mühe gemacht, das ein einem Code-Ausschnitt zu zeigen:
Dein Code:
Und so sollte es - bei exakt gleicher Funktion - sein:
Anbei die beiden VIs
wow.... das ist ja unglaublich, wenn man das entsprechende Wissen hat.
Vielen Dank für die Mühe. Das hat mich ein ganzes Stück weiter gebracht....vorallem weiss ich jetzt wie ich weitermachen muss.
Und ja es wird immer kleiner.... vielen Dank euch allen!
so hab mal "etwas" gewütet und vie vorgeschlagen vieles in subVIs ausgelagert...
hat das ganze wirklich vieleinfacher und übersichtlicher gemacht.
Nur habe ich folgendes PRoblem wenn ich den Vorschlag von Lucki verwenden will...
Das ich dann meine Steuergrößen nicht mer korrekt ausgegeben bekomme.
Da ich ja ein Datenfile einlese das 12 Spalten hat und beliebeig viele Zeilen, wobei die erste spalte den Zeitindex erhält und die restl. 11 die Werte der entsprechenden Ausgänge stimmen bei Luckis Lösung meine Zuordnungen irgendwie nicht mehr, bzw der Zeitindex wird ignoriert....
Ich schaffe es nicht die Daten aus dem Array so auszulesen, dass ich sie den jeweiligen Steuersignalen im entsprechenden Zeitindex zuordnen kann.