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 

Fehlercluster via Queue



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!

01.08.2015, 10:40
Beitrag #1

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
Fehlercluster via Queue
Hallo

Ich habe hier ein Kostrukt aus zwei For-Schleifen, in der einen Schleife werden daten über den IEEE Bus von Messgeräten gelesen und die zweite Schleife ist für Anzeige, Messwererfassung und andere Dinge zuständig, die Messaten übertrage ich mit eine Queue von eine in die andere Schleife.
Ich möchte den Fehlercluter des Messgerätes bei einem Probelm als Hilfestellung für die Fehlerbehebung anzeigen lassen.
Ist es möglich entweder über die gleich Queue oder über zwei Queues einen Fehlercluster mit zu übertragen?
Wenn ja, hat jemand ein Bsp. oder einen Link in dem das beschrieben wird?

Danke
Hans
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.08.2015, 16:58
Beitrag #2

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: Fehlercluster via Queue
Ok ich habe es mir gearde selbst beantwortet (etwas herumprobieren hilft auch das Wissen zu erweitern Wink

So wie im Bild sollte es funktionieren.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.08.2015, 22:01 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2015 13:51 von Lucki.)
Beitrag #3

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: Fehlercluster via Queue
Herumprobieren ist gut, aber genau so wichtig ist auch das eifrige Studium der mitgelieferten Beispiele.
Empfehlen würde ich hier:
LV-Eröffnungsbildschirm --> Projekt erstellen --> Handler für Nachrichtenqueues
Da ist auch Fehlerbehandlung mit dabei. (Es kann allerdings sein, daß das Beispiel brandneu ist und in LV2013 noch nicht dabei war. Sollte das so sein, könnte ich es Dir heruntercompilieren)

Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.08.2015, 23:06
Beitrag #4

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: Fehlercluster via Queue
Hallo Ludwig

Danke für das Angebot.
Mir ging es nicht um die Fehlerbehandlung des Clusters ansich sondern darum einen Fehlercluster zwischen zwei Schleifen zu übertragen. In dem von dir genannten Beispiel konnte ich dazu nichts finden.
Ich hatte das benötigt da in meinem Programm in der einen Schleife die die Messungen und somit auch die Steuereung der Messgeräte (VISA) läuft und in der zweiten Schleife die Anzeige der Messdaten, Protokollerstellung...
Wenn jetzt ein Problem an dem Messgerät auftritt konnte man das erst erkennen wenn man die Schleifen verlassen hat, ich wollte das amn zur Laufzeit sieht was da passiert ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.08.2015, 07:59
Beitrag #5

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: Fehlercluster via Queue
Es geht doch darum, wie man Daten unterschiedlichen Formats in einer Queue überträgt. Du hast jetzt die beiden Formate "Fehlercluster" und "DBL" in einen Cluster gesteckt, in dem Du das alles per Queue übertragen kannst.
Universeller ist etwas anderes:
Die Queue enthält einen Cluster. Das eine Element beschreibt die Botschaft. Das kann Text sein oder ein Enum. Bei Dir hießen die möglichen Textelemente "Messdaten" und "Fehler".
Das zweite Clusterelement ist ein Variant, mit dem sich jedes Datenformat übertragen läßt.
Deine Lösung ist im Moment zwar einfacher, aber sie stößt schnell an ihre Grenzen, wenn mehr als nur diese beiden Botschaftstypen übertragen werden sollen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.08.2015, 22:27
Beitrag #6

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: Fehlercluster via Queue
Danke für den Tip.
Naja ich hoffe das sich das künftig kaum ändern wird aber ich habe es mir dennoch mal angesehen. Da ich bisher mit Varianten noch nichts gemacht habe, habe ich mich mal nach einem Beispiel umgesehen und bin dabei auf diesen Beitrag gestossen Using Variants to Pass Multiple Data Types Through a Single Queue.
Auf dieser Basis habe ich mal etwas gespielt und mir einen Versuchsaufbau erstellt (siehe Anhang).
Wie ich Daten auf ein Variant bekomme habe ich schon verstanden aber mit der extraktion daraus habe ich noch meine Probleme.
Ich verstehe nicht wie ich die Daten dann richtig aus der Casestruktur und der For-Schleife bekommen soll, in meinem Beispiel funktioniert das zwar mit den Messdaten aber wenn ich den Fehlercluster herausführe geht der nicht. Dennoch kann ich mir auch nicht vorstellen das ich die Messdaten richtig herausgeführt habe denn bei einer Casestruktur muss ja auch der Ausgang "Messwerrt" im Case "Fehler" belegt sein, das habe ich zwar mit "Standard verwenden, wenn nicht verbunden" gelöst aber das kommt mir irgendwie falsch vor.
Hat jemand einen Tip oder Bsp. wie man das korrekt hin bekommt?


Angehängte Datei(en)
14.0 .vi  Multiple Data Types Queue(Variant)_test.vi (Größe: 18,83 KB / Downloads: 171)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2015, 07:33
Beitrag #7

GerdW Online
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Fehlercluster via Queue
Hallo Hansi,

das Beispiel, was du da rausgesucht hast, ist doch prima.
Warum hast du es dann nicht exakt so, wie es präsentiert wurde, nachprogrammiert?

Du bist in deinem VI noch einen Schritt weiter gegangen und hast die Variant-Attribute verwendet. Auch die kann man gut verwenden, um Daten zu verwalten!

