26.02.2016, 08:48
Guten Morgen,
ich bin zur Zeit dabei ein recht altes C++-Programm für Messungen im Explosionsschutz in LabVIEW neu zu entwickeln. Neben leicht veränderten Funktionen wurde auch beschlossen, dass das Osziloskop durch ein "NI cDAQ-9178" mit "NI 9222 (BNC)"-Modulen zu ersetzen. Auch sollen später noch Module zum Messen der Temperatur und der Dehnung folgen, die Module wurden aber noch nicht festgelegt.
Allerdings habe ich noch ein Problem mit dem Trigger. Das Triggersignal kommt von einer externen Quelle, weshalb ich den PFI0-Anschluss dafür verwende. Die Triggerung funktioniert auch schon, wie ich es geplant habe. Das eigentlich Problem ist, dass mein Programm von der Triggerung selbst nichts mitbekommt. Es werden nämlich noch weitere Messgeräte angesprochen, die Regelmäßig ausgelesen werden. Die Messwerte von diesen anderen Messgeräten werden dem Nutzer angezeigt und beim Zeitpunkt der Triggerung soll die Werte nicht mehr aktualisiert werden, um sie am Ende der Messung zu speichern.
Außerdem ist die Dauer der einzelnen Messungen sehr unterschiedlich. Die kürzeste Messung ist 50 ms lang, die längste 10 Minuten. Besonders bei den langen Messung soll das Programm nach der Triggerung anzeigen, wie lange die Messung noch läuft. Dadurch merkt der Nutzer auch, dass das Programm bzw. die Hardware auch getriggert hat und es entsteht auch nicht den Eindruck, dass das Programm abgestürtzt ist. Es ist auch notwendig einen Pretrigger zu verwenden, der 10% der Messdauer oder eine Sekunde lang ist( je nachdem was kürzer ist).
In dem C++-Programm wurden im Sekundentakt die anderen Messwerte und das Statuswort vom Osziloskop abgefragt, wodurch die Triggerung erkannt wurde, und sowas brauche ich nun in LabVIEW für die oben beschriebene Hardware.
Im Momment versuche ich in einem VI mit einem analogen Eingang herauszufinden, wie ich an die Triggerung komme. Da meine bisherigen Lösungsansätze gar nichts gebracht haben, ist dort aktuell auch nichts zum Triggerauslesen drin. Ich möchte erstmal in diesem VI den Boolean "getriggert?" zum Zeitpunkt des Triggerns auf True setzen. Die Messung dort ist 10 s lang und hat einen Pretrigger von 1 s. Später werden es mehrere Kanäle sein und viele Konstanten werden von dem Nutzer direkt oder indirekt eingestellt.
Ich hoffe einer von euch hat eine Idee für mein Problem und danke schonmal im vorraus. Ich habe das VI angehängt und nutze hier LabVIEW 14. Da ich aber weiß, dass nicht alle Forumuser 14 oder neue haben, habe ich noch eine Version für LabVIEW 8 hinzugelgt. Allerdings gab es wegen den polymorphen Funktionen Warnungen beim Speichern.
Mit freundlichen Grüßen,
Markus
ich bin zur Zeit dabei ein recht altes C++-Programm für Messungen im Explosionsschutz in LabVIEW neu zu entwickeln. Neben leicht veränderten Funktionen wurde auch beschlossen, dass das Osziloskop durch ein "NI cDAQ-9178" mit "NI 9222 (BNC)"-Modulen zu ersetzen. Auch sollen später noch Module zum Messen der Temperatur und der Dehnung folgen, die Module wurden aber noch nicht festgelegt.
Allerdings habe ich noch ein Problem mit dem Trigger. Das Triggersignal kommt von einer externen Quelle, weshalb ich den PFI0-Anschluss dafür verwende. Die Triggerung funktioniert auch schon, wie ich es geplant habe. Das eigentlich Problem ist, dass mein Programm von der Triggerung selbst nichts mitbekommt. Es werden nämlich noch weitere Messgeräte angesprochen, die Regelmäßig ausgelesen werden. Die Messwerte von diesen anderen Messgeräten werden dem Nutzer angezeigt und beim Zeitpunkt der Triggerung soll die Werte nicht mehr aktualisiert werden, um sie am Ende der Messung zu speichern.
Außerdem ist die Dauer der einzelnen Messungen sehr unterschiedlich. Die kürzeste Messung ist 50 ms lang, die längste 10 Minuten. Besonders bei den langen Messung soll das Programm nach der Triggerung anzeigen, wie lange die Messung noch läuft. Dadurch merkt der Nutzer auch, dass das Programm bzw. die Hardware auch getriggert hat und es entsteht auch nicht den Eindruck, dass das Programm abgestürtzt ist. Es ist auch notwendig einen Pretrigger zu verwenden, der 10% der Messdauer oder eine Sekunde lang ist( je nachdem was kürzer ist).
In dem C++-Programm wurden im Sekundentakt die anderen Messwerte und das Statuswort vom Osziloskop abgefragt, wodurch die Triggerung erkannt wurde, und sowas brauche ich nun in LabVIEW für die oben beschriebene Hardware.
Im Momment versuche ich in einem VI mit einem analogen Eingang herauszufinden, wie ich an die Triggerung komme. Da meine bisherigen Lösungsansätze gar nichts gebracht haben, ist dort aktuell auch nichts zum Triggerauslesen drin. Ich möchte erstmal in diesem VI den Boolean "getriggert?" zum Zeitpunkt des Triggerns auf True setzen. Die Messung dort ist 10 s lang und hat einen Pretrigger von 1 s. Später werden es mehrere Kanäle sein und viele Konstanten werden von dem Nutzer direkt oder indirekt eingestellt.
Ich hoffe einer von euch hat eine Idee für mein Problem und danke schonmal im vorraus. Ich habe das VI angehängt und nutze hier LabVIEW 14. Da ich aber weiß, dass nicht alle Forumuser 14 oder neue haben, habe ich noch eine Version für LabVIEW 8 hinzugelgt. Allerdings gab es wegen den polymorphen Funktionen Warnungen beim Speichern.
Mit freundlichen Grüßen,
Markus