Roboterforum Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?
18. Mai 2012, 11:01:00
Übersicht Hilfe Suche Kalender Einloggen Registrieren
News: English and international Robotsupport now on Robot Forum. Also Supported by the Moderators of the roboterforum.de

Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Eingang setzen 0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Eingang setzen  (Gelesen 579 mal)
divanis
Neuling
*
Offline Offline

Beiträge: 5


« am: 07. November 2011, 12:23:29 »

Hallo zusammen,

bin neu hier und hoffe auf Eure Hilfe.

Ich bearbeite mit einem ABB S4C+ Teile bei dem der Robo das Werkstück spannt.
An der Aufnahme habe ich Initiaroren angebracht der überwachen soll das, dass Teil immer gespannt bleiben soll.

Wie kann ich den Robi sagen falls das Teil während der Bearbeitung aus der Aufnahme fliegt er sofort in Y -50mm zurückfahren soll, sadass die Aufnahme nicht beschägigt wird

Habe es mit IF DI2=0 Then
Y - 50
Endif
mein Bearbeitungsprogramm
Else

funktioniert jedoch nur wenn bei beginn der Eingang 0 ist



 
Gespeichert
Martl
Member
***
Offline Offline

Geschlecht: Männlich
Beiträge: 94



« Antworten #1 am: 07. November 2011, 12:55:26 »

Servus,

Interrupt Programmieren supi

Grüße

Martl
Gespeichert
divanis
Neuling
*
Offline Offline

Beiträge: 5


« Antworten #2 am: 07. November 2011, 15:47:57 »

Ja gewusst wie ???
Gibt es ein Beispiel? hab das noch nie gemacht
Gespeichert
högi
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 288



« Antworten #3 am: 07. November 2011, 16:56:24 »

Hallo Divanis,
hast du eine Doku?
Ganz sooo einfach ist das nicht mit den Interrupts. Confused
Da ist schon ein wenig Lektüre der Doku nötig.
Ausserdem wie willst du denn "wegfahren" in Y Richtung?
Offset oder RelTool?
Gruß
Högi
Gespeichert

Zwei Dinge sind unendlich,das Universum und die menschliche Dummheit. Aber bei dem Universum bin ich mir noch nicht ganz sicher, !!!!
Albert Einstein
divanis
Neuling
*
Offline Offline

Beiträge: 5


« Antworten #4 am: 07. November 2011, 17:41:37 »

Doku hab ich aber komm nicht auf einen grünen Zweig. Glaub wird nicht einfach, hab gedacht das ich es einigermaßen gut kann aber der Begriff Rel Tool sagt mir auch nichts.
Ich schleife die Teile an einer herkömmlicher Kontaktscheibe und falls das Teil durch irgendeinen Grund rausfliegt möchte ich einfach das der Robo es sofort merkt und anschließend sofort um einen bestimmten Weg von der Kontaktscheibe zurück bleibt. Aufgrund dessen mein Bsp. mit Y -50
Dieser Fall muss unbedingt verhindert werden, da die Aufnahme schweine teuer ist.

Tja schon wieder enttäuscht
Gespeichert
högi
Special Member
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 288



« Antworten #5 am: 07. November 2011, 18:27:24 »

Keine Panik,
Offset oder RelTool bedeutet einfach nur in welchem Koordinatensystem du dich bewegst.
Poste mal den Progammschnipsel wo der Interrupt greifen soll.
Ausserdem macht ein Interrupt immer da weiter wo er aufgerufen wird.
Nach einem neuen Start fährt der Robbi sofort dahin zurück wo er herkommt.
Das heisst.. du musst auch noch etwas für den Interrupt Fall programmieren.
Was soll dein Robbi denn machen wenn der Eingang felhlt?
Gruß
Gespeichert

Zwei Dinge sind unendlich,das Universum und die menschliche Dummheit. Aber bei dem Universum bin ich mir noch nicht ganz sicher, !!!!
Albert Einstein
divanis
Neuling
*
Offline Offline

Beiträge: 5


« Antworten #6 am: 08. November 2011, 15:58:49 »

Hallo, eigentlich ist das gesamte Programm davon betroffen d.h von Beginn an.  Der Robi schleift mehrmals an der Kontaktscheibe mit mehreren Zügen und verschiedene Richtungen.
Damit ich eben mein Werkzeug schonen will soll er eben was bestimmtes machen. Meine Idee war das sofortige zurückfahren. Der Grund deswegen ist einfach Mitarbeiterabhängig. Falls dies in der Nachtschicht geschieht soll der Robi einfach in Home zurückfahren damit die Mitabeiter neu Bestücken können.
Gespeichert
Programmiersklave
Special Member
*****
Offline Offline

Beiträge: 274


« Antworten #7 am: 08. November 2011, 16:28:25 »

Ist ja kein Problem, ein Interrupt gilt ja solange, wie Du magst, notfalls während des gesamten Programmes.

Code:
 VAR intnum Bandriss1;
  VAR intnum Bandriss2;

....usw.

PROC haupt()


    CONNECT Bandriss1 WITH T_Fehler_SM;
    CONNECT Bandriss2 WITH T_Fehler_SM;
    ISignalDI eSM1_Bandriss,1,Bandriss1;
    ISignalDI eSM2_Bandriss,1,Bandriss2;
....
....
....

fahr1;
fahr2;
sonstwas;


endproc


!Irgendwo steht die Interruptroutine:
!Hier springt er rein, wenn der Fehler ist (bei mir wars Bandriss)

  TRAP T_Fehler_SM
    VAR robtarget ptmp;

!Zusatzbedingung testen (bei mir waren es Arbeitsräume, er soll die Zuckung ja nicht überall machen)
    IF (((DOutput(aZone1)=1) OR (DOutput(aZone2)=1) OR (DOutput(aZone3)=1) OR (DOutput(aZone4)=1))) THEN
!Bewegung stoppen
      StopMove;
!Hiermit interessiert ihn der Rest der Bahn nicht mehr
      StorePath;
!Hier liest er die Istposition ein - Tool und Wobj muss es natürlich geben mit Deinen Namen
      ptmp:=CRobT(\Tool:=ToTmp\WObj:=WoTmp);
!Hier bewegt er sich relativ zum Tool, bei mir 15 in Z, das Tool ist feststehend in der Scheibe, das Werkobjekt hängt am Roboter
      MoveL RelTool(ptmp,0,0,15),v1000,fine,ToTmp\WObj:=WoTmp;
!Und gibt die bewegung wieder frei
      StartMove;
!Hier kann man noch was texten oder so....
      TPwrite "Programm tot";
!Und Ende für alles. Will man die Situation retten, wird es natürlich komplizierter.
      EXIT;
    ELSE
      !Programm vielleicht nachstartbar?
      TPwrite "Was?"
      Stop;
    ENDIF
  ENDTRAP

Oder so. Bissl probieren.

Edit: Achso, natürlich kann man die Interrupts auch zwischendurch beliebig schlafenlegen. Normalerweise mache ich das auch innerhalb der Interruptroutine, das ist immer dann nötig, wenn man verhindern will, dass sich die Interrupts "aufstauen", wenn das Ereignis mehrfach eintritt. In meinem Beispiel fehlt das, weil sowieso ein EXIT folgt. Aber sauber ist das nicht....

Grüße,
Michael
Gespeichert
tnjsk4
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 32


« Antworten #8 am: 10. November 2011, 12:53:00 »

Hallo,
lösen kannst Du es auch wie schon angesprochen mit einer TRAP (Interruptroutine), wichtig dabei ist, das Du die Trapverbindung erstmal löscht (ISleep intAbbruch), bevor Du diese neu verbindest (IWatch).

Ablauf:
IDelete intAbbrechen;
CONNECT intAbbrechen WITH irAbbrechen;
ISignalDI diZurueck,high oder 1,intAbbrechen;
!deaktivieren
ISleep intAbbrechen;

TRAP irAbbrechen
  ! Stopp alle Bewegungen
  StopMove;
  ! Löscht den Pfad und Robbewegung
  ClearPath;
  ! Liest die neue Position (Bezug auf Tool und Werkobjekt)
  ! pPos ist der Robtarget dazu (sollte Global definiet sein)
  pPos:=CRobT(\Tool:=tscheibe\WObj:=wtisch);
  ! Starten
  StartMove;
  ! Bewegung z.B. mit RelTool
  MoveL RelTool(pAktPos,0,-50,0),v100,fine,tscheibe\WObj:=wtisch;
  ! Bewegung zur Grundstellung und ExitCycle (Wichtig, da er sonst versuchen würde,
  ! an der Stelle weiter zu machen, wo er aufgehört hat)
  MoveL pHome,v100,fine,tscheibe\WObj:=wtisch;
  TPErase;
  TPWrite "Programm abgebrochen,";
  TPWrite "Werkstücklage kontrollieren!";
  TPReadFk nFk "Bestätigen","","","","","OK";
  TPErase;
  ExitCycle;
  ! Neu start von Main
ENDTRAP
  
Gutes gelingen!



Gespeichert

Keine Brille ist so stark um die Welt mit meinen Augen zu sehen!
divanis
Neuling
*
Offline Offline

Beiträge: 5


« Antworten #9 am: 11. November 2011, 10:27:00 »

respekt und vielen Dank. Ich werde es am kommenden Samstag austesten.
Melde mich anschließend wieder.
Gespeichert
tnjsk4
Stammgast
**
Offline Offline

Geschlecht: Männlich
Beiträge: 32


« Antworten #10 am: 20. November 2011, 12:25:55 »

Hallo divanis,
gib bitte mal Info welche Variante Du erfolgreich umgesetzt hast!

Gruß
Gespeichert

Keine Brille ist so stark um die Welt mit meinen Augen zu sehen!
Seiten: [1] Nach oben Drucken 
Roboterforum für Industrieroboter Anwender  |  Industrieroboter Helpcenter  |  ABB Roboter (Moderatoren: burlibua, Sven Weyer, rmac)  |  Thema: Eingang setzen « 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