LabVIEWForum.de
case structure: die einzelnen cases programatisch auflisten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: case structure: die einzelnen cases programatisch auflisten (/Thread-case-structure-die-einzelnen-cases-programatisch-auflisten)



case structure: die einzelnen cases programatisch auflisten - gottfried - 17.09.2012 16:59

Hallo,

ich habe eine große State Machine und möchte eine Liste der Cases produzieren. Früher habe ich einfach die Case Strktur oben angeklickt und dann einen Screen-Dump gemacht ... nicht schön. Nun sind aber die States mehr als auf einen Bildschirm gehen.

Also kann man irgendwie eine Liste mit den States programatisch erzeugen?

Danke

Gottfried


RE: case structure: die einzelnen cases programatisch auflisten - GerdW - 17.09.2012 17:04

Hallo Gottfried,

wie jede gute (und große) Statemachine wirst du deine doch wohl auch mit einem (typdefinierten) Enum ansteuern. Von diesem Enum gibt es eine Property namens "Strings[]", die man wunderbar auslesen kann. Falls du kein Enum verwendest: selbst schuld Big Grin

Ansonsten bleibt dir immer noch LV-Scripting, um auf die Cases einer Case-Struktur zuzugreifen. Habe ich aber noch nicht mit gearbeitet...


RE: case structudie einzelnen cases programatisch auflisten - Achim - 18.09.2012 06:25

(17.09.2012 16:59 )gottfried schrieb:  Früher habe ich einfach die Case Strktur oben angeklickt und dann einen Screen-Dump gemacht ... nicht schön. Nun sind aber die States mehr als auf einen Bildschirm gehen.

Offtopic2

Hi gottfried,

das ist ja an sich schon mal sub-optimal...Spätestens wenn das passiert, solltest du dir Gedanken darüber machen, die State Machine abzuspecken und in kleinere Teil-Maschinen zu bündeln. Dazu kann man ja problemlos die States (Enum!) der darüber liegenden Hauptmaschine verwenden. Solche riesigen Zustandsautomaten sind ja nur noch schwer zu überblicken, und auch unübersichtlich bei der Wartung und Erweiterung.

Als Beispiel nenne ich mal eine mechanische Ablaufsteuerung...da könnte man z.B. den Teilablauf "Grundstellungsfahrt" als einen State der Haupt-Maschine definieren und in ein SubVI (mit innerer State Machine) packen, und dann wird das SubVI Grundstellungsfahrt innerhalb der Haupt-Maschine so oft durchlaufen, bis es am Ende "fertig" meldet und dann z.B. auf den Haupt-Maschinen-State "Idle"/"Warte auf Bediener" gewechselt wird.

Gruß
Achim


RE: case structure: die einzelnen cases programatisch auflisten - gottfried - 18.09.2012 08:48

Hallo,

ich hatte mich vor Jahren in die JKI State Machine verliebt .... und da geht das wohl nicht. Einmal hat mir jemand von Euch gesagt, er mag die JKI nicht aber ich habe auf meine Frage "Warum" keine Antwort gelesen.

OK, könnt Ihr mir eine Teplate empfeheln?

Danke

Gottfried


RE: case structure: die einzelnen cases programatisch auflisten - Achim - 18.09.2012 09:12

Hi Gottfried,
"isch 'abe gar kein Template..."

Das ist m. E. aber auch vollkommen überflüssig! Wie lange braucht man denn, um sich eine neue Maschine zusammen zu klicken? Die von JKI ist ja auch String-basierend, richtig? Das ist nix für mich, viel zu (Tipp-) Fehler-anfällig...

Ich überlege mir vorher in etwa, welche Zustände ich wohl benötige. Die hacke ich dann in ein Enum rein und mache daraus ein StrictTypeDef. Und das schließe ich dann einfach an die Case-Struktur an...und fertig ist die Grundstruktur! Die sieht bei mir meist so aus:

[attachment=41561]

Gruß
Achim