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 

Echtzeit Ein- und Ausgabe



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!

16.07.2007, 13:52
Beitrag #1

Meista Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jul 2007

8.2
2005
kA


Deutschland
Echtzeit Ein- und Ausgabe
Hallo
Ich versuche ein LabVIEW-Programm zu erzeugen, welches mit die Reaktion eines Systems auf eine Rampe
(z.B. 0-10V, in 20s) darstellt.
Ich habe das im Moment alles in eine For-Schleife gepackt.
D.h. aus Schrittweite und Endwert der Rampe berechne ich die Anzahl der Schleifendurchläufe.
In der Schleife wird dann der aktuelle Wert augegben und auch ein neuer Wert gelesen.

Die erscheint mir aber nicht optimal, da
- es problematisch ist eine definierte Abstastrate z.B. 10ms zu erzeugen
- das schreiben von Einzelwerten gegenüber "kontinuierlicher Ausgabe" unnötig viel Zeit beansprucht


Gibt es die Möglichkeit, das VI so abzuändern, dass es (HW-getaktet, z.B. 10 ms) eine Rampe ausgibt und gleichzeitig
(HW-getaktet, 10 ms) die Eingangsgröße darstellt.


Als DAQ-Karte wird die PCI-6221 unter LabVIEW 8.2 verwendet

Vielen Dank im Voraus!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.07.2007, 19:08
Beitrag #2

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Echtzeit Ein- und Ausgabe
Studiere die Beispiele unter Signalerfassung ... --> DAQmx --> Synchronisierung --- Multifunktion
z-B Multifunktion AI/AO
Damit Du nicht lange herumraten mußt, wie die Synchronisation funktioniert:
1. AI und AO werdem in getrennten Tasks konfiguriert. AO bekommt seine Startflanke von AI
2) AO bekommt Starterlaubnis, läuft aber nicht an, da die Startflanke fehlt.
3) AI wird gestartet. Da damit auch AO seine Startflanke erhält, beginnen beide synchron zu laufen.

Ich würde Dir empfehlen, auf einem Testboard Ai und AO miteinender zu verbinden oder z.B einen RC-Tiefpass dazwischenzuschalten, damit Du dir ansehen kannst, wie schön es funktioniert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.07.2007, 20:05
Beitrag #3

Meista Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jul 2007

8.2
2005
kA


Deutschland
Echtzeit Ein- und Ausgabe
Hallo Lucki, erst einmal vielen Dank für die schnelle und sehr hilfreiche Antwort!

Habe das Beispiel jetzt so modifiziert, dass eine langsame Rampe ausgegeben wird. Die Ein- und Ausgabe ist jetzt synchron und äquidistant :-) So weit so gut!

Ein Problem ist aber jetzt, dass ich die Eingangsdaten jetzt immer in Blöcken (z.B. 1000) Werte erhalte.

Das ist ein Problem weil:
- ich die gesamten Daten fortlaufend anzeigen will (und nicht nur die letzen 1000 Werte)
- das Signal geglättet werden soll (MA)
- und ich online die Nulldurchgänge zählen will
Gibt es da einen Trick, oder muss ich das jetzt alles Blockweise erledigen?

Vielen Dank!

' schrieb:Studiere die Beispiele unter Signalerfassung ... --> DAQmx --> Synchronisierung --- Multifunktion
z-B Multifunktion AI/AO
Damit Du nicht lange herumraten mußt, wie die Synchronisation funktioniert:
1. AI und AO werdem in getrennten Tasks konfiguriert. AO bekommt seine Startflanke von AI
2) AO bekommt Starterlaubnis, läuft aber nicht an, da die Startflanke fehlt.
3) AI wird gestartet. Da damit auch AO seine Startflanke erhält, beginnen beide synchron zu laufen.

Ich würde Dir empfehlen, auf einem Testboard Ai und AO miteinender zu verbinden oder z.B einen RC-Tiefpass dazwischenzuschalten, damit Du dir ansehen kannst, wie schön es funktioniert.


Angehängte Datei(en)
Sonstige .vi  Michelson_sync2.vi (Größe: 66,7 KB / Downloads: 300)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2007, 00:13
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Echtzeit Ein- und Ausgabe
' schrieb:Ein Problem ist aber jetzt, dass ich die Eingangsdaten jetzt immer in Blöcken (z.B. 1000) Werte erhalte.
Dann setzte halt mal den Wert "Samples To Read" etwas kleiner!
' schrieb:- ich die gesamten Daten fortlaufend anzeigen will (und nicht nur die letzen 1000 Werte)
Für den Anfang, mach etwas in der folgenden Art:
   
Wenn das läuft, dann denk mal über deine weiteren Fragen nach, zum Glätten gibt es Filter, und Zählen von Nulldurchgängen ist ja wohl dann auch mgl.

MfG, 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
19.07.2007, 06:31
Beitrag #5

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Echtzeit Ein- und Ausgabe
' schrieb:Für den Anfang, mach etwas in der folgenden Art:
[attachment=34254:Image01.png]

aber nur für den Anfang!Smile<nörgel>

Je nachdem wie lang die Messung läuft und wie viele Samples die Erfassung pro Sekunde liefert läuft mit dem Programm mehr oder weniger schnell dein Hauptspeicher voll.

bei 1000 Hz sind das z.B. 8000 Byte --> ca 7 kB pro Sekunde
bei 100 kHz sind das schon ca. 780 kB pro Sekunde oder 45 MB / Minute
das sollte man immer im Hinterkopf behalten.

Falls das ein "Dauerläufer" ist, ist die Methode mit "build Array" ein echtes Problem und kostet zudem extra Performance weil LV ständig neuen Speicher anfordern muss um das Array zu vergrößern. Besser ist es, einen Ring-Speicher zu verwenden, bei dem ab einer bestimmten Datenmenge die ältesten Werte wieder überschrieben werden.

Ein Beispiel, wie ein Ringspeicher funktioniert gibt es hier ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.07.2007, 08:27
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Echtzeit Ein- und Ausgabe
Zunächst erst mal meine Gratulation, daß Du es gechafft hast. Jetzt geht es nur um Peanuts.
Zu Deinen Problemen:

Zitat:- ich die gesamten Daten fortlaufend anzeigen will (und nicht nur die letzen 1000 Werte)

Das ist nun leider eine Eigenschaft des von Dir (und im Beispiel) verwendete Graphen. Man kann natürlich, so wie hier vorgeschlagen, einen Puffer/Ringpuffer zur Zwischenspeicherung größerer Datenmengen verwenden. Das unmittelbar Naheliegende ist aber, den Signalverlaufsgraphen durch das Signalverlaufsdiagramm (Strip-Chart) zu ersetzen. Dort ist der "Ringpuffer" bereits eingebaut, die Größe das Puffers kannst Du mit der rechten Maustaste ( Historienlänge) wählen. Beachte auch die verschiedenen Aktualisierungsmodi unter "Eigenschaften". (Achtung: Um die Zeit im gewünschten Format anzuzeigen, muß man mit viel Geduld tricksen. Das Normale ist leider das Format Jahr/Monat/tag/Stunde/Minute/sekunde auf drei Stellen nach dem Komma, und das ist das Letzte, was man braucht und eigentlich ist es auch nicht vernünftig anzeigbar. Siehe meine gewählte Einstellung unter "Eigenschaften")

Zitat:- das Signal geglättet werden soll
Es gibt in den Funktionen "Glättungsfilter". Sie glätten den Verlauf, ohne die Datenmenge zu reduzieren. Du könntest auch die Daten z.B 10stückweise einlesen und davon sofort den Mittelwert bilden, das hast Du dann von Anfang an 10 fach weniger Datenpunkte. Allerdings dann dafür sorgen, daß das Diagramm nicht zu oft upgedatet wird, maximal 10 mal pro sekunde. Also z.B 100 gemittelte Punkte sammeln, dann updaten.

Zitat:- und ich online die Nulldurchgänge zählen will
Auch dafür gibt es eine fertige Funktion, bitte selbst suchen.


Angehängte Datei(en)
Sonstige .vi  Michelson_sync2_WA.vi (Größe: 67,51 KB / Downloads: 275)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.07.2007, 08:10
Beitrag #7

Meista Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jul 2007

8.2
2005
kA


Deutschland
Echtzeit Ein- und Ausgabe
Hallo Leute,

damit müsste ich zurechtkommen.
Nocheinmal vielen Dank für die vielen guten Antworten!

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


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datenübermittlung in Echtzeit - Fehler in der Datenübertragung LabView-2018 5 5.724 09.01.2018 17:40
Letzter Beitrag: LabView-2018
  15 Digitale Output Signale in echtzeit erfassen galilio 8 6.348 04.05.2017 14:38
Letzter Beitrag: GerdW
  Kraftverlauf in Echtzeit abri 3 4.833 01.03.2016 10:05
Letzter Beitrag: GerdW
  Echtzeit graphische Darstellung der Daten und Speicherung auf Kommando nusser 44 28.335 25.02.2014 11:31
Letzter Beitrag: nusser
  Signal in "echtzeit" in eine lokale Variable schreiben. Tobs 25 20.020 21.04.2011 18:58
Letzter Beitrag: Tobs
  Messwerte in Spalten statt Zeilen mit Echtzeit Labormichel 2 4.953 29.06.2010 15:10
Letzter Beitrag: GerdW

Gehe zu: