Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
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!
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
:hmm:Was hättest du jetzt gerne angezeigt?
Das 5000er Array? -> Dann einfach außerhalb der FOR-Schleife das Terminal des Array verbinden!
Jeden Wert einzeln? -> Dann Autoindexing aktivieren, und das Index-Array vergessen.
Gruß, 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!
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Dankeschön für die Antwort.
Wir hätte gerne jeden einzelnen Wert. Haben das Vi mal nach deinen Anweisungen umgebaut. Jetzt bekomm wir
aber trotzdem nur den letzten Wert eines Samples.
Einstellungne im DAQ
Abtastrate: 25 KHZ
zu lesende Samples 5K
Erfassungsmodus: N-Samples
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
:bahn:und bitte nächstes Mal LabVIEW-Version des VIs mit angeben.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Deine For-Schleife läuft genau 5000mal durch. Das geht so schnell, dass siehst du gar nicht. Am Ende steht im FP natürlich immer der letzte Wert des Durchlaufs. Falls die For-Schleife eine Berechnung präsentieren soll und du die Werte danach willst, einfach weiterverdrahten und ein neues Array per AutoIndexing erstellen lassen:
Gruß, 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!
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Hallo zusammen
Also erst mal Danke für die Infos. wir haben die Infos mal in unsere Schaltung einfließen
lassen. Aber haben irgendwie trozdem nicht die richtigen Werte. Könnte auch sein das wir beim Aufbau etwas übersehen haben.
Nun sind wir auf die Idee gekommen unserm Vi noch einen Eingang zu spendieren und einen
Min-Wert Eingang und einen Max-Wert Eingang. An diesem geben wir die Werte nach der Array
"MinMAx" ohne Schleife in unser Vi.
Nun sollten die Werte richtig zugewiesen werden.
Bei unseren Test ist uns dan noch folgendes aufgefallen:
Könnte es sein das unsere eingestellte Zeit von Beispielsweise 50ms nicht der wirklichen
50ms entspricht? Da die "Zeit" vom Prozesser abhänig ist?
Aus diesem Grund haben wir und mit derm Vi "Warten" beschäftigt
Mit diesen Vi kann man anscheinend die "Zeiten" normieren so das die eingestellte Zeit, der wirklichen Zeit entspricht.
Kann uns jemand sagen ob es genügt diese Vi einfach in das Main Vi zu platzieren oder
muss in jedes Sub Vi in dem eine Zeit abläuft ein solches Vi platziert werden?
Im Anhang hab ich mal das aktuelle Vi hochgeladen.
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
' schrieb:Könnte es sein das unsere eingestellte Zeit von Beispielsweise 50ms nicht der wirklichen
50ms entspricht? Da die "Zeit" vom Prozesser abhänig ist?
Zeit ist grundsätzlich relativ. Siehe A. Einstein.;)Und welche eingestellte Zeit jetzt?
' schrieb:Kann uns jemand sagen ob es genügt diese Vi einfach in das Main Vi zu platzieren oder
muss in jedes Sub Vi in dem eine Zeit abläuft ein solches Vi platziert werden?
Welches VI? Da sind x Stück hochgeladen
Und jetzt noch mal zurück zu den Basics?
Was wollt ihr? Ich blicke es nicht.
Aktuell werden Daten mit 25 kHz erfasst, und immer ein Block von 100 Messwerten geholt. Im besten Fall läuft die Loop im Main-VI also mit 250 Hz.
Aus diesen 100 Messwerten wird dann der Min und Max-Wert auf mir nicht ersichtliche Weise weiterverarbeitet (mit einer Menge RS-FlipFlops, könnte man alle in ein Reentrant-SubVI auslagern -> ÜBERSICHT!) und bei Bedarf direkt (!) in Excel geschrieben. Und das wieder mit 250 Hz.
Wobei, Moment, die 250 Hz können aktuell gar nicht erreicht werden, da in 2 SubVIs ein Wait von 20 ms drin ist, hoppla, damit wird das Ganze auf 50 Hz gebremst...
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!
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Hallo zusammen
Zitat:Zeit ist grundsätzlich relativ. Siehe A. Einstein. wink.gif Und welche eingestellte Zeit jetzt?
Im Haupt Vi kann man die verschiedenen Messzeit einstellen, mit diesen Zeiten wollen wir zu einem bestimmten Zeitpunkt die Messung auslösen. Da es sich um ein Dynamische Messung handelt, haben wir nur einen begrenzten Zeitraum um die richtigen Messwerte zum richtigen Zeitpunkt zu erfassen, z.B. wenn der Taster betätigt ist. Da der Taster über einen Zeitraum von ca. 120ms betätigt ist, müssen wir in diesem Zeitraum die markanten Messwerte erfassen. Die Zeiten werden über die Time Delay Bausteine eingestellt ( im Vi Spg Trigger, Di Trigger).Ob diese eingestellte Zeit an den Time Delay Vis der wirklichen Zeit entspricht?
Zitat:Welches VI? Da sind x Stück hochgeladen
Diese Frage bezog sich auch das Wait Vi.
Zitat:Wobei, Moment, die 250 Hz können aktuell gar nicht erreicht werden, da in 2 SubVIs ein Wait von 20 ms drin ist, hoppla, damit wird das Ganze auf 50 Hz gebremst...
Macht es Sinn eine Wait Vi in unserer Schaltung zu platzieren?
Zitat:Was wollt ihr? Ich blicke es nicht.
Unsere überlegung war, wenn wir mit einer Abtastrate von 25KHz messen, bekommen wir ja 25000 Werte in einer Sekunde. Da unsere Programm zu langsam ist die 25000 Werte in einer Sekunde abzuarbeiten. Haben wir gedacht wir untersuchen ein Sample und geben dort die markanten Werte aus (Min, Max). Da es bei unsere Messung auch nur auf die markanten Werte ankommt, werden auch bloß diese im Programm verarbeiten. Wir haben die Sample Größe 100 gewählt das wir alle 4ms ein Wertepaar bekommen. Diese Wertepaar wird dann in dem HauptVi
weiterverarbeitet.
Zitat:Aus diesen 100 Messwerten wird dann der Min und Max-Wert auf mir nicht ersichtliche Weise weiterverarbeitet (mit einer Menge RS-FlipFlops, könnte man alle in ein Reentrant-SubVI auslagern -> ÜBERSICHT!) und bei Bedarf direkt (!) in Excel geschrieben
Das heißt soviel das die RS FlipFlop in ein SubView ausgelagert wird, diese SubVi wird mit der Eigenschaften "Reetrant versehen". Das würde bedeuten das wir nur ein FlipFlop(SubVi) haben das von verschiedenen Stellen gleichzeitig verwendet werden kann.
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
Hallo zusammen
Wünsche alle noch ein gutes Neues Jahr
Wir haben im neuen Jahr immer noch ein paar offenen Fragen bezüglich des Timings und der Reetrant Funktion.
Welche Vorteile bringt es mit sich wenn wir in unserem Programm die FF mit der Eigenschaft versehen, außer der Vorteil der Übersichtlichkeit??
Könnte es sein das der Ablauf des Programmes dadurch schnell wird??
Wir sind uns nämlich nicht sicher ob die von uns eingestellten Zeiten auch der Realität entsprechen. Auf Grund der Aussage von Einstein "Zeit ist Relativ" haben wir uns eine weite Frage gestellt, können wir eine zeitrealistische Messung überhaupt realisieren??
Oder haben wir immer eine gewisse Verzögerung, das hätte zur Folge das unser komplettes Programm unnütz wäre, genau so wie die grundsätzliche Idee der zeitnahen Messung. Das die Zeit von Prozessor und der Abarbeitung abhängig sind ist uns klar, die Frage ist in welchen Maße??
Bei einem Dauertest mit der Simulation treten bei uns sporadisch Messfehler auf(4 Messfehler bei 11300 Messungen). Die Frage woher diese Messfehler kommen beschäftigt uns nun schon über einen Monat und wir denken das diese durch eine gewissen Zeitverschiebung kommen.
Das Problem könnte auch an einer andern Stelle liegen, nur wir sind gerade ratlos wo dies noch sein könnte.
In einem früheren Beitrag ist unser aktuelles Projekt hochgeladen.
Wir wären sehr dankbar wenn uns jemand einen Tipp geben könnte wo das Problem liegt, oder uns erklären könnte was wir versuchen könnten um das Problem in Griff zu bekommen.
Kontinuierliche Daten erfassen und jeden Wert sofot verarbeiten
:???: Was soll dieses SubVI mit den hundertausend Eingägen tun?
Macht aus den vielen Eingängen und FP-Controls einen Cluster-Typedef.
Das steigert die übersichtlichkeit gewaltig. Zudem sollte ein SubVI oben links den Referenzeneingang, rechts den Ausgang haben. Unten Rechts und Links den Errorcluster. Dazu sollten es MAXIMAL acht weitere Ein- und Ausgänge sein. Nicht zwanzig!
Das Warten, welches ihr so gerne verwendet hat eigentlich nichts mit Timing oder Genauigkeit zu tun. Es hält einfach den aktuellen Thread für die eingestellte Zeit an.
Was ihr sucht ist vermutlich Warten auf nächstes Vielfaches. Dieses wird für das Schleifentiming einer einfachen While Loop genutzt. D.h. die Schleife wird immer zum nächsten Vielfachen der eingestellten Zeit ausgeführt, selbst wenn der Code nur Bruchteile davon dauert.
In dem MainVi ist das nicht nötig, da der DAQ-Assistent diese Funktionalität übernimmt. In den SubVIs hab ich keine Ahnung, was ihr machen wollt. Vor allem was diese Tausend identischen Konstrukte sind.
Könnt ihr mal einfach ein Timing Diagramm eurer Messung machen.
So wie ich das Interpretiert habe wartet ihr auf das Eintreten einer bestimmten Bedingung um dann auf eine Weitere zu warten und anschließend einen Wert nach Excel zu exportieren. Aber das VI ist definitiv nicht Selbsterklärend und die Kommentare scheinen sich durch Abwesenheit auszuzeichnen.
Und zum Schluss noch: Baut euch eine State-Machine. Ist übersichtlicher und so wie der Code aussieht soll es ein Ablauf sein. Da bietet sich eine State-Machine an.
Gruß Richard
Murphy was an optimist
03.01.2011, 22:58 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2011 22:58 von jg.)