LabVIEWForum.de - Queues und Schieberegister

LabVIEWForum.de

Normale Version: Queues und Schieberegister
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi

Ich versuche seit Stunden meinen Code anzupassen aber bekomm das einfach nicht hin. Huh Für eine Steuerung hab ich 2 getrennte Queues initialisert welche jeweils getrennt eine State Machine steuern.

1. Kommunikation:
Alle 250ms wird ein neues Element in Queue1 geschrieben worauf die Kommunikation via Visa angeregt wird und der gewünschte Wert in eine Cluster Variable geschrieben wird.

2. Steuerung:
Hier wird alle 500ms ein neues Element in Queue2 geschrieben. Danach soll der State Datenverarbeitung ausgeführt werden und die Daten weiterverarbeitet werden.

Das funktioniert soweit ganz gut. Seitdem ich die Queues für Kommunikation und Steuerung getrennt habe läuft das Programm auch deutlich stabiler.

Nun habe ich aber das Problem mit der Clustervariable. Wie bekomme ich die Werte von der einen While-Schleife in die andere? Wollte eigentlich Tunneln aber dann springt die State Maschine für die Steuerung gleich auf Ende da irgendwie die Schleife abgebrochen wird! Auf lokale Variablen wollte ich so weit wie möglich verzichten.

Jemand einen Tipp? Ich hoffe ich habe mich verständlich ausgedrückt.

Hier noch ein Foto:
[attachment=30082]
Mal als kleine Anregung:

Übergib die Daten doch auch via Queue, diese sind ja für die schleifenübergreifende Kommunikation gedacht.
Ob du dabei einen neuen Queue erstellst oder einen bereits vorhandenen mit dem Datentyp Variant gebrauchst bleibt dir überlassen.

Nur mal so als Frage, was spricht dagegen die Daten die du mittels VISA ausgelesen hast per Queue an die Verarbeitungsschleife weiterzugeben und diese so zu steuern anstatt mit den 500ms? Wäre dann eine ganz normale Producer/Consumer Struktur

Falls du mehr Infos brauchst melde dich wieder ;-)

Gruss Marc
Hi

erstmal Danke. So wie du das schreibst hab ich mir das auch vorgestellt. Momentan benutze ich noch Lokale Variablen (Des Clusters) um weiterprogrammieren zu können.

Also mir ist unklar wie ich die Daten über die Queues "verschicken" kann? Seh ich das richtig das ich einfach den Cluster als neues Element einfüge? Hört sich sehr wild an für mich. Wäre ich nie darauf gekommen.

Zitat:ganz normale Producer/Consumer Struktur
- gibts da Beispiele.

Sers
' schrieb:- gibts da Beispiele.
Schau mal bei den VI templates.
Referenz-URLs