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
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