Beiträge von DS186

    Hallo Ananaselefant,


    sind die (elektrischen) Greifersignale auf den EE-Stecker auf der 4.Achse angeschlossen? Werden die internen Ventile benutzt? Wenn dem so ist, dann kannst du über das TP die ROs simulieren und so deinen Greifer öffnen bzw. schließen.


    Wo der Roboter hin fährt, ist für z.B. ein Greifer-Macro unerheblich. Du kannst dir z.B. zwei einfache Macros für Greifer schließen und Greifer öffnen erstellen und diese auf die gewünschten Tasten auf dem TP legen. Somit hast du dann zwei Handfunktionen, welche du bequem über die Tasten steuern kannst.


    Gruß

    Daniel

    Habe mir nun eine Lösung dafür gebastelt. Im Großen und Ganzen speichere ich die Daten des jeweils aktuellen Tools in eine separate Variable. Nach einem Kaltstart wird der Inhalt der Variable auf Gültigkeit geprüft, d.h. mit allen vorhandenen Tools verglichen. Wenn gültig, dann setze ich ein entsprechendes Flag auf TRUE, bei Diskrepanzen auf FALSE.


    Wenn das genannte Flag TRUE ist, dann wird die SAK-Fahrt automatisch via $POS_ACT gemacht. Im Hauptprogramm wird dann das zuletzt aktive Tool geladen und die Grundstellungsfahrt kann vom Bediener angestoßen werden (wenn nötig). Wenn das Flag FALSE ist, dann wird der Bediener aufgefordert, die SAK-Fahrt auf Grundstellung in T1 durchzuführen.

    Hallo Robotinho,


    du kannst in der Systemvariable $SCR_GRP die Variable $SCR_GRP[1].$M_POS_ENB auf TRUE setzen. Dann kann man die aktuellen Positionsdaten programmtechnisch abfragen/verwenden. Nach dem Ändern der Variable muss die Steuerung aus- und eingeschaltet werden.


    Nun kann man die Variablen $SCR_GRP[1].$MCH_POS_X bis $SCR_GRP[1].$MCH_POS_R in Register kopieren und kontinuierlich überwachen, z.B. in der Background Logic. Gleiches kannst du mit den Variablen $SCR_GRP[1].$MCH_ANG[1] bis $SCR_GRP[1].$MCH_ANG[6] (ich glaube sogar, es geht bis [9]) für die Achswinkel machen.


    Somit kannst du dann die Daten zyklisch schreiben und auch überwachen. Ob man dies mit LPos und JPos realisieren kann, also zyklische Überwachung per Einsatz in der Background Logic, müsstest du probieren. Wäre dann aber natürlich deutlich weniger Programmieraufwand, z.B.


    PR[1:JointAktuell] = JPos


    R[1:JointAktuellAchse1] = $SCR_GRP[1].$MCH_ANG[1]

    ...

    ...und das für jede gewünschte Achse...


    Nagel mich aber nicht fest, bin gerade nicht auf der Arbeit und habe keinen Zugriff auf eine Steuerung, so sollte es aber gemäß Gedächtnisprotokoll gehen.


    Gruß

    Daniel

    Hallo zusammen,


    kann man nach einem Kaltstart Tool und Base automatisch setzen? Mein Plan war eigentlich, $TOOL und $BASE im sps.sub in der User Init Zeile vor dem Loop mit gültigen Daten zu beschreiben.


    Allerdings sagt die Steuerung dann, dass die beiden Variablen im Modul SPS schreibgeschützt sind. Der sps.sub geht daraufhin auch in Stopp.


    Daher die Frage, kennt jemand eine Möglichkeit, $TOOL und $BASE direkt nach dem Hochfahren zu setzen, z.B. mit $NULLFRAME oder jeweils anderen angelegten Tool- und Basedaten?


    Die Steuerung ist eine KR C4 compact, KSS 8.5.8.


    Danke bereits für eure Hilfe

    Daniel

    Danke euch allen für die Hinweise und Informationen. Problem bei mir war, dass ich den Wert der besagten Variable an anderer Stelle immer neu initialisiert hatte und sich der Wert deshalb nicht wie erwartet geändert hat. Fehler behoben, nun passt alles. Hatte schon an mir gezweifelt.

    Hallo zusammen,


    ich möchte eine in der config.dat selbst definierte Variable im Programmablauf mit unterschiedlichen Werten beschreiben. Nach einem Kaltstart soll der letzte Wert der Variable wiederhergestellt werden.


    Wie bekomme ich das hin? Ich steh aktuell wirklich auf dem Schlauch und Hibernate möchte ich nicht verwenden, da es im Prinzip nur um wenige Variablen geht, bei denen ich den letzten Wert nach Kaltstart wieder benötige.


    Steuerung ist eine KR C4 compact mit KSS 8.5.8.


    Danke für eure Hilfe und Gruß

    Daniel

    Hallo FS,


    die Hauptplatine der Steuerungen R-30iB Mate und R-30iB Mate Plus ist standardmäßig mit 28 Ein- und 24 Ausgängen ausgestattet. Genauere Informationen dazu findest du in den entsprechenden Wartungshandbüchern der Steuerung. Für die genannten Steuerungen z.B. im Dokument B-83525GE/07 ab Kapitel 4. Wenn du dann noch zusätzliche sichere Ein- und Ausgänge benötigst, dann kannst du optional ein Safety IO-Board nachrüsten.


    Wie das Ganze bei anderen Steuerungen aussieht müsstest du nachschauen, das weiß ich leider nicht.


    Gruß

    Daniel

    Danke euch recht herzlich für den Link und den Hinweis mit der Variable $STOPNOAPROX. Kann ich mein Programm damit auch in EXT durchlaufen lassen (ohne anzuhalten) und die Ergebnisse z.B. in einem Logfile anschauen?

    Vielen Dank schon mal für die Hilfe. Gibt es grundsätzlich eine Möglichkeit, an den verlinkten Beitrag ranzukommen? Ich denke, dass dieser beim Umzug des Roboterforums "verloren" gegangen ist.

    Hallo zusammen,


    zum Thema Vorlaufstopp findet man hier im Forum reichlich Informationen, allerdings konnte ich keine Übersicht finden, welche alle Befehle auflistet, die einen Vorlaufstopp auslösen. Gibt es das überhaupt?


    Dieser vielversprechenden Link führt leider ins Leere:


    https://www.roboterforum.de/ro…n/12894/msg62211#msg62211


    Löst z.B. die folgende Operation einen Vorlaufstopp aus?:


    ...

    PosOffset.Z = PosOffset.Z + 50

    ...


    Vielen Dank bereits für eure Hilfe!


    Gruß

    Daniel

    Sorry für die späte Rückmeldung, ist mir völlig untergegangen. Das Problem waren falsche Tooldaten für die beiden Greifer (Winkel A). Nachdem diese korrigiert waren, ist der Roboter auch wie erwartet/gewünscht verfahren.

    Hallo zusammen,


    unsere erste Anlage mit KUKA steht kurz vor der Fertigstellung und nun plagt mich folgende Frage.


    Die Anlage besitzt einen Fernwartungsrouter (Wachendorff). Über diesen sollen dann SPS und Robotersteuerung (KR C4 compact, KSS 8.5) u.a. zu Diagnosezwecken erreichbar sein.


    Wie genau realisiert ihr den Fernzugriff auf eure KR C4 Steuerungen und was ist dabei möglich, z.B. Anzeige der smartPAD-Oberfläche, etc.?


    Gibt es Optionen von KUKA, oder ist ein brauchbarer Zugriff auch ohne möglich?


    Vielen Dank bereits für eure Unterstützung!

    Hi woodys,


    ich verstehe nicht ganz, was du meinst?


    Ich habe mir mal die Tooldaten in der config.dat angeschaut. Die Tooldaten stammen aus der Konstruktion und wurden händisch eingetragen. Diese sehen folgendermaßen aus:


    TOOL_DATA[11]={X 53.0, Y -91.8, Z 90.0, A 0.0, B -90.0, C 0.0}

    TOOL_DATA[12]={X 53.0, Y 91.8, Z 90.0, A 0.0, B -90.0, C 0.0}


    Wie man sieht, sind die Drehwinkel A, B und C bei beiden Tools gleich. Somit sind die Koordinatensysteme für Greifer 1 und Greifer 2 zwar verschoben, jedoch genau gleich orientiert.


    Könnte dies der Grund sein, dass sich der Roboter bei Toolwechsel nicht wie gewünscht nur “auf der Stelle“, sprich um Achse 6, dreht und sich stattdessen per SLIN oder SPTP auf den Punkt bewegt?


    Wenn ich nun in den Tooldaten die Drehung um A oder C berücksichtige, welche der tatsächlichen Verdrehung der beiden Greifer entspricht, könnte dies unter Umständen helfen?


    Kann das jemand theoretisch bestätigen oder verifizieren? Ich bin leider erst nächste Woche wieder an der Anlage, aber das Thema beschäftigt mich doch sehr.


    Gruß,

    Daniel

    Hallo zusammen,


    ich muss bei diesen Thema nochmals um Hilfe bitten. Aktuell kann ich mit z.B.


    Tool_Data[1] = Tool_Data[11] ;Greifer 1

    Load_Data[1] = Load_Data[11]

    ...

    Tool_Data[1] = Tool_Data[12] ;Greifer 2

    Load_Data[1] = Load_Data[12]

    ...


    das Tool sowie die Last in meinen Inline-Formularen ändern. Das funktioniert soweit auch ganz gut. Jetzt bin ich allerdings auf ein kleines Problem gestoßen.


    Wie oben bereits erwähnt, habe ich einen Doppelgreifer montiert. Mit den beiden Greifern möchte ich jeweils die gleiche geteachte Position anfahren, z.B. PickPos. Ich möchte z.B. mit Greifer 1 ein Fertigteil von der PickPos abholen. Danach lade ich die Tooldaten für Greifer 2 und möchte auf der selben PickPos ein Rohteil ablegen.


    Nun hätte ich erwartet, dass der Roboter einfach nur Achse 6 dreht, bis der TCP von Greifer 2 auf der PickPos ist (auf der zuvor der TCP von Greifer 1 stand), sodass sich nur der Drehwinkel C ändert und X, Y, Z, A sowie B unverändert bleiben.


    Dies ist jedoch nicht der Fall. Der Roboter bewegt Greifer 2 zwar in die gewünschte Position, jedoch macht er eine SPTP- oder auch SLIN- Bewegung und bewegt somit sämtliche Achsen zum Ziel, was nicht erwünscht ist.


    Vielen Dank schon im Voraus für eure Mühe. Ich bin dankbar für jeden Hinweis.


    Grüße,

    Daniel