INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Nachträgliche Optimierung von funktionierendem Prgramm



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!

15.03.2017, 14:25
Beitrag #1

Tyll Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2015

15
2015
EN



Nachträgliche Optimierung von funktionierendem Prgramm
Hallo libe Labview Freunde,

ich habe mir zwecks meiner Doktorarbeit ein Prozessleitsystem für einen Bioreaktor mit Labview gebastelt.
Klassischerweise habe ich eigentlich kaum Zeit mich mit der Programmierung zu beschäftigen, da mein Thema sich auf andere Dinge bezieht...

Dementsprechend sieht auch mein Labview Programm aus, dass von Zeit zu Zeit mit Steigenden speziellen Anforderungen wuchs.
Es funktioniert wie es soll, nur nach dem es jetzt immer komplexer wurde und ich es ohne "Labview Fachwissen"
immer weiter ergänzte wurde es immer Langsamer und hängte sich teilweise auf.

Grundsätzlich werden in dem Programm externe Daten (Digital und Analog) über ein NIUSB-6001 und seriellen Ports aufgenommen, verarbeitet,
in Graphen angezeigt und über das write to measurement file in Excel gespeichert

Das Programmm befindet in einer großen while Schleife die sich alle 100 ms wiederholen soll. Ich sehe allerdings, dass er dies nur alle 2 sec oder so schafft (Sekundenanzeige steigt nur alle 2 sec)
Das größte Problem habe ich mit der Speicherung. Hier speichere ich alle Daten jede Minute in Excel. Nach ein paar Stunden habe ich allerdings einen Delay drin der sich immer fortsetzt.
(z.B 1000 mal gespeichert, es stehen aber 1010 Minuten in der Zeitspalte).
Ich habe das Gefühl, dass mein Rechner mit dem riesigen Loop nicht klar kommt.

Gibt es eine generelle Möglichkeit große Programme stabilier und schneller zu gestalten oder gibt es bei mir schon auf dem ersten Blick "Bremsen" im Programm?

Vielen Dank

Tyll


Angehängte Datei(en) Thumbnail(s)
   

15.0 .vi  einzelner Reaktor_Prozessleitsystem mit Waage und Redox.vi (Größe: 839,92 KB / Downloads: 178)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.03.2017, 14:49 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2017 14:51 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Nachträgliche Optimierung von funktionierendem Prgramm
Hallo Tyll,

Zitat:Gibt es eine generelle Möglichkeit große Programme stabilier und schneller zu gestalten
Ja: Man überlegt sich vor dem Programmieren einen vernünftigen Aufbau… Wink


Zitat:gibt es bei mir schon auf dem ersten Blick "Bremsen" im Programm?
Bei einem Blick auf den Screenshot fallen mir Unmengen an ExpressVIs auf: die sind nicht gerade auf Geschwindigkeit hin optimiert… (Wofür benötigt man sooo viele ElapsedTime-Funktionen?)
Und die vielen Knicke in den Drähten lassen die Daten auch langsamer im Programm fließen! Big Grin

Zitat:Es funktioniert wie es soll, … wurde es immer Langsamer und hängte sich teilweise auf.
Solche Zusammenfassungen sind immer wieder hübsch zu lesen… Big Grin

Im Ernst:
LabVIEW kommt auch mit Beispielen, wie man Programme erstellt, die bestimmte Aufgaben effizient erledigen können.
Einfach mal im Dateimenü auf "Neu…" klicken und schauen, welche Vorschläge es für neue Projekte gibt!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.03.2017, 15:30 (Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2017 20:09 von jg.)
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Nachträgliche Optimierung von funktionierendem Prgramm
Hauptübel auf den ersten Blick:

Deine vielen Express-XY-Graphen, in denen du ALLE erfassten Daten sammelst. Da läuft dir wahrscheinlich recht schnell der Speicherverbrauch hoch - ganz zu schweigen davon, dass ein XY-Graph auch immer langsamer wird, je mehr Daten er zu zeichnen hat.

Zweite "Bremse": Du hast da 2 VISA-Read, die bei einer Baud-Rate von 1200 auf (bis zu) 14 Zeichen warten. Grob überschlagen dauert alleine das Übertragen von 14 Zeichen bei 1200 Baud mehr als 100 EDIT: Zwecks 2 Stop-Bits > 125 ms. Und wehe, da kommt nichts auf der seriellen Schnittstelle, dann wartest du den eingestellten Time-Out, und das sind 10 Sekunden. EDIT: Je nach Einstellungen eines Schalters liest du sogar 2x von derselben Schnittstelle, das wären dann > 250 ms.

Zum Rest der Tapete sag ich jetzt lieber nichts...

Gruß, 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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2017, 09:49 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2017 09:52 von Tyll.)
Beitrag #4

Tyll Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2015

15
2015
EN



RE: Nachträgliche Optimierung von funktionierendem Prgramm
Danke für die erste Einschätzung... Ich weiß das ist kein Meisterwerk nur leider habe ich nicht viel Zeit mich mit Labview im Detail zu beschäftgen (obwohl mir das echt Spaß bringt Angel_not ...)

