Kuka KR C V5.5.16 Variablen anlegen, Schleife programmieren

  • Hallo zusammen,

    ich bin neu hier da ich als neue Aufgabe die Abänderung eines Kuka Programmes bekommen habe. Ich bin SPS Programmierer und habe Kenntnisse beim Programmieren von Cloos Robotern. Folgendes Problem:

    In einer Anlage werden die seitlichen Anschlüsse von Warmwasserspeichern mit 2 Robotern geschweißt. Die genaue Lage der Anschlüsse wird mit Gabellichtschranken (Touch) ermittelt. Jeder Roboter führt 2 "Höhenmessungen" durch da jeder Roboter separat 4 Anschlüsse schweißt. Nun sollen beide Höhenmessungen (je eines Roboters) nach Abschluss der Messung verglichen werden bzw. wollte ich diese voneinander abziehen. Wenn eine Differenz >0,6mm soll die Messung wiederholt werden. Dazu wollte ich gerne eine Variable "deltaZ" anlegen und dort das Ergebnis der ermittelten Höhe beider Messungen voneinander abziehen. Leider habe ich schon Probleme beim Anlegen einer Real variable (Habe diese am Anfang des Programms mit "Real deltaZ" angelegt aber bekam eine Fehlermeldung).

    Auszug Quellcode:

    ;FOLD PTP P3 Vel=100 % PDAT SEARCH VIA P4 CD1 L Tool[1]:RA280_36 Base[0];%{PE}%R 1.2.3,%MKUKATPTOUCHSENSE,%CSEARCH,%VNORMAL_PTP,%P 2:P3, 4:100, 6:PDAT, 8:P4, 9:CD1, 10:L


    In der Variable CD1 bekommt man die Abweichung angezeigt (ich nehme an zum ursprünglichen Punkt). Kann ich diese Variable in eine Real Variable schreiben bzw. mit der zweiten Messung (dort heißt sie CD3) verarbeiten?


    Programmierkenntnisse sind ausreichend vorhanden ich weiß auch wie ich es umsetzen würde mit einer Schleife etc. Habe mir auch das Handbuch dazu durchgelesen mit den nötigsten Befehlen. Aber selbst beim Anlegen einer Real Variable habe ich Probleme. Wäre cool wenn jemand mir weiter helfen könnten.


    mfG

  • Schritt für Schritt zum Roboterprofi!
  • Okay... Das mit dem CD1 wurde mir von einem Roboterprogrammierer mitgeteilt bzw. von jemandem der eigentlich nur Punkte teacht. Variablen anlegen geht nur in der .dat Datei? In der .scr Datei habe ich eine Fehlermeldung bekommen. Wie bekomme ich die Information der Höhenmessung bzw. in welcher Variable steht das genau drin? Der Bediener meinte das wäre die CD1... scheinbar doch nicht :D

  • Okay... Das mit dem CD1 wurde mir von einem Roboterprogrammierer mitgeteilt bzw. von jemandem der eigentlich nur Punkte teacht. Variablen anlegen geht nur in der .dat Datei? In der .scr Datei habe ich eine Fehlermeldung bekommen. Wie bekomme ich die Information der Höhenmessung bzw. in welcher Variable steht das genau drin? Der Bediener meinte das wäre die CD1... scheinbar doch nicht :D

    Also erstens macht es immer sinn den ganzen Code zu posten....anstatt so ein Auszug von einem Inlineformular. Gerade bei Anfänger die Programmieren gibt es dann noch Syntax fehler oder Strukturen etc.

    Dann ist es auch Hilfreich für andere User, falls die gleichen Problemstellungen auftreten oder ähnliches....da könnte man schneller eine Lösung finden anstatt man sich alles ausdenken muss.....ansonsten bleibt halt nur die Glaskugel.....


    Variablen anlegen geht überall.....in der SRC.datei natürlich in der Declarationsebene....die ist eine zeile nach der DEF zeile...dort deinen eintrag hinzufügen. Beachte, dass es dann nur Laufzeit Variablen sind Lokal....


    du kannst sie auch in der zugehörigen DAT anlegen.....mit einer zuweisung musst sie nicht mehr initialisieren.....


    Falls sie Global gültig sein soll in der Config.DAT. Hier bitte aufpassen auf die richtige Schreibweise.....sonst sind alle Programme gesperrt.



    Falls du eine PositionsVariable benötigst...

    dann am besten....


    DECL FRAME deltaZ

  • Top 👍🏼

    So kann man wenigstens was anfangen….


    Aber da muss ich trotzdem passen….da ich das optionspaket kuka.touchsense nicht kenne….haben wir nicht im Einsatz.

    Sieht aber trotzdem nach Krl syntax aus…es müsste für die CD1 in der dat. Auch ein datentyp angelegt sein den man per Zuweisung einfach manipulieren könnte….


    Aber das überlasse ich lieber den schweisser unter uns die das eher drauf haben….

    Ein blick in die Doku schadet ja auch nicht….da habe ich ebenfalls keine zur Hand 😅

  • Der Bediener meinte das wäre die CD1... scheinbar doch nicht

    Versuch es eher mal mit VCD1 (V vorherstellen)

    Struc von VCD1 müsste sein ( hängt von Softwarestand ab):

    STRUC SRCH_TYP_2 INT OPT,BOOL CAL_MODE,SRCH_OK,REAL CAL_VAL,MES_VAL,OFFSET,REAL TCH_RESULT_A,TCH_RESULT_B,TCH_RESULT_C,TCH_RESULT_D,TCH_RESULT_E,TCH_RESULT_F,B_X,B_Y,B_Z,W_X,W_Y,W_Z,REF_X,REF_Y,REF_Z,MES_X,MES_Y,MES_Z


    Schau mal, ob Du was gescheites hast in:

    VCD1.MES_Z und VCD3.MES_Z

    Kannst ja auch mal komplette Variable verfolgen unter Ansicht/Variable/einzeln und mal schauen, was sich wie ändert beim Suchen.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Hallo. Ich konnte heute an die Anlage und habe es hinbekommen den Roboter zu programmieren. Mittels Schleife wird max. 3 mal die Messfahrt durchgeführt und wenn auch beim dritten Mal der Wert außerhalb der festgelegten Toleranz geht Stoppe ich das Programm. Jetzt möchte ich gerne einen Ausgang ansteuern und auf eine Rundumleuchte legen oder einen Ausgang ansteuern und über ein Koppelrelais 24V auf einen SPS Eingang schalten und damit eine Fehlermeldung auf dem Anlagen HMI Hinterlegen. Wo kann ich digitale Ausgänge anschließen? Habe eine Klemmleiste X12 mit freien Klemmen gefunden (im Kuka Schrank) aber leider ohne Doku. Könnte ich Eingang 18 -> SysStartextern dann nutzen um das Programm nach HALT weiterlaufen zu lassen? Kuka ist über Profibus mit einer S7 verbunden da könnte ich dann dementsprechend wieder das Bit setzen wenn der Bediener quittiert hat.

  • .. Jetzt möchte ich gerne einen Ausgang ansteuern und auf eine Rundumleuchte legen oder einen Ausgang ansteuern und über ein Koppelrelais 24V auf einen SPS Eingang schalten..


    .. Kuka ist über Profibus mit einer S7 verbunden..

    Dann schick das Bit einfach über Profibus, Koppelrelais ist da nicht notwendig.

    Leuchte würde ich da auch eher an die SPS anschließen.

    Start über das Signal sollte möglich sein, wenn der Roboter in Auto Extern betrieben wird.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now