ABB Roboterschulung von praxiserfahrenen Trainern
in unserem Schulungszentrum in Mainburg oder vor Ort bei Ihnen
Bediener und Expertenschulungen anfragen

Autor Thema:  Schleifenprogrammierung in Rapid mit ABB-Roboter  (Gelesen 8304 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline TEG

  • Bekannter LV 3
  • *
  • Beiträge: 8
  • Bewertet: 0
Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 12. April 2007, 14:11:29 »
Ist es möglich eine Art Schleife zu Programmieren?
dass der Roboter einige male auf und wieder ab fährt, dann eine neue position 5mm weiter anfährt, dort die selbe Bewegung macht usw usw...
Ich muss eine Kraftmessplatte validieren. Sie ist ca. 80x50cm groß und ich soll in 5mm Abständen messen...
ich finde nichts dergleichen in den Handbüchern

Danke für eure Hilfe
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


ABB Robotertraining
günstig und verständlich mit Zertifikat
ABB Roboterschulung

Offline Michael J.

  • Forum Elite LV 3
  • *
  • Beiträge: 270
  • http://www.fraimtec.de
    • FRAIMTEC Automation & Anlagenmontage
  • Bewertet: 0
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 12. April 2007, 15:21:46 »
Hallo TEG,

also Möglichkeiten gibt es da bestimmt mehrere.

Ich weiß ja nicht wie dein Programm aufgebaut ist, aber so könnte man es machen.

zB.

VAR num nRepeat:=10; deine Wiederholrate
PERS num nMaxCount:=10;
PERS num nCount:=0;
PERS num nVersX:=20; Verschiebung X Richtung
PERS num nVersY:=10; Verschiebung Y Richtung
PERS num nAktVersX:=0; Aktuelle Verschiebung X Richtung
PERS num nAktVersY:=0; Aktuelle Verschiebung Y Richtung



PROC main ()
!
nCount:=1;
nAktVersX:=nVersX;
nAktVersY:=nVersY;
!
WHILE nCount<=nMaxCount DO
!
rProgramm1:
Incr nCount;
nAktVersX:=nVersX*nCount;
nAktVersY:=nVersY*nCount;
ENDPROC

PROC rProgramm1()
FOR i FROM 1 TO nRepeat DO
MoveL Offs(pTest,nAktVersX,nAktVersY,50),vTest,z1,tAktuell\WObj:=wAktuell;
MoveL Offs(pTest,nAktVersX,nAktVersY,0),vTest,z0,tAktuell\WObj:=wAktuell;
MoveL Offs(pTest,nAktVersX,nAktVersY,50),vTest,z1,tAktuell\WObj:=wAktuell;
ENDFOR
ENDPROC

Wie gesagt Möglichkeiten gibt es da einige.
Hoffe konnte dir helfen.

Gruß..
« Letzte Änderung: 12. April 2007, 16:20:46 von Robcheck01 »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
„Herr, lass mich ein guter Mensch sein. Aber bitte nicht sofort.“

Offline heini0707

  • Forum Elite LV 6
  • *
  • Beiträge: 346
  • Bewertet: +1
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 12. April 2007, 16:07:30 »
Hi,

du musst auch die Position verschhieben.

Befehlbeispiel:

nVerschX:=0;
ANFANG:

MoveL RelTool(pTEST,nVerschX,nVerschY,nVerschZ), vTest, fine, GR1\WObj:=TISCH
!UP mit Bewegung
nVerschX:=nVerschX+5;

IF nVerschX>10
    ExitCycle;
ELSE
    GOTO ANFANG;
ENDIF

ENDPROC

so in der Art könnte es aussehen

MfG heini
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Sven Weyer

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1056
  • Bewertet: +17
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 12. April 2007, 19:04:23 »
Hi,
kreativ gesehen gibt es da viele Ansätze. Grundsätzlich würde ich mich aber dem System von Robcheck01 anschließen.
Warum heini0707 hier mit ExitCycle und GOTO handtieren muss ist mir nicht klar. Aber das muss jeder selber wissen wie er seine Programme aufbaut. Bin bis jetzt bei all meinen Anlagen ohne diese Sachen ausgekommen. Und muss dazu sagen so ganz schick ist das nicht. Aber muss jeder für sich selber entscheiden.

Du kannst über Variablen und die Funktion "Offs" oder "RelTool" jede Position beliebig verändern ohne das Du die grundlegenden Daten Deiner ursprünglichen Position anfassen musst. Und über While-Schleifen hast Du ja im Prinzip schon Deine Schleife als Funktion im Rapid.Syntax hinterlegt. Also kein Grund hier mit ExitCycle oder Goto rumzueiern.

Denke das sollte Dir helfen.

robotic74
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!

Offline stromer

  • Forum Elite LV 7
  • *
  • Beiträge: 366
  • Denken hilft
  • Bewertet: 0
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 08:19:41 »

Vielleicht hat heini ja bisher Fanuc oder sowas programmiert, da geht es nicht anders.
Ich mag ABB  :beerchug:
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Sven Weyer

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1056
  • Bewertet: +17
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 08:29:06 »
Hi stromer,
jo ich mach auch FANUC und mit FANUC ist diese nur über Karel möglich so etwas galant über die Hochprache möglich. Ansonsten ist doch FANUC tp eine simple-Programmiersprache. Also nicht vergleichbar mit ABB. Aber wenn ich soetwas zur Verfügung habe mache ich doch nicht einfach auf prähistorisch oder? Bin doch auch nur Faul und möchte mit so wenig aufwand wie möglich es übersichtlich gestalten und da würd mir bei ABB im Traum nicht einfallen so etwas so zu machen. Naja wie schon gesagt muss jeder selber wissen wie er es macht.

FANUC ist FANUC und ABB ist ABB, Wollen doch hier nicht Apfel mit Birnen vergleichen oder? :zwink:

robotic74
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!

Offline WolfHenk

  • WolfHenk eben.
  • Forum Legende LV 7
  • *
  • Beiträge: 2348
  • GIT d- s+:- a+ C++ UL+ P+ L+ E-- W++ !N !o !K w !O
    • WolfHenk.de
  • Bewertet: +16
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 09:35:05 »
Also ich sitz jetzt seit weit über 20 Jahren an irgendwelchen Computern rum und programmiere. :uglyhammer_2:
Und alles, was ich gelernt habe, ist daß GOTO ein Befehl ist, den man selbst im Notfall nicht verwenden soll. :aufsmaul:
Wer GOTO und PULSE programmiert, der...  :bawling:
...macht mich sprachlos. :shock: Und das will bei mir was heißen. :genau:

 :beerchug:
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
Wolfram (Cat) Henkel

never forget Asimov's Laws at the programming of robots...

"Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."

https://www.xing.com/go/invite/5634410.eb15e5

PMs und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet. Diese Fragen und die Antworten interessieren jeden hier im Forum.

Offline stromer

  • Forum Elite LV 7
  • *
  • Beiträge: 366
  • Denken hilft
  • Bewertet: 0
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 11:00:51 »
Na dann sind wir ja alle einer Meinung!  :ylsuper:

 :beerchug:
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline TEG

  • Bekannter LV 3
  • *
  • Beiträge: 8
  • Bewertet: 0
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 11:18:51 »
ok...das sind ja viele vorschläge...
ich hab mich für den von"Robcheck" entschieden.
der hatte das schönste bsp...ich muss aber auch gestehen dass ich das erste mal an einem roboter arbeite und die Handbücher nicht so ganz das wahre sind um sich selber einzuarbeiten.
es gibt im moment noch ein problem. im folgenden abschnitt nimmt er das PERS nicht.

VAR num nRepeat:=10; deine Wiederholrate
PERS num nMaxCount:=10;
PERS num nCount:=0;
PERS num nVersX:=20; Verschiebung X Richtung
PERS num nVersY:=10; Verschiebung Y Richtung
PERS num nAktVersX:=0; Aktuelle Verschiebung X Richtung
PERS num nAktVersY:=0; Aktuelle Verschiebung Y Richtung

er bringt mir immer die Fehlermeldung:
Fehler 136 : Syntaxfehler:Unerwartet: 'pers'

Ist das nur der falsche "Datentyp" ??
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Sven Weyer

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1056
  • Bewertet: +17
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 11:59:51 »
Hi TEG,
sorichtig kann ich nicht deuten was Du meinst.  :kopfkratz:
Kommt darauf an in welcher Zeile er Dir das meldet. Er gibt immer Zeile und Spalte an in welcher Dein Syntaxfehler aufgetreten ist. Wenn Du Dein Modul od. Programm lädst gibt er Dir die Position an wo Dein Problem sich befindet. An Deinem Ausschnitt aus dem Programm kann man nichts erkennen. Und die Hälfte der Fehlermeldung bringt uns auch nicht weiter.  :huh:

Gib bitte mehr Infos wenn jemand Dir helfen soll.

robotic74
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!

Offline TEG

  • Bekannter LV 3
  • *
  • Beiträge: 8
  • Bewertet: 0
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 12:22:25 »
Hi,
also wir haben das Programm jetzt mal so weit verändert.....mit eigenem Werkobjekt....


MODULE MainModule

PERS wobjdata wPlatte := [FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[1468.33,-253.438,-13.7974],[0.999991,0.00160308,-0.00194846,0.00329643]]];
CONST speeddata vTest := [75,75,75,75];

