Forum: Mikrocontroller und Digitale Elektronik Gray-Code Problem


von Richard Rudolf (Gast)


Angehängte Dateien:

Lesenswert?

Moin!


Ich habe ein kleines Problem mit einem Gray-Code, der sich nicht in den
"normalen" Dualcode umwandeln lassen will.
Hintergrund ist, daß ich die Positionssensoren eines alten
Kuka-Industrieroboters auslesen möchte. Der Roboter ist von 1987, es
gibt keine Datenblätter mehr zu den Sensoren, und zudem ist auch noch
die alte Steuerung (Siemens RCM-30) defekt.
Das Auslesen mit einem ATMega klappt einwandfrei, der µC gibt hierbei
nur die ausgelesenen Bits an den PC weiter, der diese (vorerst)
auswerten soll. Das Ganze ist auf jeden Fall mit einem Gray-Code
codiert, nur ist es offensichtlich nicht der "übliche" Gray-Code,
wandelt man das Ergebnis um, kommt nix sinnvolles raus...
Im Anhang hab ich mal ein Diagramm hinterlegt, bei dem ich eine Achse
von Endanschlag zu Endanschlag verfahren habe. Die Daten von den
Sensoren sind 24-Bit "breit", angezeigt werden die Rohdaten.

Wäre schön, wenn jemand mir helfen könnte, ich sitze nun schon ein paar
Tage an dem Problem und komme nicht weiter. Die Anfrage bei kuka blieb
leider erfolglos.

Vielen Dank schonmal fürs Durchlesen... :-)


Gruß,
Richard

von Christoph Kessler (db1uq) (Gast)


Lesenswert?

Das ist ähnlich wie beim Bourns Graycode-Drehgeber, der hat nur die
Hälfte der möglichen Codes ausgenutzt(127 Positionen aber 8 Bit), das
ergibt auch einen Code mit der Bedingung "nur ein Bit ändern pro
Schritt":
http://www.bourns.com/pdfs/ace.pdf
Ich bin nicht sicher, ob es in vollständiger Codierung nur DEN Graycode
gibt, oder auch viele möglich sind.
Seltsam ist der eine Ausreißer in der Kurve, der Rest sieht zwar etwas
"fraktal" aus, hat aber doch auch noch regelmäßige Züge.

von Wolfram (Gast)


Lesenswert?

Schreib die Codes doch mal Binär untereinander und suche die Symetrien
die typisch für den Graycode sind, vielleicht stimmen die Bitpositionen
nicht.

von Richard Rudolf (Gast)


Lesenswert?

Hi,

danke schonmal für die Tipps, ich schau mir das gleich mal an.

Der eine Ausreißer oben links ist eine "normale" Störung, ich hatte
anfangs recht starke Störungen durch die Antriebsmotoren und andere
Roboter, konnte die aber durch Optokoppler und spezielle
Leitungsverlegung auf recht humane Werte bringen. Die Restlichen werde
ich später sicherlich rausrechnen können...


Gruß,
Richard

von Profi (Gast)


Lesenswert?

Stell bitte mal die Rohdaten zur Verfügung.

von Richard Rudolf (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

hier die Rohdaten von dem Verfahren der Achse von Endanschlag zu
Endanschlag.

von Richard Rudolf (Gast)


Angehängte Dateien:

Lesenswert?

...und hier die Daten binär dargestellt in einer Excel-Tabelle
Dabei ist das höchstwertigste Bit oben.

Man erkennt deutlich, daß einige der "Bitspuren" nicht richtig
ankommen, ich bin schon am grübeln, woran das liegen könnte.
Auch sieht man deutlich, daß die Abstände zwischen den Messungen zu
groß waren für die Bits niedriger als Bit 11. Das liegt aber an der
Messung, nicht am µC. Theoretisch könnte man diese niedrigen Bits
erstmal auch rauswerfen, später wird die Positionsmessung intern
verarbeitet und nicht erst dem PC via serieller Schnittstelle
zugesendet, damit sollte das deutlich schneller gehen...

Gruß,
Richard

von Klaus (Gast)


Lesenswert?

Es muss ungefähr aussiehen wie ...

http://www.mipraso.de/enzyklopaedie/g/gray-code-tabelle.html

... oder Du hast einen "Graycode", der nicht normgerecht ist, z.B.
Bitspuren verdreht.
Es sind aber auch Codierungen denkbar, die nach "unregelmäßigem"
Schema trotzdem die Bedingungen "nur 1 Bit ändert sich" sowie
"zyklisch" erfüllen.
Siehe den genannten ACE Drehgeber.

von Richard Rudolf (Gast)


Lesenswert?

Des Rätsels Lösung:

Umwandeln in Dualcode, danach jedes 2. Bit invertieren...

Danke nochmals für die Hilfe, allein wär ich wohl nicht so ohne
weiteres drauf gekommen. :-)

Gruß,
Richard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.