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!
27.10.2009, 09:40 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2009 11:16 von jg.)
ich möchte in einer State-Machine in einem Case auf einen Eingang (Lokale Variable) warten.
Wenn die Zeit des Verzögerungsgliedes abgelaufen ist in den nächsten Case springen und eine Fehlermeldung ausgeben.
Sollte während der Wartezeit aber der Eingang "True" werden, möchte ich in einen anderen Case springen.
Soweit funktioniert das auch. Allerdings fängt die Zeit des Wartegliedes nicht immer bei 0 an, daher sind die Zeiten sehr unterschiedlich
und sehr ärgelich, wenn die Meldung z.B. schon nach 1 Sekunde kommt statt nach eingestellten 10s. Die Einstellung "Automatisches Rücksetzen" ist gesetzt,
sonst funktioniert es gar nicht, da die Komponente nie zurückgesetzt wird.
Ich habe hier leider ein Express-VI benutzt, da es mir mit anderen Zeitkomponenten nicht gelungen ist. Die anderen Komponenten
für eine Verzögerung ließen sich durch den True-werdenden Eingang nicht unterbrechen.
Wie kann ich also sicherstellen, dass die Zeit immer von Null-beginnt?
bzw. welche elegantere Lösung gibt es für ein solches Problem?
Blende mal den Rücksetz-Eingang ein...und wenn du das erste mal in den Case kommst, sagst du hier TRUE...überprüfen kannst du das, in dem du per Schieberegister prüfst, ob der vorhergehende Schritt der gleiche war oder nicht!
PS: Ich empfehle dir für ne StateMachine Enums anstelle von Strings...damit vermeidest du Tippfehler in den Case-Namen!
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Wartezeit - Abbruch durch Case-Struktur
.... und die bitte als TypeDef, falls Du später mal was ändern möchtest (neuer State einfügen,...).
Gruß Markus
' schrieb:Ich empfehle dir für ne StateMachine Enums
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
27.10.2009, 11:01 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2009 11:16 von jg.)
danke für Eure Tipps, habs in der Art und Weise von Achim umgesetzt. Funktioniert soweit.
Dachte, dass es da evtl noch was komfortableres gibt, denn die Express-Vi´s sind ja glaub ich bei den Profis nicht so beliebt.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Wartezeit - Abbruch durch Case-Struktur
Hast Du Dein Enum als TypeDef definiert?
Gruß Markus
' schrieb:danke für Eure Tipps, habs in der Art und Weise von Achim umgesetzt.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------