Zustandsautomat (Anzeige-Element aus einem Frame) - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Zustandsautomat (Anzeige-Element aus einem Frame) (/Thread-Zustandsautomat-Anzeige-Element-aus-einem-Frame) |
Zustandsautomat (Anzeige-Element aus einem Frame) - David_EA - 30.08.2013 18:35 Hallo Zusammen, für meine Abschlussarbeit soll ich neben Messdatenerfassung, Regelung etc. auch eine Steuerung (mit DO - NI9472) programmieren. Leider habe ich das Problem, dass ich in diesem Teil des Programms (siehe Anhang) aus einem "Frame" des Zustandsautomaten, eine Anzeige nicht "1" setzen kann. Habe das Programm vereinfacht im VI abgespeichert. Es geht darum, dass im "NetzteilZeit"-Frame die Anzeige innerhalb des Frames (eine Zeit lang) "1" sein soll. Diese Anzeige (LocalVariable als Read) soll ausserhalb des Frames ebenfalls für die vorgegebene Zeit "1" sein (angezeigt durch "NetzteilZeit Aussen"), es passiert aber nichts. In allen anderen Frames habe ich dieses Problem mit den Anzeige-Elementen nicht. Ich bedanke mich im Voraus für Eure Hilfe. Gruß Das Programm soll später folgendermaßen aussehen: [attachment=46093] RE: Zustandsautomat (Anzeige-Element aus einem Frame) - Trinitatis - 30.08.2013 20:41 Hallo David, du musst wie überall in LabView die Datenabhängigkeit beachten, die du hier nicht festgelegt hast. Wenn du 5s warten und ein Flag setzen parallel machst, kannst du nicht erwarten, dass erst das Flag gesetzt wird und dann gewartet wird. in deinem Fall wird erst gewartet und dann das Flag gesetzt und sofort danach der Case verlassen. Also verwende eine Sequenz, in der erst das Flag gesetzt wird und danach gewartet wird - dann geht´s auch THINK DATAFLOW! wie es so schön heißt in lveutsch Gruß, Marko RE: Zustandsautomat (Anzeige-Element aus einem Frame) - Lucki - 31.08.2013 09:07 In dem Case "Netzteil Zeit", in der sich die Wait-Funktion befindet, wird zwar alles sofort erledigt. Die Lampe "Netzteil Zeit" wird ja auch sofort gesetzt. Dann aber beginnt das große Warten im Case, das Programmn steht 5 sec still. Erst danach wird der Case verlassen und die außen liegende Anzeige "NetzteilZeit Aussen" gesetzt. Das sieht man aber nicht, da es in allen anderen Cases keine Wartezeiten gibt und irgendwo in einem anderen Case "NetzteilZeit", und somit auch "NetzteilZeitAußen", rückgesetzt wird. Eine Sofortaktion, die in Sekundenschnelle zum Erfolg führt, ist den außerhab der Casesstruktur liegenden Code in eine parallele Schleife zu stecken. Dann ist dieser Code nicht vom Wait blockiert. (Das soll aber jetzt kein Vorschlag für eine elegante Lösung sein, es ist nur für Lehrzwecke). [attachment=46094] RE: Zustandsautomat (Anzeige-Element aus einem Frame) - David_EA - 04.09.2013 09:02 Hallo nochmals Trinitatis, Lucki, danke für Eure Anregungen... Habe den Zustandsautomaten ein wenig geändert und mit euren Vorschlägen auch zum gewollten Ergebnis gekommen... Gruß |