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 

Möglichkeiten für Zählvariablen gesucht



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!

17.03.2006, 15:28
Beitrag #1

RuffRyder Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2006

8.00
2003
kA


Deutschland
Möglichkeiten für Zählvariablen gesucht
Eventuell ist dies eine etwas lächerliche Frage, ich stelle sie trotzdem. Und benötige ich eine simple Zählvariable. Hierbei kann ich nicht auf den Index einer Schleife zurückgreifen sondern es bedarf eines Objektes in welches ich einen Inkremntalwert hineingebe, dieser soll auf den aktuellen Zählerstand aufsummiert werden und dieser Zählerstand soll nach Aufsummierung ausgeben werden.
Gibt es evtl. in LV schon ein Objekt dafür oder weiss jemand wie man dieses verwirklicht ?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
17.03.2006, 16:00
Beitrag #2

HobbyBastler Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Sep 2005



kA



Möglichkeiten für Zählvariablen gesucht
Das kannst du mit ner globalen variablen machen, die man aber eigentlich besser nicht benutzen sollte. Also mach dir doch n subvi mit dem increment als eingang und dem zaehlerstand als ausgang.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.03.2006, 18:01
Beitrag #3

Svenni Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 227
Registriert seit: Mar 2005

7.1, 8.0, 8.2, 8.21, 8.5, 8.6, 2009, 2010, 2011, 2012, 2013, 2014
2000
DE

23843
Deutschland
Möglichkeiten für Zählvariablen gesucht
Das Thema Variablen hatten wir heut morgen schon einmal.
i2dx hat recht. Man sollte versuchen, so weit wie möglich auf Variablen zu verzichten.
Ruffryder, wie sieht dein Programm denn ungefähr aus. Vielelicht gibt es auch eine andere Lösung, als mit Variablen zu arbeiten.

Gruß
sven
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2006, 11:06
Beitrag #4

RuffRyder Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2006

8.00
2003
kA


Deutschland
Möglichkeiten für Zählvariablen gesucht
Also das Problem sieht im Detail folgendermaßen aus.
Ich lese Messwerte von einem Gerät ein (Read VI). Dabei verfügt das Gerät selbst über einen Speicher für eine gewisse Anzahl Werte. Beim Aufruf der besagten VI liefert mir das Gerät nicht nur den aktuellen Messwert sondern auch die Anzahl der bis diesem Zeitpunkt eingelesenen Werte. Da die PC Datenverarbeitung schneller läuft als die Messwerterfassung am Gerät muss ich erst warten bis ein Wert vorliegt. Ist dies der Fall so läuft eine Case-Struktur an, die die Werte ausgibt. Würde ich hier nicht so vorgehen würde ich ständig Lücken in meinem Messwertdiagramm erhalten. Allerdings soll noch die Anzahl der (auf dem PC) erfassten Werte gezählt werden. Hierzu wollte ich den von der Read VI ausgegebenen Wert (sollte meist nur 1 sein) aufsummieren. Die abgebildete Variante mit der While Schleife innerhalb der Case-Struktur funktioniert zwar, allerdings ist ja die Benutzung von Variablen nicht so gern gesehen. Daher würden mich andere, vor allem simplere Lösungen interessieren.

Danke


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2006, 11:33
Beitrag #5

Svenni Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 227
Registriert seit: Mar 2005

7.1, 8.0, 8.2, 8.21, 8.5, 8.6, 2009, 2010, 2011, 2012, 2013, 2014
2000
DE

23843
Deutschland
Möglichkeiten für Zählvariablen gesucht
Hallo RuffRyder,

das kann man ganz leicht lösen.

Richte in der Schleife ein Schieberegister ein. Außerhalb der Schleife setzt du das Register mit einer Konstante auf 0. Innerhalb der Schleife gehst Du von dem linken Anschluss des Registers auf einen Adierer und von dort auf die rechte Seite des Registers. Der zweite Anschluss des Addierers geht an den den Zählausgang deines SubVI's. An den Ausgang des Addierers schließt du ein Anzeigeelement. Fertig.
Sobald das Unterprogramm Werte an das Hauptprogramm übergibt wird deine Anzeige hochgezählt.
Ein Bild sagt mehr als tausend Worte, daher der Anhang.

Viel Spaß
sven


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2006, 12:19
Beitrag #6

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Möglichkeiten für Zählvariablen gesucht
RuffRyder schrieb:[...] allerdings ist ja die Benutzung von Variablen nicht so gern gesehen. Daher würden mich andere, vor allem simplere Lösungen interessieren.

