Hallo zusammen,
ich habe ein kleines Problem und hoffe mir kann jemand weiterhelfen.
Ich suche nach einer Möglichkeit im Hintergrund zu überprüfen ob der Roboter in HomePosition ist.
Gibt es da eine Möglichkeit?
Anfängerfrage Roboter in Home
- Bhmth
- Erledigt
-
-
Hallo,
Du könntest dazu einen statische Weltzone mit der Instruktion "WZHomeJointDef" erstellen.
Die Weltzone beschreibt einen Ausgang sobald sich der Roboter in der Homeposition befindet, bzw. setzt ihn zurück, wenn er den Bereich verlässt.
Nähere Informationen hierzu kannst Du dem Handbuch entnehmen,
Gruß
Micky -
Hallo!
Habe fast das was du suchst!
Bei mir ist eine zylinderförmige Welzone definiert.
Musst beim Power On aktiviert werden!!!!****************************************************************
!Deklaration von Weltzone
!****************************************************************
!
VAR wzstationary wzHome;
VAR shapedata shape_Homeposition;
CONST pos C2:=[1476,10,1265];
CONST num R2:=100;
CONST num H2:=300;
!----------------------------------------------------------------------
! Ereignisroutine Weltzone f. Grundstellungsfahrt initialisieren
!----------------------------------------------------------------------
PROC Netz_ein()
WZCylDef \Inside, shape_Homeposition, C2, R2, H2;
WZDOSet\Stat,wzHome\Inside,shape_Homeposition,DOHomepos,1;
! Ende
ENDPROC -
Funktioniert genauso auch mit "WZHomeJointDef", wobei Du mit JointDef den Vorteil hast, dass Du Tool-Unabhängig bist. Daher verwendet man in der Regel Joint.
-
Hallo Gerhard!
Müssen beim Homejointdef nicht alle Achsen die Toleranz erreichen?
Ist auch eine interessante lösung! -
Servus,
wenn du die Option Multitasking hast kannst du auch selber was Stricken.
Evtl. auch nur mit 2 oder 3 Achsen.Grüße
Martl -
Hallo!
Habe kein Multitasking! -
Servus,
was willst du genau damit machen.
Evtl. gibts ja ne andere Möglichkeit.
Grüße
Martl -
Hallo Martl!
Habe nur deswegen Geschrieben das ich kein Multitasking habe ,weil ich die andere Methode benutze was oben bei mir steht! -
Hallo Gerhard!
Müssen beim Homejointdef nicht alle Achsen die Toleranz erreichen?
Ist auch eine interessante lösung!Ja, genau. Daher hast Du mit Joint immer genau definierte Stellun g des Roboters für die Homepos, egal welches Werkzeug/Tool gerade am Roboter ist, zum Beispiel Wechsehlgreifer.
Egal ob Greifer 1 oder 2 am Roboter, die Stellung ist immer (Beipielwerte) A1 45, A2 -20, A3 0, A4 0, A5 45, A6 60, und Home-Signal geht raus, sobald alle Achsen innerhalb 0.2 Grad Toleranz dieser Stellung erreicht haben. -
Beispiel für ABB S4 ohne Software Option Worldzone:
(Im Prizip macht die Software-Option nix anderes.)PROC Grund()
START:
AktJoint:=CJointT();
Axis:=[Abs(AktJoint.robax.rax_1-Home.robax.rax_1),Abs(AktJoint.robax.rax_2-Home.robax.rax_2),Abs(AktJoint.robax.rax_3-Home.robax.rax_3),Abs(AktJoint.robax.rax_4-Home.robax.rax_4),Abs(AktJoint.robax.rax_5-Home.robax.rax_5),Abs(AktJoint.robax.rax_6-Home.robax.rax_6)];
!
IF Axis{1}<0.2 OR Axis{2}<0.2 OR Axis{3}<0.2 OR Axis{4}<0.2 OR Axis{5}<0.2 OR Axis{6}<0.2 THEN
Set RobInHome;
ELSE
Reset RobInHome;
Homefahrt;
GOTO Start;
ENDIF
!
ENDPROC -
Hallo Gerhard Reinig ,
müsste die IF - Abfrage der Toleranz nicht verundet (AND) statt verodert (OR) sein?
Gruß
Dümmling -
Gut aufgepasst! Ja, muss AND sein.
Copy-Paste Error, weil ich unter dem IF die Homefahrt habe.P.S. Daten-Deklaration:
VAR num Axis{6};
VAR jointtarget AktJoint;
Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum.
ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.
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