LabVIEWForum.de
case in state machine hinzufügen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: case in state machine hinzufügen (/Thread-case-in-state-machine-hinzufuegen)



case in state machine hinzufügen - Shieva - 11.09.2015 16:08

Hallo,
ich habe eingentlich ein sehr einfaches Problem. Ich habe vor einiger Zeit eine state machine gebastelt und muss nun zu dieser ein paar neue cases hinzufügen. Allerdings stellt sich das nun doch etwas schwieriger heraus, als es eigentlich sein sollte.

Wenn ich auf meiner enum constant rechtsklicke und mittels "edit Items..." neue cases definieren will, übernimmt er mir diese nicht in meine case structure. Labview ändert stattdessen in der case structure die cases in Zahlen (womit ich noch leben kann wenn diese der digital display meiner Items sind), fügt aber auch nicht die neuen events hinzu.
Laut Labview Hilfe (http://digital.ni.com/public.nsf/allkb/CB2A432E1E0D6EE086257746006C9EB3 ;EDIT:gerade gesehen der link funktioniert leider nicht aus dem Forum; einfach auf der Seite nach der Document-ID 5AHDOEQL suchen) muss ich in meinem Fall auch meine enum als type def custom control definieren. Wenn ich nun auf meine enum rechtsklicke finde ich aber den button "Make TypeDef" nicht wie in der Hilfe beschrieben.
Ich habe mal dem code angehängt (2010), wobei ich alles unwichtige gelöscht habe und nur die state machine mit den events dringelassen hab.

Hoffe man kann mir helfen, da ich denke dass ich einfach nur was ganz grundlegendes falsch mache.
LG


RE: case in state machine hinzufügen - Trinitatis - 12.09.2015 23:55

(11.09.2015 16:08 )Shieva schrieb:  Wenn ich nun auf meine enum rechtsklicke finde ich aber den button "Make TypeDef" nicht wie in der Hilfe beschrieben.

Hallo Shieva,

ich weiß nicht, wie es in LV2010 ist. In älteren Versionen (z.B. 8.0) muss man auf den Rechts-Menüpunkt Fortgeschritten --> Anpassen gehen und kann dort die TypDef erstellen und speichern.

Gruß, Marko


RE: case in state machine hinzufügen - jg - 13.09.2015 17:21

Das Feature Rechtsklick -> Make Type Def gibt es erst seit lv12_img

Gruß, Jens


RE: case in state machine hinzufügen - NoWay - 14.09.2015 09:26

(11.09.2015 16:08 )Shieva schrieb:  Wenn ich auf meiner enum constant rechtsklicke und mittels "edit Items..." neue cases definieren will, übernimmt er mir diese nicht in meine case structure. Labview ändert stattdessen in der case structure die cases in Zahlen (womit ich noch leben kann wenn diese der digital display meiner Items sind), fügt aber auch nicht die neuen events hinzu.

Rechtsklick auf die Case Struktur -> Add case for every value.
Kann sein, dass du deine Cases dann neu sortieren musst. Das wird aber durchaus verschmerzbar sein.

Gruß,
NoWay


RE: case in state machine hinzufügen - Shieva - 14.09.2015 13:05

Hallo,
ich habs mit euren Tipps noch mal versucht und ich glaube das Problem war, dass ich mehrere enum constants hatte. Ich hab immer nur die constant geändert mit der ich den shift register invoke, die anderen aber gleich gelassen. Dadurch ist dann die case structure durcheinander gekommen (hatte z.B. den button: "Add case for every value" gar nicht).
Habe nun die anderen enum constants gelöscht, die invoking constant geändert und dann ging alles wunderbar.
LG


RE: case in state machine hinzufügen - jg - 14.09.2015 13:24

Das Problem kannst du eben in Zukunft verhindern, in dem du 1x dein State-Machine Enum als Typ-Definition anlegst! Fälle hinzufügen und löschen machst du dann nur noch über diese Typ-Definition.

Gruß, Jens


RE: case in state machine hinzufügen - NoWay - 14.09.2015 13:33

(14.09.2015 13:05 )Shieva schrieb:  (...)
(hatte z.B. den button: "Add case for every value" gar nicht).

Diese Auswahl präsentiert dir Labview auch nur dann, wenn die Casestruktur tatsächlich mehr Auswahlmöglichkeiten bekommt, als bereits vorhanden.
Beispiel:
Du hast ein (TypeDef)Enum mit 3 Einträgen. Deine CaseStruktur deckt alle drei Einträge ab. Dein Chef kommt zu dir und sagt: "Wir benötigen noch Funktion xy. Bitte implementieren Sie das". So würdest du hingehen und dein Enum entsprechend um die gewünschte Funktion erweitern, indem du einfach das neue Item einträgst. Deine CaseStruktur ist in diesem Moment aber blind dafür. JETZT könntest du per Rechtsklick auf die CaseStruktur die beschriebene Auswahl treffen. Lässt sich in einem leeren VI ziemlich leicht und schnell testen Wink

Gruß,
NoWay