Gray-Code Problem

Gast #336445
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
Angehängte Dateien:
Gast #336446
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.
Gast #336448
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
Gast #336451
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
Angehängte Dateien:
Gast #336453
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren