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!
ich hab ein kleines Problem. Ich benötige eine Stringvergleich der Daten nur bei simultanen String die Daten verarbeitet. Im Anhang hab ich mein vi. In Rahmen 8 ist eine Telefonnummer hinterlegt. Auf diese Nummer gibt es einen Antwortstring. Und erst wenn ich diese Antwort bekomme, möchte ich die darauffolgenden Rahmen abarbeiten. Bis jetzt ging das mit der Zeitverzögerung ganz gut. In der Praxis ist aber leider das Problem aufgetreten, dass das Telefon manchmal nicht abgehoben wurde, und somit nach Ablauf (30000) die Daten trotzdem geschickt wurden. Diese Prüfung soll in einer Schleife ablaufen, die nach ca. 30 Sek. einen Fehler ausgibt "antwortet nicht" und den Port wieder schließt.
Vielleicht kann mir der eine oder andere bei diesem Problem helfen.
Rückfrage:
Verstehe ich richtig: Wenn nach 30 Sekunden das darauffolgende "Bytes at Serial Port" im Rahmen 8 noch auf 0 steht und keine Antwort liefert, ist ein Fehler aufgetreten?
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Da hast Du Dich leider in einer falschen Struktur verfangen: Bei einer Sequnzstruktur ist es nicht möglich, in Abhängigkeit von irgenswelchen Resultaten in Rahmen 8 Rahmen 9 abzuarbeiten oder auch nicht. Wandel das erst mal in eine State-machine-Struktur um. Dann ist das auf einmal ganz leicht zu machen. Wenn Du damit nicht klar kommst, melde Dich noch mal.
Jens, genau so ist es. Mein Problem ist, dass die Daten in den folgenden Rahmen danach auch bei Nichtantwort gesendet werden. Und dann bekomme ich eine Fehlermeldung, das die Daten nicht dem erwarteten String entsprechen. Deshalb muss ich die Antwort im Rahmen 8 mit dem zu erwartenden String verleichen. Und nur dann soll er in Rahmen 9 springen. Und falls der zu erwartende String in Rahmen 8 nicht auftaucht, soll mir der Port nach einer gewissen Zeit mit einer Fehlermeldung geschlossen werden.
' schrieb:Jens, genau so ist es. Mein Problem ist, dass die Daten in den folgenden Rahmen danach auch bei Nichtantwort gesendet werden. Und dann bekomme ich eine Fehlermeldung, das die Daten nicht dem erwarteten String entsprechen. Deshalb muss ich die Antwort im Rahmen 8 mit dem zu erwartenden String verleichen. Und nur dann soll er in Rahmen 9 springen. Und falls der zu erwartende String in Rahmen 8 nicht auftaucht, soll mir der Port nach einer gewissen Zeit mit einer Fehlermeldung geschlossen werden.
Dann nimm ein = oder ungleich aus der Vergleichspalette und vergleiche einfach.
Dann noch Hinweis von Lucki einbauen (State-Machine anstatt reiner Sequenz), fertig.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
' schrieb:Hab mir nun mal die ganzen State Machine Bsp. angeschaut. Ist das eine geschachtelte Sequenz??? Oder was ist das????
Wie bitte? Ne, nicht gut genug angeschaut (kein Wunder, waren ja auch nur 10 Minuten...). Öffne mal ein neues VI unter File->New..., da bekommst du ebenfalls eine State-Machine als Template vorgeschlagen.
Das ist ein Case-Strukur innerhalb einer While-Schleife. Im einfachsten Fall gehst du einfach der Reihe nach durch deine Cases, dann hast du einen Ersatz für eine Sequenz. Vorteil: Du kannst aber auch Schritte überspringen oder in einem Fehlerfall einfach die While-Schleife beenden.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Irgendwie versteh ich das ganze hier nicht so richtig. Wie soll ich denn einfach meine Struktur in eine State Machine wandeln??? Was ich auch nicht verstanden habe, in der Highlightfunktion wird jeder Rahmen nacheinander abgearbeitet. Weshalb kann ich ihm nun nicht einfach eine Bedingung in Rahmen 8 stellen??? Hier wird doch nichts paral. verarbeitet!!!