INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Triggern und Meßdaten loggen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

16.04.2007, 18:46
Beitrag #1

canix Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 87
Registriert seit: Mar 2007

Labview8.2 / Studnik-Version 8.0.1
2007
kA

44807
Deutschland
Triggern und Meßdaten loggen
Hallo,

wie an anderer Stelle bereits angedroht, benötige ich Euren Rat!

Kurz umrissen:

In meinem Messprogramm (Meßturm_MAIN.vi) habe ich eine While-Schleife + Metronom (50msec). Ich überwache Meßkanäle und warte auf Triggerbedingungen (Zeit od. Wertüberschreitung). Im Triggerfall werden die eingehenden Meßdaten alle 250msec weggespeichert. Liegt keine Triggerbedingung vor nur alle 10sec.

Meine Lösung: Ich nutze die Schleifeniteration und schreibe die Meßdaten entweder jeden 5ten Schleifendurchlauf weg (5*50msec=250msec) oder nur jeden 200ten Schleifendurchlauf (200*50msec=10sec) - mit Hilfe einer Modulofunktion.

Ein Arbeitskollege sagt, daß das ganz großer Mist wäre! Seine Begründung, meine Schleife könnte gegebenenfalls viel länger dauern als 50msec und damit könnte ich meine Vorgaben nicht einhalten. Stimmt Ihr ihm zu?

Damit man sich die Sache besser vorstellen kann, poste ich mein (noch unfertiges) Meßprogramm an dieser Stelle. Ich fange noch nicht alle Fehler ab, wenn man aber nicht zweimal denselben Kanal einrichtet, sollte man keine Probleme kriegen. Man kann Alternativ auch den Default.ini File laden.

[attachment=32731:Messturm.zip]

Ich benutze die simulierte NI PCI 6229 Karte und nenne das Device "Dev2"

Wäre Euch für kritische Anmerkungen sehr dankbar.

Gruß
Jens

Hinweis: Meine Lösungsvorschläge sind immer mit Vorsicht zu geniessen! Es gibt vermutlich wesentlich elegantere Ansätze. Ich poste dennoch, da ich mir auf diese Weise das entsprechende Feedback erhoffe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.04.2007, 22:03 (Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2007 22:05 von eg.)
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Triggern und Meßdaten loggen
Hallo Jens,

als Erstes wollte ich sagen, dass ich mich mit DAQ nicht so gut auskenne.
Zu deiner Frage kann ich aber etwas sagen. Lass deinen Kollege das nachlesen:

Waits until the value of the millisecond timer becomes a multiple of the specified millisecond multiple. Use this function to synchronize activities. You can call this function in a loop to control the loop execution rate. However, it is possible that the first loop period might be short. Wiring a value of 0 to the milliseconds multiple input forces the current thread to yield control of the CPU. This function makes asynchronous system calls, but the nodes themselves function synchronously. Therefore, it does not complete execution until the specified time has elapsed.

Und das:

Waits the specified number of milliseconds and returns the value of the millisecond timer. Wiring a value of 0 to the milliseconds to wait input forces the current thread to yield control of the CPU. This function makes asynchronous system calls, but the nodes themselves function synchronously. Therefore, it does not complete execution until the specified time has elapsed.

Du benutzt die erste davon. Soweit ich es versten habe, versucht die erste Fkt, das Timing in der Schleife zu halten, solange die Ausführung nicht länger als die eingestellte Zeit dauert. Die zweite dagegen, wartet die eingestelle Zeit, egal was die Ausführung im Loop dauert. ABER ich kann mich irren. Mir war die Zeit nie so wichtig, da das Zeitverhalten im Windoof unterschiedliches Verhalten aufweist und ist trotz aller Mühe nicht vorhersagbar ist.

Du könntest aber auch die Zeit messen mit Tick Count und vergleichen, ob du bessere Ergebnisse rauskriegst ist auch fraglich.

Sag deinem Kollege noch, dass man mit LV fast genauso gut programmieren kann, wie mit anderen Programmiersprachen, mit wenigen Ausnahmen. Diese Ausnahmen haben aber nichts mit dem Zeitverhalten zu tun. Dafür programmiert man LV halt viel schneller.

eg

P.S. vergiss nicht das Dataflow Principle

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2007, 08:07 (Dieser Beitrag wurde zuletzt bearbeitet: 17.04.2007 08:20 von canix.)
Beitrag #3

canix Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 87
Registriert seit: Mar 2007

Labview8.2 / Studnik-Version 8.0.1
2007
kA

44807
Deutschland
Triggern und Meßdaten loggen
Hallo Eugen,

danke für die schnelle Antwort!

' schrieb:Du benutzt die erste davon. Soweit ich es versten habe, versucht die erste Fkt, das Timing in der Schleife zu halten, solange die Ausführung nicht länger als die eingestellte Zeit dauert.
' schrieb:Du könntest aber auch die Zeit messen mit Tick Count und vergleichen, ob du bessere Ergebnisse rauskriegst ist auch fraglich.
Wenn ich also dafür Sorge trage, daß meine Ausführungen in der Schleife <50msec dauern, ist das Betriebssystem der einzige Risikofaktor, um meine Vorgaben (250msec, 10sec) vielleicht nicht einhalten zu können? Das gleiche Problem hätte ich dann ja auch beim Tick Count o.ä.. Die Argumentation meines Kollegen, ging wohl auch mehr dahin, daß ich vielleicht später meine Schleife um irgendeine Funktionalität erweitern will/muß und dadurch mein Timing in Gefahr geraten könnte. Allerdings kann ich die Dauer der Schleifendurchgänge messen und sehe dann ja, ob es kritisch wird - sollte sich schliesslich auch abfangen lassen. In erster Linie will ich allerdings versuchen timing-kritische, dynamische Vorgänge zu vermeiden...

Eine parallele Schleife, die z.B. über Melder die Daten aus der Mess-Schleife erhält (meinetwegen zur Anzeige im Graphen), hat doch keinen Einfluß auf das Timing in meiner Mess-Schleife oder?

' schrieb:P.S. vergiss nicht das Dataflow Principle
Was ist das?! ;-) Hab ich das irgendwo vernachlässigt?

Gruß
Jens

Hinweis: Meine Lösungsvorschläge sind immer mit Vorsicht zu geniessen! Es gibt vermutlich wesentlich elegantere Ansätze. Ich poste dennoch, da ich mir auf diese Weise das entsprechende Feedback erhoffe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2007, 09:16
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Triggern und Meßdaten loggen
' schrieb:Eine parallele Schleife, die z.B. über Melder die Daten aus der Mess-Schleife erhält (meinetwegen zur Anzeige im Graphen), hat doch keinen Einfluß auf das Timing in meiner Mess-Schleife oder?
Jawohl, guter Ansatz.

' schrieb:Was ist das?! ;-) Hab ich das irgendwo vernachlässigt?
Ja, du musst die Reihenfolge
Programmausführung in der Schleife <-> Warten
beachten. Zur Zeit kann es passieren, dass LV im ersten Schleifendurchlauf wartet und dann den Rest ausführt und im zweiten Schleifendurchlauf zuerst die Operationen in der Schleife ausführt und dann wartet.

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Digital-Out togglen, abhängig von zwei Triggern PeteFlosse 4 4.054 25.01.2018 16:10
Letzter Beitrag: PeteFlosse
  Triggern bei Spannungsänderung bundesschranzminister 2 3.852 21.09.2017 16:40
Letzter Beitrag: bundesschranzminister
  Digitalausgabe überschreiben und triggern thomasth 1 3.248 15.12.2015 23:35
Letzter Beitrag: thomasth
Question Triggern von Kamera und DAQ-Gerät über RTSI brlu 0 2.925 26.08.2014 11:31
Letzter Beitrag: brlu
  DAQ triggern // Wie schnell ist "Commit"? Gibt es Alternativen? Kasi 1 3.612 29.07.2013 09:18
Letzter Beitrag: BNT
  Triggern regis57 2 4.027 14.08.2012 10:26
Letzter Beitrag: regis57

Gehe zu: