Hallo an alle,
ich stehe vor der folgenden Aufgabe: es soll ein Roboter mit zwei externen Rotationsachsen programmiert werden. Die beiden Achsen befinden sich auf einem Drehtisch, sodass sich immer nur eine von den beiden Achsen im Arbeitsbereich des Roboters befindet. Die andere befindet sich dann außerhalb der Roboterzelle zum Umrüsten auf ein neues Werkstück. Ansonsten ist es für den Roboter relativ egal, welche von den beiden Achsen gerade im Arbeitsbereich ist, da auf beiden die gleichen Teile bzw. die gleichen Arbeitsschritte zu erledigen sind. Ich hab hierzu einen Screenshot aus der Fanuc Doku angehangen, die Zelle ist fast identisch aufgebaut.
Die beiden Achsen habe ich in jeweils einer eigenen Gruppe angelegt, sodass ich mit dem Roboter nun drei Bewegungsgruppen habe.
Dazu habe ich nun einige Fragen, die ich leider nicht vollends ergoogeln konnte. Es geht mir hierbei um die Logik und nicht um das sichere Abschalten der Achse:
1. Ist es möglich im Programm (bspw. durch das Setzen einer Variablen) eine von den Drehachsen zu deaktivieren bzw. die Fahrbefehle zu ignorieren?
Ich habe hierzu bisher die Variable $SCR_GRP[1].AXISORDER gefunden. Es funktioniert auch, dass sich die Achse nicht bewegt, jedoch werden die hinterlegten Achsbefehle für die jeweilige Gruppe dennoch ausgeführt, sodass sich entsprechend nichts bewegt, weil sich die Achse nicht bewegt. Ich möchte im Grunde, dass der Fahrbefehl für die jeweilige Achse einfach ignoriert wird.
2. Über die Gruppenmaskierung eines Programms ist es möglich, eine Gruppe zu ignorieren. Da ich jedoch die gleichen Bauteile auf beiden Achsen habe, möchte ich ungern zwei mal das gleiche Programm haben, nur mit unterschiedlichen Gruppenmaskierungen. Ist es aus dem Programm heraus möglich, eine Gruppenmaskierung einzuschalten?
3. Meine aktuelle Lösung wäre nun das hin und herkopieren von PRs, wobei ich den Wert der zur Zeit nicht benötigten Achse einfach auf den aktuellen Wert (JPOS) setze. Diese Lösung finde ich jedoch ebenfalls nicht schön und umständlich, weil ein TouchUp so erschwert wird und ich die Achswinkel in zusätzlichen Registern abspeichern muss. Gibt es hier einen schöneren Weg, wenn 1. und 2. nicht möglich sind?
Schönen Gruß, Maxim