VAR num nRepeat:=10;  !Wiederholrate

PERS num nMaxCount:=10;
PERS num nCount:=0;
PERS num nVersX:=20; !Verschiebung X Richtung
PERS num nVersY:=10; !Verschiebung Y Richtung
PERS num nAktVersX:=0; !Aktuelle Verschiebung X Richtung
PERS num nAktVersY:=0; !Aktuelle Verschiebung Y Richtung



PROC main ()

nCount:=1;
nAktVersX:=nVersX;
nAktVersY:=nVersY;

WHILE nCount<=nMaxCount DO

rProgramm1:
Incr nCount;
nAktVersX:=nVersX*nCount;
nAktVersY:=nVersY*nCount;
ENDWHILE
ENDPROC

PROC rProgramm1()

FOR i FROM 1 TO nRepeat DO
num pTest:={500,500,0};
MoveL Offs(pTest,nAktVersX,nAktVersY,50),vTest,z1,tAktuell\WObj:=wPlatte;
MoveL Offs(pTest,nAktVersX,nAktVersY,0),vTest,z0,tAktuell\WObj:=wPlatte;
MoveL Offs(pTest,nAktVersX,nAktVersY,50),vTest,z1,tAktuell\WObj:=wPlatte;
ENDFOR

   ENDPROC
ENDMODULE

....soweit sogut
jetzt die letzte Fehlermeldung...Sie wird mir so angezeigt....und ich weiß nicht was für ein "identifier"

Programm wurde geändert.
Programm wird auf Fehler überprüft...
10.33.28.66/T_ROB1/MainModule (35) : Fehler 135 : Syntaxfehler. : Erwartet: identifier


So steht's bei mir dran und ich werd daraus net schlau

TEG
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Sven Weyer

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1056
  • Bewertet: +17
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 12:28:17 »
Hi TEG,
schau mal in Zeile 35!
num pTest etc.
was möchtest Du da machen?

robotic74
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!

Offline TEG

  • Bekannter LV 3
  • *
  • Beiträge: 8
  • Bewertet: 0
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 12:47:40 »
Ganz vorsichtig gesagt...meine senkrechte bewegung??? :roll:
von oben nach unten und wieder zurück???
würde ich jetzt mal mutmaßen.
das problem ist, dass sich hier echt niemand mit dem roboter auskennt und bis jetzt hier immer nur mit Punkte anfahren gearbeitet wurde...und dadurch irgendwelche bewegungen simuliert wurden. aber bis ich das so fertig progarmmiert hätte wäre ich wohl schon in rente..
ich mach das jetzt erst ne woche...sprich mein wissen ist noch etwas...dünn... :(
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Sven Weyer

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1056
  • Bewertet: +17
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 12:52:41 »
Hi TEG,
also wie steht Dein Werkobjekt?
Wenn Z die Auf-bzw. Abwärtsbewegung ist würde ich doch einfach eine Variable in die Offs-Funktion einbinden und diese Variable dann entsprechen Ändern wie X und Y, oder? Aber wenn Z Deine Auf- bzw. Abwärtsbewegung ist hast Du doch schon die Bewegung in der Offs-Funktion. Schau Dir mal den dritten Wert an. 50 bzw. 0.

robotic74
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert
Wer nichts macht macht keine Fehler!
Wer keine Fehler macht kann nichts daraus lernen!
Wer nichts lernen kann kann sich nicht weiterentwickeln!
Wer sich nicht entwickelt geht unter!

Offline stromer

  • Forum Elite LV 7
  • *
  • Beiträge: 366
  • Denken hilft
  • Bewertet: 0
Re: Schleifenprogrammierung in Rapid mit ABB-Roboter
« am: 13. April 2007, 13:14:55 »
Hallo TEG,

wenn ich Dein Programm richtig verstehe, möchtest Du in Zeile 35 Deiner Position pTest sowas wie einen Startwert zuordnen. So wie Du es geschrieben hast, ist es eine "halbe" Deklaration und funktioniert deshalb nicht. Eine Positionsvariable ist eine Zusammensetzung aus mehreren Informationeteilen. Wenn Du auf einen speziellen Teil (z.B.: xyz) zugreifen möchtest musst Du das so machen: pTest.trans:={100,200,0} oder einzeln: pTest.trans.x:=100.
Wie sich das alles zusammen setzt ist in der Doku eigentlich ganz gut erklärt (Datentypen).

Aber zurück zu Deiner FOR-Schleife:
Wenn der Robbi die Positionen verschieben soll, dann musst Du die Offsets auch mit Deinem Schleifenzähler verrechnen. Z.B. so:

FOR i FROM 1 TO nRepeat DO

MoveL Offs(pTest,nAktVersX*(i-1),nAktVersY,50),vTest,z1,tAktuell\WObj:=wPlatte;
MoveL Offs(pTest,nAktVersX*(i-1),nAktVersY,0),vTest,z0,tAktuell\WObj:=wPlatte;
MoveL Offs(pTest,nAktVersX*(i-1),nAktVersY,50),vTest,z1,tAktuell\WObj:=wPlatte;
ENDFOR

Wenn Du in Y auch schieben willst dann musst Du um die i-Schleifen noch eine j-Schleife legen und den y-Offset mit verknüpfen.

Gruß
Stromer
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


question
MoveAbsJ * im RAPID

Begonnen von ck.poorboy

2 Antworten
656 Aufrufe
Letzter Beitrag 17. August 2016, 11:28:44
von ck.poorboy
xx
Datentyp num in RAPID

Begonnen von brem

4 Antworten
1884 Aufrufe
Letzter Beitrag 26. Juni 2008, 11:35:27
von Thilbi
question
Include in RAPID

Begonnen von eJUNKI3

11 Antworten
2627 Aufrufe
Letzter Beitrag 21. November 2008, 21:32:58
von eJUNKI3
xx
RAPID Bedienungsanleitung Deutsch

Begonnen von Peter Wagner

5 Antworten
2489 Aufrufe
Letzter Beitrag 25. Juni 2012, 07:41:53
von Buschmann
xx
Benutzerwechsel per Rapid möglich?

Begonnen von ManipulatorManipulierer

2 Antworten
655 Aufrufe
Letzter Beitrag 19. August 2014, 10:41:17
von ManipulatorManipulierer
 

über das Roboterforum

Nutzungsbedingungen Impressum
Sitemap