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 

zwei Schleifen oder eine Schleife



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!

20.02.2013, 23:59
Beitrag #1

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



zwei Schleifen oder eine Schleife
Guten Abend!

Ich habe ein Problem, wo ich grade etwas auf dem Schlauch stehe. Ich habe heute mit jemand anders diskutiert, ob man Messwerterfassung und Abspeichern in eine Schleife setzt oder in zwei Schleifen und diese miteinander verbindet, z.B. mittels Queues.

Folgende Randbedingungen:
Die Messwerte kommen per Ethernet aus einem Echtzeitsystem. Das Echtzeitsystem hat einen sehr großen Ringspeicher, der kontinuierlich gefüllt wird.

Nach meinen bisherigen LabView-Erfahrungen würde ich den Prozess des Auslesens und des Abspeicherns in zwei Schleifen realisieren. Die Auslesung aus dem Echtzeitsystem würde ich mit einem Timer versehen, so dass in regelmässigen Abständen - z.B. alle 100ms der Ringspeicher komplett gelert wird, dann bekomme ich ein Array mit Messwerten und dieses Array würde ich an eine zweite Schleife mittels einer Queue senden, um dort den Abspeicherprozess zu erledigen.

Ich sehe folgende Vorteile in dieser Variante:
- die Proesse von Abspeichern und Daten holen sind "dynamisch" voneinander getrennt
- ich kann die Abspeichereinheit später leichter anpassen - z.B. wenn die Datei zu groß wird und eine zweite her muss
- eventuelle Verzögerungen z.B. durch das Schreiben auf die Festplatte würden vermieden werden (jede Schleife hat ihre eigene Dynamik, die Queue puffert nochmal)
- wenn eine Messung viele Stunden dauert, dann muss die Datei nicht ständig geöffnet sein, wenn man beim Auslesen z.B. 10.000 Werte bekommt in einem Datenpaket, dann wird die Datei kurz geöffnet, die Daten aus dem Array gespeichert, dann die Datei wieder geschlossen - ich weis auch garnicht was passiert, wenn eine Datei noch offen ist und der Rechner abstürzt

Folgende Gegenargumente wurden benannt:
- es sind zwei Speicher vorhanden - in dem Computer durch die Queue und in dem Echtzeitsystem (Ringspeicher)
- der Prozess vom Datenholen und vom Abspeichern soll in einem Zug durchgeführt werden mit höchster Priorität, aber immer nur dann, wenn er dran ist. Während der Wartezeit nicht. Durch die Variante mit den zwei Schleifen und die Queue ist dies nicht gewährleistet, sondern die Queue liefert zeitverzögert den Datensatz an die zweite Schleife
- wenn z.B. irgendwelche Verzögerungen auftreten - z.B. wenn das Datenaufdiefestplatteschreiben länger dauert, dann wird dies schon durch den im Echtzeitsystem vorhandenen Ringspeicher ausgeglichen
- das Problem mit dem Öffnen und schließen kann man so umgehen, wenn man den Prozess des Öffnens vor das Datenauslesen setzt, da auch z.B. 8445 Messwerte bekommt und die dann auch in einem Rutsch abspeichert

Ich habe auch später noch in meinem LabView-Buch noch nach einer Lösung gesucht, welche Variante empfohlen wird (habe das Buch Einführung in Labviev 5.0 von Ergen Mertin), aber irgendwie nichts gefunden.

Ich wie gesagt würde von meinem Bauchgefühl heraus die erste Variante mit voneinander entkoppelten Datenholen- und Abspeichern vorziehen, kann aber auch die Argumente meines Chefs verstehen, dass hierbei nochmal eine Queue neu geschaffen wird und ein zweites Puffern der Messwerte nicht nötig ist.

Ich hab mir später auch gedacht, dass meine Variante vielleicht dann sinnvoll ist, wenn die Daten sehr schnell aus einem Messgerät ausgelesen werden müssen, wenn der Ringspeicher in dem Gerät nicht groß genug ist und dann Verzögerungen durch Speicherprozesse z.B. zum Überlauf beim Datenerfassungsgerät die Folge sein könnten.

Ich würde mich sehr freuen, wenn mir ein paar Spezialisten von Euch dazu ein paar Argumente geben könnten, welche Variante denn nun geeigneter wäre, weil es zwei unterschiedliche Programmieransätze sind und wenn ich einen andere Variante nehme als die von meinem Chef, dann muss ich das auch gut begründen können, was ich aber zur Zeit nicht kann - ich würde es nur aus dem Bauchgefühl heraus so machen wie von mir beschrieben. Aber irgendwie erscheinen mir auch die anderen Argumente schlüssig.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
zwei Schleifen oder eine Schleife - Hasenfuss - 20.02.2013 23:59

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Zeitdauer für eine Schleife bei Nutzung Ain/Aout des myDAQ - 40 ms ? BodenseeBike 5 4.792 29.11.2016 09:18
Letzter Beitrag: GerdW
  Variablen zwischen zwei Schleifen übergeben und an bestimmter Stelle Ausführen FelixH 4 7.234 01.09.2012 16:43
Letzter Beitrag: FelixH
  Aus zwei Kurven eine machen LabView Neuling2010 11 9.612 11.03.2011 09:57
Letzter Beitrag: LabView Neuling2010
  Zweite Schleife mit Bedingungen der ersten Schleife abbrechen roehn 1 4.276 11.01.2008 12:10
Letzter Beitrag: Lucki

Gehe zu: