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 

Zähler erstellen



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!

28.06.2012, 09:57 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2012 09:37 von jg.)
Beitrag #1

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
Zähler erstellen
Hallo

in meinen Programme habe ich einen Zustandsautomat.

Ich will jedes mal als der Zustandsautomat in einer bestimmte schleife geht, die Anzahl der Schleifendurchlauf zählen.
Ich habe eine Möglichkeit im Forum gefunden siehe zähler.VI, leider bleibt meinen Programm jetzt in der Schleife blockiert und zählt nur noch weiter.
Wie kann ich dass ändern dass der im nächsten Zustand (TestIn) überspringt.

Anbei Zähler.VI (Aus Labview Forum)
Und screenshot von meine Schleife.

Gruß
Régis
Hallo

nochmal einen Versuch für das Bild hochzuladen

Sorry

Edit Moderator: Bild nach PNG Konvertiert


Angehängte Datei(en) Thumbnail(s)
   

10.0 .vi  zähler.vi (Größe: 8,1 KB / Downloads: 455)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.06.2012, 10:28 (Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2012 10:29 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: zähler erstellen
Hallo regis,

es gibt einen Grund, warum BMPs nicht als Upload zugelassen sind. Schon mal auf die Dateigröße geachtet, wenn du ein Bild von BMP nach PNG konvertierst?

Diese Zählerschleife stoppt bei einem TRUE an der Stopp-Bedingung. Wird dies jemals erreicht?
Außerdem dürfte die Case-Struktur mittendrin Blödsinn sein:
IF false THEN false. Danach das Select: IF true THEN false ELSE auch false. Danach die Stop-Abfrage: leider ein false. Also von vorn und auf ewig so weiter...

Hast du schon mal selbst Debugging betrieben?

Zitat:Wie kann ich dass ändern dass der im nächsten Zustand (TestIn) überspringt.
Entweder die Schleife sauber programmieren oder ganz entfernen (was dann auch "sauber" wäre Smile )...

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

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
RE: zähler erstellen
Hallo

Diese Zählerschleife stoppt bei einem TRUE an der Stopp-Bedingung. Wird dies jemals erreicht?

Nein es wird nicht erreicht und das ist mein Problem.
Ich möchte dass der Zähler nur um eins inkrementiert wird jedes mal dass es in der Case Struktur kommt ( Case struktur die mit rotem Kreis bezeichnet ist)

Gruß
Régis57
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.06.2012, 13:28
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: zähler erstellen
Hallo regis,

warum dann so kompliziert mit Schleifen und Cases und Vergleichen?
Warum nicht einfach einen Zähler mit einer FeedbackNode als Speicher?
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.06.2012, 06:53
Beitrag #5

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
RE: zähler erstellen
Vielen Dank für dein Hinweis ich probiere es so aus

Gruß
Régis57
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.06.2012, 09:47 (Dieser Beitrag wurde zuletzt bearbeitet: 29.06.2012 09:49 von Kiesch.)
Beitrag #6

Kiesch Offline
LVF-Stammgast
***


Beiträge: 415
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: Zähler erstellen
Nochmal zu deinem Ursprünglichen VI, da du scheinbar nur phänomenologisch geschlossen hast das True am Stop nicht erreicht wird:

Schieberegister sind mit "False" und 0 initialisiert. Kucken wir mal was mit dem False passiert: Das gibt im False Case wieder ein False aus. Die Case Struktur ist entsprechend unsinnig, da du in True entweder True oder False ausgibts (mehr zustände hat Bool ja nicht). Das heist: Entweder kannst du die durch eine False konstante, oder durch einen Draht ersetzen (da du wenn bei True-Case True ausgegeben wird auch gleich den angelegten Bool weitergeben kannst (der Case macht nämlich dann nur eine Identität).

Da du mit False initialisierst liegt entsprechend immer am oberen selector (der danach kommt) "false" an und am unteren auch. Entsprechend ist egal was s ist (True oder False) ausgegeben wird immer ein False für den nächsten Schleifendurchlauf und das Spiel wiederholt sich (deswegen stoppt deine Schleife nicht).

Das Numeric ist noch schlimmer: Da initialisierst du mit 0. Für s = "False" schreibst du jeweils wieder 0 ins Register (da passiert also "nichts", es sei denn du hast vorher gezählt, dann nullst du deinen Counter wieder - kann mir auf anhieb nicht vorstellen, dass das Verhalten gewünscht ist).
Für s= "True" zählst du (Anmerkung: In der Anzeige zeigst du dabei 0 für den ersten Schleifendurchlauf, 1 für den Zweiten etc. pp; am Schieberegisterausgang (bei beenden der Schleife) wird hingegen der Schleifendurchlauf angezeigt.

Was ist das Problem dabei? Nunja, da du deine Schleife nicht beendest macht die nur: Zählen für s= True; Counter nullen für s= False. Neben der Tatsache, dass dein Zähler nicht die Anzahl der Schleifendurchläufe anzeigt (wie wohl gewünscht) sondern die Anzahl minus eins, entspricht so der Counter wenn du s irgendwann mal umschaltest überhaupt nichtmehr der Anzahl der Schleifendurchläufe (da zwischendurch genullt wird obwohl die Schleife noch läuft; auch wird dann nichtmehr pro Schleifendurchlauf weitergezählt).
Dann fällt mir auf: Die Schleife rennt ungebremst (kein Wait) das verursacht (vermutlich unnötig) Prozessorlast.

Ansonsten: Mit der Struktur die du da gebaut hast (wenn richtig aufgebaut) misst du lediglich die Anzahl der Schleifendurchläufe bis die Schleife beendet wird und nicht die Gesamtzahl der Schleifendurchläufe (!). Dafür kannst du auch einfach das i (als von der Schleife bereitgestellte Zählvariable) nehmen, mit nem +1 versehen und anzeigen lassen. Das lohnt den Aufwand dann nicht...

Wenn du hingegen die Gesamtzahl aller Schleifendurchläufe in dieser Schleife haben willst, musst du auch nur einfach das i nach aussen geben (aus der schleife), nach der Schleife nen +1 hinzufügen (ginge auch in der Schleife aber du brauchst ja vermutlich nicht bei jedem Durchlauf berechnen welcher Schleifendurchlauf grade läuft) und das ganze dann in der zu der Anzahl der in der äußeren Schleife gespeicherten vorherigen Durchläufe addieren.

Im Anhang das Ganze als Beispiel zur Verdeutlichung.


P.S: Wenn du Stop Inner Loop vor dem Starten der Inneren Schleife drückst läuft die genau einmal durch.

P.P.S: Die Counter und die Additionen für die Korrektur hab ich mal in die Innere Schleife gelegt, da man das ansonsten nicht so schön sieht. Wenn die Anzeige nicht live sein muss, kannst du beides auch nach der Schleife anbringen, dann wird entsprechend erst wenn die Schleife wieder gestopt wird aktualisiert.


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Counter Schleifenübergreifend.vi (Größe: 10,05 KB / Downloads: 398)

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.07.2012, 09:58
Beitrag #7

regis57 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Jun 2012

2010 und 2012
2011
DE


Deutschland
RE: Zähler erstellen
Danke Kiesch und Danke Gerd,
die einfache Lösung von Gerd funktionniert, die while Schleife hat der Nachteil dass meine Umgebung in der Zähler Schleife bleibt bis ich der Vorgang von Hand stoppe.

Gruß
reg57
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Zähler in LV Michael26 3 4.603 12.04.2014 12:32
Letzter Beitrag: Lucki
  Zähler mit bestimmten Funktionen Peacemaker1985 8 6.428 14.08.2012 13:08
Letzter Beitrag: Lucki
  Zähler benny10 9 9.956 26.08.2011 17:43
Letzter Beitrag: benny10
  Ereignisabhängiger Zähler, der die Anzahl von Ereignissen mitzählt bienee 8 8.681 26.08.2011 10:42
Letzter Beitrag: GerdW
  Zähler / Counter Basti1984 6 17.014 30.06.2011 08:02
Letzter Beitrag: Basti1984
  dekadischer Zähler - Wobbelgenerator Blacky27 11 13.493 21.09.2010 19:40
Letzter Beitrag: jg

Gehe zu: