Roboter steuern aus Submit-Interpreter

  • Hallo zusammen,


    ich habe mir mithilfe von Kuka.HMI Easy eine eigene Teachoberfläche entwickelt. Vom Grundprinzip her sehr simpel. 1 Button "Anfahren" und 1 Button "Teachen" pro Position. Da ich mit HMI Easy nur Variablen schreiben kann, steuere ich den eigentlichen Ablauf über einen eigenen Submit. Für das Teachen funktioniert das schon gut, jedoch verweigert der Submit sämtliche Befehle zur Bewegungssteuerung, weshalb die Anfahren-Funktionalität bislang noch fehlt.


    Natürlich könnte ich jetzt ein Roboterprogramm erstellen und den Roboter via. Interrupt aufwecken und die Position anfahren lassen. Aber dann müsste ich stets sicherstellen, dass mein Submit und mein Teachprogramm angewählt sind, bevor ich meine Oberfläche aufrufe.


    Hat irgendjemand eine Idee für eine etwas elegantere Lösung?

  • Schritt für Schritt zum Roboterprofi!
  • - Im Submit sind nur Bewegungen von asynchronen Achsen möglich.

    - der Submit sollte sowieso immer laufen.

    - um das Teach Programm wirst nicht rumkommen, allerdings kann man das auch aus dem Submit anwählen. Mann muss es dann halt noch starten.

    - warum man da Interrupts verwenden sollte weiss ich nicht.

  • Danke Hermann für dein Feedback.


    Die Interrupts im Teachprogramm sind nicht zum Starten, sondern zum Stoppen der Positionierung, sobald der Taster losgelassen wird.


    Hast du ein schnelles Beispiel für mich, wie ich aus dem Submit heraus das Teachprogramm auswählen kann? Ich vermute mal mit CWRITE o.ä. aber mit dem Modul habe ich noch keine Erfahrung. Ich nehme an ein automatisches Starten des Programms aus dem Submit ist prinzipiell nicht möglich? Dann müsste der Bediener nur den Sicherheitsschalter betätigen und nicht zusätzlich nich die Play-Taste...

  • Für das Anwählen des Programms sollten hier im Forum diverse Beispiele zu finden sein. Cwrite ist da schon die richtige Vermutung. Und ja:

    Ich nehme an ein automatisches Starten des Programms aus dem Submit ist prinzipiell nicht möglich?

    Ausser man benutzt Ausgänge, die direkt auf Eingänge verbunden sind und den Automatik Extern Betrieb.

  • Servus….


    Zum Programm anwählen ist da cwrite schon richtig.

    Schau mal in der sps.sub im fold autoexinit den Inhalt an! Dort ist zb. Die Anweisung dass das cell Programm automatisch angewählt wird…


    SJX und ich haben da mal was für den automatik extern betrieb ausgearbeitet. Funktioniert tadellos…

    Man benötigt lediglich 4 Eingänge und 3 Ausgänge ….das ganze läuft im submit ab !

    Dein Roboter Programm brauchst ja sowieso…

    Finde jetzt gerade den link nicht…aber schau mal im Forum nach Tasten ersetzen..bin mir über den Titel gerade nicht sicher

  • Hallo zusammen,


    vielen Dank für die Infos. Das mit dem Ext-Brücken ist natürlich eine Möglichkeit, welche ich allerdings so nicht ausliefern kann. Das Teachen muss definitiv im T1-Modus erfolgen können, sonst finde ich das Sicherheitsmäßig nicht haltbar.


    Ich habe bisher folgende Varianten auprobiert:

    - Setzen der Zielkoordinaten und der Bewegungsfreigabe über ein Submit-Programm

    a) Hauptprogramm mit einer Schleife und WAIT FOR auf die Bewegungsfreigabe

    Problem: Wenn der Benutzer den Roboter manuell verfährt und anschließend das Roboterprogramm wieder startet wird direkt auf die letzte bekannte Position zurückpositioniert. Ich habe hier diverse Variante mit Triggern von SAK-Fahrten auf $AXIS_ACT per Interrupt probiert. Leider brachte keiner dieser Varrianten den gewünschten Erfolg.

    b) Hauptprogramm in einer Endlosschleife. Per Interrupt wird zunächst die gewünschte Position angefahren. Diese Variante funktioniert soweit. Etwas unschön ist hier nur, dass diese Positionierung dann ja auch als SAK-Fahrt gehandelt wird und bei SAK-Fahrten im T1 der Interpreter ja anschließend immer in Stop geht. Gibt es eine Möglichkeit dies zu unterbinden?

  • ... Etwas unschön ist hier nur, dass diese Positionierung dann ja auch als SAK-Fahrt gehandelt wird und bei SAK-Fahrten im T1 der Interpreter ja anschließend immer in Stop geht.

    Um da evtl. eine Lösung zu finden sollte man den Programmaufbau kennen. Mit der vagen Beschreibung kann man da gar nix anfangen.

    Kann mir im Moment nicht vorstellen warum da eine SAK Fahrt entstehen sollte.

    Und dann schreibst du, dass die Position per Interrupt angefahren wird, obwohl du weiter oben mal sagtest, dass die Bewegung per Interrupt abgebrochen wird.:/

  • DIe SAK-Fahrt wird dadurch notwendig, dass es sich ja um ein Teachprogramm handelt. Das heißt es besteht grundsätzlich die Möglichkeit, dass der Bediener den Roboter zwischenzeitlich manuell an eine andere Position verfahren hat.


    Zu den Interrupts:

    Ursprüngliche Planung war das Anfahren im Hauptprogramm durchzuführen und den Abbruch (falls der Taster losgelassen wird) per Interrupt. Das hat aber aufgrund der weiter oben bechriebenen Rückpositionierung auf die verlasssene Bahn nicht funktioniert.


    Daher sieht meine neue Lösung wie folgt aus:

    * Hauptprogramm ist in Endlossschleife

    * per Interrupt wird die Positionierung zu der angewählten Position gestartet

    * Falls der Taster vorzeitig losgelassen wird, wird ebenjener Interrupt per weiterem Interrupt abgebrochen


    Das ganze Konstukt ist natürlich etwas aufwändig, hat sich aber in meinen vielen Tests als Beste herauskristalisiert.


    Die Frage war daher nur, inwiefern sich das Verhalten, dass der Roboter nach einer SAk-Fahrt in T1 stets in Stop geht und neu gestartet werden muss, unterbinden lässt.

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