LabVIEWForum.de
Lokale Variable aus einer Stacked Sequence herausführen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Lokale Variable aus einer Stacked Sequence herausführen (/Thread-Lokale-Variable-aus-einer-Stacked-Sequence-herausfuehren)



Lokale Variable aus einer Stacked Sequence herausführen - sike - 13.11.2007 18:30

Gutan Tag Allerseits!

Mein aktuelles LabVIEW Problem entstand aus meiner Diplomarbeit. Da die Arbeit ein Auftrag aus der Industrie ist, darf ich hier den Code leider nicht veröffentlichen. Ich versuche daher meine Frage möglichst präzise zu stellen, aber eben leider ohne Code ;-)


In den jeweiligen Frames meiner Stacked Sequence (welche wiederum Teil einer Event-Struktur ist) steuere ich einerseits ein altes Strommessgerät über GPIB an (ohne entsprechenden Treiber) und andererseits schreibe ich neue Daten über ModBus an die Aussenwelt. Die Steuerung der beiden "Kommunikationswege" funktioniert eigentlich bestens, da diese auch in anderen Teilen der LabVIEW-Software eingesetzt werden und verifiziert wurden.

Nun möchte ich jedoch in jedem Frame meiner Stacked Sequence neue Modbus-Parameter/-Daten abgeben, die dann sofort versendet werden sollen.
Zur Zeit schreibe ich die neuen Daten auf eine Variable, dessen Bezugswert ausserhalb der Stacked Sequence steht. Dabei wird in jedem Frame die Variable wieder neu überschrieben. Leider werden die Variablen aber erst am Ende der Stacked Sequence nach draussen abgegeben, womit die Daten (da sie nicht versendet werden) verloren gehen.
Ich habe nun trotzdem ein kleines Beispiel geschrieben. Dieses ist nicht lauffähig und soll nur zur Anschauung dienen. Die vier Indicators gehen bei mir dann aus der Event Struktur auf die ModBus Bausteine.

Wie kann ich nun erreichen, dass die Variablen trotzdem nach Beendigung jedes Frames aus der Event Struktur ausgegeben werden? Also über Modbus geschickt werden?

Ich hoffe meine Frage ist verständlich......

Gruss und schonmal ein Dankeschön!

(VI LV 8.2)


Lokale Variable aus einer Stacked Sequence herausführen - IchSelbst - 13.11.2007 20:12

' schrieb:Wie kann ich nun erreichen, dass die Variablen trotzdem nach Beendigung jedes Frames aus der Event Struktur ausgegeben werden? Also über Modbus geschickt werden?
Aus der Eventstruktur hinaus nach jedem Frame? Das geht so nicht. Die Eventstruktur wird erst verlassen, wenn alles innerhalb eines Eventcases abgearbeitet wurde - egal was da steht.
Du kannst aber in jedem Sequenz-Frame das SubVI, das die ModBus-Comm. macht, aufrufen.


Lokale Variable aus einer Stacked Sequence herausführen - sike - 13.11.2007 20:25

ok...danke.

Habe mir gedacht, dass das innere der Event-Struktur zuerst abgearbeitet werden muss.


Ich hoffte ich könnte es anders lösen, da ich nun einiges im Ablauf umstellen muss.


Lokale Variable aus einer Stacked Sequence herausführen - IchSelbst - 13.11.2007 20:46

' schrieb:Ich hoffte ich könnte es anders lösen, da ich nun einiges im Ablauf umstellen muss.
Das wirst du wohl tun müssen. Aber der Möglichkeiten gibt es mehrere. Das ginge auch mit Queues.

Da man eigentlich viel in SubVI's haben soll und ggf. in parallelen Tasks, wäre die Anpassung eigentlich nur gering. ^_^


Lokale Variable aus einer Stacked Sequence herausführen - sike - 14.11.2007 10:01

Wie sieht es aus, wenn ich die vier Indicators aus der Event-Struktur nehme? Werden diese dann auch erst bei Beendigung des gesamten Event-Frames mit den Variablen-Werten aktualisiert oder geschieht dies nun laufend?

(VI LV 8.2)


Lokale Variable aus einer Stacked Sequence herausführen - Achim - 14.11.2007 10:25

' schrieb:Wie sieht es aus, wenn ich die vier Indicators aus der Event-Struktur nehme? Werden diese dann auch erst bei Beendigung des gesamten Event-Frames mit den Variablen-Werten aktualisiert oder geschieht dies nun laufend?

Das nützt überhaupt nichts...die umgebende While-Schleife, die für die Aktualisierung sorgt, läuft erst weiter, wenn die komplette Sequenz im Event-Frame fertig ist!