Beiträge von kukabeginner

    > Alpha5
    Ja, die Achse laesst sich dann von Hand verschieben. Die Selbsthemmung des Getriebes spielt natuerlich eine Rolle - desshalb soll mann auch nur die Grundachsen (A1-A3) weichschalten.
    Worauf man aufpassen muss, ist das Rueckpositionieren zu verhindern, da der Roboter ja bei Druckgussentnahme vom Auswerfer nach hinten gedrueckt wird.


    Gruss Stefan


    Hallo Stefan
    Zu dieser aussage hätte ich mal die Frage wie ich verhindern kann das der Roboter rückpositioniert.

    Habe jetzt nochmal alles nach einander gemacht. Base vermessen positon geteacht und auch das tool 1 noch ausgewählt. Bis jetzt sieht es so aus als ob es funktioniert.
    Hoffen wir es ist morgen auch noch so.
    Danke erstmal

    Für mich zum verständniss.
    Wenn ich positionen in meiner base anfahren möchte schalte ich die Base mit dem Befehl $BASE=Base_DATA[xy] um. Diese bleibt dann solange aktiv bis ich wieder eine andere Base anwähle entweder per befehl oder per inlineformular.
    Sonst muss ich ja dem fahrbefehl nichts mehr hinzu fügen oder?

    Es hat schon mit einer anderen Base funktioniert. Dann hatte ich ein eingefrorenes KCP und der rechner ist nicht mehr hochgefahren. Nachdem ich alle sicherungen im Controller geprüft habe fuhr er wieder hoch. Kann es sein das sich daurch irgendwelche grundwerte verstellt haben weil seit her zickt mir der Roboter so rum. Er bringt jetzt auch unerreichbare Position achse 1?


    Werde mal software neu installieren mal schauen ob es was bringt

    Hallo
    Ich habe heute meine ersten base erfahrungen sammeln müssen. Base vermessen hat eigentlich ganz gut geklappt.
    Nun habe ich folgendes geschrieben


    $base=base_data[2]


    PTP {X 0.0,Y 0.0,Z +80.0,A 0.0,B 0.0,C 0.0}:xp1pickposflg
    PTP {X 0.0,Y 0.0,Z +80.0,A 0.0,B 0.0,C 0.0}:xp1pickposflg


    ;FOLD PTP P1PickposFLG Vel= 100 % PDAT5 Tool[1] Base[2]:spielfeld;%{PE}%R 5.4.36,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1PickposFLG, 3:, 5:100, 7:PDAT5
    $BWDSTART=FALSE
    PDAT_ACT=PPDAT5
    FDAT_ACT=FP1PickposFLG
    BAS(#PTP_PARAMS,100)
    PTP XP1PickposFLG
    ;ENDFOLD


    Wenn ich die erste position anfahren will bekomme ich die Meldung arbeitsraumfehler. wenn ich dann per satzanwahl aufs Inlineformular gehe fährt mir der roboter und danach kann ich auch die anderen beiden positionen anfahren.
    Kann es sein das er mir die Base nummer nicht übernimmt oder fehlen mir noch ein paar andere werte??
    Danke








    HALT

    Bei uns wird die Anlage gestoppt und der Roboter beendet seinen aktuellen Job. Danach gibt er das Signal das er fertig ist an die SPS und diese gibt dann die Türen(magnetisch verriegelt) frei. Wenn der Bediener in der Zelle fertig ist, quittiert er die Sicherheitsstörung. Wenn diese OK ist startet die SPS automatisch eine Routine wo dann am Roboter Meldungen quittiert werden, danach die Antriebe eingeschaltet werden und wenn der Roboter dann zurückmeldet das alles korrekt hochgefahren ist setze ich die Programmablauf Freigabe. Nun ist die Anlage wieder startbereit und der Bediener muss Start drücken um den Prozess wieder zu starten.

    Hallo Stethi
    Das habe ich auch so gemacht und funktioniert auch.Ich will jetzt nur auf den Statuskey den text "Pumpe" schreiben das der Bediener sieht welchen Button er drücken muss. Ich habe schon mal im Grippertec gesehen das die Tasten dann mit symbolen oder texten beschrieben sind und habe mir gedacht das das bestimmt auch so geht.
    Hast du da eine Ahnung??

    Hallo
    Ich benutze die Statuskeytasten um verschiedene Funktionen z.B. "Vakuumpumpe " im T1 modus zu schalten. Dies mach ich über die IS_KEY_PRESSED Variable im SPS.sub.


    Funktioniert auch gut.
    Gibt es auch die Möglichkeit diese Tasten zu beschreiben?
    Danke für eure antworten

    Hallo
    Mein Roboter fährt Linear mit einer eistellbaren geschwindigkeit an einer andern Baugruppe vorbei. Nun Habe ich das problem das ich dem Roboter eine geschwindigkeit vorgebe von 0,5 m/s. Die andere baugruppe muss ich aber zum abgleich auf ca 60m/m also 1m/s einstellen das es passt. Meine frage nun gibt es die möglichkeit die Istgeschwindgkeit auszulesen oder irgendwie zu berechnen?
    :merci:

    Also durchsacken ist eigentlich so gut wie nicht möglich da der Roboter in der Form indexiert ist. Ich denke mal ich werde mir eine Option in den Greifer einbauen lassen um dies mechanisch zu lösen, aber der progammiererehre wegen werde ich das ganze auch versuchen über den Roboter zu machen. Werde dann nochmal ein feedback abgeben
    :danke:für eure antworten

    Hallo
    Ich habe demnächst ein Projekt bei dem Ich teile aus einer Spritzgussform entnehmen muss.
    Der Ablauf sollte folgender sein.
    Der Roboter fährt in die Form und veriegelt sich in der Form. Danach sollten die Achsen des Kukas weichgeschaltet werden so das die Form den Greiferkopf um ca 10mm nach hinten schieben kann ,dann Achsen hart schalten entriegeln und raus fahren.
    Kann mir einer von euch sagen ob das bei einem KR16 geht?
    Bei einem scara habe ich das ganze schon einmal gemacht. Problem ist das ich es jetzt schon wissen sollte da wir gerade den Greiferkopf konstruieren und wenn der Kuka das nicht kann müssten wir den AUsgleich im kopf machen.
    :danke:

    Danke funktioniert
    Eine andere frage
    Ich würde gerne wenn ich am ende des Teach programmes angekommen bin es automatisch abwählen. ueber den cwrite befehl geht das nicht. gibts da ne lösung ?
    Wenn nicht bastel ich mir was über die SPS.sub

    Hallo
    Ich habe hierzu mal eine frage.
    Ich will über eine tastenkombination einTeachprogramm aufrufen.


    IF IS_KEY_PRESSED(78) AND IS_KEY_PRESSED(51) THEN
    CWRITE($CMD,STAT,MODE,"RUN /R1/Program/TeachIN()")
    ENDIF


    Da TeachIn Program liegt im Ordner Program.
    Geht das so überhaupt weil er wählt mir das programm nicht an.


    Danke

    Hallo
    Ich will eine Dialogmldung mit einer variablen machen.
    Mein Kurs ist schon etwas länger her und ich habe laut unterlagen folgendes eingegeben


    Offset=0


    $MSG_T=Store_MSG
    $MSG_T.modul[]="User"
    $MSG_T.Key[]="Actual sample is %1 no. Save Sample?"
    SWRITE($MSG_T.PARAM[],STATE,Offset,%d,Isamplenumber)
    $MSG_T.Param_Typ=#Value
    $MSG_T.Typ=#Dialog
    $MSG_T.DLG_Format[]="Yes|No"
    $MSG_T.VALID=TRUE


    WHILE $MSG_T.Valid
    Wait sec 0.05
    ENDWHILE
    WAIT Sec 0.2


    Wenn ich das so eingebe bekomme ich die Meldung operand oder Ausdruck erwartet
    **SWRITE($MSG_T.PARAM[],STATE,Offset,%d,Isamplenumber)
    Offset habe ich als Int6 deklariert und als Version habe ich KRC V7.0.12
    Kann mir da einer weiterhelfen??

    Hallo
    Ich habe eine Rückzugsfahrt anhand von einem Positionsmerker programmiert. D.h. jedes mal wenn der Rob. eine position erreicht hat beschreibe ich den merker mit zahl x.
    Wenn ich nun nach neustart, crash, Musterwechsel eine Rückzugsfahrt starte fahre ich je nach positionsmerker zurück. Um nun sicher zustellen das der Roboter auch noch wirklich da steht wie mein Positionsmerker sagt würde ich gerne einen vergleich machen.
    Z.B
    Vergleiche act_pos mit XyZPos Wenn differenz Absolut kleiner 10mm dann weiter.
    Evtl würde es mir auch reichen nur die Achse 1 abzufragen. Gibt es in der KRL auch einen Absolut vergleich?


    Danke für die Antworten

    Hallo
    ich will in meinen programm einen wait befehl in abhängigkeit eines timers machen.
    Die Zeit des TImers will ich über eine Variable vorgeben können.
    Hat da jemand eine Idee


    Wait for $Inxy or TimerYX


    Danke