| 
	
		
			| 
					26.09.2016, 10:11  
				  Beitrag #1 |  
			| 
					
                                                 | spacz
   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
 
				
				 |  
    |  
			|  |  
	
		
			| 
					26.09.2016, 10:31  
				  Beitrag #2 |  
			| 
					
                                                 |   GerdW
   ______________
 
   
 Beiträge: 17.529
 Registriert seit: May 2009
 
 LV2019 (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…
				
 
				
				 |  |  
			|  |  
	
		
			| 
					26.09.2016, 10:38  
				  Beitrag #3 |  
			| 
					
                                                 |   jg
   CLA & CLED
 
   
 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 . 
				
				 |  
    |  
			|  |  
	
		
			| 
					26.09.2016, 10:40  
				  Beitrag #4 |  
			| 
					
                                                 |   TSC
   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 ) 
				
				 |  
    |  
			|  |  
	
		
			| 
					26.09.2016, 10:43  
				  Beitrag #5 |  
			| 
					
                                                 | spacz
   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.    
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
				
				
				 |  |  
			|  |  
	
		
			| 
					26.09.2016, 10:55  (Dieser Beitrag wurde zuletzt bearbeitet: 26.09.2016 10:55  von GerdW.) Beitrag #6 |  
			| 
					
                                                 |   GerdW
   ______________
 
   
 Beiträge: 17.529
 Registriert seit: May 2009
 
 LV2019 (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!
				
 
				
				 |  |  
			|  |  
	
		
			| 
					26.09.2016, 11:49  (Dieser Beitrag wurde zuletzt bearbeitet: 26.09.2016 11:50  von IchSelbst.) Beitrag #7 |  
			|  |  
			|  |  
	
		
			| 
					26.09.2016, 12:49  
				  Beitrag #8 |  
			| 
					
                                                 | spacz
   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
 
				
				 |  |  
			|  |  
	
		
			| 
					27.09.2016, 13:42  
				  Beitrag #9 |  
			| 
					
                                                 | LichterLichtus
   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
 
				
				 |  |  
			|  |  
	
		
			| 
					27.09.2016, 14:53  
				 |  
			| 
					
                                                 |   Freddy
   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
				 
 
				
				 |  |  
			|  |  |  |