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!
(03.07.2019 15:48 )Natalie1984 schrieb: ich versuche die ganze Zeit mit allen unterschiedlichen Timern was Labview anbietet, einen Timer wie in VS zu bauen.
Der "Timer" wie in VB (VS?) ist ja auch objekt-orientiert. In LabVIEW muss du was Datenfluss-taugliches machen.
Du kannst den Timeout-Case einer Event-Struktur verwenden oder einen Metronom in While-Schleife mit Case-Anweisung.
Wie sehen denn deine Versuche aus? Bitte Muster VI posten, dann ist die Hilfe einfacher.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
ich möchte einfach einen Timer starten, in der dann eine Task in einer bestimmten Zeit ausgeführt wird.
Dieser Timer muss auch dann wieder abschaltbar sein.
Die APIs sind mir zu viel. Ich meine, für das was ich vor habe, denke ich das die einfach zu komplex sind.
Zitat:ich möchte einfach einen Timer starten, in der dann eine Task in einer bestimmten Zeit ausgeführt wird.
Im Timer soll ein "Task" "in einer bestimmten Zeit" "ausgeführt" werden?
Wie genau soll das vonstatten gehen?
Soll der Timer ein Flag nach einer gewissen Zeit setzen? Nimm ElapsedTime…
Soll der Timer dafür sorgen, dass ein anderer "Task" nur "eine bestimmte Zeitdauer lang" laufen soll? Nimm ElapsedTime und nutze dessen Ausgang als Flag für diesen "Task"…
Kannst du deine Aufgaben nochmal genauer erläutern?
Zitat:Dieser Timer muss auch dann wieder abschaltbar sein.
Dann nimm einen zweiten Button hinzu, den man (z.B.) mit Enable beschriftet und auch so benutzt…
Wie Gerd schon sagt, müsstest du deine Anforderungen genauer spezifizieren.
Schau dir mal das Rubber Duck Debugging an. Algorithmen zu programmieren, die man sprachlich nicht ausdrücken kann ist sehr schwierig. Je genauer du formulieren kannst, was wie geschehen soll, desto eher kannst du es auch selbst umsetzen.
Musst du Code/ein VI alle x ms ausführen und diese wiederholte Ausführung starten und stoppen können? Dann wäre folgendes Beispiel, wie man das Timeout Event zum Timing nutzen kann, evtl. etwas für dich. Der ON-Button startet die wiederholte Ausführung des Timeout Cases, der Off-Button beendet diese wieder.
04.07.2019, 12:49 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2019 12:51 von IchSelbst.)
Du muss dich mal lösen von den Programmiermethoden, wie sie in VB verwendet werden. In VB hast du vorgefertigte Objekte, eines davon ist ein Timer. Dieser Timer macht zyklisch einen asynchronen Interrupt (das ist der "Tick") in deine Applikation. Das schöne an den vorgefertigten Objekten ist, dass man als Programmierer fast keinen Aufwand hat: Komponente platzieren; Doppelklick -> "Tick"-Funktion generieren; Algorithmus für Tick schreiben; Timer enablen - fertig.
In LabVIEW geht das nicht. Besonders die Sache mit dem asynchronen Interrupt gibt es mit Standardmitteln in LabVIEW nicht. Am nähesten an dein VB-Verfahren käme eine Windows-System-.NET-DLL-Timerfunktion mit einem Callback, so wie du ihn mit deinem YMTCP gemacht hast - das ist aber nicht Sinn und Zweck unter LabVIEW.
Das nächste, was in LabVIEW nicht geht, ist, dass du wahlfrei auf irgendwelche Variablen schreiben kannst. In LabVIEW gibt es nämlich solche Variablen (eigentlich) nicht.
In LabVIEW machst du folgendes:
Nimm eine While-Schleife, platziere eine Event-Struktur hinein und stell den Timeout der Event-Struktur auf den Wert deines Ticks. In den Timeout-Case schreibst du deinen Tick-Algorithmus. Enablen und disabeln kannst die diesen Timer, indem du den Algorithmus im Timeout-Case in eine IF-Sequenz legst, die du von außen steuern kannst.
Nachtrag:
Seuk hat dir mal ein Muster gemacht.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).