Positionsverschiebung

  • Hallo ABBler,
    ich habe eine S4-Steuerung und möchte folgendes umsetzen:
    abhängig von einer Bedingung soll der Roboter an mehreren Stellen im Programm eine andere Position anfahren. Wenn Bedingung a zutrifft, fahre Position * an, wenn bedingung b zutrifft fahre, die gleiche Position mit einer Verschiebung an. (max 10 mm in x,y,z)
    Ich möchte das am liebsten so gelöst haben, das mir je nach Bedingung andere x-y-z-Werte in die Position eingespielt werden.
    Ist das so möglich?


    :merci:

  • ANZEIGE
  • Hi Dini,
    kannst Dir ja eine Funktion basteln die Dir eine komplette Position zurückgeben in Abhängigkeit einer Übergebenen Position.


    z.B.:


    PROC Bewegung()
    pBewegung:=pGrundlage;
    IF Bedingung=a pBewegung:=fBerechnung(pGrundlage,X,Y,Z);
    IF Bedingung=b pBewegung:=fBerechnung(pGrundlage,X,Y,Z);
    MoveL pBewegung,.....
    ENDPROC


    Die Funktion könnte wie folgt aussehen:


    FUNC fBerechnung(
    robtarget pModif,
    PERS num nXWert,
    PERS num nYWert,
    PERS num nZWert)

    VAR robtarget pAfterModif;


    pAfterModif.trans.x:=pModif.trans.x+nXWert;
    pAfterModif.trans.y:=pModif.trans.y+nYWert;
    pAfterModif.trans.z:=pModif.trans.z+nZWert;
    RETURN pAfterModif
    ENDFUNC


    Es ist natürlich darauf zu achten das die Verschiebung im Koordinatensystem passt.


    Sven

    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!

  • Hi,
    dank Dir Hermann das hatte ich in der Eile vergessen! :pfeif:


    Sven

    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!

  • Hi,


    kenne mich nur ein wenig mit S4C+ und aufwärts aus und nicht mit S4, aber gibts in S4 denn die
    Offs-Funktion noch nicht ?


    Ansonsten wäre fBerechnung() ja eine reine Re-Implementierung von Offs() ?! :kopfkratz:


    Wenn ich mich da täusche, bitte Post ignorieren :oops:


    addi

  • Hallo,
    doch die Funktion gibt es auch schon bei der S4 (evtl. Option Advanced Functions,
    die aber meistens dabei ist).


    Zu nennen wäre da auch noch RelTool, womit es dann in Toolkoordinaten verschoben
    wird.


    Es ist auch hier, wie so oft: viele Wege führen nach Rom.


    Hermann

  • Hi,
    Offs() oder RelTool() wäre auch meine erste Wahl gewesen wenn da nicht die Bedingung=a bzw. Bedingung=b gewesen wäre. Somit hast Du die flexible Möglichkeit mit der Positionsveränderung die Daten zu behandeln.


    z.B.:
    für eine bestimmte Vorposition die sich mit verändert etc. Flexibel halt! :zwink:


    PROC Bewegung()
    pBewegung:=pGrundlage;
    IF Bedingung=a pBewegung:=fBerechnung(pGrundlage,X,Y,Z);
    IF Bedingung=b pBewegung:=fBerechnung(pGrundlage,X,Y,Z);
    MoveL Offs(pBewegung,X,Y,Z),.....
    MoveL pBewegung,.....
    ENDPROC




    Sven

    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!

    Einmal editiert, zuletzt von Sven Weyer ()

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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