Inkrementalgeber und Referenzpositionen

MagCODESYSnicht

Level-1
Beiträge
38
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen an alle! Ich sitze gerade an einer Taktstraße, bei welcher ich mittels Inkrementalgeber die Position eines Greifarmes feststellen soll. Dies erfolgt, so wie ich das verstanden habe, über eine Flankenerkennung. Die Aufgabe lautet wie folgt:

Zunächst erfolgt die Initialisierung der Anlage:

– Dabei werden die Inkremental-Wegmesssysteme mit den tatsächlichen Positionen der Bewegungselemente der X- und Y-Achse in einer Referenzfahrt abgeglichen. Dazu wird zunächst der Greifer in die obere Endlage gebracht.

Anschließend wird das Portal zunächst in die Endlagen nach +X und +Y bewegt und danach in die Endlagen nach -X und -Y. Über die mechanischen Taster 14S3 und 15S1 werden jeweils die Referenzpositionen für die X- und die Y-Achse bestimmt. An diesen werden die Zähler für X und Y auf 0 gesetzt. In den Endlagen -X und -Y befindet sich das Portal im Grundstellung.


Nun hat unser Professor uns für die Flankenerkennung eine Vorlage für einen FUP gegeben, aber nicht in Ablaufsprache. Ich brauche also einen Counter für die X und Y Achse, so viel steht fest, was ich aber nicht verstehe ist, wieso der Zähler in den Punkten auf 0 gesetzt werden soll. Was hab ich davon? Ich glaube ich habe mal wieder einen groben Denkfehler.

Zur Verfügung stehen mir insgesamt 6 Kanäle, X Achse Kanal A und B, Y Achse Kanal A und B, und X Achse Kanal Z und Y Achse Kanal Z.

Kann mir wer erklären wie das funktionieren soll? Wofür sind überhaupt die Z Kanäle? Ich werde aus seinen Vorlesungen echt nicht schlau...
 
Zuletzt bearbeitet:
So langsam solltest du aber mal über deinen Nick nachdenken ... 8)

Und irgendwie hadere ich jetzt mittlerweile wirklich "ein ganz bisschen" mit deinem Professor ...
Inkrementalgeber bei Servo-Achsen sind auch nicht mehr unbedingt "Stand der Technik" ...

Aber zum Thema :
Ein Inkrementalgeber wird normalerweise nicht mit "normalen" Zählern abgefragt sondern mit einer Zählerkarte. Das hängt zum Einen damit zusammen, dass die Impulse des Gebers normalerweise mit einer hohen Frequenz herein kommen (Genauigkeit / Auflösung des Weges / Geschwindigkeit der Verfahrbewegung). Zum Anderen macht die Zählerkarte das mit der Richtungserkennung und Flankenauswertung ganz automatisch und selber.
Dein Geber vhat 2 Spuren die um 90° zueinander phasenverschoben sind. Kommt erst der Impuls auf der A-Spur und danach der auf der B-Spur dann dreht der Geber Rechts herum ansonsten Links herum. Was davon Vorwärts und was Rückwärts ist hängt dann am Einbau ...
Um die Genauigkeit zu Erhöhen bedient man sich dann gerne noch des Tricks die einzelnen Flanken auszuwerten. Hier gint es die Möglichkeit der einfachen Auswertung - es werden nur die steigenden Flanken ausgewertet, der doppelten - es werden die steigenden und die fallenden Flanken ausgewertet und der vierfachen - es werden die steigenden und die fallenden Flanken von beiden Spuren ausgewertet.
Die Z-Spur (oder Null-Spur) wird gerne mit zum Referenzieren herangenommen - sie erzeugt einen Impuls pro Geber-Umdrehung.

Kommen wir zum Referenzieren :
Beim Einschalten einer Maschine steht für gewöhnlich die Achse "irgendwo" - da sich doie SPS (oder die Achssteuerung) die letzte Position ggf. nicht "gemerkt" hat macht man einen Referenzfahrt. Das heißt : man fährt eine definierte Position an und setzt dort den Positionszähler entweder auf Null oder einen definierten Wert.
Der Zähler des Gebers läuft beim Verfahren IMMER mit. Da du ja vorher nicht weißt, wie weit es zum Referenzpunkt gewesen ist, musst du ihn also dort rücksetzen (oder setzen - je nach Geschmack).
Als Referenzpunkt nimmt man gerne einen Ini im Fahrweg der Achse und den u.U. in Verbindung mit der Nullspur des Gebers. Letzteres deswegen weil das Signal des Ini's alleine, ggf. in Verbindung mit der Fahrgeschwindigkeit, zu ungenau ist. Wenn du aber sagst : Refernz = pos. Flanke des Ini's und dann der Null-Impuls des Gebers dann bis du sehtr genau ...

So ... mit diesen Informatioonen : wo hängt es jetzt ?

Gruß
Larry
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
...Hier gint es die Möglichkeit der einfachen Auswertung - es werden nur die steigenden Flanken ausgewertet,...
O.T.:
Genau das sollte man nicht machen. Wenn der Geber sich auf der zählenden Flanke hin und her bewegt, entstehen unweigerlich Zählfehler. Wenn man von einem Kanal die steigende Flanke auswertet muss man unbedingt von diesem Kanal auch die fallende Flanke auswerten.
Gruß
Erich
 
@Erich:
wenn du es "handisch" machst - also die Zähler konventionell programmierst, möglicherweise. Ein Zählimpuls + wäre ja immer "erst Spur A, dann Spur B" bzw. bei - dann umgekehrt. Das heißt um das zu bekommen müßtest du schon die Zählerauswertung selbst erstellt haben und dabei dann auch noch die Spur-Auswertung vernachlässigt haben. Die Zählerkarte macht das aber definitiv nicht ... auch nicht bei einfacher Flankenauswertung ...

Gruß
Larry
 
Du bist mal wieder meine Rettung. Nirgends hat unser Prof uns ein Beispiel zu einem Inkrementalgeber gegeben. Du bist ein echter Segen für dieses Forum.

Die Z-Spur ist also im Grunde mein Takt für die Zählung. Bei jedem Impuls muss ich prüfen wie gerade der Stand der Dinge ist, ob A oder B high ist. Da er mir A und B spuren gegeben hat muss ich vermutlich beide auswerten. Pro Zyklus muss ich gucken ob sich die Flanke von A oder B geändert hat, wenn ja, wird in diesem Zyklus der Zähler um eins erhöht. Muss ich für einen Flankenwechsel von A und B den Zähler erhöhen oder nur wenn A oder B einen wechsel hat?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du bist mal wieder meine Rettung. Nirgends hat unser Prof uns ein Beispiel zu einem Inkrementalgeber gegeben. Du bist ein echter Segen für dieses Forum.

Die Z-Spur ist also im Grunde mein Takt für die Zählung. Bei jedem Impuls muss ich prüfen wie gerade der Stand der Dinge ist, ob A oder B high ist. Da er mir A und B spuren gegeben hat muss ich vermutlich beide auswerten. Pro Zyklus muss ich gucken ob sich die Flanke von A oder B geändert hat, wenn ja, wird in diesem Zyklus der Zähler um eins erhöht. Muss ich für einen Flankenwechsel von A und B den Zähler erhöhen oder nur wenn A oder B einen wechsel hat?

Naja, Wikipedia und das Internet halten da durchaus ganz gute Erklärungen bereit.
Also wenn Du 1fach Auswertung hast, dann nur 1 zählen, wenn Du von A einen Impuls bekommst.
 
Lies dir bitte noch einmal genau durch, was ich zu dem Thema der Impulse geschrieben habe.
Danach mal dir das bitte im Impuls-Zeit-Diagramm auf.
Du hast z.B. einen Geber, der 1024 Impulse pro Umdrehung macht. Das heißt, es kommt 1024 mal A und B und ein mal Z.
Dann :
wenn A vor B kommt dann aufwärts zählen - wenn B vor A kommt dann abwärts zählen. (Aufmalen !!!)

Gruß
Larry
 
oder Tante Google fragen... von den Diagrammen gibt's genug im Netz.

https://de.m.wikipedia.org/wiki/Inkrementalgeber
Das, was unter dem link zu den Themen "Hysterese" und "Apriori-Wissen" gesagt bzw. angedeutet wird, ist mit Vooorsicht zu geniessen!
Jede FlankenErkennung stützt sich auf "Apriori-Wissen" - das ist nichts weiter als der vorherige Zustand!
Die sonst so geliebte Hysterese, um Störungen zu entschärfen, ist hier total fehl am Platz. Die vermeintlich erreichte Hysterese ist genau der wunde Punkt, der vermeidbare Probleme schafft.
Eine VierfachAuswertung ist immer OK, aber Einfach- oder Zweifach- (oder - absolut unüblich, aber immerhin denkbar - Dreifach-) Auswertungen werden leider oft falsch beschrieben und auch oft falsch realisiert.

Ich würde mich nicht dafür verbürgen wollen, dass es keine ZählerKarten gibt, die nicht diesen Fehler enthalten (traue keiner a/b-Auswertung, die Du nicht selbst programmiert/verifiziert hast ;)!).
Es ist sooo einfach, die Auswertung richtig zu machen, aber leider ist es auch sehr einfach, den lauernden Fehler zu übersehen und sich dann mit vermeintlichen StörSignalen herumplagen zu müssen.

Das Thema wurde hier im Forum schon mehrfach durchgekaut - ich muss mal schauen, ob ich da was passendes finde, rechne aber damit, dass andere das viel schneller schaffen. ;)
 
Die Zählerkarte macht das aber definitiv nicht ... auch nicht bei einfacher Flankenauswertung...
Stimmt, die wertet aber auch nicht nur die positive Flanke eines Kanals aus, wie Du es beschrieben hast.
Versuche doch einfach mal, den Algorithmus zu beschreiben, der mit der Auswertung nur der positven Flanke eines Kanals fehlerfrei zählt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
---Die Z-Spur ist also im Grunde mein Takt für die Zählung. Bei jedem Impuls muss ich prüfen wie gerade der Stand der Dinge ist, ob A oder B high ist. Da er mir A und B spuren gegeben hat muss ich vermutlich beide auswerten. Pro Zyklus muss ich gucken ob sich die Flanke von A oder B geändert hat, wenn ja, wird in diesem Zyklus der Zähler um eins erhöht. Muss ich für einen Flankenwechsel von A und B den Zähler erhöhen oder nur wenn A oder B einen wechsel hat?
Nein, die Z-Spur ist zum genauen Referenzieren und kommt nur einmal pro Umdrehung.
wenn man z. B. eine Spindel mit Drehgeber mit einem Nockenschalter referenzieren will, dann ist der Schaltpunkt des Nockenschalters viel zu ungenau. Deshalb wird der Nockenschalter mit dem Z-Impuls UND-verknüpft und das Ergebnis zum genauen Referenzieren benutzt.
Gruß
Erich
 
Stimmt, die wertet aber auch nicht nur die positive Flanke eines Kanals aus, wie Du es beschrieben hast.
Versuche doch einfach mal, den Algorithmus zu beschreiben, der mit der Auswertung nur der positven Flanke eines Kanals fehlerfrei zählt.
Einen solchen Algorithmus gibt es nicht, kann es nicht geben.
Es muss/müssen in beiden Richtungen dieselbe[n] Flanke[n] ausgewertet werden. ABER dieselbe Flanke ist in einer Richtung eine positive und in der umgekehrten Richtung eine negative Flanke!
Das klingt zwar paradox und verwirrend, ist es aber gar nicht.

Einfache Lösung, um es zu verstehen: ein ImpulsDiagramm der a/b-Signale aufmalen oder irgendwo heraussuchen UND um Himmelswillen kein zweites Diagramm für die umgekehrte Richtung!
Dieses eine Diagramm für die eine Richtung von links nach rechts "lesen" und für die umgekehrte Richtung dasselbe Diagramm von rechts nach links "lesen". Dadurch stolpert man automatisch darüber, dass ein und dieselbe Flanke (einfach im Diagramm markieren) in der einen Richtung eine positive und in der anderen eine negative ist.

