INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Queued State Machine mit 3 While Schleifen



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!

27.04.2016, 17:14
Beitrag #1

andrepf Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Oct 2014

12.01 (32bit)
2014
DE



Queued State Machine mit 3 While Schleifen
Hallo Zusammen,

ich probiere mich gerade daran, eine Queued State Machine auf eine dritte While Schleife auf zu bohren. Hintergrund ist, ich nehme Messdaten via CAN-Bus auf. Nach X Messdatenaufnahmen speichere ich die Daten zyklisch in einer .txt-Datei ab (bzw. hänge die Daten an eine bestehende Datei an). Die Datenaufnahme + die Abspeicherung passiert gerade in ein und der gleichen While Schleife der Queued State Machine. Dies möchte ich nun entkoppeln. Dazu habe ich versucht das NI-Beispiel zu erweitern. Leider komme ich damit gerade nicht klar. Mein Ziel ist, dass die "Message Handling Loop 1" eine TRUE/FALSE-Variable auf True setzt, damit in der "Event Handling Loop" ein Event auslöst und eine Message auf die 2. Queue setzt. Die Daten befinden sich in der "Message Handling Loop 1" und sollen dann in die "Message Handling Loop 2" übertragen werden. Im Moment möchte ich aber erst einmal die Kommunikation zwischen diesen 3 While Schleifen aufbauen. Anbei habe ich meinen Versuch hochgeladen. Kann mir jemand sagen ob das überhaupt so gemacht wird, bzw. was ich ändern muss um dieses Konstrukt zum Laufen zu bekommen?

(Version LV2014)

VG!


Angehängte Datei(en)
0.0 .zip  3 parallele While Schleifen Test.zip (Größe: 404,12 KB / Downloads: 255)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.04.2016, 08:34 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2016 08:39 von andrepf.)
Beitrag #2

andrepf Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Oct 2014

12.01 (32bit)
2014
DE



RE: Queued State Machine mit 3 While Schleifen
Hallo Zusammen,

ich bin jetzt einen anderen Weg gegangen und versuche die Daten mit einer neue Queue an die 3. While Schleife zu versenden (siehe Screenshot). Ich habe mich an das Beispiel "simple queue.vi"gehalten. Ich bekomme die Daten aber nicht von der mittleren Schleife in die untere Schleife. Jemand eine Idee? Blink

(Aufgeräumt wird später Smile )


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2016, 08:50
Beitrag #3

wladimir s Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 79
Registriert seit: Mar 2015

2011, 2015
2010
DE


Deutschland
RE: Queued State Machine mit 3 While Schleifen
Ich tippe darauf, dass die erste Queue immer auf ein Element wartet, und die damit die dritte Schleife blockiert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2016, 09:01
Beitrag #4

andrepf Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Oct 2014

12.01 (32bit)
2014
DE



RE: Queued State Machine mit 3 While Schleifen
Sprich, so kann ich das nicht machen?
Ich habe auch schon versucht die erste Queue zu erweitern, dann bekomme ich ständig Fehlermeldung weil ich natürlich in der dritten Schleife andere Cases habe als in der zweiten Schleife. So ist das Minimalbeispiel aufgebaut das ich angehängt habe. Dafür habe ich auch noch keine Lösung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2016, 09:05
Beitrag #5

wladimir s Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 79
Registriert seit: Mar 2015

2011, 2015
2010
DE


Deutschland
RE: Queued State Machine mit 3 While Schleifen

Akzeptierte Lösung

Falls die erste Queue nur dafür da ist, die Schleife zu beenden, dann kannst du sie komplett weglassen (so sieht es zumindest aus). Die Schleife wird auch dann beendet, wenn du die anderen Queues auflöst und die Fehlerschnur mit dem Bedingungsanschluss verbunden bleibt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2016, 09:32
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
RE: Queued State Machine mit 3 While Schleifen
(28.04.2016 09:01 )andrepf schrieb:  Sprich, so kann ich das nicht machen?
Leider muss ich zuerst sagen: Irgendwie hat mich das VI aus dem ersten Posting optisch nicht so angesprochen, dass ich gleich hätte weiterkucken wollte. Daher nur folgende allgemeine Frage:

