Hallo Gerd,
erstmal vielen Dank für deine schnelle Antwort.
Ich hab versucht die Punkte die du bemängelt hast umzusetzen. Nur sind mir ein paar dinge nicht klar.
Bei dem verändern des Programmes ist keinerlei Funktionalität verloren gegangen nur die größe ist von 1.05MB auf ca 300KB geschrumpft was ich ziemlich krass finde und ich auch nicht gedacht hätte.
1.Das mit den Terminals und den lokalen variablen hab ich jetzt mit Refenzen und Typumwandlung umgesetzt da kann man bestimmt auch noch was ändern oder ?
2./3. Das mit den Pfaden und der Stringformatierung ist mir nicht ganz klar wie Du das genau meinst. Um Ehrlich zu sein.
4./5. Das mit den Express VI's war mir bewusst nur ist mir keine andere aus meiner Sicht sinnvolle Lösung eingefallen. Aber in dem neuen Programm habe ich die Vi's ersetzt. Das mit den gleitenden Mittelwerten hat sich auch erledigt da wir Hardwarefilter in unseren Aufbau einbauen werden.
6. Das mit dem Build array ist mir nicht ganz klar was dabei der vorteil ist. Denn ob ich die Strings zu einem String zusammenführe oder zu einem Array mach aus meinem Wissenstand keinen unterschied. Aus diesem Grund bitte um Aufklärung.
7. Änderungen so gut es ging durchgeführt
8. Ich habe mich für eine sofortige Speicherung entschieden wg der ausfallsicherheit. Denn sollte der Rechner wie am Wochenende geschehen einfach abstürzen können jede menge Messdaten verloren gehen. Das ist zugegeben im "Idle" Modus kein Problem, aber wenn unser Heliumverflüssiger läuft sind die Messdaten schon sehr wichtig.
Ich habe das Programm nun noch mal mit den durchgeführten veränderungen laufen gelassen und habe festgestellt das ist ich ein massives Problem bei der auslese der Täglichen Messdatei habe. Wenn ich das rausnehme braucht das Programm so gut wie keine CPU-Zeit mehr.
Könntest du mir vielleicht noch einen kleinen Denkanstoß geben wie ich das mit der auslese umsetzte und das auch automatisch täglich die neue Messdatei öffnet?
Ich danke Dir schon und nochmal.
Grüße Jürgen
(14.02.2012 09:25 )GerdW schrieb: Hallo Jürgen,
erstmal bitte das VI aufräumen und die ganzen RubeGoldbergs entfernen:
- man muss nicht gleichzeitig ins Terminal und in eine lokale Variable eines Indicators schreiben
- es gibt Funktionen zum Zusammensetzen von Pfaden, man muss das nicht mit Strings erledigen
- es gibt effizientere Stringformatierungsfunktionen, man muss keine ConcatStrings mit +20 Eingängen verwenden (bzw. kann selbst mal ein >paar Leerzeichen schreiben, statt extra Konstanten zu verdrahten)
Dann:
Wenn ich ein VI sehe, dass schon über ein 1MB groß ist, weiß ich schon vorher, dass da mit sehr großer Wahrscheinlichkeit ExpressVIs drin >sind. ExpressVIs sind zwar "nett", aber nicht immer für lang laufende VIs geeignet! Vor allen Dingen, wie du sie einsetzt:
- zum Aufsplitten von "Signalen", die als Array of Waveforms vorliegen, kann man auch ein einfaches IndexArray verwenden
- zum Berechnen eines gleitenden Mittelwerts gibt es auch Funktionen in der Signalverarbeitungspalette (hier könnte sich ein Speichergrab verstecken, dass du auch gleich noch mehrfach aufrufst/aufmachst)
- zum Zusammensetzen von Plots schaut man in die Kontexthilfe und verwendet BuildArray
Mach bitte alle diese Änderungen und teste dein VI dann noch mal.
Außerdem überlege dir, ob du wirklich dauernd Dateien schreiben und lesen willst, oder ob es nicht vielleicht doch effizienter ist, ein >paar Daten im RAM zu halten...