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
Hallo Uli Huber, die "EnDat" - Schnittstelle von Heidenhain ist m. E. ähnlich aufgebaut: http://www.heidenhain.de/pressetexte/deutsch/endat.htm Gruss Otto
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.