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 

8 x 2 Sensoren unabh. vonaeinander einlesen. Richtiger Ansatz?



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!

24.08.2010, 15:02 (Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2010 15:09 von Matze.)
Beitrag #1

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
8 x 2 Sensoren unabh. vonaeinander einlesen. Richtiger Ansatz?
Hallo zusammen,

ich habe nun mit meinem ersten, ernsthaften Versuch begonnen, ein RealTime-/FPGA-Projekt umzusetzen. Zuerstmal mit dem FPGA-Teil.
Was heißt das? Dass euch FPGA-Programmierern im LVF nicht so schnell langweilig wird, weil ich nun vermutlich vermehrt Fragen dazu stelle. Lol

Ich möchte einige Analogsensoren einlesen, davon immer 2 parallel. Die Messungen können gleichzeitig gestartet werden, aber auch unabhängig voneinander.
Mein erster Ansatz ist dieser hier:

   

Mit dem RAW-Format komme ich noch gar nicht zurecht, daher ist hier das Standardformat FXP vorhanden.
Die Case-Strukturen, Schieberegister etc. benötige ich somit mehrmals. Das erschwert die Wartbarkeit etwas, da ich Änderungen ggf. mehrfach durchführen muss. Nur wie das anders geht, weiß ich nicht.
Das kann man auch nicht großartig in SubVIs auslagern.

Im Windows-LabVIEW sind Sequenzstrukturen mit Vorsicht zu genießen. Beim FPGA sind diese meines Wissens die sauberste Lösung, um Schleifen zeitgesteuert auszuführen.

Könnt ihr euch bitte meinen Ansatz ansehen und Verbeserungsvorschläge machen?

Das ganze müsste ich wohl mit einem FIFO, einer Lookup-Table oder einem Memory-Block verbinden. Vermutlich mit letzterem bei evtl max. 7000 Werten pro Messung.

Evtl. ist auch eine Optimierung mit SCTLs möglich. Doch da sehe ich keine Möglichkeit. Analogeingänge kann man darin nicht platzieren und Filter ebenfalls nicht.


Angehängte Datei(en) Thumbnail(s)
   

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.08.2010, 22:03
Beitrag #2

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
8 x 2 Sensoren unabh. vonaeinander einlesen. Richtiger Ansatz?
Hi,

ganz kurz: Das Timing, das Du verwendest ist ein Loop Timer... Damit hast du zwei in einem Loop, weiß nicht, ob das dann so funktioniert...

Folgender Vorschlag (falls du die gleiche Abtastrate für alle Signale brauchst): Lass die Schleife mit einem Loop-Timer laufen und schalte entsprechend nur die Kanäle zu. Das Timing übernimmt dann die übergeordnete Schleife...

Falls du unabhängiges Timing für alle Kanäle brauchst, wirst Du wohl um eine While-Schleife für jedes Pärchen nicht drumrumkommen...

Noch was zum Nachdenken bzw. testen: Die Konstruktion mit U8-> Bool-Array und das Aufsplitten lässt sich auch mit einem Bitweisen And realisieren. Es könnte sein, dass das performanter ist, weil ich nicht weiß, ob der Compiler Deinen Konstrukt auf das wesentliche zurückführen kann, nämlich eine einfache Durchleitung des Bits, die damit keine Rechenzeit braucht...

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2010, 07:20 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2010 07:21 von Matze.)
Beitrag #3

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
8 x 2 Sensoren unabh. vonaeinander einlesen. Richtiger Ansatz?
Hallo chrissyPu,

vielen Dank für deine Antwort.
Ich benötige für alle Sensoren die gleiche Abtastrate.

Ich habe es mal so umgesetzt. Ob das nun passt, auch mit dem Memory, weiß ich nicht.

   

Die Boolean-Lösung habe ich von hier, Folie 111:

   

Es kann gut sein, dass das mit logischen Operationen besser geht. Nur wie, wüsste ich nicht.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2010, 10:44
Beitrag #4

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
8 x 2 Sensoren unabh. vonaeinander einlesen. Richtiger Ansatz?
Also das mit dem genannten Block-Memory war wohl ein falscher Ansatz.
Ich nehme nun den FIFO "Target to Host - DMA". In dem speichere ich nicht alle Werte, sonden nutze den FIFO nur als Puffer, falls die RealTime-Anwendung länger benötigt als die Erfassung der Daten.
Parallel dazu holt sich die RealTime-Anwendung die Werte aus dem Puffer und kann parallel dazu bereits diese Werte verarbeiten.

Das klingt für mich erstmal schlüssig.Smile

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: