Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
08. Februar 2012, 15:02:07
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: >> Roboterprogrammierer gesucht !? <<

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Triggern oder Interrupt ???? 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Triggern oder Interrupt ????  (Gelesen 1608 mal)
mischwarz
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 128



« am: 26. Januar 2006, 09:29:58 »

moin moin,
ich muss mit einem IRB4400_45 (IRC5) von Punkt A nach Punkt B,um ein Werkstück in eine Wendestation abzulegen.Dabei habe ich schon zwei Drehzylinder zerschossen.Wird allmählich teuer.
Die Routine sieht im Moment so aus:

MoveJ pA,vMax,....
MoveLpB,vMax...
Wendestatzion\Zu;
Greifer\Auf;
MoveL pWartePos....
! ab hier erfolgt die Drehung und das erneute Greifen
.
.
Das Problem ist,dass die Wendestation zufährt,bevor der Robi Punkt Berreicht.
Ich muss zugeben,dass ich pB mit einer Zone z0 ,allerdings steht in Wendestation\Zu zuerst ein WaitTime 0.2;programmiert habe.
Was meint die Fachwelt dazu?
Triggern mit TriggIO oder TriggEquip oder gar TrigInt??
Gespeichert

Es gibt immer einen Weg. ( Wohin auch immer er führen mag )
mischwarz ANNO 2001
Borg
Gast
« Antworten #1 am: 26. Januar 2006, 09:35:54 »

Zuerst würde ich pb mit zone fine anfahren.
Funktioniert es dann immer noch nicht, solltest du in Erwägung ziehen den Status der Wendestation mit einem Endschalter abzufragen. Den Roboter fährst du dann erst weiter wenn der Eingang zur Freigabe da ist.
Gespeichert
mischwarz
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 128



« Antworten #2 am: 26. Januar 2006, 09:50:55 »

Hi,
Bevor ich nach pA fahre wird der Zylinder in die Ausgangsstellung gebracht und diZylinderAuf abgefragt.Das ist OK und funktioniert.
Erst wenn er von pA nach pB fährt und kurz bevor er pB erreicht beginnt der Zylinder zuzufahren.
Was ich brauche ist etwas Bombensicheres,egal ob ich mit v10 oder vMax in die Station einfahre.
Ich denke mit TriggEquip und einer Zeitforgabe im Minusbereich (z.B.-0.2) sollte es funktionieren.Eventuell sollte ich noch eine vorposition anfahren,z.B. MoveL Offs(pB,0,0,2),v200,... und diese Position in einem Interrupt,wo ich diZylinderAuf beobacht.
Gespeichert

Es gibt immer einen Weg. ( Wohin auch immer er führen mag )
mischwarz ANNO 2001
Borg
Gast
« Antworten #3 am: 26. Januar 2006, 11:10:03 »

Das mit der Zwischenposition ist keine schlechte Idee. Dahinter fügst du einfach eine Warteposition ein bis DiZylinderAuf da ist (WAITDI). Und erst dann fährst du auf pb weiter.
Gespeichert
mischwarz
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 128



« Antworten #4 am: 26. Januar 2006, 12:38:42 »

Ich werde es heute Nachmittag ausprobieren.
Wenn ich ein Zufriedenstellendes Ergebnis habe,stelle ich es vor.
Gespeichert

Es gibt immer einen Weg. ( Wohin auch immer er führen mag )
mischwarz ANNO 2001
mischwarz
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 128



« Antworten #5 am: 27. Januar 2006, 06:39:17 »

Ich habe mein kleines Problem wie folgt geloest:



   !------------------------------------------------------------
    !Procedur     : wende1
    !Beschreibung : Ablaufroutine zum Wenden eines Werkstückes
    !             :
    !             :
    !Parameter    : keine 
    !------------------------------------------------------------
    PROC wende1()
        ! Homeposition Wendestation
      mv_HomeWende;
      VelSet 75, 2000;
        ! Wendestation zurueckfahren
      rWende\Rueck,0;
        ! Wendestation auseinanderfahren
      rWende\Auf,0.5;
        ! In Vorposition zum Ablegen fahren
      MoveJ pW1Abl,v5000,z5,tGreifer\Wobj:=wUmGr;
        ! In Naeherrungsposition zum Ablegen fahren
      MoveL pW2Abl,v500,z5,tGreifer\Wobj:=wUmGr;
        ! In Ablegeposition fahren und Werkstueck spannen
       mv_LoesePos -0.2, v100;
         ! Greifer oeffnen
      rGreifer\Auf, 0.5;
        ! In Warteposition fahren und Wendestation vorfahren
      MoveL pWarteWende,v500,fine,tGreifer\Wobj:=wUmGr;
        ! Wendestation vordrehen
      rWende\Vor, 0.5;
        ! In Vorposition zum Greifen fahren
      MoveL pW2Auf,v500,z5,tGreifer\Wobj:=wUmGr;
        ! In Greifposition fahren
      MoveL pW3Auf,v500,fine,tGreifer\Wobj:=wUmGr;
      rGreifer\Zu,0.5;
        ! Wendestation auseinanderfahren
      rWende\Auf, 0.5;
        ! Aus Wendestation ausfahren
      MoveL pW2Auf,v5000,z5,tGreifer\Wobj:=wUmGr;
        ! In Vorposition fahren
      VelSet 100,5000;
      MoveJ pW1Auf,v5000,z5,tGreifer\Wobj:=wUmGr;
        ! In Homeposition der Wendestation fahren
      mv_HomeWende;
        ! Wendestation zurueckdrehen
      rWende\Rueck,0;
    ENDPROC

  PROC mv_LoesePos(
    num Zeit,
    speeddata Speed)

    CONST string stFm:=" Fehler beim Zylinder; zufahren";
    VAR bool bERROR;

    Reset doWendeAusf;
      ! Vorposition anfahren und Zylinder beobachten
    CONNECT irWende_1 WITH T_Wende;
    ISignalDI diWendeUntenEin,0,irWende_1;
    MoveL Offs(pW3Abl,0,10,10), v500, z0, tGreifer\WObj:=wUmGr;
    IDelete irWende_1;
      ! Loeseposition anfahren
    TriggEquip trWende_2,0,Zeit\DOp:=doWendeAusf,1;
    TriggL pW3Abl,Speed,trWende_2,fine,tGreifer\WObj:=wUmGr;
      ! Warten bis Zylinder ausgefahren ist
    WaitUntil diWendeObenAus=1 AND diWendeUntenAus=1\MaxTime:=2\TimeFlag:=bERROR;
      ! Fehlerbehandlung
    IF bERROR THEN
      Set doSimStoer;
      Reset doWendeAusf;
      PulseDO\PLength:=0.2, doWendeEinf;
      rGreifer\Auf,0;
      mv_Reset 0, 0, 200;
      TPErase;
      TPWrite " Fehler Wendestation ";
      TPWrite stFm ;
      TPReadFK nFK,"Abbruch","Abbruch",stEmpty,stEmpty,stEmpty,stEmpty;
      prog_exit;
    ENDIF
    Reset doWendeAusf;
   ENDPROC

Gespeichert

Es gibt immer einen Weg. ( Wohin auch immer er führen mag )
mischwarz ANNO 2001
mod-poser
Gast
« Antworten #6 am: 09. Februar 2006, 19:11:56 »

Hallo,
bei Dir fehlt nur das optionale Argument /InPos für das Waittime.

grüße
msc
Gespeichert
mischwarz
Junior Member
****
Offline Offline

Geschlecht: Männlich
Beiträge: 128



« Antworten #7 am: 10. Februar 2006, 13:09:47 »

In der Tat,

Danke mod-poser. merci
Gespeichert

Es gibt immer einen Weg. ( Wohin auch immer er führen mag )
mischwarz ANNO 2001
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Triggern oder Interrupt ???? « vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS