# Revolver Programmieren



## gravieren (3 Februar 2011)

Hi

Ich haben einen Werkzeug-Revolver mit 12 Werkzeugen.

Einen Absolutgeber der von 0 -1023 "zählt".

Einen Sinamics S120 der über Profibus angesteuert wird. 

Ich mache eine Positionierung an den Steller:
Sollwert = KP * (Sollwert - Istwert)
(Den Sollwert gebe ich dann mit Vorzeichen an den SINAMS weiter)



Funktioniert soweit bis auf:
1. Übertrag 1023 --> 0   berechnungsgrösse.
2. Finden und ansteuerung des kürzesten Weges.
   Also z.b. Werkzeug 12 auf 1.   (Bei mir Positioniert er 12-11-10 ...)


Klingt simple, jedoch finde ich hierfür keinen Vernünftigen Algorythmus.


Kann mir jemand einen Tip geben.

Gruß Karl


----------



## Larry Laffer (3 Februar 2011)

Hallo karl,
in deinem Fall müßte die Berechnung "Soll_Pos - Ist_Pos" einen negativen Wert ergeben. In dem Fall dann einfach noch einmal max_Pos (also 1023) draufaddieren und du solltest die Differenz in Inkrementen haben. Jetzt mußt du nur (in dem fall) die Differenz "Ist_Pos - Soll_Pos" dagegen halten (vergleichen) um entscheiden zu können, welches der kürzeste Weg ist ...

Gruß
Larry


----------



## gravieren (3 Februar 2011)

Hi

So einen ähnlichen anastz hatte ich auch jedoch.


Soll   500
Ist    100
      ====
        400


Soll   100
Ist    500
      ====
       -400

Negativer Wert  --> 1023 draufaddieren  ?
Soweit ich dich verstanden habe.



Mit den Differenzen   +400 b.z.w.  -400 kann ich gleich als Sollwert vorzeichenrichtig beaufschlagen.  --> Geht bis auf die o.g. Ausnahmen


Oder habe ich hier einen Denkfehler ?


----------



## tnt369 (3 Februar 2011)

es geht darum, wenn bei dem vergleich soll/ist ein negatives ergebnis raus kommt die 1023 zu addieren um den tatsächlichen weg zu ermitteln.

logik:

1. soll-ist => weg in "positive" richtung

2. ist-soll => weg in "negative" richtung

3. kürzester weg => bestimmt richtung und weg-strecke


beispiel:

soll=900 ist=100

1. soll - ist: 900-100 => weg ist 800 (positive richtung)

2. ist -soll: 100-900 => -800 => +1023 addieren! => weg ist 223 (negative richtung)

3. kürzester weg ist 223 und zwar in negativer richtung


noch ein beispiel:

soll=100 ist=900

1. soll - ist: 100-900 => -800 => +1023 addieren! => weg ist 223 (positive richtung)

2. ist -soll: 900-100 =>  weg ist 800 (negative richtung)

3. kürzester weg ist 223 und zwar diesmal in positiver richtung


mfg
thomas


----------



## Larry Laffer (3 Februar 2011)

... nachdem Thomas das jetzt ja nun so schön ausgeführt hat sollte ja jetzt nun alles klar sein ?


----------



## gravieren (3 Februar 2011)

Hi

Jetzt habe ich es verstanden.


Eigentlich ganz easy.
(Wenn man es verstanden hat )



Danke euch beiden.


Gruß Karl


----------



## Oberchefe (3 Februar 2011)

Die Position springt wahrscheinlich von 1023 auf 0, also entspricht 0 eigentlich 1024, demzufolge muss 1024 addiert werden, nicht 1023.


----------



## gravieren (4 Februar 2011)

Hi


Ja, stimmt 1024 sollte richtig sein.


Habe ich heute beim testen bemerkt.

Die Entfernung von 1023 nach 0   waren 0 Inkremente   
(Beim addieren mit 1023)

Sollte eigenlich 1 sein.


Danke


----------