nicht gern gesehen ist irgendwie falsch ausgedrückt, finde ich. Ich z.B. "wettere" immer gegen die Verwendung von lokalen Variablen, weil Sie eine Menge Probleme verursachen können wenn man sie falsch einsetzt (Stichwort: Race Condition,). Zudem bricht man mit lokalen Variablen das (LabVIEW zugrundeliegende) Prinzip der datenfluss-orientierten Programmierung, und daher sollte man sie nur einsetzen, wenn man 1. weiss was man tut, 2. sichergestellt hat, dass man keine race condition programmiert hat und 3. es deutlich einfacher ist eine lokale Variable zu verwenden als etwas nach dem Datenfluß-Prinzip zu programmieren.

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2006, 14:14
Beitrag #7

RuffRyder Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2006

8.00
2003
kA


Deutschland
Möglichkeiten für Zählvariablen gesucht
Vielen Dank erstmal für die Tips. Allerdings bin ich beim rumprobieren auf die "Feedback Node" gestoßen. Die habe ich jetzt mal eingesetzt und die Sache funktioniert auch wunderbar. Allerdings gibt es jetzt das nächste Problem. Die Feedback node (wie auch das Schieberegister) merken sich den Wert vom vorherigen Programmdurchlauf. Dies kann ich überhaupt nicht gebrauchen. Auch das Initializer Terminal hilft da nicht weiter, da der Initialialisierungswert permanent an diesem Terminal anliegt, egal wo man die dazugehörige Konstante platziert. Ich suche also eine möglichkeit die Feedback node zu nullen und dabei nicht über "operate>initialize all to default" zu gehen. Eine programminterne Lösung wäre traumhaft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2006, 17:01
Beitrag #8

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Möglichkeiten für Zählvariablen gesucht
hmm ... das, auf das du da gestoßen bist, ist mit DAS BESTE was man in LabVIEW ÜBERHAUPT programmieren kann ;-)

mit Shift-Registern, die IN DER SCHLEIFE initialisiert werden, erstellt man s.g. "Old-Style-Globals" die man im weiteren Sinne als Objekte betrachten kann. Feedback-Nodes und Shift-Register sind ja dazu da, dass in einer Schleife der Wert vom vorhergehenden Durchlauf "auf der linken Seite" wieder zur Verfügung steht. Wenn sich der Wert nicht ändern soll, dann schiebst du halt in der Schleife den Wert, der rauskam wieder rein. Man kann das über eine Case-Struktur realisieren, im False-Case z.B. wird der Wert einfach "durchgeschliffen", im True-Case kann sich was ändern, je nach Bedarf (siehe Beispiel "shiftreg.png").

Wenn der Wert des Shift-Registers bei jeden Aufruf des VIs neu "genullt" werden soll, dann initialisiert man ihn von aussen. (Siehe Bsp. 3)

Programmiere das Bsp 1+2 mal nach und setz es irgendwo als SubVI ein, du wirst sehen, das VI "merkt" sich seinen Zustand und zählt den Wert hoch, bis es neu initialisiert wird.

Ich verwende dieses Konstrukt immer um z.B. eine "Hardware-API" zu erstellen. In dem SoundCard Demo, das hier irgendwo im Forum rumfliegt (oder hier runtergeladen werden kann) wir dieses Prinzip (hoffentlich) deutlich: Das VI "merkt" sich alles, was mit der HW zu tun hat, und man spart sich jede menge "Verkabelung". Noch besser: die ganze Geschichte ist gleich gekapselt, dadurch wiederverwendbar, kann "StandAlone" getestet werden und man strukturiert seine Software :-)


Angehängte Datei(en) Thumbnail(s)
       

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
20.03.2006, 17:30
Beitrag #9

RuffRyder Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 59
Registriert seit: Feb 2006

8.00
2003
kA


Deutschland
Möglichkeiten für Zählvariablen gesucht
Nach einigem probieren bin ich auch auf die variante mit der Case-Struktur gekommen. Als Bedingung verwende ich den Index des großen While-Loops. Steht dieser auf 0 (Anfang) wird die die Rückführung in einer Case-Struktur ausgekoppelt und eine 0 eingekoppelt.
Trotzdem nochmal vielen Dank für die Tips und die guten Diagramme.
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
  Möglichkeiten und Merkmale von LabVIEW Praktikantin 13 7.699 18.08.2015 12:15
Letzter Beitrag: jg
  MS Office Report weitere Möglichkeiten? Booner 4 3.873 28.03.2013 09:58
Letzter Beitrag: Booner
  Grundlegene Möglichkeiten - C -> Labview labview2013 11 9.297 21.02.2013 16:27
Letzter Beitrag: GerdW
  Case Struktur Selektor mit drei Möglichkeiten samuel-stinger 1 4.056 09.12.2010 10:08
Letzter Beitrag: chrissyPu
  Möglichkeiten zur Speicherung von Frontpaneleingaben lrad 3 4.041 30.03.2010 11:47
Letzter Beitrag: Y-P

Gehe zu: