Forum: Mikrocontroller und Digitale Elektronik RS485 Zweidraht/Vierdraht


von Uli H. (ulihuber)


Lesenswert?

Hallo zusammen,

ich knoble an einem Problem, für das vielleicht jemand einen Tip geben 
kann:

Weil ich einige Fanuc Pulsecoder (Seriellen-Absolut-Encoder) bekommen 
habe, versuche ich das Protokoll zum Auslesen herauszufinden. Der 
Hersteller hält das aber leider geheim.

Also habe ich  an einer Fanuc Steuerung gemessen und herausgefunden, daß 
entgegen der beschriebenen Steckerbelegung keine separaten REQ/SD 
Leitungen verwendet werden, sondern alles auf dem Zweidraht-Bus für REQ 
läuft. Diesen belegt die Steuerung alle 250us und setzt 1,25us high, 
dann 1,25us low dann 0,5us high. Danach gibt sie den Bus frei und der 
Pulsecoder antwortet nach 8,5us mit einem Datenpaket aus 0.5us Bits.
So weit so gut.  Wenn ich es aber so nachbilde, klappt es nicht. 
Möglicherweise fehlt dem Encoder irgendeine Initialisierung.

Wenn ich allerdings denn Bus für 15us belege und dabei nach 2us einen 
8us Puls setze (sehr zeitkritisch...), dann spuckt der Encoder seine 
Daten aus. Nur nicht auf dem selben REQ Bus, sondern auf dem anderen SD 
Bus.

Hat einer von euch eine Idee ? Gibt es ein 'offizielles' Protokoll, mit 
dem man von 4-Draht auf 2-Draht umstellen kann ?

Oder hat am Ende einer sogar ein paar Infos zu den Fanuc Pulsecodern ?

Gruß
Uli

von Otto (Gast)


Lesenswert?

Hallo Uli Huber,

die "EnDat" - Schnittstelle von Heidenhain ist m. E. ähnlich aufgebaut:
http://www.heidenhain.de/pressetexte/deutsch/endat.htm

Gruss Otto

von Uli H. (ulihuber)


Lesenswert?

Hallo Otto,

danke für die Info.
Leider ist die Fanuc Schnittstelle völlig anders als die Endat oder SSI. 
Heidenhain verwendet ein synchrones Protokoll und versorgt den Encoder 
mit einem Schrittakt.

Heidenhain bietet übrigens auch Encoder mit lizensierter 
Fanuc-Schnittstelle an. Aber auch die halten natürlich das Protokoll 
vertragsgemäß unter verschluß.

Mittlerweile bin ich etwas weiter. Die mit dem Signalgenerator 
ausprobierte Sequenz war wohl doch etwas grob. Richtig ist wohl, daß die 
Übertragung in 1Mbps erfolgt. Die Initiierung der Ausgabe (in fullduplex 
auf dem SD Kanal) erfolgt mit einem High-Bit, acht low-Bits und einem 
High-Bit. Dann folgt die Ausgabe nach 9 Bit Abstand zur fallenden Flanke 
des letzten Bits.

Es gibt keinen Takt und auch keine erkennbare NRZ-Logik. Ganz 
offensichtlich ist es eine asynchrone Übertragung.

In dem Datenfeld kann man die veränderten Bits beim Drehen des Encoders 
gut erkennen. Sie folgen Stückweise einer binären Logik, sind aber auf 
drei unterschiedliche Felder im Datenpaket verteilt. Könnte so was wie 
eine FEC sein.

Mal sehen was ich weiter raus finde.

Gruß
Uli

von Uli H. (ulihuber)


Lesenswert?

Hallo zusammen,

ich habe bei der Dekodierung des Fanuc-Protokolls ein paar Fortschritte 
erzielt.
Mit einem Attiny2313 erzeuge ich sie Startsequenz und hole dann die 
Datenbits vom Bus ab. Wenn ich die als Nullen und Einsen dann per RS232 
zum PC übertrage und in EXCEL importiere, sieht das dann aus wie in der 
angehängten Datei. Mit bedingter Formatierung habe ich die Zelen 
hervorgehoben, die sich gegenüber dem Vorgängersatz geändert haben.
Das Muster entstand durch langsames Dregen des Encoders, wobei man bei 
einer Auflösung von 1Mio Steps/Umdrehung natürlich nicht mehr 
Einzelschritte erkennen kann.
Interessant scheint mir, daß die Anzahl der Bit-Wechel pro Spalte nicht 
wie beim binären Protokoll bei den höheren Potenzen abnimmt, sondern 
praktisch in allen Spalten um die 400 liegt.

Vielleicht hat ja einer eine Idee, was das für eine Codierung sein 
könnte.

Gruß
Uli

von Vaterssohn (Gast)


Lesenswert?


Meine Kentnisse reichen definitiv nicht aus, um dir zu helfen, aber eine 
Frage hab ich ;-) :

...zum PC übertrage und in Excel importiere...

Wie machst du das? Mit so einem Prog., dass Windows vorgaukelt, die 
Daten kämen von der Tastatur, oder so richtig Professionell? In 
letzterem Fall würde ich um eine kure Beschreibung bitten. Funkt das 
auch in die andere Richtung? (Excel-> RS232)?

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.