Beiträge von funnougat
-
-
Ok habe es nochmal versucht....
C_SPL geht tatsächlich nicht aber C_DIS....
Sehe da aber keinen unterschied in der Simulation...
viel Erfolg
-
Bei Achslimits anhalten den hacken raus nehmen.
Beim Roboter beim KRL Executor Bewegungsausführung / Bewegung auf Integriert stellen.
So sollte es eigentlich gehen...
einziges Problem es sind alle Achsen endlosdrehend wenn das nicht stört...
Ansonsten mal beim Kukasim Team nachfragen wenn die es nicht wissen wer dann....
-
goVariable = 'B00110'
So geht es auch.
-
Vieleicht schmutz auf dem Display das kann zumindest zu Problemen führen...
Kalibrieren musste ich eigentlich nie...es war bei uns immer verschmutzung bis jetzt...
Beispiel :
Man drückt irgendwo oben und unten wird der Druck angenommen.
Oder er reagiert garnicht auf irgend einen Druck...
Wenn sich der Mauszeiger bewegt und kein Druck angenommen wird...ist es eher die HMI.
-
nein das for endfor ist nur dafür wie oft er die bewegung und die zustellung wiederholen soll....
kannst auch.
for i = 0 to 100
dann macht er es 100 mal man weis halt auch nicht was du möchtest wieviel soll er zustellen wie oft soll er wiederholen... was ist die max tiefe...
oder machst die nen eigenen zähler und machst ne Repeat until schleife....
gibt so viele möglichkeiten ans Ziel zu kommen...
-
Er Fräst dann aber natürlich direkt -80 rein je nachdem wie die Geschwindigkeit ist könnte das auch nicht gut aussehen....
-
Wenn Fraes1 und Fraes2 die Punkte sind die Links und rechts sein sollen...
Dann so...
Base_data[2].z = base_data[1].Z-80
LIN Fraes 1
Base_data[2].z = base_data[1].Z
LIN Fraes 1
LIN Fraes 2
Base_data[2].z = base_data[1].Z-80
LIN Fraes 2
LIN Fraes 1
Base_data[2].z = base_data[1].Z
LIN Fraes 1
Vieleicht auch nochmal ein Beispiel aus dem Kurs Programmieren 2.
Code
Alles anzeigen;fold Berechnungen der Positionen for reihe = 1 to 4 for spalte = 1 to 4 Ablage[reihe, spalte] = XP1 Ablage[reihe, spalte].x = Ablage[reihe, spalte].x + (reihe * 80 - 80) Ablage[reihe, spalte].y = Ablage[reihe, spalte].y + (spalte * 80 - 80) Vorpos[reihe, spalte] = xp1 Vorpos[reihe, spalte].z = Vorpos[reihe, spalte].z + 100 Vorpos[reihe, spalte].x = Vorpos[reihe, spalte].x + (reihe * 80 - 80) Vorpos[reihe, spalte].y = Vorpos[reihe, spalte].y + (spalte * 80 - 80) endfor endfor ;endfold
-
-
es würde einfach ein offset in z reichen es braucht keine 3te Base.
Man benötigt wenn man es anderst macht auch nur 1 Base...
Jetzt ist die 2 Base nur dafür da das man sich die 1 nicht überschreibt.
Man möchte ja in der Regel seine Saubere Base behalten...
-
Mit der oben gezeigten funktion wird nur der Punkt um den Wert geschoben nicht die Base selbst.
Daher 1 punkt ausgewählt auch nur 1 Punkt verschoben....alle ausgewählt alle verschoben...
-
Ich weiß auch nicht ob auf deinem Robby ExpertTech vorhanden ist eventuell kannst du dann "startpos" garnicht teachen.
-
Der 1 code ist das eigentliche Programm also SRC und der 2 code ist der DAT file.
-
Code
Alles anzeigenDEF MAIN ( ) DECL FRAME OFFSET_X_Y DECL REAL Beckenlaenge,Beckenbreite ;FOLD INI;%{PE} ;FOLD BASISTECH INI GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI) ;FOLD USER INI ;Make your modifications here ;ENDFOLD (USER INI) ;ENDFOLD (INI) BAS(#BASE,1) BAS(TOOL,1) ;Hier Teachen ;FOLD TEACHEN IF FALSE THEN BAS(#BASE,1) BAS(TOOL,1) HALT LIN StartPos ENDIF ;ENDFOLD Beckenlaenge = 500 Beckenbreite = 250 OFFSET_X_Y = $NULLFRAME OFFSET_X_Y.X = Beckenlaenge ; Geschwindigkeit festlegen BAS(#VEL_PTP,50) ;PTP SPEED BAS(#VEL_CP,2.0) ;LIN SPEED PTP {X 0,Y 0,Z 500,A 0,B 0,C 0}:StartPos LIN StartPos LIN OFFSET_X_Y:StartPos OFFSET_X_Y.Y = Beckenbreite LIN OFFSET_X_Y:StartPos OFFSET_X_Y.X = 0 LIN OFFSET_X_Y:StartPos OFFSET_X_Y = $NULLFRAME LIN OFFSET_X_Y:StartPos LIN {X 0,Y 0,Z 500,A 0,B 0,C 0}:StartPos END
Code
Alles anzeigenDEFDAT MAIN ;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P ;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P EXT BAS (BAS_COMMAND :IN,REAL :IN ) ;ENDFOLD (BASISTECH EXT) ;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P ;Make your modifications here ;ENDFOLD (USER EXT) ;ENDFOLD (EXTERNAL DECLARATIONS) DECL E6POS StartPos={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,S 0,T 0} ENDDAT
So vieleicht?
-
Falls es noch nicht Erledigt ist....
Bei Achslimits anhalten den hacken raus nehmen.
Beim Roboter beim KRL Executor Bewegungsausführung / Bewegung auf Integriert stellen.
So funktionierts zumindest bei mir ohne das ein Fehler kommt.
-
Du könntest auch den Flag des Timers abfragen anstatt der 0.
IF ($IN[20] == TRUE) OR ($Timer[1]>=0) THEN
IF ($IN[20] == TRUE) OR $TIMER_FLAG[1] THEN
-
Also bei uns war das Problem auch mal und da war es Software gewesen.
Das Logbuch am Roboter zeigte immer nur die letzten paar Stunden und der Rest war nur per Logviewer einsehbar.
Eigentlich sollte das Kuka beheben können.
-
Also ich denke man müsste sehr viel tricksen bzw. anderst wüste ich nicht wie man es angeht...
Du müsstest dir ein kleines Band an die Stelle stellen es unsichtbar machen und darauf ablegen das es quasi aus dem Bild fährt halt so kurz wie möglich machen.
Dann könntest du per Conveyor Creator das andere Teil erscheinen lassen.
Also so würde ich das bestimmt hin bekommen.
Ist aber halt keine schöne Arbeit aber wenn es gewünscht wird ok....
-
Den TCP so legen das er auf der Öberfläche ist oder die Toleranz für das Andocken erhöhen.
-
Du schreibst dein Programm am Endpunkt setzt du $Out[1] oder deine verwendete Tool nummer.
Das ist in Sim schon so vor konfiguriert das das funktioniert.
Das einzige das es zu beachten gibt das der Toolpunkt tatsächlich die Ebene des Teils berührt.