LabVIEWForum.de
Triggerung einer Messung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Triggerung einer Messung (/Thread-Triggerung-einer-Messung)



Triggerung einer Messung - CptBloodner - 24.10.2012 17:08

Hallo zusammen,

trotz ausführlicher Recherche, bin ich nach wie vor nicht fündig geworden, wie ich meine Aufgabenstellung lösen kann bzw. bin mir inzwischen echt nicht mehr sicher, ob ich mit meiner Hardware überhaupt das erreichen kann, was ich möchte. Und da ich blutiger Anfänger bin, wär ich sehr erfreut, wenn ihr mir da helfen könntet, weil mein Latein ist zu Ende.

Zur verwendeten Hardware: Ich verwende ein cDAQ-9172 USB-Chassis mit zwei Modulen, einmal ein NI 9215-Modul mit 4 Analogeingängen und einmal ein 9213-Modul mit 20 Temperatureingängen.

Zu den Rahmenbedingungen: Ich habe eine Zwick Z020 Zug-/Druck-Prüfmaschine, auf der ich mir einen Prüfstand für Kunststoff-Pressschweißversuche aufgebaut habe. Ich habe einen beheizten Pressstempel mit zwei verbauten Thermoelementen Typ K, eines steuert den externen Temperaturregler, eines dient im Labview zur Temperaturkurvenaufzeichnung. Ansonsten besitzt die ZD-Prüfmaschine noch Analog- und Digitalausgänge, über die ich mir ebenfalls noch Daten- bzw. Triggersignale liefern lassen kann. Dabei kommen zum einen zwei Analogsignale raus, Kraft und Weg, und eben auch ein Digitalsignal, welches ich mit der ZD-Maschine ansteuern kann (5V oder 0V Spannung kommen da raus). Diese drei Spannungen sind bei mir auf drei der vier Analogeingänge des 9215-Moduls geschalten.

Zur Aufgabe: Ich starte der Reihe nach mein Labview Programm und dann in der Steuersoftware der ZD-Prüfmaschine meinen Versuch an, ab da liefert sie Spannungen auf den Leitungen für Kraft und Weg und verfährt in die Versuchsstartposition. Ich muss aufgrund der hohen Temperaturen schauen, dass ich immer vor und nach dem Versuch ein bisschen Abstand mit dem Schweißmaterial halte, da mir sonst die Ergebnisse massiv verfälschen. Nach einiger Zeit erreicht die ZD-Maschine ihre Versuchsstartposition und gibt durch einen Abfall der Triggerspannung von 5V auf 0V das Signal, dass sie die Position erreicht hat und der Versuch beginnt. Ab diesem Zeitpunkt interessieren mich die Daten, die ich in Labview aufzeichne. Nach dem Schweißversuch gibt sie wieder das umgekehrte Triggersignal (rise auf 5V), die Aufzeichnung im Labview soll stoppen.

Wie schaffe ich es, dass ich im Labview mein Programm anstarte, die Daten aufgenommen werden, er mir aber nachher ins Ergebnisprotokoll nur die Daten schreibt, die während der Zeit angefallen sind, während der das Digitalsignal unter 5V lag (sprich der Trigger aktiv war)? Das USB-Chassis zur Echtzeit anzusteuern per Triggersignal geht ja leider nicht, dazu müsste eine PCI-Karte o.ä. her, mit "richtigen" Interrupts her.

Ich hab bereits versucht, mit zwei DAQ-Eingangs-Assistenten zu arbeiten, einem immer aktiven, der quasi nur den Triggereingang beobachtet und über die zwei Triggerfunktionen einen Bool ausgibt. Die Triggerfunktionen sind zwei, eine soll die steigende, eine die fallende Flanke erkennen. Mittels der XOR-Verknüpfung will ich quasi erreichen, dass der Bool nur in dem Zeitraum eine 1 gibt, in dem nur einer der beiden Trigger ausgelöst ist (der erste, fallende). Sobald der zweite dazukommt (wieder steigend auf 5V) liefern beide Triggerfunktionen 1, mein Bool wird 0, die Aufzeichnungsschleife soll stoppen und die Daten die sie im Trigger-Zeitfenster bekommen hat, schreiben.

Mach ich irgendwas falsch? Hab ich irgendwo nen (egal wie kleinen) Denkfehler? Geht das so überhaupt? Ich wär echt happy, wenn ihr mir da weiterhelfen könntet.

Viele Grüße
CptBloodner


RE: Triggerung einer Messung - jg - 24.10.2012 19:42

Hmm Analog Reference Trigger geht bei dem cDAQ nicht, sonst hätte ich das empfohlen.

ABER: Das Beispiel "Cont Acq&Graph Voltage-Analog SW Trigger.vi" aus dem NI-Example Finder müsste ziemlich genau deine Wünsche erfüllen.

Gruß, Jens


RE: Triggerung einer Messung - CptBloodner - 28.10.2012 14:08

Danke Jens, das ist schon mal zugegebenermaßen ein Anfang. Bin leider erst gestern dazugekommen, mir das mal anzuschauen und dabei haben sich bei mir allerdings ein paar Fragen aufgetan:

- So wie dieses Beispiel gebaut ist, ist es doch nur für das Einlesen von einem Kanal gedacht oder seh ich das falsch? Ich kann ja auch nur einmal global Spannungsgrenzen vorgeben.
- Die Triggerung funktioniert nur dahingehend, dass sie die erste Flanke erkennt, nicht aber die zweite. Meinst du ich bekomme das hin, wenn ich das zweimal verwende und ein Konstrukt ähnlich wie in meinem Beispiel einsetze?
- Mir fehlen gedanklich etwas die Einstellungsseiten vom DAQ-Assistenten, wo ich meine Kanäle sauber konfigurieren kann.
- Besteht für das, was ich angehängt habe, so überhaupt keine Chance weil so rein von der Logik her sollte es ja passen oder nicht?
- Warum die Triggerung bei mir nicht wollte, lag vermutlich an den Einstellungen, ich versuch mich mal nochmal dran.

Ich versuch das mal nachzuvollziehen, bin wie gesagt blutiger Anfänger und sitz dementsprechend etwas verwirrt vor dem Ding momentan...

Viele Grüße
CptBloodner


RE: Triggerung einer Messung - jg - 29.10.2012 18:40

Das Beispiel ist doch schon auf mehrere Kanäle vorbereitet. Das Wichtigste daran aber: Die Ganze Auswertung/Triggerung wird erst nachträglich in der Software gemacht. Die Datenerfassung läuft kontinuierlich, das Ausschneiden übernimmt hier LabVIEW (nicht die DAQ-Karte).
Da dein USB-Chassis das "Analog-Triggern" in der Hardware nicht anbietet, ist das "Selber-Ausschneiden" die einfachste Möglichkeit.
Das Trigger/Ausschneide-VI kannst du ganz an deine Bedürfnisse anpassen.

Gruß, Jens