Profibus : Abgekoppelte Teilnehmer handeln nach Kaltstart

  • Hallo zusammen,
    ich versuche gerade eine einfache Lösung zu finden für unsere Roboter, wo Profibusmodule auf dem Greifer sitzen, welche dann ab- und angemeldet werden müssen.
    Aktuell hatte ich letztens mit einem Roboter ein Problem, ein Kaltstart war erforderlich. Dieser Roboter hat 3 verschiedene Greifer mit jeweils einem Teilnehmer ( 11,12 und 13 ).
    Nach dem Kaltstart meldete er einen Profibusfehler, weil er Teilnehmer 11 und 13 vermisste. Teilnehmer 12 war zu dem zeitpunkt wohl angedockt. Diese musste ich erst abmelden, danach war ein Treiber Reset möglich.
    Nun ist es so, daß dies einem normalen Instandhalter kaum zuzumuten ist.


    Ich möchte für diesen Fall eine Routine schreiben, die nach einem Kaltstart manuell abgearbeitet werden muss...
    1. Schritt - alle abdockbaren Teilnehmer abmelden
    2. Schritt - Treiber reset durchführen
    3. Schritt - den aktuell angedockten Teilnehmer am System anmelden


    Jetzt meine Fragen :
    1. Schritt --> kein Problem
    2. Schritt --> kann ein Treiber Reset über das Programm angestossen werden ? Gibt es dazu eine Systemvariable ?
    3. Schritt --> ist der Profibus in der Lage, die Adresse eines am Bus hängenden Teilnehmers zu erkennen, auch wenn dieser abgemeldet ist ? Ich würde zuerst die Adresse prüfen und diese dann aktivieren...


    KRC2
    V5.6.7
    CP5614
    Würde mich über eine Antwort sehr freuen....


    Gruß maddin

    Einmal editiert, zuletzt von maddin ()

  • ANZEIGE
  • Hallo maddin,


    der Treiberreset sollte mit dem IOCTL Befehl aus dem Programm heraus machbar sein.
    Wie sich das mit der Teilnehmererkennung darstellt kann ich dir leider nicht sagen.
    Du kannst aber die Slaveteilnehmer beim Hochlauf deaktivieren in der PFBMS.ini unter "DEACTIVATED_SLAVES", und dann später mit IOCTL aktivieren.
    Die Doku zu dem IOCTL muss ich sonst erst suchen.


    Gruss Chili1886

  • Zu 2 und 3.


    Du musst den Treiber nicht reseten wenn du die Slaves in der Pfbms.ini deaktiviert hast.
    Wenn du einen Greifer andockst aktivierst du die Profibusadresse mittels dem IOCTL-Befehl.


    Rückgabewert = IOCTL(Driver ID, REQUEST, SLAVE Nr.)


    Rückgabewert: OK oder ERROR ( 0 oder --1 )
    Driver ID: Für den Profibus Master Slave mit CP5614 fest auf 11
    Request: 1001 Slave aktivieren, 1002 Slave deaktivieren
    Slave Nr.: Profibus Adresse des Slave der de-- bzw. aktiviert werden soll


    Die Robotersteuerung prüft ob der angedockte Teilnehmer richtig oder falsch ist und gibt das Ergebnis im Rückgabewert der vom Typ Int sein muss zurück. Den Rückgabewert noch deklarieren mit z.B. INT Ergebnis. Ist das Ergebnis 0 passt das Modul und das Programm läuft. Bei -1 ist das Modul falsch und das Programm bleibt stehen.
    Bevor du den Greifer wieder ablegst, meldest du alle Slavemodule mit dem IOCTL-Befehl einfach wieder ab.

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • Hallo, vielen Dank für eure Antworten.


    Die Slaves in der Pfbms.ini zu deaktivieren wäre eine gute Idee.


    Da ich nach dem Kaltstart nicht weiß, welcher der 3 Greifer/Teilnehmer momentan angedockt ist, wäre es vorteilhaft gewesen, wenn die Steuerung den aktuell angedockten Teilnehmer irgendwie erkennen würde.
    Dann könnte der entsprechende automatisch angemeldet werden.


    Irgendwie scheint meine Kuka Doku bezüglich Profibus veraltet zu sein. Sie ist von 2001.
    In einem aktuellen Programm gibt es einen IOCTL Befehl mit der Requestnumer 1003....


    Laut Doku gibt es nur 1001 und 1002.... weiß jemand mehr darüber ?


    Rückgabewert = IOCTL(Driver ID, REQUEST, SLAVE Nr.)


    Rückgabewert: OK oder ERROR ( 0 oder --1 )
    Driver ID: Für den Profibus Master Slave mit CP5614 fest auf 11
    Request: 1001 Slave aktivieren, 1002 Slave deaktivieren
    Slave Nr.: Profibus Adresse des Slave der de-- bzw. aktiviert werden soll


    Gruß maddin

  • die requestnummern und ihre bedeutungen können möglicherweise direkt in der siemens c++ beispielsoftware gefunden werden. ich such mal bei gelegenheit danach...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden