T0 Messung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA) +---- Thema: T0 Messung (/Thread-T0-Messung) |
RE: T0 Messung - Epicon - 11.03.2013 10:43 (11.03.2013 10:29 )GerdW schrieb: Ich hatte immer empfohlen, das Enum typdefiniert anzulegen! Habe gerade nachgelesen, dass ich das quasi mit einem Rechtsklick auf das Enum über "Typdefinition" machen kann. Das habe ich allerdings nicht zur Auswahl .. (11.03.2013 10:29 )GerdW schrieb: Dummerweise hast du nicht mal das Enum kopiert, welches du vor der While-Loop mit 3 Einträgen angelegt hast. Und du hast auch kein neues Enum per Rechtsklick -> Erstelle Konstante angelegt, auch dann hättest du weniger Probleme gehabt... Das hatte ich in der Zwischenzeit selbst festgestellt und geändert (dumdidum) und die Sache mit der 0 ist dann auch klar, ist mir auch schon über die Highlightfunktion aufgefallen. Nun erhöht das Programm die Temperatur bis zur Endtemperatur. (11.03.2013 10:29 )GerdW schrieb: Noch was: Und genau das ist mir noch nicht klar. Das VI bleibt jetzt in dem State, wo es die Temperatur erhöhen soll, was es ja auch tut. Aber wofür brauche ich dann den Case "Init", bzw. "End", denn dort geht es nicht rein. VI hänge ich nun nicht an, da es deinem entspricht ;-) RE: T0 Messung - GerdW - 11.03.2013 10:56 Hallo Epicon, Zitat:Habe gerade nachgelesen, dass ich das quasi mit einem Rechtsklick auf das Enum über "Typdefinition" machen kann. Das habe ich allerdings nicht zur Auswahl ..Da hast du dann wohl die Hilfe zu LV2011+ gelesen. Schon dumm, das mit deiner LV6-Version... Du kannst aber ein Control von deinem Enum erzeugen (per Rechtsklick!). Dann dieses Control aktivieren und im Edit-Menu "Element anpassen" und dann das Control als "Typdefinition" speichern. Dann immer diese Typdefinition ins BD einfügen! Steht garantiert in deiner LV6-Hilfe... Zitat:Aber wofür brauche ich dann den Case "Init", bzw. "End", denn dort geht es nicht rein.Wenn du dein Schiebergister mit dem Case "Init" initialisierst (und nicht TempMessung wie bisher), dann wird auch dieser State aufgerufen. Wie schon mal erwähnt: es ist nicht sinnvoll, aus dem aktuellen State heraus nur eben diesen State wieder aufzurufen. Entweder man will in den aktuellen State zurück, oder in einen anderen, oder in einen Fehler-State, oder... Kernaussage: man hat meist noch einen Selektor, über den man entscheidet, welcher State als nächstes aufgerufen werden soll! RE: T0 Messung - Epicon - 11.03.2013 11:22 Alles klar, dann hatte ich nur das Grundprinzip falsch verstanden. Vielen Dank für die Erklärung(en). Eine (hoffentlich letzte) Frage: Im Endeffekt soll ja nun pro Temperatur eine Schwellstrommessung durchgeführt werden. Das VI dafür existiert bereits und funktioniert (gute Nachrichten für dich ;-) ). Setze ich nun eine Sequenz in den Case, wo auch die Temperatur erhöht wird, oder benötige ich eben dafür dann einen nächsten Case? Allerdings, so, wie ich das jetzt verstanden habe, kann ich den Wechsel in den nächsten Case dann nur über das FP ermöglichen? Denn deine Kernaussage war ja, dass man meist noch einen Selektor benötigt, über den man entscheidet, welcher State als nächstes aufgerufen werden soll. Nur ist das quasi nicht das, was das Programm machen soll, sondern es soll alles automatisch machen. RE: T0 Messung - GerdW - 11.03.2013 11:36 Hallo Epicon, Zitat:Setze ich nun eine Sequenz in den Case, wo auch die Temperatur erhöht wird, oder benötige ich eben dafür dann einen nächsten Case?Die Sequenz wäre möglich, würde aber das Programmmieren einer Statemachine unnötig machen. Einen neuen State fände ich jetzt angebrachter... Zitat:kann ich den Wechsel in den nächsten Case dann nur über das FP ermöglichen? Denn deine Kernaussage war ja, dass man meist noch einen Selektor benötigt, über den man entscheidet, welcher State als nächstes aufgerufen werden soll. Nur ist das quasi nicht das, was das Programm machen soll, sondern es soll alles automatisch machen.Du hast einen State, in dem du die Soll-Temperatur erhöhst und ausgibst. Du brauchst jetzt noch einen State, in dem die Ist-Temperatur abgefragt wird. Wenn die Ist-Temperatur nach deinen Kriterien der Solltemperatur entspricht, rufst du einen weiteren State "Messung" mit deinem fertigen & funktionierenden VI auf... Code: IF Isttemperatur ~= Solltemperatur THEN state(Messung) ELSE state (Istwertabfrage) RE: T0 Messung - Epicon - 11.03.2013 13:40 Im Endeffekt jetzt alles ein bisschen anders gemacht, aber es funktioniert. ENDLICH! Vielen Dank nochmal für die Hilfe! |