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 

Problem mit Schleifen bei ABS Simulation



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!

12.02.2012, 01:16
Beitrag #1

michelb Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Feb 2012

2009
2011
kA



Problem mit Schleifen bei ABS Simulation
So da bin auch direkt nochmal

Also um mal meine Gesamtprojekt zu beschreiben:

Ich muss ein ABS simulieren und will das mit entsprechender Hardware an einem Modell simulieren. Die Hall Sensoren aus meiner letzten frage nehmen die Umdrehung-Geschwindigkeit von vier Motoren auf. Diese möchte ich dann vergleichen und wenn einer von denen langsamer dreht wird der ABS Zyklus ausgeführt. Diesen habe ich mir wie folgt überlegt:

Das Programm überprüft ob die Geschwindigkeit eines Motors bzw. die gemessenen Umdrehungen des Hall Sensors unter einen bestimmt Wert sinkt (im Vergleich zu den anderen "Rädern" die mit normalem Tempo abgebremst werden sollen). Passiert dies wir über den analogen Ausgang der C-Rio ein Magnetventil geschlossen (hold pressure). Sinkt der Wert weiter wird eine anderes geöffnet(release pressure). Ab dann steigt die Geschwindigkeit des "Rades" also des einen Motors wieder und der ganze Vergleich fängt von
vorne an. Ich lasse die Spannung immer um z.b. 0.2Volt sinken. Das soll das abbremsen des Rades das blockieren will simulieren und wird bei meinem Modell den Motor bzw. die Motoren abbremsen. Die anderen Motoren werde ich mit z.b. 0.1Volt verlangsamen (normaler Abbremsvorgang).

Mein gesamtes VI wirkt wahrscheinlich etwas unübersichtlich Blush aber ich fange halt gerade erst mit labview an und mache wahrscheinlich noch grundsätzliche Fehler (habe es auch schon mit SubVI's probiert aber dann liefen die einzelnen Programm teile nicht mehr). Also wenn ihr etwas zu verschönern habt tut euch keinen Zwang an.Construction Es ist auch sehr groß geworden da ich alles immer 4 mal (für jedes Rad einzeln) ausführen musste. Ich bin soweit mit der Funktion ganz zufrieden nur leider bekomme ich es nicht hin, dass wenn ich das VI laufen lasse und dann "Bremsen" drücke der "true" Part der unteren Case Struktur beginnt. Ich glaub das hat irgendwas mit dem Schalter zu tun. Erst wenn ich das Programm stoppe und dann wieder anlaufen lasse (also jetzt ist der "Bremsen" Schalter von Beginn an grün) dann läuft es so wie ich es will. Zudem wenn ich dann "bremsen" wieder aus schalte soll eigentlich der andere Case durchlaufen und alle "analogen Ausgänge" auf den gleichen wert schalten.

Als zweites würde ich noch gerne einen Schalter einbauen der den Wagen startet also das alle "analogen Ausgänge" auf den eingestellten Anfangswert gehen. Also der Case "false" in meiner unteren Case Struktur aufgerufen wird.

Und als letztes habe ich noch ein Problem mit den Stopp Buttons. Da passiert eigentlich gar nichts wenn ich da drauf drücke. Und es sind so viele da wäre es ganz hilfreich zu wissen wie man die alle zu einem Button verknüpft.

Ich glaube das hat alles etwas mit den Anordnungen der Schleifen zu tun. Mache da bestimmt etwas grundlegend falsch aber habe da schon bei Tutorien geguckt aber nicht wirklich meinen Fehler herausfinden können.

Es wäre echt super wenn sich mal jemand das VI angucken könnte und mir sagen oder zeigen was genau ich da falsch mache bzw ändern muss.

Viele Grüße

Michel


Angehängte Datei(en)
9.0 .vi  ABS VI.vi (Größe: 80,28 KB / Downloads: 187)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.02.2012, 01:39
Beitrag #2

michelb Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Feb 2012

2009
2011
kA



RE: Problem mit Schleifen bei ABS Simulation
Habe das VI gerade nochmal verändert und stelle es jetzt nochmal hier rein.

Damit es funktioniert müsst ihr vor dem Starten die "Start Voltage" z.b. auf 7 setzten und die "Fälle der blockierenden reifen" auf z.b. 1. und halt den BREMSEN Knopf auch vorher (das ist ja was ich gerne während der Ausführung des Programms machen möchte).

viel Grüße


Angehängte Datei(en)
9.0 .vi  ABS VI.vi (Größe: 79,74 KB / Downloads: 170)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2012, 18:12 (Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2012 18:18 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Problem mit Schleifen bei ABS Simulation
Hallo michel,

das VI ist nicht dein Ernst, oder? Das erste, was man nach öffnen sieht, ist das hier:
   
Zu diesen 8 "Stop"-Buttons kommen dann nochmal mehrere "Beende Programm"-Knöpfe. Was soll das?

- Solange das Navigationsfenster sowas hier zeigt:
   
macht das Bearbeiten und Fehlersuchen in einem solchen VI überhaupt keinen Spaß...

- Das man Bedienelemente aussagekräftig benennen soll, ist ja richtig, aber der Name
"Eigentlich mussman immer 16 mal auf "Zählereingang 1" klicken da ich ein Zahnrad für den Sensor benutze das 8 zähne hat. habe es aber mal auf 5 geändert dann muss man nicht so viel klicken Release pressure Wheel 1"
für einen boolschen Input ist doch etwas arg lang geraten. (Tipp: LabVIEW unterscheidet zwischen Label/Beschriftung und Caption/Untertitel.)

- Es gibt für meinen Geschmack zu viele lokale Variablen - aber das mag Ansichtssache sein, solange RaceConditions vermieden werden.
- LV2009 verfügt über eine Aufräumfunktion, die würde wenigstens für gerade Leitungen sorgen...
- Es gibt Min/Max-Funktionen zum Bestimmen des Maximums mehrerer Werte, im Bild gleich zwei verschiedene Wege:
   
(Zu dumm, das hier lokale Variablen benutzt wurden, die nun die eigentliche Routine überdecken...) Außerdem läuft diese Schleife ungebremst, was sicherlich nicht hilfreich ist.
- Alles, was in jeweils 4 gleichen Schleifen erledigt wird (RPM-Bestimmung und RPM-Überwachung), ließe sich auch in jeweils einer Schleife erledigen und einiges auch einfacher bei Nutzung von Arrays...

Zitat:Damit es funktioniert müsst ihr vor dem Starten die "Start Voltage" z.b. auf 7 setzten und die "Fälle der blockierenden reifen" auf z.b. 1.
Warum müssen wir etwas machen, was du schon erledigen könntest, indem du diese Werte als Default setzt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2012, 21:13 (Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2012 21:14 von michelb.)
Beitrag #4

michelb Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Feb 2012

2009
2011
kA



RE: Problem mit Schleifen bei ABS Simulation
Hallo Gerd !

Sorry für das Chaos.Blush
Bin wie gesagt noch programmier-Anfänger und mache glaube ich viele Sachen sehr umständlich. habe gerade schon mal die "Min/Max-Funktionen" gefunden. Benutze oft die Elemente aus dem Express und da war die nicht mit dabei.
Werde auch mal das mit den 4 gleichen Schleifen versuchen zu vermeiden damit das ganze VI übersichtlicher wird.
Hatte das ganze erst für nur ein Rad erstellt und dann alles einfach für die anderen drei kopiert.

Ich werde mal versuchen deine Ratschläge umzusetzen und mich dann nochmal wegen dem eigentlichen Problem melden.
Das ganze VI ist echt sehr unübersichtlich und nicht gut durchdacht.

Aber dir schon mal vielen dank, dass du dir das überhaupt angeguckt hast.

Viele Grüße und ich melde mich wenn es besser aussieht Construction
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.02.2012, 16:22
Beitrag #5

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: Problem mit Schleifen bei ABS Simulation
Hallo Michel,

Wenn du schon lokale Variablen Nutzt, dann kannst du diese auch für das Beende Programm benutzen. Dann wärst du an der Stelle mit einem Knopf durch.

MfG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2012, 01:25
Beitrag #6

michelb Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Feb 2012

2009
2011
kA



RE: Problem mit Schleifen bei ABS Simulation
Sooooo

Also schon mal vielen Dank für eure Tipps. Habe die Stop Buttons alle zusammen gefasst und das ganze VI aufgeräumt. Zudem habe ich die min/max Erkennung geändert und die Schleifen, bei denen es ging, zusammen gefasst. Außerdem noch ein paar lokale Variablen entfernt.

Jetzt ist eigentlich nur noch ein Problem und zwar das mit dem "Bremsen" Button.
Wenn ich das VI starte funktioniert die Drehzahl Erkennung und die Min/Max Funktion. Drücke ich nun den Bremsen Button passiert nichts außer das die obere linke obere Schleife startet (also die "Volt der anderen Räder" sinkt). Eigentlich sollten nun die "Analog out" Anzeigen auch sinken. Also links in der Mitte die Case Funktion des "True" Falls starte. Das tun sie aber nur wenn ich den Bremsen Knop "True" lasse und das Programm erneut starte.

Weiß da jemand von euch woran das liegen könnte?

Ich würde also gerne die Bremse während das Programm läuft drücken können und die "Analog out" Anzeigen zählen runter. Wenn ich dann nicht mehr bremse sollen die den aktuellen Wert halten (also auf das Modell bezogen mit der bis dahin reduzierten Geschwindigkeit weiterfahren).

Viele Grüße


Angehängte Datei(en)
9.0 .vi  ABS.vi (Größe: 89,56 KB / Downloads: 169)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.02.2012, 10:00
Beitrag #7

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: Problem mit Schleifen bei ABS Simulation
Hallo Michel,

Dieses Phänomen ist doch eigentlich ganz klar. Der Zustand des "Bremsen" Buttons wird genau einmal abgefragt. Danach nie weider. Das liegt daran, dass die äußere While-Schleife genau einmal durchlaufen wird. Die inneren While-Schliefen laufen ja so lange, bis dein Programm beendet wird. Daher wird der Zustand des Buttons auch genau einmal abgefragt.

Think Dataflow ist bei LabVIEW die devise. Schau es dir doch mal mit Hilfe der "Glühbirne" im Blockdiagramm an. Dann erkennst du, dass die äußere Schleife nur einmal durchläuft und daher auch keine Zustandsänderung des "Bremsen"-Buttons erkannt werden kann.

MfG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2012, 18:36
Beitrag #8

michelb Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Feb 2012

2009
2011
kA



RE: Problem mit Schleifen bei ABS Simulation
Hey super danke Carsten jetzt läuft es!!!

Hatte vorher noch nicht so wirklich Ahnung von Schleifen aber jetzt hab ich mir das Schritt fuer Schritt mit der gluhbirne angeguckt und jetzt läufst.

VIELEN DANK !!!!
Big Grin
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
  Signaldarstellung für Simulation Peter04 11 8.704 12.07.2008 18:43
Letzter Beitrag: Peter04

Gehe zu: