kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung
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!
kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung
Hallo zusammen,
ich habe momentan folgendes Problem und bislang noch nichts dazu im Forum gefunden.
Das liegt wahrscheinlich auch daran, dass ich mein Problem nicht wirklich präzise beschreiben kann.
Ich versuche Messwerte kontinuierlich mit ca 300ms von einem Messmittel und einem Referenzgerät Messdaten abzufragen und gleichzeitig in einem Intervall (größer als 300ms) die Eingangsdaten zu verändern. Wenn ich das mit den üblichen "Vielfache von warten" versuche bleibt mein Main VI immer die Wartezeit des SubVIs stehen und pollt keine Messwerte.
Für die Reportfunktion des Programms habe ich einen Vergleich mit dem Zeitstempel gemacht, der mir dann bool-true ausgibt und dann die Messwerte in eine Tabelle schreibt, allerdings habe ich da die Auswahl stark begrenzt, was für die eigentliche Funktion nicht geht, da die Intervalle frei einstellbar sein sollen.
Habe ich nur einfach irgendwo eine Funktion übersehen, die es erlaubt eine Main-Schleife schnell laufen zu lassen und dann in konfigurierbaren Zeitintervallen "Interrupts" zu erzeugen?
RE: kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung
Hallo Sick,
Zitat:Habe ich nur einfach irgendwo eine Funktion übersehen, die es erlaubt eine Main-Schleife schnell laufen zu lassen und dann in konfigurierbaren Zeitintervallen "Interrupts" zu erzeugen?
Wahrscheinlich hast du einfach ein ungünstiges Programmierschema (oder vielleicht gar keines) gewählt.
Mit einer StateMachine (queue driven, event driven) ließe sich sowas jedenfalls sehr leicht erledigen...
RE: kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung
Hallo Gerd,
danke für die schnelle Antwort. Ich habe derzeit eine Eventstruktur am laufen, in deren Timeout Case ich ca 60 Messwerte über Modbus TCP und .Net DLL polle.
Allerdings wüsste ich jetzt nicht wie ich ein Event erzeuge, das nach einer gewissen Zeit einen Wert toggelt.
Und wenn ich eine State Machine dafür schreibe, dann müsste ich doch zwischen dem Schieben auch warten?!
Ich tendiere schon dazu eine For-Schleife mit definierter Wartezeit von ca 10ms x-mal durchlaufen zu lassen und den Schleifenzähler abzufragen und mir damit ein Event zu generieren, aber ich vermute das ist die "von hinten durch die Brust ins Auge"-Variante...
RE: kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung
Hallo zusammen,
Ich habe jetzt mal die For-Schleifen-Variante durchprobiert, allerdings ist der Messwert träger als das Referenzsignal und die Quellen, die die Vorgabe in Spannung umsetzen sind auch etwas träge, so dass der Umschaltmoment nicht ausreicht um vernünftige Werte zu liefern. Ich habe mal ein kleines VI angehängt, dass hoffentlich mein Problem verdeutlicht.
RE: kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung
Hallo GerdW,
ich kann leider nicht das original VI hochladen, da mir dann mein Chef den Hals umdreht. Das Problem ist, dass es sich um eine Spannungsmessung handelt und sowohl die Spannungsquellen (die ich steuere), als auch das Messgerät relativ träge sind. Ich möchte also alle x-Sekunden einen anderen Wert vorgeben, in dem Fall togglen und gleichzeitig die Messwerte von Referenzmessgerät und Messgerät abholen und vergleichen.
Mein Problem dabei ist nun, dass sich die Messwerte nur dann ändern, wenn die Schleife für den Toggle im Umbruch ist und neu startet. Ich habe also keine "laufenden" Messwerte, sondern nur Momentaufnahmen, die aufgrund der Trägheit von Quellen und Messmittel verfälscht sind.
Die Messwerte hole ich mir wie gesagt über TCP und habe deshalb nur Anzeigeelemente eingefügt. Die Vorgabe geht dann weiter auf den GPIB Adapter.
Ich stelle mich wahrscheinlich einfach nur zu blöd an mein Problem richtig zu beschreiben.
RE: kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung
Hallo Sick,
mein (Standard-)Ansatz bei solchen Problemen ist der Einsatz einer FGV zum Speichern der diversen Messwerte.
In der FGV werden immer die aktuellsten Messwerte vorgehalten und stehen damit für beliebige Aufrufer bereit.
Vielleicht solltest du über ein solches Konzept nachdenken - es entkoppelt die diversen Schleifen zum Abfragen/Steuern von Hardware...
RE: kontinuierliche Messwertabfrage und gleichzeitige x-sekündliche Wertänderung
Hallo GerdW,
danke für den Hinweis mit den FGVs. Ich habe mich dann mal drüber schlau gemacht und in einigen Beispiel VIs ist es mir dann wie Schuppen von den Augen gefallen.
Einfach mal versuchen 2 while-Schleifen parallel laufen zu lassen...
Manchmal sieht man den Wald vor lauter Bäumen nicht, vielen Dank für die Mühe mit mir.