| 
				 
					01.03.2011, 23:09  
				 
				
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                             
                       
                            tetef 
 
 
                            
                                LVF-Gelegenheitsschreiber 
                                   
                                
  
                            
                            
	Beiträge: 76 
	Registriert seit: Jun 2009
	
 
 
2010 
2008 
de_en 
 
76133 
Deutschland 
			 | 
                              
RE: Bei 2 parallelen Schleifen Daten übergeben 
				 
					Hi IchSelbst, 
 
danke fuer Deine Antwort. 
 
Ich mache nur sorgen, dass ein paar Daten verloren gehen.  
Werden die Daten, bei der Uebertragung durch Queues, langsam wandern, order nicht?? 
Gibt es etwas, worauf man achten muss, wenn man mit Queues arbeitet?  
 
 
gruss
				 
				
				
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					01.03.2011, 23:21  
				 
				
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            IchSelbst 
 
 
                            
                                LVF-Guru 
                                      
                                
  
                            
                            
	Beiträge: 3.708 
	Registriert seit: Feb 2005
	
 
 
11, 14, 15, 17, 18 
- 
DE 
 
97437 
Deutschland 
			 | 
                              
RE: Bei 2 parallelen Schleifen Daten übergeben 
				
					 (01.03.2011 23:09 )tetef schrieb:  Ich mache nur sorgen, dass ein paar Daten verloren gehen. 
Prinzipiell können keine Daten verloren gehen.
 Zitat:Werden die Daten, bei der Uebertragung durch Queues, langsam wandern, order nicht?? 
Was meinst du denn mit "langsam wandern"?
 Zitat:Gibt es etwas, worauf man achten muss, wenn man mit Queues arbeitet? 
Eines ist ganz wichtig: Die Daten müssen aus einer Queue schneller herausgelesen werden können, als sie hinein geschrieben werden. Durch eine entsprechende Datenstruktur und angemessene Algorithmen kann man das immer erreichen.
				  
				
				
 
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).  
 
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					02.03.2011, 09:24  
				 
				
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                             
                       
                            tetef 
 
 
                            
                                LVF-Gelegenheitsschreiber 
                                   
                                
  
                            
                            
	Beiträge: 76 
	Registriert seit: Jun 2009
	
 
 
2010 
2008 
de_en 
 
76133 
Deutschland 
			 | 
                              
RE: Bei 2 parallelen Schleifen Daten übergeben 
				
					Hi, 
aus dem Grund, dass einige Schleifen unterschiedliche VIs beinhalten, wird die Bearbeitungseit unterschiedlich sein. D.h. bis eine Schleife die Daten bearbeitet und in die Bus(Queue) zur Verfuegung steht, sieht immer kritisch. Eine Schleifen braucht laenger, die andere kurzer. Bei Queues, wenn die Daten nicht rechtzeitig geholt sind, dann werden sie verloren gehen?
 Zitat:Was meinst du denn mit "langsam wandern"? 
Das war von mir falsch geschaetzt. Sorry
 
Gruss
				  
				
				
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					02.03.2011, 11:22  
				 
				
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            IchSelbst 
 
 
                            
                                LVF-Guru 
                                      
                                
  
                            
                            
	Beiträge: 3.708 
	Registriert seit: Feb 2005
	
 
 
11, 14, 15, 17, 18 
- 
DE 
 
97437 
Deutschland 
			 | 
                              
RE: Bei 2 parallelen Schleifen Daten übergeben 
				
					 (02.03.2011 09:24 )tetef schrieb:  wird die Bearbeitungseit unterschiedlich sein. D.h. bis eine Schleife die Daten bearbeitet und in die Bus(Queue) zur Verfuegung steht, sieht immer kritisch. Eine Schleifen braucht laenger, die andere kurzer. 
So ist es. 
Und da man um diesen Sachverhalt weis, kann man einen entsprechenden Algorithmus programmieren.
 Zitat:Bei Queues, wenn die Daten nicht rechtzeitig geholt sind, dann werden sie verloren gehen? 
Nein. Daten werden nicht verloren gehen. Dafür sorgt ja der Algorithmus.
 
Queues kann man nämlich hervorragend dafür einsetzen, um Laufzeitunterschiede in den einzelnen Modulen auszugleichen!
 
Eine Queue kann nicht nur einen einzigen Datensatz enthalten, sondern theoretisch beliebig viele. Es gibt nur ein einziges Kriterium: Über einen "großen" Zeitraum gesehen, muss das Auslesen schneller gehen als das Hineinschreiben.
 
Ein Beispiel: 
Eine Queue kann 1000 Datensätze beinhalten. Die Erzeuger(Producer)-While-Schleife dauert 10ms. D.h. Daten werden mit 10ms in die Queue geschrieben. Pro Sekunde sind das also 100 Datensätze. Die Verbraucher(Consumer)-While-Schleife dauert 1 Sekunde. Diese Sekunde setzt sich aber aus mehreren Programmteilen zusammen: Queue auslesen, Daten verarbeiten, Daten anzeigen(Graph) oder speichern (Excel etc) oder sonst. Der Großteil der Sekunde, nämlich z.B. 750ms wird für Excel-Speichern verbraucht. Wichtig ist nun folgendes: Innerhalb eines Schleifendurchlaufes der Verbraucher-Schleife muss(!) die komplette Queue, also alle 100 Datensätze, ausgelesen werden. Nach dem Auslesen ist die Queue dann für (maximal) 10ms leer(!). Die 100 Datensätze müssen dann in dem einen Schleifendurchlauf weiterverarbeitet werden. 
 
Oft ist es so: 
Die Verarbeitung eines Datensatzes dauert z.B. 1ms. Würde man 100 Datensätze einzeln verarbeiten, würde das dann 100ms dauern. Verwendet man nun aber einen geeigneten Algorithmus, nämlich einen, der mit Arrays arbeiten kann, dauert die Verarbeitung der 100 Datensätze (z.B.) nur noch 50ms. Es ergibt sich also ein Zeitvorteil, wenn man mit Absicht die Queue voll laufen lässt und dann den kompletten Queueinhalt am Stück verarbeitet.
 
Selbstverständlich kann eine Queue auch Daten verlieren. Das tritt aber nur dann ein, wenn das Gesamtkonstrukt aus Datenstruktur und Programmstruktur schlecht gewählt ist. Man muss am Anfang schon eine Berechnung anstellen, welches Gesamtkonstrukt zielführend sein wird.
				  
				
				
 
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).  
 
				
				
				 
			 | 
                              
                 
				
 
 
				 
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					02.03.2011, 11:36  
				 
				
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                             
                       
                            tetef 
 
 
                            
                                LVF-Gelegenheitsschreiber 
                                   
                                
  
                            
                            
	Beiträge: 76 
	Registriert seit: Jun 2009
	
 
 
2010 
2008 
de_en 
 
76133 
Deutschland 
			 | 
                              
RE: Bei 2 parallelen Schleifen Daten übergeben 
				 
					Hi, 
 
ich habe es geloest, indem ich das ganze prozedur geteilt habe.  
Fuer jedes Prozess ein Enqueu und Dequeue, damit ich die Zeit richtig verteilen kann. 
Man darf nicht ein Obtain Queue ueber zwei Schleifen verteilen, sonst verteilen sich die Daten zwischen beiden Schleifen, was natuerlich ein Datenverlust verusacht. 
 
Danke nochmal. 
 
Ich habe jetzt ein kleines Problem: Kann man ueberhaupt ein Global Variable in einem Event Structure einsetzen? 
 
Gruss
				 
				
				
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					02.03.2011, 13:20  
				 
				
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                            
 
 
                       
                            NWOmason 
 
 
                            
                                Simultator 
                                      
                                
  
                            
                            
	Beiträge: 1.078 
	Registriert seit: Dec 2010
	
 
 
2012.SP1 
2008 
EN 
 
93047 
Deutschland 
			 | 
                              
RE: Bei 2 parallelen Schleifen Daten übergeben 
				
					Achso, du willst ein Event auslösen bei Wertänderung der globalen Variablen. Das geht leider nicht direkt mit den Standartevents der Eventstruktur. 
Du kannst allerdings ein Userevent kreieren, welches über eine globale Varibale abgefeuert und reagiert werden kann. Das ganze findet sich mit dazugehörigem Beispiel  im NI-Forum:
 Re: Can not use Global Variable in Event Structure
http://forums.ni.com/t5/LabVIEW/Can-not-...ue#M515036
Ich habs getestet, funktioniert einwandfrei   
Beste Grüße, 
NWO
				  
				
				
 
				
				
				 
			 | 
                              
                 
				
 
 
				 
 | 
		 
		
			| 
				
			 | 
		 
	
 
	
		
			| 
				 
					02.03.2011, 15:55  
				 
				
			 | 
		 
		
		
			
                                 
					
                                                 
				
                    
                     
                             
                       
                            tetef 
 
 
                            
                                LVF-Gelegenheitsschreiber 
                                   
                                
  
                            
                            
	Beiträge: 76 
	Registriert seit: Jun 2009
	
 
 
2010 
2008 
de_en 
 
76133 
Deutschland 
			 | 
                              
RE: Bei 2 parallelen Schleifen Daten übergeben 
				 
					Also,  
ich habe das Beispiel runtergeladen leider tut gar nix.
				 
				
				
				
				
				 
			 | 
                              
                 
				
 | 
		 
		
			| 
				
			 | 
		 
	
 
 |  |