Hast du das so programmiert, dass nur einer(!) die Queue ausließt?

In die Queue schreiben können viele, aus der Queue lesen (samt entfernen) kann logischerweise aber nur einer. (Im Gegensatz zu einem Melder: da sollte nur einer reinschreiben, weil beim Reinschreiben überschrieben wird; Lesen können dann viele, weil beim Lesen nicht gelöscht wird.)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.04.2016, 09:34
Beitrag #7

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Queued State Machine mit 3 While Schleifen
Dein VI sieht etwas chaotisch aus.
Du hast jede Menge sinnlose nicht Verwendetes. Damit machst Du die VI total unübersichtlich.
Z.B. an der oberen While Schleife ist links unten ein Queue die ins leere läuft.
Konstante ohne Leitung.
Leitungen übereinander gelegt.

Wenn Du erst mal alle Teile die keinen Sinn ergeben entfernst. Dann mal die "Strg U" Kombination benützt.

Dann findet man auch die Zusammenhänge besser.
Beim Aufräumen sieht man oft die Fehler, die man sich eingebaut hat.
Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2016, 09:49
Beitrag #8

andrepf Offline
LVF-Grünschnabel
*


Beiträge: 46
Registriert seit: Oct 2014

12.01 (32bit)
2014
DE



RE: Queued State Machine mit 3 While Schleifen
Hallo Zusammen,
ich weiß, aber wenn man gerade noch so viel ändert wie ich lässt man die Aufräumerei gerne mal einmal liegen. Mein Datenlogger funktioniert jetzt einwandfrei und ich mache mich daran das VI zu strukturieren.

Vielen Dank!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2016, 09:22 (Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2016 10:33 von Lucki.)
Beitrag #9

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: Queued State Machine mit 3 While Schleifen
Auswertung der eingegangenen antworten:
Ja, da das ganze Projekt im Wesentlichen aus sinnlosen leeren Strukturen besteht, könnte man sogar alles weglassen, nicht nur, wie vorgeschlagen, eine Schleife. Big Grin Der Witz das Programms ist aber doch, dass Programminhalte später noch reinkommen sollen.
Und ja, man kann das Programm einfacher durch Zerstörung der Queues beenden, was auswertbare Fehlermeldungen in den parallelen Scheifen verursacht, wodurch diese sich dann auch beenden lassen. Der Nachteil ist (das vermute ich), dass man sich damit den Wege für eine profesionelle Fehlerbehandlung im gesamten Projektes verbaut. So umständlich das Beenden hier erscheint, es ist die professionellere Methode.

Das Programm enthält drei Fehler, und die lassen sich doch ganz einfach finden und ausmerzen. Warum also nicht die Hilfe hier ansetzen?
1. Als Meldungen git es "Initialize" und "Initialize Panel". Behandelt wird aber nur "Initialize Panel"
Lösung: Initialize Panel im Main immer durch Initialize ersetzen
2. Die Exit-Meldung im Ereigniscase "Exit" muß an beide untere Schleifen gesendet werden, nicht nur an eine.
   
3. Die Meldung "Update Display" in der dritten Scheife muß natürlich an die zweite Schleife gesendet werden, und nicht an sich selbt
   
Fall ich noch was vergessen habe, hier das geänderte Main.vi:

14.0 .vi  Main.vi (Größe: 108,48 KB / Downloads: 226)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  xnet, queued state machine snoopy87 13 11.901 10.09.2014 09:26
Letzter Beitrag: snoopy87
  Queued State Machine stud12 2 4.981 22.09.2012 13:39
Letzter Beitrag: stud12
  State Machine Menü stromflo 1 3.579 14.05.2012 09:23
Letzter Beitrag: Kasi

Gehe zu: