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 

Signale ein-/ausblenden



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!

25.10.2007, 11:43
Beitrag #1

Sumo Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Sep 2007

8.2
2007
kA


Deutschland
Signale ein-/ausblenden
Hallo!

Ich bin völlig neu in der LabVIEW-Welt und habe dementsprechend ein paar Startschwierigkeiten. Huh Es wäre nett wenn mir hier vielleicht jemand helfen könnte.

Ich erfasse mit Hilfe eines cDAQ-9172-Chassis und fünf AI-Modulen (2 x NI 9203 und 3 x NI 9217) analoge Eingangssignale. Im MAX habe ich mir einen entsprechenden Task „Analog IN“ angelegt. Leider muss ich alle Kanäle der fünf Module in einen Task stecken, weil bei meiner Hardware nicht mehrere AI-Tasks gleichzeitig laufen können.

Ich habe mir dann ein VI geschrieben, um die Daten an den Kanälen einzulesen und in eine Queue zu geben, die dann später von einem Main.vi ausgelesen werden soll. Die eingelesenen Daten werden in einem Diagramm angezeigt. Da ich mit meinem Task nun aber 28 Kanäle gleichzeitig einlese, würde ich die einzelnen Kanäle im Diagramm gerne ein- und ausblenden können. Diese Funktion habe ich über den Eigenschaftsknoten des Diagramms realisiert. Das funktioniert prinzipiell auch ganz gut, allerdings habe ich folgendes Problem: Wenn ich eine Check-Box anklicke um eine Kurve aus- oder einzublenden, dann bleibt das Diagramm kurz stehen. Wenn ich mehrere Checkboxen schnell hintereinander anklicke, dann läuft durch dieses stehenbleiben der Puffer voll und ich bekomme eine Fehlermeldung, dass versucht wurde Abtastwerte zu lesen, die nicht mehr zur Verfügung stehen. Ich habe auch schon ausprobiert das ein-/ausblenden in eine eine Ereignisstruktur in einer eigenen While-Schleife auszugliedern, aber das Problem bleibt trotzdem bestehen.

Kann mir da jemand weiterhelfen?

Danke und Gruß
Sumo

       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.10.2007, 12:03
Beitrag #2

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
Signale ein-/ausblenden
Was ist nicht verstehe: Du schreibst die Eigenschaften jedesmal, egal, ob du was an den Buttons änderst oder nicht. Dann müsste doch auch die nötige Zeit für die Abarbeitung immer die gleiche sein...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2007, 12:09
Beitrag #3

Sumo Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Sep 2007

8.2
2007
kA


Deutschland
Signale ein-/ausblenden
Hi!

Tja, wie gesagt ich verstehs ja auch nicht. Sobald ich eine Checkbox anklicke (egal ob ich sie grade aktiviere oder deaktiviere) bleibt das Diagramm kurz stehen.

Gäbe es eigentlich prinzipiell eine elegantere Lösung das zu realisieren? Wäre es besser das ein- und ausblenden in eine Ereignisstruktur zu tun? Wie gesagt ich hab noch nicht viel Ahnung vom LabVIEW-Programmieren, ich bin also auch für allgemeine Verbessungsvorschläge sehr dankbar.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2007, 12:18
Beitrag #4

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Signale ein-/ausblenden
Na und? Es steht doch in der Fehlermeldung drin, was zu tun ist: Vergrößern des Puffers. Wie groß ist der denn, und hast Du das überhaupt schon versucht? Wie ist er denn überhaupt konfiguriert? Darüber verlierst Du kein Wort.
Du liest also pro Lesevorgang 1000 Werte pro Kanal aus. Der Puffer sollte z.B 5mal so groß sein, damit er diese zeitweiligen Unterbrechungen auffangen kann.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2007, 12:56
Beitrag #5

Sumo Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Sep 2007

8.2
2007
kA


Deutschland
Signale ein-/ausblenden
Ich hatte im MAX bei den Timing-Einstellungen folgendes vorgegeben: Erfassungsmodus: kontinuierlich, zu lesende samples: 10000, rate: 10 kHz. Das heißt also meine Puffergröße betrug bisher 10.000.

Ich habe jetzt nochmal mit der Puffergröße rumprobiert und bin jetzt bei einer Größe von 100.000 angekommen. Da kam die Fehlermeldung bisher nicht mehr. Allerdings bleibt das Diagramm trotzdem immer noch kurz stehen beim ein- und ausblenden. Kann man dieses Stehenbleiben nicht irgendwie abstellen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.10.2007, 17:56
Beitrag #6

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Signale ein-/ausblenden
' schrieb:Kann man dieses Stehenbleiben nicht irgendwie abstellen?
Ja sicher, wenn Du etwas ganz anderes machst:
Nicht die Plots ein-und ausblenden, sondern nur die erwünschten Plots zum Diagramm senden. Hat normalerweise den Nachteil, daß die Farb-Zuordnung der Plots verloren geht. Damit das nicht passiert, mache ich es so: Die nicht sichtbaren Plots erhalten anstelle der Daten Dummy-Daten mit NaN-Werten. Im Bild ist das Prinzip angedeutet:
   
Ideal ist natürlich, wenn die Anzahl der Dymmy-Daten gleich der Anzahl der echten Daten ist, damit kein Reorganisation des Arrays stattfinden muß.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2007, 06:54
Beitrag #7

toaran_ Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 237
Registriert seit: Feb 2007

2012
2006
EN

90763
Deutschland
Signale ein-/ausblenden
hi

ich mach sowas immer in dieser art ...

   

Toaran
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2007, 08:05
Beitrag #8

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Signale ein-/ausblenden
' schrieb:ich mach sowas immer in dieser art ...
Es ist ein Todsünde, Eigenschaftsknoten unnötigerweise in der zeitkritischen Hauptausführungsschleife aufzurufen.
Dein Vi ist in dieser Hinsicht ein Fortschritt, da die Eigenschaftsknoten nicht mehr immer, sondern nur noch bei Wertänderung aufgerufen werden. Dann allerdings von allen 28 Plots, auch wenn in der Regel nur ein Plot betroffen ist.
Eine weitere Stufe der Verbesserung, wäre, wenn bei Wertänderung der Plot-Sichtbarkeit nur der betreffende Plot behandelt wird und nicht immer alle 28.
Z.B so:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2007, 09:08
Beitrag #9

Sumo Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Sep 2007

8.2
2007
kA


Deutschland
Signale ein-/ausblenden
Hi Leute,

vielen Dank für eure Hilfe!

Ehrlich gesagt verstehe ich die letzten Lösungen nicht so ganz. Ich hatte auch schon mal eine Lösung mit einer Ereignisstruktur ausprobiert und habe das ganze so gemacht:

   

@Lucki: Was genau bezweckst Du in Deiner Lösung mit der For-Schleife und dem Schieberegister? Es wäre nett wenn Du mir das kurz erklären könntest.


Gruß
Sumo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2007, 09:57
Beitrag #10

toaran_ Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 237
Registriert seit: Feb 2007

2012
2006
EN

90763
Deutschland
Signale ein-/ausblenden
' schrieb:Hi Leute,

vielen Dank für eure Hilfe!

Ehrlich gesagt verstehe ich die letzten Lösungen nicht so ganz. Ich hatte auch schon mal eine Lösung mit einer Ereignisstruktur ausprobiert und habe das ganze so gemacht:

[attachment=36242:ereignis.gif]

@Lucki: Was genau bezweckst Du in Deiner Lösung mit der For-Schleife und dem Schieberegister? Es wäre nett wenn Du mir das kurz erklären könntest.
Gruß
Sumo


bei deiner Lösung musst du ein ereigniss für jede einzellne checkbox anlegen .... bei Lucki's und meiner Lösung sind die checkboxen in einem Array ... das bedeutet ... wenn eine wertänderung in dem array( eine der checkboxen) auftritt läuft die for schleife los ...die rödelt dann alle elemente in dem array durch und wenn alter wer nicht gleich neuer wert, dann wird der plot sichtbar oder unsichtbar gemacht je nach checkboxwert ... das schieberegister ist nur der Zähler für den plot .. man kann auch den index der Forschleife benutzen ...

@Lucki:bei meiner lösung wird auch nur der ereignissknoten aufgerufen bei dem die änderung auftritt;)aber deine lösung is schickerSmile

Toaran...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: