![]() |
Befehl zeitverzögert n-mal ausführen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Befehl zeitverzögert n-mal ausführen (/Thread-Befehl-zeitverzoegert-n-mal-ausfuehren) |
Befehl zeitverzögert n-mal ausführen - Mistertwister - 18.04.2016 15:42 Hallo miteinander! Ich habe folgendes Problem. Ich möchte, wenn ich den Stop-Button betätige, dass dieser Befehl alle 10 ms 5 mal hintereinander ausgeführt wird. Ich wollte eigentlich eine for-Schleife benutzen aber diese führt das 5 mal aus und dann kommt der befehl erst. Ich bin für jeden Tipp dankbar. RE: Befehl zeitverzögert n-mal ausführen - Freddy - 18.04.2016 15:49 Zitat:wenn ich den Stop-Button betätigeWelchen STOP Button? Es ist hilfreich wenn Du Dein VI-Versuch anhängst. ![]() Und die Beschreibung etwas detalierter ![]() Gruß Freddy RE: Befehl zeitverzögert n-mal ausführen - GerdW - 18.04.2016 15:49 Hallo Twister, welcher Stop-Button? Welcher Befehl? Zitat:Befehl alle 10 ms 5 mal hintereinander ausgeführt wird.Nimm eine FOR-Loop, die 5mal iteriert. In der Loop den Befehl versenden und 10ms warten… Zitat:Ich wollte eigentlich eine for-Schleife benutzen aber diese führt das 5 mal aus und dann kommt der befehl erst.Dann machst du etwas erst nach der Schleife und nicht innerhalb. THINK DATAFLOW! Zitat:Ich bin für jeden Tipp dankbar.Sinnvolle Beiträge schreiben. Beispiel zeigen, am besten VIs! Ein Bild sagt mehr als 1000 Worte… ![]() RE: Befehl zeitverzögert n-mal ausführen - Mistertwister - 18.04.2016 16:11 Tut mir leid für die recht magere Information. Es ist so, ich möchte einen Messvorgang durch einen Betätigen eines Buttons beenden. Dieser Befehl soll dann sagen wir 5 mal alle 10 ms gesendet werden. Der Button ist bei mir als boolsch ausgelegt, also sollte das ganze nur ablaufen, wenn TRUE als betätigt wird. Dementsprechend möchte ich den Befehl auch als boolschen Wert weiterleiten, da dieser auf eine case-Struktur weitergegeben wird. Ich habe mal meinen VI-Versuch angehängt. Ich bin leider recht frisch in der Materie also verzeiht mir die Fehler. Durch die Indizierung bekomm ich den Wert immer erst nachdem die Schleife n mal durchgelaufen ist. RE: Befehl zeitverzögert n-mal ausführen - GerdW - 18.04.2016 17:41 Hallo Twister, Zitat:Dieser Befehl soll dann sagen wir 5 mal alle 10 ms gesendet werden.Wenn du etwas in einer Schleife erledigen willst, dann musst du diesen Programmteil auch innerhalb einer Schleife programmieren!!! Momentan macht deine Schleife nichts weiter als 3 mal zu warten, um dann (danach!) den boolschen Wert weiterzugeben. Du willst do innerhalb der Schleife den Wert ausgeben, oder? So macht man das: [attachment=55683] Wie und wo soll dieser Befehl eigentlich ausgegeben werden? Und warum braucht ein Gerät einen Stopp-Befehl gleich 5mal innerhalb von 50ms??? ![]() RE: Befehl zeitverzögert n-mal ausführen - Mistertwister - 19.04.2016 08:11 Vielen Dank schon mal für die Hilfe. Es ist so. Ich kommuniziere mit einem Sensor über die serielle Schnittstelle RS485. Die Leitung ist aber nicht als twisted-pair ausgeführt und hat einige 100 m. Dieser Stop-Befehl dient dem Stoppen des Messvorgangs. Da ich mit Halbduplex arbeite und bedingt durch die recht lange Leitung, bekommt der Sensor diesen Befehl bei einmaligen Betätigen manchmal nicht mit, da der Bus in dem Moment gerade belegt ist, weil er Messdaten an den PC sendet (Messdaten kommen, sobald dies der Sensor intern signalisiert). Die Dauer und Anzahl des Betätigen habe ich nur als Beispiel gewählt. Im realen Einsatz soll dieser Stop-Befehl 5 mal alle 1 ms gesendet werden, wenn ich den Button betätige. Damit kann ich ja eigentlich sicherstellen, dass der Befehl irgendwann über die Leitung an den Sensor weitergeleitet wird, wenn der Bus gerade nicht belegt ist. Hoffentlich ist es verständlich genug formuliert. RE: Befehl zeitverzögert n-mal ausführen - GerdW - 19.04.2016 10:44 Hallo Twister, dann mach es einfach so wie oben gezeigt: IN DER SCHLEIFE den Stop-Befehl 5mal senden… Zitat:Im realen Einsatz soll dieser Stop-Befehl 5 mal alle 1 ms gesendet werdenIch weiß ja nicht, wieviele Bytes der Stop-Befehl umfasst und welche Baudrate du verwendest (bei 100m Kabel), aber 1ms erscheint mir etwas knapp… |