Hallo zusammen,
momentan messe ich im Umfeld meiner Prüfanlage einfach nur Spannungen und experementiere
mit Filterarten und Konfigurationen herum.
Dabei variiere ich auch die Abrastrate. Anschließend exportiere ich die Erfassten Meßwerte
in ecxel und werte diese dort aus.(matlab ist noch nicht verfügbar)
Jetzt stellt sich folgender bug ein.
Wenn ich beispielsweise 2 Minuten lang mit 500Hz messe müßte ich doch eigentlich 60.000 Meßwerte
in meiner Tabelle haben. (120s * 500 Werte)
Habe ich aber nicht. Ein Konktetes Beispiel:
10 Sekunden messung mit 500 Hz ergibt laut Ecxel 630 Werte.
Habe mein VI mal angehängt.
Vielleicht hat ja jemand einen Impuls für mich? Oder stehe ich auf der Leitung und mein VI ist
komplett neben den Schuhen?
Bin für alle Tips dankbar.
Schönes Wochenende!!!!!
Marcus
[
attachment=16733]
1. Du musst mal dein "DAQmx Read" auf "1Channel...mulitple samples" umstellen, dann machst auch ne kontinierliche Messung
2. Weniger wichtig: Was glaubst du, wie genau das VI "Time elapsed" ist?
Hallo,
@achim: Danke für die Tips zu1: habe es umgestellt.
zu2: habe es rausgenommen, war auch nur um abzuschätzen wieviele
Werte pro Sekunde reinkommen.
Habe mal die Werte in meiner Verzögerung geändert, und festgestellt das dies direkten Einfluss auf
meine Messwertmenge hat. Werde den Verdacht nicht los das in der Schleife was faul ist.
Kann es sein das die Datentypen nicht ausgelesen werden können, oder ein Zeitsignal in diesen
nicht erfasst wird, so das mein Tabellenstring-Baustein irritiert ist?
viele Grüße
Marcus
Meinst du mit "Verzögerung" die Wait-Funktion?
Das darf auf deine eigentliche Messwerterfassung NULL Einfluss haben, die ist nämlich HW-timed direkt auf der Karte und erfasst immer genau so viele Werte, wie du eingestellt hast (Abtastrate).
Die Verzögerung hat nur Einfluss darauf, wie oft du die erfassten Werte aus dem Puffer liest! Und wenn du ne kontinuierliche Datenerfassung machst, dann sind die Point-by-Point-Funktionen meiner Meinung nach auch fehl am Platz! Du erfasst ja immer mehr als einen Punkt...
' schrieb:Meinst du mit "Verzögerung" die Wait-Funktion?
Das darf auf deine eigentliche Messwerterfassung NULL Einfluss haben, die ist nämlich HW-timed direkt auf der Karte und erfasst immer genau so viele Werte, wie du eingestellt hast (Abtastrate).
Die Verzögerung hat nur Einfluss darauf, wie oft du die erfassten Werte aus dem Puffer liest! Und wenn du ne kontinuierliche Datenerfassung machst, dann sind die Point-by-Point-Funktionen meiner Meinung nach auch fehl am Platz! Du erfasst ja immer mehr als einen Punkt...
Ich meine das Metronom. Wenn ich den Zeitwert von diesem Baustein veränder erhalte ich
unterschiedlich viele Meßwerte in meiner Tabelle.
Die Point by Point funktion soll ich laut meines Betreuers benutzen. Da hat der sich auch auf
keine Diskussion eingelassen. Was genau ist der Nachteil wenn ich die
Daten so erfasse?
Kontinuierliche Erfassung:
Einmal Abtastrate vorgeben, Task starten, laufend Werte in den Puffer schreiben (HW!), Werte in der SW aus dem Puffer lesen und dann paketweise verarbeiten (nicht punktweise!)
Einzelwerte:
Task starten, mit jeder Schleifeniteration genau einen Wert erfassen und diesen mit point-to-point-Funktionen verarbeiten. Bei den pt-2-pt-Funktionen muss beim ersten Schleifendurchlauf init=True sein, danach nicht mehr!
Also entweder kontinuierlich erfassen ODER Einzelwerte...und dann auch entsprechend auswerten...aber doch bitte keine "Mischbetrieb"!
Habe das Prog nicht laufen lassen, aber was mir beim kurzen Blick darauf auffällt:[list=1]
[*]Du erfasst 6 Kanäle, liest aber nur einen aus.<>
[*]Du erfasst kontinuierlich mit einer Rate von 500 Hz (dt=2ms), liest aber nur alle 15ms (Timerwert) einen Wert aus dem Buffer. Das führt bei der eingestelleten Buffergröße von 1000 ("Sampler per channels" ist bei kontinuierlichem Betrieb umfunktioniert zu Buffergröße) innhalb von reichlich 2 sek zum Buffer-Überlauf. Der Timer gehört weg, die Synchronisation macht das DAQ-Lesen-VI,<>
[*]Das Auslesen von einem Wert pro Schleifendurchlauf ist eigentlich richtig, da die verwendeten Punkt-zu-Punkt-Filter immer nur einen neuen Wert haben wollen. Die Schleife wird aber diese verlangte Geschwindigkeit nicht mitmachen. Es sollte geändert werden: Mindestesn 100 Werte pro Durchlauf auslesen, die Punkt-zu-Punkt-Filter durch andere Filter ersetzten. (Diese sind auch für kontinuierliche Filterung ausgelegt. Man darf sie nur nicht bei jedem Schleifendurchlauf rücksetzen)<>
[st]
' schrieb:Kontinuierliche Erfassung:
Einmal Abtastrate vorgeben, Task starten, laufend Werte in den Puffer schreiben (HW!), Werte in der SW aus dem Puffer lesen und dann paketweise verarbeiten (nicht punktweise!)
Einzelwerte:
Task starten, mit jeder Schleifeniteration genau einen Wert erfassen und diesen mit point-to-point-Funktionen verarbeiten. Bei den pt-2-pt-Funktionen muss beim ersten Schleifendurchlauf init=True sein, danach nicht mehr!
Also entweder kontinuierlich erfassen ODER Einzelwerte...und dann auch entsprechend auswerten...aber doch bitte keine "Mischbetrieb"!
Aha!
jetzt wird einiges klar. Klar das der Mischbetrieb das ganze blockiert.
Gibt es eine Faustregel wann ich pt-2-pt einsetzte?
Und wie kann ich dann meine Abtastrate einstellen?
Kannst du eine Aussage treffen welche Erfassungsmethodik für mich besser geeignet ist?
Irgendwie tendiere ich ja nun weg von der pt-2-pt Funktion.
Möchte im späteren betrieb mit ca 20Hz abtasten. Es handelt sich um eine kapazitive
Abstandsmessung.
Danke schon mal für die Infos!
' schrieb:Gibt es eine Faustregel wann ich pt-2-pt einsetzte?
Und wie kann ich dann meine Abtastrate einstellen?
Na das hab ich doch schon gesagt...pt-2-pt heißt punktweise...also Einzelwerterfassung...damit erledigt sich auch die Frage nach der Abtastrate...die ergibt sich dann aus der häufigkeit, wie oft deine Lese-Schleife durchläuft...und das ist neben der eingebauten verzögerung ganz stark davon abhängig, was dein betriebssystem sonst noch so macht...
also zusammen gefasst:
Wenn ich eine Vorgabe von 20 Hz habe die ich messen möchte ( soll ) dann geht das nur über
kontinuierliche Erfassung. Da wenn ich pt-2pt-pt Erfassung wähle, die Verzögerung aus der Schleife nehmen sollte. Dann bekomme ich eine Erfassung die stark davon abhängig ist was mein Rechner grade sonst noch so treibt.
Eine gezielte Abtastrate besteht nur bei Kontinuierlicher Messung.
Das würd auch meine seltsamen Datenerfassungswerte erklären.
Mein nächstes Vorgehen wäre also alle pt-2-pt Bausteine zu entfernen und gegen "konventionelle"
zu ersetzen.
@ Lucki: mit den Kanälen war ein Fehler meinerseits. Es wird nur ein Kanal gemessen.
werde umstellen.
@ Achim: Auch dir danke, werde nun mal umstellen. Werde dann feedback geben.
Vielen Dank!