Ich dachte mir schon, dass die Expess VI nicht die optimalsten Lösungen sind aber gibt es eine Möglichkeit die Daten ohne,
dass sie den Speicher belasten continuierlich aufzutragen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2017, 10:14
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Nachträgliche Optimierung von funktionierendem Prgramm
Hallo Tyll,

Zitat:gibt es eine Möglichkeit die Daten ohne, dass sie den Speicher belasten continuierlich aufzutragen?
- verwende Charts statt Graphen. Die haben eine eingebaute Historie, die du auf eine maximale Länge konfigurieren kannst
- sammle deine Plotdaten in eigenen Schieberegistern und achte dabei selbst auf die maximale Datenmenge

Wenn man dann noch die Anzeige der Daten in eine parallele Schleife packt (und damit ein Producer-Consumer-Schema umsetzt), dann verhindert man auch, dass die Anzeige den DAQ-Teil deines Programms blockiert/verlangsamt…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2017, 12:05
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Nachträgliche Optimierung von funktionierendem Prgramm
(16.03.2017 09:49 )Tyll schrieb:  gibt es eine Möglichkeit die Daten ohne, dass sie den Speicher belasten continuierlich aufzutragen?
Definiere kontinuierlich: Wenn du damit meinst, dass du alle erfassten Daten angezeigt haben willst, dann NEIN. (Logisch, oder?)
Ansonsten siehe Gerds Hinweis.

Gruß, 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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.03.2017, 12:45
Beitrag #7

Tyll Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2015

15
2015
EN



RE: Nachträgliche Optimierung von funktionierendem Prgramm
naja ich dachte daran, dass nur der graphverlauf angezeigt bleibt, wird ohne dass ein riesen datensatz dahinter steht, da ich diesen ja sowieso minütlich speichere.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2017, 13:00
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Nachträgliche Optimierung von funktionierendem Prgramm
Hallo Tyll,

Zitat:naja ich dachte daran, dass nur der graphverlauf angezeigt bleibt, wird ohne dass ein riesen datensatz dahinter steht, da ich diesen ja sowieso minütlich speichere.
Ein Graph zeigt genau das an, was er an Plotdaten bekommt.
Ergo: ohne "riesen Datensatz" kein "großer Plot"!

Möglicher Workaround: Ein Bild des Graphen machen und dieses als Hintergrundbild des Graphen einblenden. Dann kann der "riesen Datensatz" gelöscht werden. Ob das jetzt sinnvoll/einfach ist, sei mal dahingestellt…
(Das ist nichts, was sich mit einem ExpressVI erledigen ließe. Big Grin)

Außerdem: Ist deine Tastatur kaputt? Hol dir mal eine mit funktionierender Hochstelltaste…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2017, 13:36
Beitrag #9

Tyll Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2015

15
2015
EN



RE: Nachträgliche Optimierung von funktionierendem Prgramm
Demenstprechend könnte ich dann ja auch den Graph z.B. nur alle Minute mit einer Case Struktur ausführen und so weniger Daten plotten oder?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.03.2017, 13:43 (Dieser Beitrag wurde zuletzt bearbeitet: 16.03.2017 15:39 von jg.)
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Nachträgliche Optimierung von funktionierendem Prgramm
(16.03.2017 13:36 )Tyll schrieb:  Demenstprechend könnte ich dann ja auch den Graph z.B. nur alle Minute mit einer Case Struktur ausführen und so weniger Daten plotten oder?
Könntest du. Aber nach 24 h hast du dann auch schon 86400 Datenpunkte (EDIT, oh, das waren Sekunden, in Minuten natürlich) 1440 Datenpunkte pro Plot in den Graphen. Wie lange läuft das Programm denn am Stück?

Vergiss aber auch nicht die Bremse VISA-Read. Hast du schon einmal ausgewertet, wie lange diese beiden Reads wirklich auf die Daten warten?

Das Datenspeichern würde ich an deiner Stelle auch selber erledigen, und zwar im csv-Format - nicht durch ein Express-VI im XLSX-Format.

Gruß, 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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Eigenversuch einer ComboBox - Optimierung und Kritik gesucht TpunktN 2 2.454 30.05.2023 07:56
Letzter Beitrag: TpunktN
  Queued State Machine: IDLE Optimierung ALuehmann 3 4.930 14.02.2017 14:00
Letzter Beitrag: HVo
  Abfahren einer vorgegebenen Druckrampe - Benötige Hilfe zur Optimierung theflex 4 6.516 20.12.2011 17:55
Letzter Beitrag: theflex
  Optimierung der Rechenleistung eines SubVi DuffiDuck 15 12.294 30.09.2011 09:05
Letzter Beitrag: DuffiDuck
  Speicher-/Performance-Optimierung durch Schieberegister? Matze 13 11.653 20.09.2010 05:39
Letzter Beitrag: Matze
  Zielwertsuche / Optimierung stsc 8 7.713 12.06.2008 11:30
Letzter Beitrag: stsc

Gehe zu: