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 

Dieses Thema hat akzeptierte Lösungen:

Frage Positioniersystem



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.03.2015, 12:02
Beitrag #1

Mistitoe Offline
LVF-Neueinsteiger


Beiträge: 1
Registriert seit: Mar 2015

14.0
2015
DE


Deutschland
Frage Positioniersystem
Hallo an alle!

Ich bin neu hier im Forum und arbeite seit knapp 2 Monaten mit LabVIEW. Nun bin ich auf ein Problem gestoßen, bei dem ich nicht weiter weiß.
Ich möchte ein dreiachsiges Positioniersystem steuern, bei dem ich, bei der Vorderansicht,

y für links/rechts,
z für hoch/runter,
x für rein/raus

definiert habe. Meine Führungsachse ist y. Ich habe nun eine Art Fahrplan erstellt, wobei das System von links unten (y0,z0,x0) nach rechts (yn,z0,x0), hoch (yn,z1,x0), links, hoch usw. mäanderförmig nach oben fährt. Dann soll auf es auf x1 gehen und den gleichen Weg runterfahren und so scheibchenweise ein Gitter aufbauen.

Mein Programm ist so aufgebaut, dass es am Anfang erst die Werte einzeln berechnet und mittels drei Schleifen meinen Fahrplan erstellt. Dabei vergleicht es immer die Indizes (gerade/ungerade) und kehrt so ggf. das Array für die jeweilige Achse um.

Ich hänge jetzt in der innersten Schleife fest. Wenn man das Programm mit ungeraden (z.B. 3) z-Werten (iz 0-2) laufen lässt stimmt der Plan. Das System fährt planmäßig von links unten nach rechts oben, geht auf x1, und fährt zurück. Insgesamt 27 Werte.
Allerdings stimmt es nicht mehr bei geraden z-Werten (z.B. 4). In diesem Fall muss es von links unten nach links oben fahren. Stopp wäre normalerweise ebenfalls rechts oben, dann hätten mir aber die y-Werte (Fahrt nach links) der obersten Ebene gefehlt. Daher die 9 weiteren Werte (insgesamt 36).

Ich bekomme es nun nicht hin, dass das System dann den gleichen Weg (links oben, links unten) zurückfährt. Ich habe es mit Logikoperatoren versucht, was nach mehrmaligem Drehen und Wenden einfach nicht zum Ergebnis führte. Entweder klappte es dann mit geraden oder ungeraden z-Werten, aber nicht mit beiden. Angry

Im Anhang habe ich einen idealen Plan für gerade z-Werte als Vergleich beigefügt.


Über Hilfe wäre ich sehr dankbar.. und.... ist diese Art des Erstellens eines solchen Plans überhaupt clever? Blink


Viele Grüße


Angehängte Datei(en)
0.0 .txt  Fahrplan ideal z=4 werte.txt (Größe: 703 Bytes / Downloads: 142)

14.0 .vi  erstellung plan 14.0.vi (Größe: 53,44 KB / Downloads: 129)

14.0 .vi  xyz-Werte (global) 14.0.vi (Größe: 11,22 KB / Downloads: 108)

9.0 .vi  erstellung plan.vi (Größe: 31,66 KB / Downloads: 123)

9.0 .vi  xyz-Werte (global).vi (Größe: 10,7 KB / Downloads: 112)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.03.2015, 12:48 (Dieser Beitrag wurde zuletzt bearbeitet: 25.03.2015 12:52 von GerdW.)
Beitrag #2

GerdW Online
______________
LVF-Team

Beiträge: 17.430
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Frage Positioniersystem

Akzeptierte Lösung

Hallo toe,

Zitat:Über Hilfe wäre ich sehr dankbar..
- der mehrfache Zugriff auf ein und dieselben (globalen) Variablen in den Casestrukturen am Anfang ist unnötig. Einmal die Werte lesen und dann verdrahten!
- Deine "Wert"-PropertyNodes sind eines der Grundprobleme in deinem VI! Wenn du Werte der vorigen Iteration speichern willst, nimmt man Schieberegister!
- Leider löscht du deine Arrays nicht mittendrin - was man sieht, wenn man Schieberegister einsetzt. Hier fehlt eine ordentliche Initialisierung…

Zitat:ist diese Art des Erstellens eines solchen Plans überhaupt clever?
Es scheint erstmal das zu passieren, was du haben willst.
Aber: "clever" finde ich es nicht, wenn Code dupliziert wird, statt subVIs zu nutzen. (Abgesehen von den oben genannten Problemen.)

Mal etwas Pseudocode:
Code:
FOREACH x
  FOREACH z
    FOREACH y
      addpoint(x,y,z)
    NEXT y
    invert Y-Array
  NEXT z
  invert z-array
NEXT x

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


Gehe zu: