BUS Konfiguration

Okay, erstmal gaaanz allgemein...
Beim KUKA wird PROFIBUS mit einer stinknormalen PCI-Karte realisiert. Die steckt also im KUKA-PC drinnen.
Sie ist leicht zu erkennen: 2 Sub-D-9 Buchsen und ein paar Leds kennzeichnen die Karte.
Ihr Name ist CP5614.
Die Karte hat 2 Steckplätze: "oben" ist des Robots Master-Ausgang. Da kommen die Teile dran, die direkt vom Robot gesteuert werden. Die haben KEINE direkte Verbindung zur SPS.

Der Steckplatz "unten" (also beim PC Mainboardseitig) ist der Slave (der Slave der SPS also) Dieser Anschluß wird mit dem SPS-Profibuskreis verbunden und von der SPS dann auch mit Daten besteuert...

Das macht Konfigurationsmäßig der SPS-Programmierer, denn der hat Ahnung von seinem Kram.
Einzig das Lesen und Schreiben der Ausgänge und Eingänge ist dann wieder unser Bier.

Zur Konfiguration:
(Alle Zahlen dind dezimal angegeben, es sei denn ich schreibe was anderes dazu...)

Zuerst besorge Dir die "GSD-Dateien" der vom Robot verwalteten Busteilnehmer (Internet, Herstellerseiten, Downloads...)

Dann konfigurierst Du nach einer separaten Anleitung den Bus mit diesem S7-NCM-Manager oder wie früher mit ComProfibus.
Das mit dem NCM-Manager geht ungefähr nach folgender Liste ab:

 

  1. NCM-Manager öffnen.
  2. Neues Projekt anlegen
  3. Projektnamen vergeben
  4. SIMATIC-PC-Station anlegen
  5. Hardwareconfig der PC-Station öffnen
  6. Hardwarekatalog öffnen. Unter -- SIMATIC HMI-Station --  CP-Profibus den CP5614 auswählen und auf den Steckplatz 1 des virtuellen PC-Rack ziehen.
  7. Masteradresse des CP vergeben z. B. 2
  8. CP mit Profibus verbinden. Dazu ein neues Profibusnetzwerk erstellen.
  9. Auf Steckplatz 2 aus dem Hardwarekatalog unter --SIMATIC PC-Stationen -- Benutzer Applikationen --Applikationen auf Steckplatz 2 des virtuellen Rack-PC ziehen.
  10. Objekteigenschaften einstellen. Betriebsart: DP-Master, zugeordnete Applikation: Applikation, LDB-Datei erzeugen (Häkchen setzen), Pfad und Namen der LDB-Datei eintragen
  11. Das ganze mal speichern und übersetzen.
  12. Danach die im Slavekreis befindlichen Profibusteilnehmer konfigurieren.
Du mußt aus dem Busaufbau ein LDB-File bauen.

Dieses LDB-File kopierst Du nach /init/namedesfiles.ldb

Danach kommt die Konfiguration der Karte:

Es gibt ein File pfbms.ini in dem /init Ordner.

Darin steht

Aber weiter mit unserer Datei:
WATCHDOG_TIME=3
MAPPING_USED=0
MAPPING_PATH=init/
;DEACTIVATED_SLAVES=

 


bei diesem Abschnitt ändere

MASTER_USED=1
DATABASE_PATH=init/namedesfiles.ldb


Wenn Du Einen Interbusteilnehmer z.B. an einen abkoppelbaren Greifer hast, dann trag die Adresse dieses Teilnehmers unter DEACTIVATED SLAVES ein. Natürlich dann auch das Semikolon entfernen.
Damit sollte die Konfiguration der Slaves abgeschlossen sein. Jetzt motzt der SPS-Mensch, denn seine SPS findet Deinen Robot noch nicht.

Also weiter:
Ich kommentiere die einzelnen Zeilen direkt.

[SLAVE]
MODUL_USED=1         ;1 schaltet die Schnittstelle zur SPS ein, 0 eben aus.
MODUL_ADDRESS=35 ;Das ist die Busadresse des Robots von der SPS aus gesehen: Sagt Dir der SPS-Mensch. Die Zahl ist Dezimal.
IO_DATA_BASE=0      ;0 heißt byteweise lesen: Ist meistens Okay so
CONSISTENCE=0       ;Eh: Kann sein daß die SPS was anderes will: Es gibt nur 1 oder 0


Werte die ich nicht erwähne, laß wie sie sind...

So. Nun kann der Bus losfahren: Aaaaber halt, so schnell net...
Was nützt der Bus, wenn keine Bits mitfahren? Also zur IOSYS.ini.

Die ist ebenfalls im /init Ordner zu finden.

Es gibt dort die Zeile
;PBMASL=11,pbmsInit,pfbmsdrv.o
Ohne Semikolon geht das besser. Also das ; entfernen.

Dann gibts einen Abschnitt

[PBMASL]


Nun hier sollen die IOs zugeordnet werden:
Hier ein Beispiel aus einer echten Anlage.

[PBMASL]
;*********************** Profibus EA-Modul Adresse: 10  *******************
INB12=10,0,x1     ;1. Eingangsbyte Profibusmodul Adress-ID 10 wird den Robotereingängen
$IN[97] bis $IN[104] (12*8+1) zugewiesen
OUTB12=10,0,x2  ;die ersten 2 Ausgangsbytes Profibusmodul Adress-ID 10 werden den Roboterausgängen $OUT[97] bis $OUT[112] zugewiesen
;*********************** Beckhoff BK3100 Adresse: 12 EA50 ****************
INB20=12,0,x4      ;die ersten 4 Eingangsbytes Modul ID 12 werden den Robotereingängen $IN[161] bis $IN[192] zugewiesen
INB24=12,4,x4
INB28=12,8,x3

Ok, gehen wir davon aus, daß nun unser Greiferbereich geht. Aber wo kommen die SPS-Daten?

INB1=127,0X16    ;Ab dem Inputbyte 1 legen wir die ID127 (fest für den SPS-Slave der Karte) mit 0 Byte Offset und 16 Byte breit an...
OUTB1=127,0X16    ;Nun rate mal was Outbytes sind:


Ich denke, das erklärt sich dann weiters von selbst...

EA-Rekonfiguration durchführen und wenn dann der SPS-Mann gut geschafft hat, werden alle Störungslichter ausgehen und ein sattes, grünes OK erscheint bei ihm. Damit wenden wir uns unserem Greifer zu und sehen hier hoffentlich auch keinerlei rote Lichter.

Wenn doch, immer erst den Elektriker, sämtliche Mechaniker, die E-Planer und alle anderen beschimpfen.
Dann sehen wir mal die Kabel nach: Hinten und vorne die Abschlußwiderstände? Oder gehen die am Ende beim Greifer automatisch?
Rot und Grün am Stecker vertauscht? Aha. Blindfische...
Immer noch net? Uiui... Nu wird ernst: Selber alles richtig gemacht? ...

Stillschweigend korrigieren und ....

Wenn das immer noch net klappt, dann schrei um Hilfe...
Alternativ beginne die eigene Fehlersuche. Dabei hilft es, zuerst die Dateien pfbms.log und iosys.log genau zu lesen.

Zurück