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 

Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen



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!

26.09.2016, 10:11
Beitrag #1

spacz Offline
LVF-Grünschnabel
*


Beiträge: 35
Registriert seit: Apr 2012

2016
2011
DE

10965
Deutschland
Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
Hallo,
bei einem Teststand habe ich verschiedene Geräte mit unterschiedlichen Auslesezeiten anzusteuern. Das ganze ist noch nicht programmiert, daher kann ich an dieser Stelle keine Beispiele liefern, aber mir geht es zunächst auch nur ein Gedankenexperiment um Probleme vorzubeugen.
Prinzipiell arbeite ich mit eine Producer Consumer Struktur mit 5 parallelen Schleifen (Eventstruktur, Abarbeitung der Events, Datenerfassung, Datenanzeige, Datensicherung).

Im Teststand sind unter anderem ein Keithley 2701 und ein ifm periodisch auszulesen. Das soll innerhalb der Datenerfassungsschleife parallel mit allen Messgeräten geschehen. Aufgrund der internen Schaltvorgänge benötigt der Keithley bekanntlicher weise jedoch seine Zeit zum Messen.
Der ifm controller soll deutlich schneller ausgelesen werden, als der Keithley. Jedoch erwarte ich, dass die minimale Iterationszeit der Datenerfassungschleife der Messzeit des "schwächsten Gliedes" entsprechen wird und damit den ifm Controller ausbremst.

Eine Möglichkeit die ich sehe, ist den Keithley in eine eigene, weitere parallele Schleife auszulagern, jedoch möchte ich das nur ungern tun. Ist es möglich die Datenerfassung des Keithleys innerhalb der Datenerfassungsschleife anzustoßen, ohne sie durch den langen Ausleseprozess auszubremsen?

Beste Grüße und vielen Dank
Ronny
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.09.2016, 10:31
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
Hallo Ronny,

Zitat:Eine Möglichkeit die ich sehe, ist den Keithley in eine eigene, weitere parallele Schleife auszulagern, jedoch möchte ich das nur ungern tun.
Warum? Das wäre die einfachste und eleganteste Lösung!

Zitat:Ist es möglich die Datenerfassung des Keithleys innerhalb der Datenerfassungsschleife anzustoßen, ohne sie durch den langen Ausleseprozess auszubremsen?
Wenn du die Datenerfassungsschleife nicht ausbremsen willst, musst du das Keithley parallel dazu abfragen.
Ansonsten gilt THINK DATAFLOW: eine Struktur (=deine Schleife) wird dann abgearbeitet, wenn alle internen Nodes (=VISARead des Keithley) abgearbeitet wurden…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.09.2016, 10:38
Beitrag #3

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
(26.09.2016 10:11 )spacz schrieb:  Ist es möglich die Datenerfassung des Keithleys innerhalb der Datenerfassungsschleife anzustoßen, ohne sie durch den langen Ausleseprozess auszubremsen?
Möglich sicherlich, aber das wird IMHO unnnötig kompliziert. Entweder ist die Keitley-Abfrage ein unabhängiges VI, dann kannst du es jederzeit anstoßen. Das läuft aber auf dasselbe hinaus wie eine eigene Schleife dafür. Oder du muss VISA-Write und VISA-Read voneinander trennen, VISA-Read mit einem sehr geringen Timeout ausstatten und am Ende nur dann auswerten, wenn du eine komplette Antwort erhalten hast. Wahrscheinlich darfst du für sowas schon vorhandene Keithley Treiber VIs komplett umprogrammieren. Hast du dazu Lust?

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
26.09.2016, 10:40
Beitrag #4

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
Du kannst ein VI über einen Methodenknoten der Klasse VI aufrufen und ausführen. An der Stelle kann man angeben, ob man die Ausführung des aufgerufenen VIs abwarten soll oder nicht!

Aber was genau Spricht gegen eine weitere Schleife? Ich verwende oft eine Ähnliche Struktur wie du sie beschreibst, allerdings ohne die Datenerfassungsschleife. Dafür gibts für jedes Gerät ein VI mit innerer Statemachine. Die States werden über ne FGV verteilt und gelten für alle Geräte gleichermaßen. Da gibts dann einen State "Datenerfassung". Ist der aktiv, kann jedes Gerät selbst bestimmen, wie schnell es arbeiten möchte.

States:

Warten -> prüfen ob ein neuer Sate da ist, ansonsten erneut warten
Datenerfassung -> einen Wert lesen, anschließend aktuellen State auslesen
Exit -> selbsterklärend

So ganz grob! Bei mir gibts meißt noch ein INIT (Vor der Datenerfassung) oder FINALIZE (nach der Datenerfassung).

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.09.2016, 10:43
Beitrag #5

spacz Offline
LVF-Grünschnabel
*


Beiträge: 35
Registriert seit: Apr 2012

2016
2011
DE