Wertet man z.B. nur die positiven Flanken eines Signals aus, so sind das im Diagramm zwei verschiedene Flanken und man hat eine wunderbare Hysterese von 180°, ABER man hat dadurch überhaupt keinen Vorteil, sondern einen riesigen Nachteil! Eigentlich 2 riesige Nachteile, da zwei verschiedene Flanken betroffen sind.
Ein Jitter ("Vibrieren") oder ein simpler RichtungsWechsel um eine der beiden Flanken herum zählt immer nur in einer einzigen Richtung und ein Jitter (bzw. RichtungsWechsel) um die andere Flanke herum zählt immer nur in der anderen Richtung.
Genau das ist das Problem. Wird eine Flanke in der einen Richtung überschritten, so wird in einer Richtung gezählt. Wird die Richtung umgekehrt, so muss an genau derselben Flanke in umgekehrter Richtung gezählt werden, wird aber nicht.
Ergo, Algorithmen, die z.B. nur positve Flanken eines Signals zählen, haben automatisch den Fehler eingebaut, den man so leicht vermeiden könnte/kann.

Wir haben 4 Flanken und es ist egal, welche davon wir auswerten, aber wir dürfen nicht je nach Richtung unterschiedliche Flanken auswerten.
Werden alle 4 Flanken ausgewertet, so ist dies automatisch erfüllt.
Werden aber weniger als 4 Flanken ausgewertet (nur 1 oder 2 oder 3), so muss man aufpassen, dass man in beiden Richtungen unbedingt dieselben Flanken auswertet.

PS:
Ich hatte mal in einer Doku zu einer SiemensZählerkarte gefunden, dass die Karte - sofern sie wirklich so funktioniert, wie in der Doku beschrieben - das o.g. Problem an Bord hat. Ich kann nur hoffen, dass sich der Fehler nur in der Doku findet und nicht in der Karte. :ROFLMAO:
 
Zuletzt bearbeitet:
Stimmt, die wertet aber auch nicht nur die positive Flanke eines Kanals aus, wie Du es beschrieben hast.
Versuche doch einfach mal, den Algorithmus zu beschreiben, der mit der Auswertung nur der positven Flanke eines Kanals fehlerfrei zählt.

Wir müssen hier jetzt keine Haarspaltereien machen - schon gar nicht bei den Formulierungen. Wenn du dir den Beitrag von mir nochmals (und diesmal vielleicht GENAU) durchliest dann wirst du feststellen, dass ich IMMER von beiden Spuren geschrieben habe. Wie du darauf kommst, dass ich irgendwo nur von dem alleinigen Auswerten der Spur A (oder B) geschrieben habe ist mir absolut schleierhaft - wie auch immer - meine danach folgende Erklärung bezog sich alleinig auf das Auswerten der Flanken (1fach, 2fach und 4fach) um hier die möglicherweise nächste Frage gleich vorweg zu nehmen.

Aber da ich befürchte, dass dieser Beitrag jetzt vielleicht eine Endlos-Diskussion anstossen könnte - hier noch einmal das Zitat des fraglichen Beitrags von mir (ich habe lediglich die relevante Passage in Bold dargestellt und sogar die Rechtschreibfehler drin gelassen) :
Dein Geber vhat 2 Spuren die um 90° zueinander phasenverschoben sind. Kommt erst der Impuls auf der A-Spur und danach der auf der B-Spur dann dreht der Geber Rechts herum ansonsten Links herum. Was davon Vorwärts und was Rückwärts ist hängt dann am Einbau ...
Um die Genauigkeit zu Erhöhen bedient man sich dann gerne noch des Tricks die einzelnen Flanken auszuwerten. Hier gint es die Möglichkeit der einfachen Auswertung - es werden nur die steigenden Flanken ausgewertet, der doppelten - es werden die steigenden und die fallenden Flanken ausgewertet und der vierfachen - es werden die steigenden und die fallenden Flanken von beiden Spuren ausgewertet.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir müssen hier jetzt keine Haarspaltereien machen - schon gar nicht bei den Formulierungen. ...
Sorry Ralf, aber diese Bemerkung muss ich einfach zum Aufhänger für diesen OffTopicBeitrag nehmen.

Für Programmierer gehört es doch zum "täglich Brot", besonderen Wert auf präzise Formulierungen zu legen ... nämlich beim Formulieren von ProgrammCode!
Was ein "NichtProgrammierer" durchaus als Haarspalterei empfinden kann, das kann in unserem Metier der kleine "digitale" Unterschied zwischen TRUE und FALSE sein.
Ich weiss, dass mir auch immer wieder nicht-hieb-und-stichfeste Formulierungen gelingen, aber ich bemühe mich darum.
Wir wünschen uns und unseren Glaskugeln doch auch ständig, dass die TEs ihre Aufgabenstellungen und Fragen verständlich und so korrekt und präzise wie möglich formulieren, damit wir nicht ellenlange Listen von Rückfragen stellen müssen.
Und wir wissen, dass sich hier auch Mitleser mit den unterschiedlichsten KenntnisStänden tummeln und versuchen etwas dazuzulernen.
Ich finde, sie sollten nicht von uns lernen, das Streben nach präzisen Formulierungen als HaarSpaltereien abzutun oder misszuverstehen! ;)
 
...Hier gint es die Möglichkeit der einfachen Auswertung - es werden nur die steigenden Flanken ausgewertet, der doppelten - es werden die steigenden und die fallenden Flanken ausgewertet und der vierfachen - es werden die steigenden und die fallenden Flanken von beiden Spuren ausgewertet....
Dann zeige uns doch bitte endlich den Algorithmus, der nur mit steigenden Flanken zuverlässig funktioniert. Von mir aus auch mit beiden Spuren.
Gruß
Erich
 
Aber selbstverstzändlich doch - gerne ...
Ich habe hier mal einen ganz alten Thread aus dem Forum ausgegraben :
Drehrichtungserkennung Inkrementalgeber
Hier kannst du dir dann mal das Beispiel von Kai ansehen.
Hoch-Zählen würde man dann mit dem Signal "Rechts" - Runter-Zählen mit dem Signal "Links".
So ganz nebenher macht das aber auch JEDE Zählerkarte - ohne Fehler.
Die Auswertung der weiteren Flanken dient lediglich dem Zweck, eine höhere Genauigkeit zu erzielen - wenn ein Impuls bei einfacher Flankenauswertung z.B. 1 mm entspricht dann würde er bei doppelter Flankenauswertung 0,5 mm entsprechen (bei gleichem Geber) und bei 4facher Flankenauswertung dann 0,25 mm.
Ich bin allerdings ein ganz bisschen erschrocken, dass du das nicht weißt ... aber was solls ...

Gruß
Larry
 
Das war ja wohl garnix.
Bei solchem Unsinn bin ich raus.
Plonk!


Edit: geht nicht, Moderatoren durfen Unsinn schreiben und man kann sie nicht auf die Ignorelist setzen.

Wo ist denn dein Problem, wenn ich mal fragen darf. Larry hat dir doch den Code-Verweis gezeigt, das ist im Forum schon druchgekaut worden. Man muß auch nicht immer alles parat haben, wenn das von mir jetzt mal eben korrekt ausprogrammiert werden sollte, dann muß ich mich auch erst einmal hinsetzten und kann dir das nicht sofort präsentieren.

PS: Dass man Moderatoren nicht auf die Ignorliste bekommt, hat sicher seinen Sinn, ist aber nicht von uns so programmiert, sondern von den Machern der Forensoftware. Wir können dich ja auch nicht auf unsere Ignorliste setzen, dann bekämen wir ja nicht mehr mit, wenn du dich hier mit jemandem kloppst. ;) Insofern "müssen" wir alles lesen, klar oder?
 
Zurück
Oben