Zitat:Dennoch kann ich mir auch nicht vorstellen das ich die Messdaten richtig herausgeführt habe denn bei einer Casestruktur muss ja auch der Ausgang "Messwerrt" im Case "Fehler" belegt sein, das habe ich zwar mit "Standard verwenden, wenn nicht verbunden" gelöst aber das kommt mir irgendwie falsch vor.
Das mit dem "falsch" hast du richtig empfunden… Smile
Momentan würdest du bei deinen Messdaten immer einen Dummywert bekommen. Und noch schlimmer: da der Outputtunnel der FOR-Loop auf nicht-indizierend gesetzt wurde, kann es sein, dass du überhaupt keinen Messwert aus der Loop bekommst!

Reicht es aus, wenn ich die auf den Gebrauch von Schieberegistern in Loops hinweise?
Oder dank LV2014 auf den Gebrauch von bedingten Ausgangstunneln?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2015, 08:49 (Dieser Beitrag wurde zuletzt bearbeitet: 07.08.2015 09:03 von hansi9990.)
Beitrag #8

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: Fehlercluster via Queue
Ich habe es nicht exakt nachprogrammiert weil ich den falschen Link eingestellt hatte, eigendlich hatte ich dieses Beispiel gemeint Using Multiple Data Types within a Queue Wink. Im vorherigen Beispiel muss ja mit dem Element "Data Type" manuel ausgewählt werden, ich möchte aber alle Datentypen ohne Schalter in die zweite Schleife bekommen.
Dann werden auch noch die nicht gewählten Datentypen auf einen leeren Wert gesetzt (ok, das bekäme man auch mit dem Schieberegister hin)
Zudem hatte ich Lucki so verstanden das ich weg vom Cluster und direkt einen Variant in der Queue übertragen soll um flexibel zu bleiben, im vorherigen Beispiel werden die Daten in ein Variant und über einen Cluster in eine Queue gepackt.
Tja, der Tip mit dem Schieberegister ist dann Goldrichtig, das ich nicht immer selbst auf sowas komme Wink Zu meiner Verteidigung, ich Arbeite erst seit einem halben Jahr mit LV und hatte vorher kaum Programmierkenntnisse. Wink

So wie im Anhang funktioniert es jetzt oder kann es noch zu Probleme kommen die ich nicht bedacht habe?

PS: So ganz vertehe ich den Vorteil oder die Flexibilität von Varianten aber trotzdem nicht, wenn ich mal die Datentypen in der Queue erweitern will muss ich die Lösung mit dem Variant genauso, umprogrammieren wie meinen ersten Versuch im zweiten Beitrag.


Angehängte Datei(en)
14.0 .vi  Multiple Data Types Queue(Variant)_test.vi (Größe: 19,85 KB / Downloads: 177)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2015, 08:59 (Dieser Beitrag wurde zuletzt bearbeitet: 07.08.2015 09:02 von GerdW.)
Beitrag #9

GerdW Online
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Fehlercluster via Queue
Hallo Hansi,

- Schieberegister sollte man auch initialisieren…
- du hast den Case "Fehler" als Standard gesetzt. Was passiert, wenn beim Receiver plötzlich ein Attribut "xyz" mit unbekannten Daten ankommt?
- Das "Variant nach Daten" hat ErrorIO-Anschlüsse: die sollte man immer nutzen, wenn nicht 100% sicher ist, welcher Datentyp im Variant steckt!

Zitat:Im vorherigen Beispiel muss ja mit dem Element "Data Type" manuel ausgewählt werden, ich möchte aber alle Datentypen ohne Schalter in die zweite Schleife bekommen.
Du musst in beiden Varianten beim Emfänger wissen, welcher Datentyp im Variant (oder im Attribut) steckt. Im ersten Fall schickst du die entsprechende Information als Enum oder String-Parameter im Cluster mit, in deiner Variante packst du diese Information in den Namen des Attributs!

Die erste Variante ist also mit deiner quasi gleichwertig und dazu noch universeller/einfacher einsetzbar, da die Dateninformation in einem Variant (und nicht im Attribut) steckt. Wenn statt des Strings ein typdefiniertes Enum als Befehlsparameter verwendet wird, ist auch beim Receiver immer jeder mögliche Datentyp bekannt…

Zitat:Zudem hatte ich Lucki so verstanden das ich weg vom Cluster
Nein, Ludwig hat dir genau das vorgeschlagen, was du vorhin als erstes Beispiel verlinkt hattest: Ein Cluster aus Befehl und Daten…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2015, 09:33
Beitrag #10

hansi9990 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 180
Registriert seit: Mar 2015

2019
2014
DE

96xxx
Deutschland
RE: Fehlercluster via Queue
Ich vetsehe aber trotzdem nicht wie ich ohne das Ereignisscase die Daten quasi als Multiplex nach unten bekomme da sich dieses Beispiel hier Using Variants to Pass Multiple Data Types Through a Single Queue ja darauf bezieht alles von Hand zu machen. Meine Daten (Messung und Fehler) kommen von einem VISA Treiber und werden nicht über ein Ereigniss am Frontpanel ausgelöst.
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
  Wie auf abgearbeitete Queue warten mez15 11 8.037 28.09.2017 13:02
Letzter Beitrag: TR61
  Datum Uhrzeit Queue DeleteAll 8 5.647 24.03.2017 15:47
Letzter Beitrag: GerdW
  LabView Fehlercluster Handhabung hansi9990 5 4.367 12.10.2016 00:37
Letzter Beitrag: rolfk
  TDMS in Queue laden gifo 8 5.456 07.01.2016 16:41
Letzter Beitrag: GerdW
  Queue und (kein) Dataflow NoWay 9 7.323 01.06.2015 11:56
Letzter Beitrag: Kiesch
  Notifier und Queue Nattdis 3 6.598 27.11.2014 14:51
Letzter Beitrag: Lucki

Gehe zu: