LabVIEWForum.de
Erste Flanke wird unzuverlässig erkannt - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Erste Flanke wird unzuverlässig erkannt (/Thread-Erste-Flanke-wird-unzuverlaessig-erkannt)

Seiten: 1 2


Erste Flanke wird unzuverlässig erkannt - djlunatic - 12.09.2014 07:56

Servus
ich arbeite seit längerem mal wieder mit Labview an einem Projekt, bei dem ich eigentlich dachte das die Signalerfassung über DAQmx kein Problem mehr darstellen sollte. Nun habe ich das Projekt etwas erweitert und kriege einen dadurch entstanden Fehler nicht mehr weg und ich kann ihn mir langsam auch nichtmehr erklären. Hardware ist eine PCI 6024E.

Zum Programm: Ich erfasse analog mit differentieller Messung mit höchstmöglicher Genauigkeit, in meinem Fall also im Bereich von +/-0,05V, ein Signal angeschlossen an AI0 und AI8. Die Messung soll getriggert ablaufen. Momentan simuliere ich das über einen Taster den ich zwischen PFI0 und D GND habe. PFI0 ist sowohl Start als auch Refernztrigger.
Einstellung: Start bei Steigender Flanke, Stop bzw. Referenztrigger bei Fallender Flanke.

Ursprüngliches Programm: Einmalige Messung
Erweiterung: Mehrmalige Messung, Anzahl einstellbar

Problem: Die erste Messung sollte ja eigentlich erst starten wenn ich den Taster loslasse (Steigende Flanke) und nicht bereits beim drücken (fallende Flanke). Gelegentlich tut sie das aber eben nicht bei der ersten Flanke. Da startet die Messung bereits bei noch gedrücktem Taster. Alle nachfolgenden Messungen funktionieren dann tadellos.

Ich habe schon einige Sachen ausprobiert: Buffergröße verändert, Pre- und Posttriggersamples verändert, andere Triggerquellen verwendet, Triggersignal sowohl mit Multimeter, Oszi und dem Programm selbst aufgezeichnet.


RE: Erste Flanke wird unzuverlässig erkannt - djlunatic - 15.09.2014 08:50

Hat niemand eine Idee voran es noch liegen könnte? Irgendwas was ich noch testen könnte?
Gibt es die Möglichkeit irgendwie einen Grundzustand zu definieren oder ähnliches?


RE: Erste Flanke wird unzuverlässig erkannt - GerdW - 15.09.2014 08:52

Hallo dj,

für den Anfang könntest du ja mal dein VI anhängen…


RE: Erste Flanke wird unzuverlässig erkannt - djlunatic - 15.09.2014 08:59

Ja das hätte ich gerne schon im ersten Beitrag leider weis ich noch nicht ob ich das darf. Im Laufe des Tages bekomme ich noch Bescheid dazu.


RE: Erste Flanke wird unzuverlässig erkannt - GerdW - 15.09.2014 09:04

Hallo dj,

irgendwelche "hochgeheimen" Datenverarbeitungsroutinen sind hier nicht relevant. Auch Firmenlogos, -namen usw. darfst du gern vor dem Upload löschen.
Du brauchst uns nur ein VI zeigen, welches die reine Datenerfassung enthält!


RE: Erste Flanke wird unzuverlässig erkannt - djlunatic - 15.09.2014 09:08

Da baue/kopiere ich gerade eins nach. Ich möchte nur auch sichergehen das ich nichts fehlerrelevantes vergesse und das der Fehler genauso wieder auftritt.
So hier der Teil mit der Datenerfassung meines VIs


RE: Erste Flanke wird unzuverlässig erkannt - djlunatic - 16.09.2014 14:38

Leider habe ich trotz weiteren Tests keine zuverlässige Erkennung der ersten Flanke erreicht.
Ich habe noch eine Frage auf die ich in der Manual keine Lösung gefunden habe. Ich weiß das meine Karte zum triggern nur die Flankenerkennung unterstützt aber nicht die Erkennung von High/Low Level. Könnte es evtl. an der Sprunghöhe liegen oder muss ein Flankewechsel von + nach - stattfinden?


RE: Erste Flanke wird unzuverlässig erkannt - GerdW - 16.09.2014 14:49

Hallo dj,

die Digitalflanken erwarten natürlich TTL-Pegel - so wie es sicherlich auch im Manual beschrieben wird…

Edit:
So, mal schnell nachgelesen und zitiert:
Zitat:Compatibility...................................5 V TTL

Zum VI:
- Wozu die Sequenzstruktur? THINK DATAFLOW und alles ist schick…
- Warum eine While-Loop, wenn die (max.) Anzahl der Messungen schon vorher feststeht? Nimm eine FOR-Loop, dann brauchst du auch nicht diese komischen Vergleiche…
- Die Methode "Std wiederherstellen" von "Messung abgeschlossen erzeugt eine (unwahrscheinliche) RaceCondition…
- Wenn "Warten" immer negiert wird, brauchst du nur die Farben in der Anzeige tauschen, um den gleichen Effekt zu erzielen…
- Warum wird der Task für jede Messung neu erzeugt? Würde es nicht ausreichen, den Task einmal zu erzeugen/löschen und ggfs. wieder neu zu starten?


RE: Erste Flanke wird unzuverlässig erkannt - djlunatic - 16.09.2014 15:08

Okay das mit dem TTL habe ich garnicht gesehen. Dann kann es daran nun auch nicht liegen.

Die Sequenzstruktur habe ich da im eigentlichen Programm noch weiter Schritte folgen und eben der Dataflow von Labview noch etwas zu schaffen macht. Irgendwie fühle ich mich mit einer Sequenzstuktur sicherer.

Warum ich den Whileloop habe weis ich gerade nichtmehr hatte aber einen Grund weil ich es auch mal mit einer For Schleife probiert habe.

Nun was ist eine unwahrschienliche Racecondition?

Die Möglichkeit mit dem pausieren des Tasks habe ich getestet allerdings habe gab es mehrere Fehlermeldungen. Ich denke ich werde mich daran nochmal probieren.

Danke für die Hilfe


RE: Erste Flanke wird unzuverlässig erkannt - GerdW - 16.09.2014 15:13

Hallo dj,

was eine RaceCondition ist, erläutert der Link in meiner Signatur.
In deinem Fall ist sie vorhanden, es ist aber sehr unwarhscheinlich, dass sie Auswirkungen hat. Trotzdem sollte man aber von Anfang an "sauber" programmieren…

Zitat:Die Sequenzstruktur habe ich da im eigentlichen Programm noch weiter Schritte folgen
Dann brauchst du eine Statemachine…