![]() |
Ansteuern einer Case Struktur mit for-Schleife - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Ansteuern einer Case Struktur mit for-Schleife (/Thread-Ansteuern-einer-Case-Struktur-mit-for-Schleife) Seiten: 1 2 |
Ansteuern einer Case Struktur mit for-Schleife - berlinfatih - 13.04.2016 18:46 Guten Tag, bin neu hier im Forum, mache gerade eine Labviewprojekt mit eine myrio Gerät. Bin auch eine Labview-Einsteiger. Bin schon an folgenden Problem gestoßen (siehe Bild). Dabei möchte ich die Seiten der Case Struktur (1,2,3,4) mit eine For-Schleife (Zählt auch 1,2,3,4) ansteuern. das heißt, das die Seiten der Case-Struktur nacheinander aufwärts zählen soll. Mit eine Enum Wahlschieber geht es wunder. Eine for-Schleife direkt angeschlossen gibt Fehlermeldung (falsche Datentypen angeschlossen). Nun habe ich im Forum/Internet gelesen das man für Datentypenänderung den Bauteil zwischen den Beiden Fenstern verwenden kann. Aber dabei tut sich nichts. Hoffe ich konnte genau möglichst das Problem erklären. Vielen Dank für ihre Hiilfe. RE: Ansteuern einer Case Struktur mit for-Schleife - GerdW - 13.04.2016 18:57 Hallo fatih, Zitat:Bin auch eine Labview-Einsteiger.Dafür gibt es ja die ganzen Links in meiner Signatur! ![]() Zitat:Dabei möchte ich die Seiten der Case Struktur (1,2,3,4)Das sind keine Seiten, sondern Cases… Zitat:mit eine For-Schleife (Zählt auch 1,2,3,4) ansteuern.Falsch: die FOR-Loop zählt 0,1,2,3… (Wie in jeder vernünftigen Programmiersprache!) Zitat:das heißt, das die Seiten der Case-Struktur nacheinander aufwärts zählen soll.Sinnvollerweise sollte sich die Case-Struktur dafür innerhalb der FOR-Loop befinden, oder? Zitat:Mit eine Enum Wahlschieber geht es wunder.Ja, Case-Strukturen können mit Enums umgehen… Zitat:Eine for-Schleife direkt angeschlossen gibt Fehlermeldung (falsche Datentypen angeschlossen).Es gibt Fehlermeldungen, weil du es nicht richtig machst! Wenn die Case-Struktur innerhalb der FOR-Loop wäre, bräuchtest du weder Enum noch irgendwelche sonstigen Funktionen! Zitat:Nun habe ich im Forum/Internet gelesen das man für Datentypenänderung den Bauteil zwischen den Beiden Fenstern verwenden kann.Welche "Fenster"? Welches "Bauteil"? LabVIEW hat eine Kontexthilfe, die zeigt dir auch den Namen aller Funktionen an! Zitat:Aber dabei tut sich nichts.Da wird sich schon etwas "tuen", aber vielleicht nicht das von dir erwartete… ![]() Wenn ich mir so dein ganzes Konstrukt anschaue, gewinne ich den Eindruck, dass du die äußere WHILE-Loop durch eine FOR-Loop ersetzen solltest und dafür die innere FOR-Loop löscht. Oder was wolltest du mit dieser ganzen FOR-CASE-Mimik erreichen? RE: Ansteuern einer Case Struktur mit for-Schleife - berlinfatih - 13.04.2016 19:42 Hallo Gerd, ich danke für die schnelle Antwort. Bin gerade auf dem Weg nach Hause. Werde spätestens morgen früh Antworten können ob es geklappt hat. RE: Ansteuern einer Case Struktur mit for-Schleife - berlinfatih - 14.04.2016 07:58 Hallo, habe wie besprochen die Case-Struktur in die for-Schleife mit reingenommen. Das Ausgang von der Case-Struktur gibt mir eine Datentyp "1-D Array of" und " double 64-Bit" und es kam sozusagen zu eine Fehlermeldung als ich mit der Rest des Programms angeschlossen hatte. Um in zu umgehen habe ich dann Trotzdem die "Type Cast" dazwischen geschaltet.'' Trotzdem habe ich eine Fehlermeldung "No case for some selector values". Im Internet stand, das die Fehlermeldung auftretet, da ich eine nummerischen Wert an Eingang der Case-Struktur verwende. Hoffe ihr könnt mir Weiterhelfen. RE: Ansteuern einer Case Struktur mit for-Schleife - GerdW - 14.04.2016 08:06 Hallo fatih, Zitat:Trotzdem habe ich eine Fehlermeldung "No case for some selector values".Die Case-Struktur erwartet für jeden möglichen Wert am Selektor-Input einen passenden Case. Wenn du jetzt einen I32-Wert anschließt (das "i" aus der Loop), dann musst du theoretisch für alle Werte von -2^31 bis 2^31-1 einen Case erstellen. Da das sehr schnell unpraktisch wird, kann man aber auch Bereiche für die Cases angeben und einen Case noch als Standard definieren. Da das alles aber in der LabVIEW-Hilfe zur Case-Struktur beschrieben wird, solltest du das eigentlich wissen! ![]() Die Frage nach der Sinnhaftigkeit deiner FOR-Loop hast du aber noch nicht beantwortet! Generell: eine FOR-Loop, die genau einmal durchläuft, ist Rube-Goldberg-Unsinn! - Einen Typecast zu verwenden, um einen Wert aus einem Array zu lesen, ist Unsinn. Dafür gibt es Array-Funktionen wie IndexArray! - Lass die FOR-Loop weg und verwende den Iterator der While-Loop! RE: Ansteuern einer Case Struktur mit for-Schleife - berlinfatih - 14.04.2016 09:46 Tut mir leid, manchmal versteht man Kleinigkeiten nicht mehr, wenn man stundenlang Fehlersuche betreibt. Habe wie folgt case 3 als Standard definiert. Mein Problem ist nun, das die for-schleife (wo die Case-Struktur sich befindet) eine Array Ausgabe macht. Diese habe ich ja mit den VI "type cast" in double umgewandelt. Leider kommen nach der umwandlung keine Werte am Ausgang von "type Cast " an. Bestimmt stelle ich mich sehr doof an. Danke für die Hilfe. RE: Ansteuern einer Case Struktur mit for-Schleife - GerdW - 14.04.2016 10:01 Hallo fatih, Zitat:Bestimmt stelle ich mich sehr doof an.Ja. ![]() Warum hängst du nicht einfach mal dein VI an? (Am besten in LV2014 konvertiert über "Datei->Speichern für vorige…") RE: Ansteuern einer Case Struktur mit for-Schleife - berlinfatih - 14.04.2016 10:37 Ich konnte leider nicht in die Version 2014 umwandeln. Fehlerbeschreibung siehe Bild Datei habe ich aber trotzdem angehangen Danke für die Mühe RE: Ansteuern einer Case Struktur mit for-Schleife - GerdW - 17.04.2016 17:02 Hallo fatih, ich habe dein VI mal so editiert, wie ich mir eine Lösung deines Problems vorstellen könnte. Mangels Antworten auf meine bisherigen Fragen muss dieses VI aber nicht deinen Vorstellungen entsprechen… RE: Ansteuern einer Case Struktur mit for-Schleife - berlinfatih - 17.04.2016 22:10 Hallo Gerd, vielen dank für deinen Antwort. Ich bin erst am 20. 04. wieder zu hause. Werde es dann umgehend ausprobieren. Danke für die mühe. |