10965
Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
Hallo Gerd,
dank dir für deine schnelle Antwort.
Ich glaube mir missfällt der Gedanke von meiner geplanten Struktur abweichen zu müssen und dem Keithley diese "Extrawurst" geben zu müssen. Wenn ich es auf die Spitze treiben würde, hätte ich am Ende dann bei all den Geräten eine menge parallel laufender Erfassungsschleifen + die vier weiteren Schleifen...

Bei weiteren Testspielereien mit dem Geräte habe ich gerade festgestellt, dass die schleife nicht ausgebremst wird, sobald ich von der direkten Messung zur gebufferten Messung wechsle. Ich hoffe nun damit das Problem umgehen zu können. Box

Wenn man nun beispielsweise 10 verschiedene Geräte auszulesen hat, kommt man für eine schnelle Datenaquise also um 10 parallele Schleifen nicht herum?

Beste Grüße
Ronny
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.09.2016, 10:55 (Dieser Beitrag wurde zuletzt bearbeitet: 26.09.2016 10:55 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
Hallo Ronny,

Zitat:Wenn man nun beispielsweise 10 verschiedene Geräte auszulesen hat, kommt man für eine schnelle Datenaquise also um 10 parallele Schleifen nicht herum?
Wenn ich bei mir am Prüfstand was messen will, habe ich folgende Geräte:
- DAQmx, bis 1kHz
- Waage an serieller Schnittstelle, ca. 2Hz
- CAN-Bus, meist 10Hz
- CANopen, on demand mit 1Hz…10Hz
- UDP-Botschaften, ~1Hz
- TCP/IP, ~2Hz

Glaubst du wirklich, ich mache das alles in nur einer Schleife?
Jede Schnittstelle/jedes Gerät in seiner eigenen Schleife!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.09.2016, 11:49 (Dieser Beitrag wurde zuletzt bearbeitet: 26.09.2016 11:50 von IchSelbst.)
Beitrag #7

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
(26.09.2016 10:43 )spacz schrieb:  Ich glaube mir missfällt der Gedanke von meiner geplanten Struktur abweichen zu müssen und dem Keithley diese "Extrawurst" geben zu müssen. Wenn ich es auf die Spitze treiben würde, hätte ich am Ende dann bei all den Geräten eine menge parallel laufender Erfassungsschleifen + die vier weiteren Schleifen...
Wo liegt das Problem?

Das Argument heißt nicht "eine menge parallel laufender Erfassungsschleifen", sondern:
  • Lesbarkeit des Sourcecodes
  • Modularer Aufbau
  • Datenkapselung
  • Wiederverwendungsfähigkeit
  • Debugfähigkeit
  • usw.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.09.2016, 12:49
Beitrag #8

spacz Offline
LVF-Grünschnabel
*


Beiträge: 35
Registriert seit: Apr 2012

2016
2011
DE

10965
Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
Alles klar! Werde eure Ratschläge beherzigen und eigene Schleifen für die Geräte implementieren!

Dank euch
Ronny
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 13:42
Beitrag #9

LichterLichtus Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Sep 2016

2015
2014
DE


Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
Hallo zusammen,

die Argumente für mehrere Schleifen sind schlüssig.

Obwohl ich das Thema nicht gestartet habe, habe ich eine Frage zur konkreten Ausführung des Aufbaus mit mehreren Schleifen:

Angenommen ich nutze das Framework "continuous measurement and logging" .
Nun füge ich eine oder mehrere Data Acquisition Schleifen hinzu.
Die erfassten Daten aus allen Data Acquisition Schleifen sollen nun der Logging-Schleife und der Anzeigeschleife zur Verfügung gestellt werden.

Wie macht man das am Besten?

Sicherlich über Queues. Aber wie schaffe ich es die "schnellen" Daten (Analog in, ect) mit den "langsamen Daten" (Modbus) sinnvoll in der Logging Schleife zu verbinden?

Und wie verhindere ich, dass die Anzeigenfreuenz gleich der langsamsten Datenerfassungsfrequenz ist?


Gruß
LichterLichtus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.09.2016, 14:53
Beitrag #10

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Datenaufnahme von Geräten mit unterschiedlicher Auslesezeit - Fieses Ausbremsen
Code:
Die erfassten Daten aus allen Data Acquisition Schleifen sollen nun der Logging-Schleife und der Anzeigeschleife zur Verfügung gestellt werden.
Sende aus jeder Erfassungsschleife eine Nachricht auf die Logging und Anzeige Schleife mit den jeweiligen Ergebnissen.
Gruß
Freddy

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Auslesen von M-Bus Geräten über Pegelwandler newlabviewer1 1 7.340 13.01.2011 12:59
Letzter Beitrag: newlabviewer1
  Kommunikation von externen Geräten über TCP/IP vogster 10 24.285 13.01.2008 22:24
Letzter Beitrag: cb

Gehe zu: