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 

Dieses Thema hat akzeptierte Lösungen:

Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0



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!

04.06.2012, 15:13
Beitrag #1

BodenseeBike Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Mar 2012

2016
2016
EN


Deutschland
Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Hallo zusammen,

das angehängte VI soll die Drehzahl einer rotierenden Scheibe messen.

Prinzip:
Eine Gabellichtschranke mit Lochscheibe (Die bei Stillstand logischerweise nur high oder low ausgibt, bei voller Drehzahl ein TTL-Signal mit 3,2 kHz auf einen digitalen eingang mit Zähler einer DAQ-Karte gibt)

Über den DAQ-Assistenten lässt sich ja einfach die Frequenz auslesen, man muss aber noch Grenzen für die zu erwartende Frequenz eingeben. Als Minimalwert akzeptiert das Express VI aber nicht "0".

Nun möchte ich aber die Aufzeichnung meiner Daten, die über eine Schleife in eine Tabelle geschrieben werden aber kontinuierlich haben, also auch wenn meine Scheibe gerade steht! Bei meiner Lösung läuft die Schleife aber erst los, wenn diese sich minimal dreht!

Hat jemand eine Idee? Ist meine Herangehensweise falsch oder kann ich irgendwo eine Einstellung vornehmen?

Danke für Eure Hilfe,
Markus


Angehängte Datei(en)
11.0 .vi  Frequenzmessung.vi (Größe: 60,64 KB / Downloads: 191)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.06.2012, 16:35
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
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Ich würde die Timeout-Zeit mit der niedrigsten Frequenz abstimmen. Z B. bei fu= 0.1Hz würde ich den Timeout 10sec wählen. Kommt es zum Timeout, dann war die Frequenz kleiner als 0.1Hz, und du übergibst dann f=0 in die Anzeige. Du musst etwas experimentieren, ich gebe jetzt keine Garantie dass das genau so funktioniert wie ich es vorschlage.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.06.2012, 10:19
Beitrag #3

BodenseeBike Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Mar 2012

2016
2016
EN


Deutschland
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Hallo Lucki,

danke für den Vorschlag, den ich sogleich ausprobiert habe. Leider funktioniert es aber nicht. Egal wie ich mit Timeout oder Minimal zu erwartender Frequenz rumspiele, jedesmal wenn das Rad steht, bleibt meine komplette Schleife stehen weil der DAQ-Assistent auf wartet und wartet...bis man ihn eben wieder mit einer Frequenz versorgt. Er gibt aber als Wert niemals "0" heraus. Ich muss also irgendwie eine andere Methode finden, Pulse zu zählen und dann getaktet auf die Geschwindigkeit zu schließen. Gibt es keinen Puls, möchte ich eben einfach nur Nullen in meine LOG-Datei schreiben. Das ist deshalb nötig, da ich noch weitere Aufzeichnungen machen möchte die Parallel laufen. Aber wg. der Frequenzmessung bleibt nun jedesmal die komplette Schleife stehen.

Irgendeine Idee wie man das lösen kann?

Danke jedenfalls schonmal,

Markus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.06.2012, 10:38 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2012 10:39 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Hallo Markus,

du schreibst:
Zitat:weil der DAQ-Assistent auf wartet und wartet.

Lucki schrieb:
Zitat:Ich würde die Timeout-Zeit mit der niedrigsten Frequenz abstimmen. Z B. bei fu= 0.1Hz würde ich den Timeout 10sec wählen.

Alles klar? Ansonsten: VI zeigen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.06.2012, 10:41 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2012 10:43 von Soean.)
Beitrag #5

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Mein erster Gedanke wäre die Impulse analog auszuwerten. Also statt des Zählereingangs einen analogen Eingang zu verwenden und immer eine feste Anzahl von Samples abzufragen. Wenn keine Impulse mehr kommen, bekommst du ein konstantes Signal von 0 V (je nach Offset). Dann müsstest du dir nur noch ein kleines VI schreiben, welches dir die Flanken zählt. Das ist aber nicht weiter aufwändig.


Gruß,

Soean
.... oder was GerdW und Lucki sagen ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.06.2012, 10:52 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2012 16:24 von Lucki.)
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
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Was Du beschreibst kann überhaupt nicht sein. Ja, die Schleife bleibt stehen, aber doch nicht einfach so. Nach 8sec Stillstand Schleifenstillstand wird der Timiout ereicht und es kommt eine Fehlermeldung. Wenn Du die nicht quittierst, ja dann bleibt die Schleife natürlich unendlich stehen. Und wenn Du sie quitierst, dann kannst Du entweder so weitermachen, das Spielchen wiederholt sich, oder das Prog wird abgebrochen.
Deshalb sage ich doch: Fehlerbehandlung.

Im einfachsten Fall so:

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.06.2012, 15:24
Beitrag #7

BodenseeBike Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Mar 2012

2016
2016
EN


Deutschland
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Zuerst vielen Dank für die vielen Antworten!

@lucki
Das mit der Fehlerbehandlung kannte ich nicht, habe die Idee übernommen! Zumindest wird nun, sobald die Frequenz unter 10 Hz fällt der Wert 0 ausgegeben was gut ist!

Allerdings ist beim langsamen Anlaufen der Lochscheibe und beim Abbremsen die Frequenz natürlich unter 10 Hertz. (Von der Messgenauigkeit wärs egal, dass diese geringe Geschwindigkeit als 0 angenommen wird)
Mein Problem: Mein Gesamtprogramm ist in eine Schleife eingehüllt, die im 100 ms-Takt Messwerte aufnehmen und in eine Datei schreiben soll. Bei Frequenzen unter 10 Hertz hat der DAQ-Assistent vermutlich so viel Rechenarbeit mit dem Error-Handling, dass er meine ganze Schleife abbremst und so eben hier die Messwerte nicht im 100 ms-Takt geschrieben werden, sondern manchmal 7, 8, 9 oder 10 Stück pro Sekunde, was die Messung unbrauchbar macht.
(Eine Log-File habe ich angehängt)

Wie kann man das beschleunigen? Kann man den DAQ-Assistenten aus der schleife rausziehen? Oder ist mein Ansatz mit der Messdatenerfassung schlichtweg nicht der Richtige?

Kurz zur Erklärung des Versuchsaufbaus: Es geht um eine Messeinrichtung, die Geschwindigkeit (Kopplung des Hinterrads an eine Lochscheibe) und den Motorstrom eines E-Bikes in eine Log-File schreibt.

@Soean: Leider hab ich alle meine Analogeingänge schon belegt, oder kann ich quasi auch den Digitaleingang wie einen Analogeingang nutzen, der eben nur 2 Zustände kennt?

@GerdW: VI ist Angehängt, vielleicht gibt Dir das einen besseren Eindruck?

Bitte um Nachsehen, wenn meine Fragen etwas Anfängerhaft sind, es ist mein erstes LabView Projekt...

Vielen Dank!!! Markus


Angehängte Datei(en)
11.0 .vi  Messung Geschwindigkeit und Motorstrom + Aufzeichnung alle 100 ms.vi (Größe: 116,09 KB / Downloads: 170)

0.0 .txt  Beispiel-Log-file.txt (Größe: 6,82 KB / Downloads: 206)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.06.2012, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2012 15:41 von Soean.)
Beitrag #8

Soean Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 140
Registriert seit: Sep 2010

2012
2009
EN


Deutschland
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Das Signal analog auszuwärten wäre nur eine Notlösung gewesen.

Deinen Code zu beschleunigen ist hingegen recht einfach: Rechte Maustaste auf deine DAQ-Assistenten und "NI-DAQmx-Code erzeugen" auswählen. Das init-VI kommt jeweils vor deine Schleife, das Clear Task danach. Nur das Read-VI bleibt drin. Dann noch kurz neu verdrahten, und es sollte hinhauen. (Die so erstellten VIs müssen natürlich noch gespeichert werden)

Du verhinderst auf diese Art und Weise, dass der Task jeden Zyklus neu gestartet und gestoppt wird.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.06.2012, 17:28 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2012 18:07 von Lucki.)
Beitrag #9

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
Diese unterschiedlichen Datenerfassungen kann man nicht in eine Schleife zwängen. Das Stichwort heißt: Parallele Schleifen. Das sieht dann etwa so aus:
   

@Soean:
vom Prinzip her hast Du zwar Recht. Nur hast Du das Express-VI offensichtlich nicht selbst mal geöffnet. Denn dann hättest Du bemerken müssen, daß die Programmentwickler von Labview auch nicht dumm sind. Die Initialisierung wird nur ein einziges Mal, beim ersten Aufruf, gemacht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.06.2012, 14:23
Beitrag #10

BodenseeBike Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Mar 2012

2016
2016
EN


Deutschland
RE: Chart zur Freqenzmessung aufzeichnen wenn Frequenz=0
@lucki vielen Dank für den Tip!

Habe nun die Frequenzmessung und Spannungsmessung in verschiedene Schleifen gepackt, was mein Programm um ein vielfaches Beschleunigt hat, ich habe sogar noch einen Kanal zur zusätzlichen Erfassung einer Akkuspannung hinzugefügt.

Außerdem wurde das Programm noch erweitert, um aus einer Tabelle die Sollwerte für den Motor im gleichen 100 ms Takt auszugeben.

Das VI habe ich angehängt. Was mich noch interessieren würde:

-Wie hast Du die Stop-Knöpfe der beiden Schleifen verbunden, damit mit einem Klick auf den Stop Knopf alles stillsteht? Habe versucht, mit einer lokalen Variablen beide auf den gleichen Stop-Knopf zu legen, hat aber nicht funktioniert. Hat das etwas mit der "Std wiederherstellen"-Funktion zu tun, die du an der ersten Schleife angeschlossen hast? (Verstehe die Funktion nicht ganz)

-Wie kann man einen "Schalter" programmieren, der bei Knopfdruck die komplette Messung startet und beim umschalten wieder stoppt? Momentan werden nämlich die Sollwerte für den Motor sofort eingelesen und dieser läuft los.

-Um die Messwerte abspeichern zu können habe ich nach der "Format to string" block noch einen "build array" einbauen müssen. Ist das korrekt so oder geht es einfacher. Ziel ist es einfach, alle Messwerte in Spalten abzuspeichern, die nachher in Excel importiert werden können.

Danke für die Hilfe, langsam bekommt das Projekt eine Form...
Markus

@Soean
habe versucht, die DAQ-Assistenten mit "NI-DAQmx-Code erzeugen" zu zerlegen und nur den Read block in der Schleife zu belassen. Das hat die Schleife allerdings NOCH langsamer gemacht...


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Messprogramm E-Bike.vi (Größe: 209,17 KB / Downloads: 200)
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
  Änderndes analoges Spannungssignal aufzeichnen MatzeND 2 5.777 28.04.2012 07:26
Letzter Beitrag: MatzeND
  Signal aufzeichnen und simulieren boeder 4 5.673 29.09.2011 07:23
Letzter Beitrag: boeder
  Zeitverzögerung zwischen der Änderung und der Aufzeichnen von Daten Filip 0 2.725 12.03.2007 09:02
Letzter Beitrag: Filip

Gehe zu: