roboter programm

  • Hallo zusammen
    arbeite seit kurzem mit Fanuc roboter Wollte nun ein programm schreiben womit ich mir einige arbeit sprachen kann.


    muß mit roboter bleche sprühen die eben sind und auf träger liegen.
    wollte über register die länge ,bahn abstand und wieviel bahnen ermachen soll
    eingeben .
    kann denn einer mir dabei tips geben wie ich anfangen kann


    vielen dank im vorraus
    mfg
    memoli

    Einmal editiert, zuletzt von Sven Weyer ()

  • ANZEIGE
  • das einfachste ist wohl du arbeitest mit tool offset oder offset bewegungsoptionen.
    damit könnte man sowas mit 1 geteachten punkt realisieren.
    startpunkt teachen->den rest berechnen und-> mithilfe der offsetfunktion anfahren lassen.

  • hallo


    danke für dein antwort :)


    hatte da noch ein frage gib es die möglichkeit.
    zb.


    LBL1
    ....
    .....
    ....
    LBL2
    ....
    .....
    ....
    eine anweisung wenn der zähler grade ist das er in LBL1 springt
    wenn es ungrade ist der zähler LBL2
    und wenn der zähler 10 ist das der programm weiter geht ohne in die schleife LBL1 oder in LBL2 springt


    arbeite bis jetzt mit if zähler <=10 jmp LBL1
    will aber fals derzähler ungrade ist in LBL2
    springt




    mfg
    memoli

  • nimm switch / Case


    Geht auch in TP


    Nur 'ne gerade/ungerade-Abfrage ist in TP kaum realisierbar.

    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."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • switch/case??? wir sind hier bei fanuc.


    du meinst wahrscheinlich select. z.B.
    Select R[1]=1,JMP LBL[2]
    =2,JMP LBL[1]
    =3,JMP LBL[2]
    ELSE JMP LBL[3]


    natürlich kann man berechnen ob was gerade oder ungerade ist! auch in TPE


    R[1]=R[1] MOD 2
    wenn das ergebnis 0 ist,ist es gerade kommt was >0 raus ist es ungerade


    MOD-> Divisionsrest




    könnte so aussehen:


    IF R[1:ZAEHLER] >= 10 , JMP LBL[3]
    R[2] = R[1:ZAEHLER] MOD 2
    IF R[2] = 0 , JMP LBL[1]
    IF R[2] > 0 , JMP LBL[2]
    ...
    ...
    ...
    LBL[1]
    ...
    ...
    LBL[2]
    ...
    ...
    LBL[3]
    ...
    [END]

    Einmal editiert, zuletzt von rob76 ()

  • ja, genau select war gemeint.
    (ich habe die Schlüsselworte nicht im Kopf.)


    Aber das mit MOD ist etwas was ich nicht kenne. Muß ich auch mal testen.


    WH

    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."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • hallo zusammen


    danke für eure antworten


    mit mod habe ich so nicht vertsanden .da die 3 bedingungen gleichzeitig abgefragt werden muß.


    aber mit Select könnte ich doch
    LBL1
    ...
    ....
    ....
    LBL2
    ...
    ....
    ....
    Select R[1]=1,JMP LBL[2]
    =2,JMP LBL[1]
    =3,JMP LBL[2]
    =4,JMP LBL[1]
    =5,JMP LBL[2]
    =6,JMP LBL[1]
    =7,JMP LBL[2]
    =8,JMP LBL[1]
    ELSE R[1] =9 JMP LBL[3]
    LBL3
    ....
    ....
    end

  • also ..MOD ist eine division wo du als ergebnis nur den rest bekommst(die nachkommastellen).
    z.B. normale division 3:2=1,5 2:2=1 mit MOD 3MOD2=5 2MOD2=0
    mit select kannst du machem nur das else ist falsch:
    ELSE R[1] =9 JMP LBL[3]


    Du kannst mit else nix abfragen
    else bedeutet das nix aus deiner select anweisung zutrifft.
    muss so aussehen:
    ELSE JMP LBL[3]

  • hallo
    schönen abend zusammen


    hätte dazu auch eine frage
    ist es mit TP möglich das zu programmieren


    wenn man im Register länge ,breite und den bahnabstand eingibt


    das er durch ein geteachten Punkt eine platte abfährt.


    da ich auf der arbeit unterschiedliche Platten Lackieren muß
    Roboter Bahn
    .............................
    .
    .
    .............................
    .
    .
    ..............................
    im momment arbeite ich mit :


    LBL(1)
    PR(1,2)=PR(1,2) +1000
    PR(1,1)=PR(1,1)+100
    PR(1,2)=PR(1,2)-1000


    PR(1,1)=PR(1,1)+100


    if R(1)<=5Jmp LBL1


    schönen abend zusammen
    Ralf

  • sollte problemlos gehen.


    geteachte Position anfahren
    PR(1)=lpos
    Damit hast Du die geteachte Position ins Posregister geholt


    Der Rest ist Mathematik: Länge kann in einem durch gespritzt werden?
    Breite wird durch Bahnabstand geteilt. Das ergibt die Anzahl der zu fahrenden Bahnen (oder sogar eins zuviel)


    R(Zähler)=0
    R(Anzahl) = R(breite)/R(bahnabstand)
    LBL(1)
    PR(1,2)=PR(1,2) + R(Längenregister (Wert in mm))
    LIN PR(1)
    PR(1,1)=PR(1,1)+ R(Bahnabstand)
    LIN PR(1)
    R(Zähler)=R(Zähler)+1
    PR(1,2)=PR(1,2)-R(Längenregister)
    LIN PR(1)
    PR(1,1)=PR(1,1)+ R(Bahnabstand)
    LIN PR(1)
    R(Zähler)=R(Zähler)+1
    if R(Zähler) <= R(Anzahl) Jmp LBL1



    Okay, das wird auf Anhieb denke ich, nicht klappen (es ist spät und ich war heute sehr lange auf den Beinen). Aber so oder ähnlich könnte man das machen.


    Ich schau morgen noch mal drüber, wenn ich wieder klar denken kann...

    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."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

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