LabVIEWForum.de - zeitgesteuerte Messwertaufnahme

LabVIEWForum.de

Normale Version: zeitgesteuerte Messwertaufnahme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Mahlzeit ... Tongue

Ich arbeite gerade an einer Softwäre für ein Messerfassungssystem.
Über die USB-Schnittstelle werden Daten von einem Versuchstand übertragen. Die Daten stehen in einem Array. Jede Zeile entspricht einem Kanal. Jeder der insgesamt 16 Kanäle soll einzeln überwacht werden.

Die Bedingung ist: sobald Werte >0 durchs Array kommen [eine Triggerbedingung wurde erfüllt... A/D Aufnahme wird gestartet} soll eine Aufnahme des jewiligen Kanals für einen vorher festgelegten Zeitraum stattfinden [die Daten werden in ein TDM-File geschaufelt] !

Das Problem an dem ich festhänge: Die Aufnahme des überwachten Kanals liegt in einem Case. Wie kann ich es realisieren (mit geringem Aufwand) das ein Schalter oder so, sobald Daten fließen, für einen durch den Benutzer eingegebenen Zeitraum (z.B. 10 sec) das Case aktiviert. Die Daten werden dann für diese Zeit ins TDM - File geschrieben. Wenn die Zeit abgelaufen ist, geht der Schalter sofort wieder auf False und die Aufnahme ist beendet (jedenfalls für diesen Kanal) !!!! ????

Kurz: Der Schalter soll also für den jeweils vorgegebenen Zeitraum [eingegeben durch den Benutzer] (sobald Werte durchs Array kommen = Startbedingung) True sein und dann auf False gehen.

Wenn irgend jemand evtl. eine Idee hat wie ich das so schlank wie möglich realisieren könnte wäre das echt supi Idea
Du brauchts dazu ein vi, welches man, wenn es sich um eine Hardware-Schaltung handeln würde, als "Monoflop" bezeichen würde. Im allereinfachsten Fall hat man nur einen Eingang und einen Ausgang. Mit dem Eingang wird getriggert, und der Ausgang bleibt darufhin bis zum Ende der Ablaufzeit auf High. Man unterscheidet einfache und retriggerable Monoflops. Bei den einfachen Monoflops endet die Ablaufzeit unabhängig davon was am Eingang weiterhin passiert. Bei einem retriggerablem Monoflop wird die Ablaufzeit bei jedem weiteren Triggerimpuls wieder auf den vollen Anfangswert gesetzt.
Eigentlich müßte das Express VI "Verstrichene Zeit" bzw. "Timer" so eine Funktion leisten, ich bin mir aber da nicht sicher.
Auf alle Fälle habe ich mal ein ganz einfaches Monoflop gemacht. Das Kernstück ist dabei ein nichtinitialisiertes Schieberegister, welches sich Werte zwischen zwei Aufrufen merken kann. Dieses VI läßt sich nur testen, indem man es von einem Hauptprogramm aus aufruft. Deshalb poste ich 2 Programme. Also: Haupt-Prog starten, Triggerschalter betätigen und sehen was passiert.

Ludwig

Editiert: Jetzt abgespeichert als V 7.1
Zitate aus Deiner PM:

Zitat:Problem ist nur die Abfrage zu realisieren (True sobald im Array ein Wert größer 0) !!!
siehe Start Massung.png

[quote]Ein weiters Problem ist, dass man beim Beispielprogramm den Trigger nach Ablauf nochmal drücken kann und die Prozedur läuft wieder ab. WIE kann man es denn
Supi und Danke ... jetzt funzt die ganze Sache Lol
Hallo,

gibt es auch eine Möglichkeit dieses Monoflop (das erste) durch eine Boolsche 1 (Ausgang einer & Verknüpfung) zu starten welche länger anliegt? (eventuell Flankengesteuert)
Bei der hier vorliegenden Schaltervariante wird es erst gestartet wenn man den Schalter wieder los lässt!

Gruß

Micha
Referenz-URLs