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 habe eine Case-Struktur, die die Zustände Bereit, Messung, Beendet haben soll (also 3).
Ich habe schon herausgefunden, dass ich ein String-Bedienelement an die Struktur anschließen kann, um die Zustände anzusteuern. Allerdings sollen die Zustände ohne Bedienelement angesteuert werden, d.h. ich habe eine Flache Sequenz, und je nachdem in welcher Frequenz ich bin, wird ein String an die Case-Struktur gesendet (ich hoffe man versteht was ich meine )
Wie könnte man so was realisieren? Habe mich schon dumm und dämlich gesucht
Gruß Bob
23.01.2014, 22:16 (Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2014 22:18 von Trinitatis.)
das, was du da in deinem VI zeigst, geht so nicht! Du kannst an den Eingang einer Case-Struktur nicht gleichzeitig 3 Leitungen anschließen.
Das wäre auch komplett sinnfrei - was sollte LabView denn dann machen?!
Du schreibst "ich habe eine Flache Sequenz, und je nachdem in welcher Frequenz ich bin, wird ein String an die Case-Struktur gesendet ". Diese Behauptung ist in sich schonmal Käse. Deine Sequenz, egal ob flach oder gestapelt (das ist nur eine andere Darstellung), durchläuft alle Einzelrahmen nacheinender und beschreibt die Ausgänge. D.h., du sendest nicht "je nacch dem" sondern du beschreibst eh alle Ausgänge der Sequenz.
Beschreib mal, was du vorhast, dann kann dir sicher geholfen werden.
Ich muss eine Auswertung des Schaltverhaltens eines Hilfsschalters machen (über 2 Umdrehungen =720°). Um den Drehwinkel der Schalterachse zu messen, habe ich ein 3 Gang Potentiometer an dieser angebracht.
Nun soll die Messung folgendermaßen ablaufen:
Schalter soll so gedreht werden, so das der Analogwert des Potis (kommt über die VISA von einem Microcontroller) kleiner als 80 ist.
Nachdem der Analogwert auf 80 ist, soll die Messung gestartet werden
Sobald die Achse um 720° gedreht wurde, soll die Messung beendet werden
Ich bin bis jetzt mal davon ausgegangen, dass dieses Vorgehen am besten mit einer flachen Sequenz zu realisieren wäre
Und jetzt kommt der Knackpunkt:
Je nachdem, welcher Sequenzabschnitt aktiv ist, soll ein String über die Visa zurück gesendet werden, welcher dann auf einem externen Display dargestellt wird. D.h. 3 verschiedene Zustände, aber da ich ja, wie du schon gesagt hast, keine 3 Leitungen zusammen an die VISA (write puffer) anschließen kann, hatte ich mir überlegt, das irgendwie über eine Case Struktur zu realisieren.
Von der Sequenz als Lösungsansatz würde ich mich mal verabschieden. Eine Sequenz dient dazu, einen Programmablauf zu erzwingen - das ist ja gar nicht dein Problem.
Wenn ich dich richtig verstehe, liest du über die ser. SS Werte ein, in deren Abhängigkeit du etwas tun willst. Da würde ich mir eine Schleife nehmen, in der ich von der Schnittstelle lese und das Ergebnis an die Case-Struktur geben. Wertebereiche innerhalb eines Cases sind übrigens mit Min .. Max zu deklarieren (also der Bereich 100-200 würde durch den Case 100..200 beschrieben).
Das wären dann deine "Sequenzabschnitte"
(23.01.2014 22:26 )BobbyBau91 schrieb: Wie könnte man denn so etwas besser realisieren?
Du sprichst ja schon von Zuständen, wie wäre es dann mit einer kleinen State-Maschine? Scheint mir doch sehr gut für diese Aufgabe geeignet zu sein:
States:
INIT: Schnittstelle und Programm initalisieren
CHECK_POSITION: Auf Wert <80 abfragen
READ: Lesen
STOP: Messung abschließen, Werte speichern, usw.
Du kannst in jedem State deine VISA-Verbindung benutzten, um Werte zu lesen, indem die VISA-Verbindung über ein Schieberegister durchgeschleift werden kann
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
Nebenbei: zur flachen Sequenz mal diese kleine Unterichtseinheit.
Sämtliche Ausganswerte stehen erst zur Verfügung, wenn die gesamte Struktur abgearbeitet ist. Es besteht also nicht der geringste Unterschied zwischen linkem und rechtem Bild:
(24.01.2014 15:42 )GerdW schrieb: bist du dir dessen sicher?
Probiert habe ichs nicht, und jetzt muss ich weg und mir fehlen die 5 min Zeit, um das auszuprobieren: In jede Sequenz ein Wait 1 sec rein, an alle Ausgänge Anzeigen anschließen, sehen ob sie gleichzeitig oder nacheinander kommen.
Ludwig
(24.01.2014 15:42 )GerdW schrieb: bist du dir dessen sicher?
Probiert habe ichs nicht, und jetzt muss ich weg und mir fehlen die 5 min Zeit, um das auszuprobieren: In jede Sequenz ein Wait 1 sec rein, an alle Ausgänge Anzeigen anschließen, sehen ob sie gleichzeitig oder nacheinander kommen.
Ludwig
Hab ich gemacht, sie kommen nicht gleichzeitig an!
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!