Position is not reachable.

  • Hallo liebe Gemeinde,

    ich habe ein Problem mit einem unserer Roboter (M20-iB, Controller R-30iB).

    Der Roboter entnimmt Teile (4 Kavitäten) aus einer Spritzgussmaschine und legt sie zum Vereinzeln auf eine Ablage. Dann nimmt er die Teile einzeln mit einem Sauger auf und stapelt sie in Ladungsträger. Die ersten beiden Stapel macht er. Beim 3. Stapel bleibt er mit der Meldung „Position is not reachable“ stehen. Es handelt sich dabei um eine Joint Bewegung. Die Position ist geteacht und händisch von der Startposition aus ohne Probleme erreichbar. Über Vorschläge und/oder Tipps von Euch wäre ich sehr dankbar.


    VG Jörg

    Einmal editiert, zuletzt von Kowalski ()

  • ANZEIGE
  • Bitte nicht erschrecken. Ich habe die Position, die er anfahren soll, mit einem Smiley markiert.

    LBL[150] ;

    293: !******************************** ;

    294: !ZUR AUFNAHME 1/2/3/4 WENDER FAHR ;

    295: !******************************** ;

    296: JMP LBL[159] ;

    297: !AUFNAHMEPOSITION 1 WENDER TEACHE ;

    298:L P[12] 100mm/sec FINE ;

    299: !AUFNAHMEPOSITION 2 WENDER TEACHE ;

    300:L P[13] 100mm/sec FINE ;

    301: !AUFNAHMEPOSITION 3 WENDER TEACHE ;

    302:L P[14] 100mm/sec FINE ;

    303: !AUFNAHMEPOSITION 4 WENDER TEACHE ;

    304:L P[15] 100mm/sec FINE ;

    305: !ENDE TEACHEN ;

    306: LBL[159] ;

    307: ;

    308: !POSITION LADEN ;

    309: PR[12:AUFN_1_WENDER]=P[12] ;

    310: PR[13:AUFN_2_WENDER]=P[13] ;

    311: PR[14:AUFN_3_WENDER]=P[14] ;

    312: PR[15:AUFN_4_WENDER]=P[15] ;

    313: ;

    314: UTOOL_NUM=2 ;

    315: F[3:Ueberw. Stempel 0 Grad]=(OFF) ;

    316: RO[1:STEMPEL NACH 0 GRAD]=OFF ;

    317: RO[2:STEMPEL NACH 90 GRAD]=ON ;

    318: LOCK PREG ;

    319:J PR[26:ZWISCHEN_03] 100% CNT100 ACC100 ;

    320: UNLOCK PREG ;

    321: ;

    322: !WARTEN AUF FREIG.AUFNAHME WENDER ;

    323: WAIT (DI[186:FREIGABE AUFNAHME 1] OR DI[187:FREIGABE AUFNAHME 2] OR DI[188:FREIGABE AUFNAHME 3] OR DI[189:FREIGABE AUFNAHME 4]) ;

    324: CALL SUB_SAUGSTEMPEL_90_GRAD ;

    325: ;

    326: IF (DI[186:FREIGABE AUFNAHME 1]),JMP LBL[151] ;

    327: IF (DI[187:FREIGABE AUFNAHME 2]),JMP LBL[152] ;

    328: IF (DI[188:FREIGABE AUFNAHME 3]),JMP LBL[153] ;

    329: IF (DI[189:FREIGABE AUFNAHME 4]),JMP LBL[154] ;

    330: ;

    331: LBL[151] ;

    332: !AUFNAHME TEIL 1 ;

    333: UTOOL_NUM=2 ;

    334: PR[2,1:TOOL_OFFSET]=0 ;

    335: PR[2,2:TOOL_OFFSET]=0 ;

    336: PR[2,3:TOOL_OFFSET]=(-100) ;

    337: PR[2,4:TOOL_OFFSET]=0 ;

    338: PR[2,5:TOOL_OFFSET]=0 ;

    339: PR[2,6:TOOL_OFFSET]=0 ;

    340: LOCK PREG ;

    341:J PR[12:AUFN_1_WENDER] 80% CNT20 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    342: UNLOCK PREG ;

    343: WAIT .80(sec) ;

    344: ;

    345: WAIT (DI[186:FREIGABE AUFNAHME 1]) ;

    346: LOCK PREG ;

    347:L PR[12:AUFN_1_WENDER] 800mm/sec CNT2 ACC100 ;

    348: UNLOCK PREG ;

    349: ;

    350: CALL SUB_VAKUUM_STEMPEL_EIN ;

    351: DO[186:Teil 1 aufgenommen]=ON ;

    352: WAIT (!DI[186:FREIGABE AUFNAHME 1]) ;

    353: DO[186:Teil 1 aufgenommen]=OFF ;

    354: WAIT .10(sec) ;

    355: F[1:Vakuumueberw. Stempel]=(ON) ;

    356: ;

    357: PR[2,1:TOOL_OFFSET]=0 ;

    358: PR[2,2:TOOL_OFFSET]=0 ;

    359: PR[2,3:TOOL_OFFSET]=(-100) ;

    360: PR[2,4:TOOL_OFFSET]=0 ;

    361: PR[2,5:TOOL_OFFSET]=0 ;

    362: PR[2,6:TOOL_OFFSET]=0 ;

    363: LOCK PREG ;

    364:L PR[12:AUFN_1_WENDER] 2000mm/sec CNT100 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    365: UNLOCK PREG ;

    366: JMP LBL[200] ;

    367: ;

    368: LBL[152] ;

    369: !AUFNAHME TEIL 2 ;

    370: UTOOL_NUM=2 ;

    371: PR[2,1:TOOL_OFFSET]=0 ;

    372: PR[2,2:TOOL_OFFSET]=0 ;

    373: PR[2,3:TOOL_OFFSET]=(-100) ;

    374: PR[2,4:TOOL_OFFSET]=0 ;

    375: PR[2,5:TOOL_OFFSET]=0 ;

    376: PR[2,6:TOOL_OFFSET]=0 ;

    377: LOCK PREG ;

    378:J PR[13:AUFN_2_WENDER] 80% CNT20 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    379: UNLOCK PREG ;

    380: ;

    381: WAIT (DI[187:FREIGABE AUFNAHME 2]) ;

    382: LOCK PREG ;

    383:L PR[13:AUFN_2_WENDER] 800mm/sec CNT2 ACC100 ;

    384: UNLOCK PREG ;

    385: ;

    386: CALL SUB_VAKUUM_STEMPEL_EIN ;

    387: DO[187:Teil 2 aufgenommen]=ON ;

    388: WAIT (!DI[187:FREIGABE AUFNAHME 2]) ;

    389: DO[187:Teil 2 aufgenommen]=OFF ;

    390: WAIT .10(sec) ;

    391: F[1:Vakuumueberw. Stempel]=(ON) ;

    392: ;

    393: PR[2,1:TOOL_OFFSET]=0 ;

    394: PR[2,2:TOOL_OFFSET]=0 ;

    395: PR[2,3:TOOL_OFFSET]=(-100) ;

    396: PR[2,4:TOOL_OFFSET]=0 ;

    397: PR[2,5:TOOL_OFFSET]=0 ;

    398: PR[2,6:TOOL_OFFSET]=0 ;

    399: LOCK PREG ;

    400:L PR[13:AUFN_2_WENDER] 2000mm/sec CNT100 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    401: UNLOCK PREG ;

    402: JMP LBL[200] ;

    403: ;

    404: LBL[153] ;

    405: !AUFNAHME TEIL 3 ;

    406: UTOOL_NUM=2 ;

    407: PR[2,1:TOOL_OFFSET]=0 ;

    408: PR[2,2:TOOL_OFFSET]=0 ;

    409: PR[2,3:TOOL_OFFSET]=(-100) ;

    410: PR[2,4:TOOL_OFFSET]=0 ;

    411: PR[2,5:TOOL_OFFSET]=0 ;

    412: PR[2,6:TOOL_OFFSET]=0 ;

    413: LOCK PREG ;

    414:J PR[14:AUFN_3_WENDER] 80% CNT20 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    415: UNLOCK PREG ;

    416: ;

    417: WAIT (DI[188:FREIGABE AUFNAHME 3]) ;

    418: LOCK PREG ;

    419:L PR[14:AUFN_3_WENDER] 800mm/sec CNT2 ACC100 ;

    420: UNLOCK PREG ;

    421: ;

    422: CALL SUB_VAKUUM_STEMPEL_EIN ;

    423: DO[188:Teil 3 aufgenommen]=ON ;

    424: WAIT (!DI[188:FREIGABE AUFNAHME 3]) ;

    425: DO[188:Teil 3 aufgenommen]=OFF ;

    426: WAIT .10(sec) ;

    427: F[1:Vakuumueberw. Stempel]=(ON) ;

    428: ;

    429: PR[2,1:TOOL_OFFSET]=0 ;

    430: PR[2,2:TOOL_OFFSET]=0 ;

    431: PR[2,3:TOOL_OFFSET]=(-100) ;

    432: PR[2,4:TOOL_OFFSET]=0 ;

    433: PR[2,5:TOOL_OFFSET]=0 ;

    434: PR[2,6:TOOL_OFFSET]=0 ;

    435: LOCK PREG ;

    436:L PR[14:AUFN_3_WENDER] 2000mm/sec CNT100 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    437: UNLOCK PREG ;

    438: JMP LBL[200] ;

    439: ;

    440: LBL[154] ;

    441: !AUFNAHME TEIL 4 ;

    442: UTOOL_NUM=2 ;

    443: PR[2,1:TOOL_OFFSET]=0 ;

    444: PR[2,2:TOOL_OFFSET]=0 ;

    445: PR[2,3:TOOL_OFFSET]=(-100) ;

    446: PR[2,4:TOOL_OFFSET]=0 ;

    447: PR[2,5:TOOL_OFFSET]=0 ;

    448: PR[2,6:TOOL_OFFSET]=0 ;

    449: LOCK PREG ;

    450:J PR[15:AUFN_4_WENDER] 80% CNT20 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    451: UNLOCK PREG ;

    452: ;

    453: WAIT (DI[189:FREIGABE AUFNAHME 4]) ;

    454: LOCK PREG ;

    455:L PR[15:AUFN_4_WENDER] 800mm/sec CNT2 ACC100 ;

    456: UNLOCK PREG ;

    457: ;

    458: CALL SUB_VAKUUM_STEMPEL_EIN ;

    459: DO[189:Teil 4 aufgenommen]=ON ;

    460: WAIT (!DI[189:FREIGABE AUFNAHME 4]) ;

    461: DO[189:Teil 4 aufgenommen]=OFF ;

    462: WAIT .10(sec) ;

    463: F[1:Vakuumueberw. Stempel]=(ON) ;

    464: ;

    465: PR[2,1:TOOL_OFFSET]=0 ;

    466: PR[2,2:TOOL_OFFSET]=0 ;

    467: PR[2,3:TOOL_OFFSET]=(-100) ;

    468: PR[2,4:TOOL_OFFSET]=0 ;

    469: PR[2,5:TOOL_OFFSET]=0 ;

    470: PR[2,6:TOOL_OFFSET]=0 ;

    471: LOCK PREG ;

    472:L PR[15:AUFN_4_WENDER] 2000mm/sec CNT100 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    473: UNLOCK PREG ;

    LBL[200] ;

    477: !******************************** ;

    478: !ZUR ABGABE BOX FAHREN ;

    479: !******************************** ;

    480: JMP LBL[299] ;

    481: !ABGABEPOSITION 1 TEACHEN ;

    482:L P[31] 100mm/sec FINE ;

    483: !ABGABEPOSITION 2 TEACHEN ;

    484:L P[32] 100mm/sec FINE ;

    485: !ABGABEPOSITION 3 TEACHEN ;

    486:L P[33] 100mm/sec FINE ;

    487: !ABGABEPOSITION 4 TEACHEN ;

    488:L P[34] 100mm/sec FINE ;

    489: !ABGABEPOSITION 5 TEACHEN ;

    490:L P[35] 100mm/sec FINE ;

    491: !ABGABEPOSITION 6 TEACHEN ;

    492:L P[36] 100mm/sec FINE ;

    493: !ABGABEPOSITION 7 TEACHEN ;

    494:L P[37] 100mm/sec FINE ;

    495: !ABGABEPOSITION 8 TEACHEN ;

    496:L P[38] 100mm/sec FINE ;

    497: !ABGABEPOSITION 9 TEACHEN ;

    498:L P[39] 100mm/sec FINE ;

    499: !ENDE TEACHEN ;

    500: LBL[299] ;

    501: ;

    502: !WARTEN AUF FREIGABE ABGABE BOX ;

    503: UTOOL_NUM=2 ;

    504: RO[2:STEMPEL NACH 90 GRAD]=ON ;

    505: WAIT (DI[191:FREIGABE BOX]) ;

    506: CALL SUB_SAUGSTEMPEL_90_GRAD ;

    507: ;

    508: !ABFRAGE NEUE BOX VORHANDEN ;

    509: IF (DI[192:NEUE BOX VORHANDEN]) THEN ;

    510: R[2:AKT_LAGE]=0 ;

    511: R[3:AKT_STAPEL]=1 ;

    512: DO[192:Quittierung neue Box]=ON ;

    513: WAIT (!DI[192:NEUE BOX VORHANDEN]) ;

    514: DO[192:Quittierung neue Box]=OFF ;

    515: ENDIF ;

    516: ;

    517: !AUSWAHL AKTUELLER STAPEL ;

    518: !ABGABEPOSITION 1 LADEN ;

    519: IF (R[3:AKT_STAPEL]=1) THEN ;

    520: PR[21:AKT_BOX_ABGABE]=P[31] ;

    521: JMP LBL[250] ;

    522: ENDIF ;

    523: !ABGABEPOSITION 2 LADEN ;

    524: IF (R[3:AKT_STAPEL]=2) THEN ;

    525: PR[21:AKT_BOX_ABGABE]=P[32] ;

    526: JMP LBL[250] ;

    527: ENDIF ;

    528: !ABGABEPOSITION 3 LADEN ;

    529: IF (R[3:AKT_STAPEL]=3) THEN ;

    530: PR[21:AKT_BOX_ABGABE]=P[33] ;

    531: JMP LBL[250] ;

    532: ENDIF ;

    533: !ABGABEPOSITION 4 LADEN ;

    534: IF (R[3:AKT_STAPEL]=4) THEN ;

    535: PR[21:AKT_BOX_ABGABE]=P[34] ;

    536: JMP LBL[250] ;

    537: ENDIF ;

    538: !ABGABEPOSITION 5 LADEN ;

    539: IF (R[3:AKT_STAPEL]=5) THEN ;

    540: PR[21:AKT_BOX_ABGABE]=P[35] ;

    541: JMP LBL[250] ;

    542: ENDIF ;

    543: !ABGABEPOSITION 6 LADEN ;

    544: IF (R[3:AKT_STAPEL]=6) THEN ;

    545: PR[21:AKT_BOX_ABGABE]=P[36] ;

    546: JMP LBL[250] ;

    547: ENDIF ;

    548: !ABGABEPOSITION 7 LADEN ;

    549: IF (R[3:AKT_STAPEL]=7) THEN ;

    550: PR[21:AKT_BOX_ABGABE]=P[37] ;

    551: JMP LBL[250] ;

    552: ENDIF ;

    553: !ABGABEPOSITION 8 LADEN ;

    554: IF (R[3:AKT_STAPEL]=8) THEN ;

    555: PR[21:AKT_BOX_ABGABE]=P[38] ;

    556: JMP LBL[250] ;

    557: ENDIF ;

    558: !ABGABEPOSITION 9 LADEN ;

    559: IF (R[3:AKT_STAPEL]=9) THEN ;

    560: PR[21:AKT_BOX_ABGABE]=P[39] ;

    561: JMP LBL[250] ;

    562: ENDIF ;

    563: !ENDE ABGABEPOSITION LADEN ;

    564: JMP LBL[200] ;

    565: ;

    566: LBL[250] ;

    567: !UEBER BOX FAHREN ;

    568: PR[1:AKT_POS]=PR[21:AKT_BOX_ABGABE] ;

    569: PR[1,3:AKT_POS]=350 ;

    570: LOCK PREG ;

    571: :denk: J PR[1:AKT_POS] 100% CNT100 ACC100 ;

    572: UNLOCK PREG ;

    573: ;

    574: !ABGABE IN BOX ;

    575: UTOOL_NUM=2 ;

    576: PR[2,1:TOOL_OFFSET]=0 ;

    577: PR[2,2:TOOL_OFFSET]=0 ;

    578: PR[2,3:TOOL_OFFSET]=R[2:AKT_LAGE]*R[5:LAGENABSTAND] ;

    579: PR[2,4:TOOL_OFFSET]=0 ;

    580: PR[2,5:TOOL_OFFSET]=0 ;

    581: PR[2,6:TOOL_OFFSET]=0 ;

    582: LOCK PREG ;

    583:L PR[21:AKT_BOX_ABGABE] 800mm/sec CNT5 Tool_Offset,PR[2:TOOL_OFFSET] ACC100 ;

    584: UNLOCK PREG ;

    585: ;

    586: F[1:Vakuumueberw. Stempel]=(OFF) ;

    587: CALL SUB_VAKUUM_STEMPEL_AUS ;

    588: R[2:AKT_LAGE]=R[2:AKT_LAGE]+1 ;

    589: DO[176:Gutteilezaehler 1]=PULSE,0.3sec ;

    590: !ABFRAGE LAGENZAEHLER ;

    591: IF (R[2:AKT_LAGE]>=GI[3:SOLLANZAHL LAGEN]) THEN ;

    592: R[2:AKT_LAGE]=0 ;

    593: R[3:AKT_STAPEL]=R[3:AKT_STAPEL]+1 ;

    594: ENDIF ;

  • Entweder sind beim anfahren falsche Frames aktiv oder das setzen von "z" auf 350mm macht das Problem. 569: PR[1,3:AKT_POS]=350 ;

    Vorausgesetzt du kannst das PR[21] korrekt anfahren.

    • Hilfreich

    Servus,


    ist ja viel Code! Du übergibst dem PR[21] die P[39], die geteacht ist (Zeile 560). Danach übergibst du PR[21] an PR[1] in Zeile 568, mit der du dann fährst Zeile 571. Jetzt ist die Frage welches TOOL noch angewählt ist. Wie es aussieht ist es TOOL 2, das legst du in Zeile 503 fest und danach erst wieder in Zeile 575. Mit welchem TOOL hast du die P[39] Zeile 498 geteacht?


    Du hast geschrieben, die geteachte Position (P[39]) kannst du anfahren. Fahre von der Position die 350 in Z Plus an, wenn das geht liegt es am falschen TOOL, wie meine Vorredner schon geschrieben haben.

    Oder schau einfach mit welchem TOOL die P[39] geteacht wurde.


    Ich würde dir noch empfehlen in deinem Teachabschnitt am Anfang immer das Tool zuweisen, mit Step drüber gehen und danach die Positionen teachen, dann bist du sicher mit dem richtigen Tool zu teachen.


    Gruß TR

  • Yo,


    Ich habe die Vermutung, dass sich die CONFIG ändert. Weiß jemand, ob bei PR[1] =PR[21] auch die CONFIG mit überschrieben wird? Ich glaube nämlich nicht. Will betonen: Bin mir nicht sicher.

    Heißt:

    Du musst bevor du PR[1] = PR[21] setzt einmal PR[1] = P[33] setzen, damit die CONFIG stimmt.


    Kannst du ja easy selbst nachprüfen, einfach mal das Programm ablaufen lassen und dann schauen, ob die CONFIGs von P[33] & P[1] übereinstimmen, sobald das Programm in Fehler gelaufen ist.


    Habe gerade kein Roboguide und kann es deshalb leider nicht selber testen und gerade ist auch sonst kein Robby frei.


    Gruß

    Lars

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