Forum: Mikrocontroller und Digitale Elektronik Bosch SPS Positioniereinheit PU401 ansteuern


von Daniel A. (daniel_a32)


Angehängte Dateien:

Lesenswert?

Aktuell hacke ich eine Bosch CC300 CNC und ihre SPS. Ziel ist es, die 
Peripherie-Komponenten über Modbus anzusteuern.

Die primitiven EA-Baugruppen können bereits angesteuert werden. Ich habe 
die Platinen analysiert und konnte dadurch die Belegung des 
Peripherie-Interface bestimmen. Auf dem oberen DIN553401 Stecker 
befinden sich folgende Signale:

A0-A7: Addresse
D0-D7: Write Port
R0-R7: Read Port
WRITE: Daten schreiben
READ: Daten lesen
CLEAR: Latch resetten
ADDRESSED: Karte adressiert

Leider läuft der Bus auf 12V (CMOS) und muss mit einer Koppelkarte auf 
5V oder 3.3V Level gebracht werden.

Da zumindest die Bausteine der EA Baugruppen 5V vertragen, konnte ich 
durch Entfernen der alten Versorgung (12V) und Absenken der 
Versorgungsspannung einen Arduino 2560 anschließen und die Karten 
ansteuern.
Mit dem ersten Testprogramm konnte ich eine maximale Datenrate von 70kHz 
erreichen. 1kHz sind in der Regel das nötige Maximum.

Im zweiten Schritt wurde Modbus im Arduino Programm integriert. Dazu 
habe ich die ModbusSlave Library benutzt.
Beim Hochfahren wird der Peripherie-Bus gescannt und entsprechend der 
gefundenen Karten-Adressen ein Speicherabbild im RAM angelegt.
Über Modbus kann über die Holding Register auf die EA-Pins zugriffen 
werden. Da immer 2 Byte geschickt werden, können mit einer Abfrage 16 
Bit aktualisiert werden.

Die EA-Baugruppen funktionieren damit schon tadellos. Nächster Schritt 
wird ein Linux RTAI Treiber, damit eine Anbindung an eine Linux Echtzeit 
PLC möglich ist.

Da die Karten so robust und einfach aufgebaut sind, habe ich mich auch 
über die PU401 Positioniereinheit hergemacht.
Bei dem aktuellen Projekt sind 4 Stk. dieser Karten verbaut, wäre also 
sehr interessant auch diese zum Laufen zu bringen.

Leider findet sich im Netz keine Beschreibung mehr von diesem Teil. Der 
erste Versuch mit der 5V Arduino Variante ging in die Hose. Ich konnte 
keine schreib- oder lesewilligen Adressen zwischen 0-255 finden.
Meine Vermutung liegt darin, dass die Karte zu wenig Spannung bekommt.

Vor einiger Zeit habe ich bereits eine Platine angefertigt, welche die 
alten CD40116E Bus-Transceiver der Bosch CNC/PLC Speicherkoppelkarte 
nutzt. Beim Auslöten sind aber ein paar IOs defekt geworden. Somit war 
schlussendlich nur 1 von 4 ICs nutzbar und die Platinen landeten im 
Müll, denn den CD40116E gibt's nicht mehr.

Gestern war ich motiviert und habe im Schnelldurchlauf eine neue Platine 
mit Atxmega256 designed und bestellt. Als Bus-Koppler habe ich CD4050 
und CD40109 eingesetzt. Wegen des Chip Mangels weltweit wird die Karte 
nur halbfertig geliefert. Den Atxmega muss ich noch selbst einlöten.
Wenn das Interface funktioniert bin ich eventuell in der Lage die PU401 
auszulesen, jedoch habe ich keine Ahnung welche Adressen angesteuert 
werden müssen.

Die PU401 verfügt über einen TTY Anschluss (Seriell 110-2400 Baud), hat 
eine interne 24V Versorgung für Geber, zwei potentialfreie 
Schaltausgänge (Bereit1/2), einen Optokoppler-Eingang für das 
Referenz-Signal, einen Eingang für das Messsystem (Sin/Cos) und einen 
+-10V Ausgang als Drehzahlreferenz für die Servoendstufe.

Ich denke, dass Werte wie die aktuelle Position und der Status der Achse 
auf 3-4 Bytes liegen werden. Fraglich ist nur, ob die 
Regelkreisparameter auch über den Peripheriebus gesetzt werden können. 
Da ein serieller Anschluss auf der Karte ist, vermute ich eher nicht. 
Leider kann ich auch keine Info über die Schnittstelle finden. Werde mal 
was anhängen wenn die Karte angesprochen werden kann vielleicht kommt 
was raus.

Das ganze Projekt ist dem aktuellen Chipmangel zu verdanken. Für eine 
Maschine mit relativ viel EAs bekomme ich bis 2023 keine Hardware. 
Anstatt zu warten, versuche ich lieber so viel wie möglich von der alten 
Hardware zu retten und mit der neuen Steuerung wiederzuverwenden.

Falls noch ein alter Bosch PLC Fuchs hier unterwegs ist und Ahnung von 
der PU401 hat, wäre ich zutiefst dankbar für eine Beschreibung der 
Adressbelegung. Bis dahin werde ich mal Brute Force Hacking betreiben 
und meine Erkenntnisse hier weiter teilen.

Das ganze Projekt beschreibe ich auch auf unserer Seite. Hier ist die 
dazugehörige Maschine: http://retrofit.center/work-inner/

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.