21. Mai 2019, 21:08:16
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

 Hilfe bei Programmerstellung


normal_post Autor Thema:  Hilfe bei Programmerstellung  (Gelesen 3905 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

31. Juli 2007, 19:25:33
Gelesen 3905 mal
Offline

odb


Schönen guten Tag.

Also folgendes Problem: Ich bin momentan dabei ein Programm für den Roboter mit einer Widerstandspunktschweißzange
zu schreiben, bei dem er einen Punkt anfährt, einen Schweißpunkt setzt und von diesem an mittels Schleife
voranschreitet. Da ich aber bis jetzt noch nie was mit Robotern zu tun hatte und meine einzigen
Programmierkenntnisse sich auf 1 Jahr Turbo Pascal beschränken, gestaltet sich das Ganze jedoch etwas
schwierig. Hab mal mein Entwurf:

Zitat
begin
 Lbl [1]  move to P[1] cnt 50%                            P[1] = P(x,y,z,w,v,z) = P(10,10,0,90°,0°,90°)
 Lbl [2]  call program 'spot on'                            Übergabe an die Zange, Setzen des Schweißpunkts
 Lbl [3]  if x > Grenze(Wert) do x+15mm,           Verschieben um 15mm in x-Richtung
              jump to Lbl[2]                                     zurück zu Befehl 2
 Lbl [4]  if x < Grenze(Wert) do x=10mm,           wenn Plattenende erreicht, zurück zu x=10mm
 Lbl [5]  if y < Grenze(Wert) do y+15mm,           und 15mm in y-Richtung
             jump to Lbl[2]                                      jetzt wieder Punkte in x-Richtung setzen, bis Ende der Platte erreicht ist
     else stop.                                                    Ende der Platte in y-Richtung, Programmende
end.
So, hoffe mal, ich hab nicht allzu viele Fehler gemacht und konnte meine Problem halbwegs klar erklären.
Bin für jegliche Hilfe und Hinweise auf Fehler dankbar.

So far,
Gruß Alex
« Letzte Änderung: 02. August 2007, 06:31:40 von odb »
  • gefällt mir    Danke

Heute um 21:08:16
Antwort #1

Werbung

Gast

31. Juli 2007, 23:46:26
Antwort #1
Offline

rob76

Global Moderator
hallo alex,
sieht ganz hübsch aus...... nur leider wird der roboter kein "wort" verstehen.
mit pascal kannst du da nix wirklich anfangen.
du solltest dir evtl. erst mal das handbuch reinziehen.
  • gefällt mir    Danke

01. August 2007, 07:27:34
Antwort #2
Offline

Sven Weyer

Global Moderator
Jupp ein Blick in ein Referenzhandbuch wäre für Dich mit Programmiervorkenntnissen von Vorteil.
Und Du wirst überrascht sein wieviel Du an Ähnlichkeiten entdecken wirst! ;-)

Sven

P.S.: Solltest Du etwas an Handbüchern benötigen PM an mich mit E-Mailadresse.
  • gefällt mir    Danke
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!

01. August 2007, 12:53:19
Antwort #3
Offline

Tobias Adam


Das hätte ich auch gern. PM ist unterwegs.

Danke.

Gruß, Tobias
  • gefällt mir    Danke

03. August 2007, 09:27:49
Antwort #4
Offline

odb


Also das Angebot mit dem Handbuch würd ich annehmen,
hab dir ne Mail geschrieben, hoffe ist nicht im Spamordner gelandet.

Gruß Alex
  • gefällt mir    Danke

Heute um 21:08:16
Antwort #5

Werbung

Gast

07. November 2007, 17:46:41
Antwort #5
Offline

odb


Also, hab mich mal intensiver mit KAREL beschäftigt und die ganze Sache nen bisschen überarbeitet

Zitat
PROGRAM ****

VAR
 START_P; END_P             :POSITION
 WERT_X; WERT_Y; WERT_Z             :REAL
 END_X; END_Y                         :INTEGER
 x_VERSCHIEB; Y_VERSCHIEB           :VECTOR


  ROUTINE X-RICHTUNG
   
   BEGIN

    WERT_X = 10
    END_X = 490
     REPEAT
      CALL PROGRAM 'SPOT ON'
      WERT_X = WERT_X + 30
      X_VERSCHIEB = VEC(WERT_X, WERT_Y; WERT_Z)
      SHIFT (X_VERSCHIEB)
     UNTIL WERT_X > END_X
    WERT_X = 10
    X_VERSCHIEB = VEC(WERT_X, wERT_Y; WERT_Z)
    SHIFT (X_VERSCHIEB)
   END X-RICHTUNG

BEGIN

 $SPEED = 300
 $MOTYPE = JOINT
 $TERMTYPE = FINE
 WERT_Z = 0
 MOVE TO START_P
 WERT_Y = 10
 END_Y = 210
  REPEAT
   X-RICHTUNG
   WERT_Y = WERT_Y + 30
   Y_VERSCHIEB = VEC(WERT_X, wERT_Y; WERT_Z)
   SHIFT (Y_VERSCHIEB)
  UNTIL WERT_Y > END_Y
 MOVE TO END_P

END ****

Hoffe mal, es ist besser als mein erster Versuch und man kann das was ich erreichen will erkennen. Was mir z.B. noch nicht ganz so klar ist, an welcher stelle ich die Position eingebe. Das dies über START_P = POS(X,Y,Z,W,Y,Z,CONFIG) gemacht wird is klar.  Also, bin wieder für jegliche Hilfe und Hinweise dankbar.

 :danke:
Gruß Alex
« Letzte Änderung: 07. November 2007, 19:22:35 von odb »
  • gefällt mir    Danke

07. November 2007, 20:55:50
Antwort #6
Offline

rob76

Global Moderator
hallo alex,

mit welcher steuerung arbeitest du?

Falls es ein neuerer roboter ist würde ich den gebrauch von Karel-bewegungen auf jeden fall ablehnen.

die weiterentwicklung der karel bewegungsplanung wurde mitte der 90er gestoppt.

die bahnplanung ist also wie bei einem über 10 jahre alten roboter.

karel wird natürlich immer noch für div. sachen sachen eingesetzt aber von bewegungsbefehlen sollte man auf

jeden fall absehen. dafür wird die vereinfachte TPE sprache eingesetzt.

so könnte das ganze z.b. in TPE aussehen:

   1:  UFRAME_NUM=1 ;
   2:  UTOOL_NUM=1 ;
   3:  PR[1,1]=0    ;
   4:  PR[1,2]=0    ;
   5:  PR[1,3]=0    ;
   6:  PR[1,4]=0    ;
   7:  PR[1,5]=0    ;
   8:  PR[1,6]=0    ;
   9:   ;
  10:  LBL[1] ;
  11:L P[1] 1000mm/sec FINE Offset,PR[1]    ;
  12:  CALL SPOT    ;
  13:  PR[1,1]=PR[1,1]+10    ;
  14:  IF (PR[1,1]<490),JMP LBL[1] ;
  15:  PR[1,1]=0    ;
  16:  PR[1,2]=PR[1,2]+10    ;
  17:  IF (PR[1,2]<=10),JMP LBL[1] ;
  18: END ;


« Letzte Änderung: 07. November 2007, 20:57:32 von rob76 »
  • gefällt mir    Danke

08. November 2007, 09:19:51
Antwort #7
Offline

odb


Erstmal danke für die schnelle Antwort und Hilfe.
Der Roboter is nen S 420F von 1994, also doch schon einer der älteren Generation. Und hab mich für KAREL entschieden, weil es Pascal doch
recht ähnlich ist, und zu TPE gibs es hier irgendwie kein Handbuch.
Aber werd mir deinen Vorschlag mal anschauen, nochmal Danke.

Gruß alex
  • gefällt mir    Danke

08. November 2007, 10:01:29
Antwort #8
Offline

rob76

Global Moderator
1994 ist ok.

da kannst du karel noch bedenkenlos für bewegungen einsetzten.
  • gefällt mir    Danke

Heute um 21:08:16
Antwort #9

Werbung

Gast

29. November 2007, 14:03:48
Antwort #9
Offline

Gerhard Reinig


Also, dass ihr immer so schnell zu Karel greift verwundert mich. Zu TPE kein Handbuch aber zu Karel? Das wundert mich ebenso. TPE-Handbuch wird doch mitgeliefert. Karel muß man erst kaufen. Also, ich habe keines.

Ich würd's auch über Positions-Register machen. Ist wie beim Palletieren (Kisten-Stapeln)
Definition Positionsregister:
PR[1,1]=0    ; Positions-Register 1, X-Wert
PR[1,2]=0    ; Positions-Register 1, Y-Wert
PR[1,3]=0    ; Positions-Register 1, Z-Wert
PR[1,4]=0    ; Positions-Register 1, W-Wert = Drehung um X
PR[1,5]=0    ; Positions-Register 1, P-Wert = Drehung um Y
PR[1,6]=0    ; Positions-Register 1, R-Wert = Drehung um Z

Mußt Du dann nur noch wie im Beispiel von rob76 logisch verarbeiten.
  • gefällt mir    Danke
Gerhard Reinig
Roboterprogrammierung
Fanuc KUKA ABB Comau Reis RobCad


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH