Der gute Herr von KUKA meinte, die 75% sind ein Standardwert, da hat er nichts angepasst. Und berechnet wurden die auch nicht. Man müsse sich nur im klaren sein, dass die Bremswege bei höherer Geschwindigkeit natürlich länger sind und es unter ungünstigen Umständen dazu kommen kann, dass der Roboter in den Schutzzaun fährt.
Beiträge von Alde Oma
-
-
Das hat alles KUKA gemacht. Dann werde ich mich mal an KUKA wenden.
-
Wenn ich die SafeOperation deaktiviere läuft der Roboter wesentlich schneller.
Hier mal die oben genannten Werte der Variablen:
vel_axis 1-6 = 100
acc_axis 1-6 = 100
vel.cp = 2
acc.cp = 2,3
ov_pro von SPS
red_vel = 100
sr_vel_red = true
sr_ov_red = 75
In der SafeOperation-Doku finde ich nichts zu den beiden sr_... Variablen. ich vermute mal, dass die sr_vel_red angibt ob reduzierte Geschwindigkeit aktiviert ist und die sr_ov_red die reduzierte Geschwindigkeit darstellt. D.h. dass der Roboter so wie oben geschrieben von den Beschleunigungen und Geschwindigkeiten auf Vollgas steht, aber die SafeOperation limitiert die Geschwindigkeit generell auf 75%...
Was macht dann mehr Sinn? Mit False ausschalten oder auf 95% setzen?
Hat der sr_vel_red noch andere Auswirkungen außer der Reduzierung der Geschwindigkeit?
-
Hi, ich hab jetzt mal die Bewegung auf PTP geändert und den Punkt etwas vom Schutzzaun nach innen gezogen. Das hat etwa 1 Sekunde gebracht. Sind nun bei 29 von geforderten 30 Sekunden Taktzeit. Vel_act liegt meistens unterhalb von 1 in der gesamten Anlage. An wenigen Punkten wird die 1 überschritten. Die Geschindigkeit wird ja nur durch $APO.CPTP, $APO.CVEL und $APO.CDIS angegeben? Oder gibt es noch weitere Patameter, um die Geschwindigkeit zu regulieren?
Grüße Oma
-
Laut KUKA-Load ist alles im grünen Bereich. Wir haben einen KR180 R2900 PRIME.
Die Lastdaten sind nicht komplett falsch. Der Greifer hat ca. 25kg, die Bauteile um die 20-25kg. Die Daten sind auch entsprechend eingetragen, Zusatzlastdaten sind noch keine eingetragen.
VEL.CP steht auf 2
ACC.CP steht auf 2,3
OV_PRO steht auf 100
Das angehängt Video wurde zwar nicht mit 100% aufgenommen und ist etwas verpixelt aufgrund der 10MB Dateigrößengrenze, zeigt aber das Abbremsen und Beschleunigen.
Wobei mir es generell so vorkommt, als würde der Roboter nicht mit seiner maximalen Geschwindigkeit fahren. Was ja wieder für ungenaue Lastdaten sprechen könnte.
-
Korrekt, aber die ersten 8 LIN-Positionen nach der BASE-Zuweisung interessieren ja erstmal nicht.
Und der Roboter steht eh wenn die BASE zugewiesen wird.
-
Das musst du mir jetzt erklären
Vor diesem Code CASE #ST10 usw kommt ja keine Bewegung. Wieso dann ein CONTINUE?
-
Ich hab es zuerst mit dem CONTINUE versucht. Kein Unterschied. Dann hab ich das Überschleifen an den 3 Positionen auf C_VEL geändert. Leider auch nicht das gewünschte Ergebnis. Ich sehe zwar unterschiede zwischen C_VEL 1, 10, 50, 99 und 100 (mit diesen Werten getestet), aber der Roboter wird zu den Positionen hin dennoch langsamer und Beschleunigt dann wieder hoch.
Hier der aktuelle Stand:
Code
Alles anzeigen&ACCESS RVP2 &REL 163 &PARAM DISKPATH = KRC:\R1\Program\JOBS DEF Ablegen_Maus ( ) DECL BOOL retValue ;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) IF (FALSE) THEN BAS(#INITMOV,0) PA_TMP = $AXIS_ACT PTP PA_TMP ENDIF $APO.CPTP = 100 ;[mm] oder [%] (Abhängig von Registry-Eintrag) Überschleifen wenn ... $APO.CVEL = 99 ;[%] Überschleifen wenn Geschwindigkeit < X zum Zielpunkt $APO.CDIS = 200 ;[mm] Überschleifen wenn Entfernung < X zum Zielpunkt retValue = FALSE LOCATION_SOURCE = LOCATION_ACTUAL LOCATION_DESTINATION = #ST21 SWITCH WerkstParaIN CASE ... CASE 3, 4 ;SB 7 IF DI44_Teil_n_gegriffen THEN $TOOL =TOOL_DATA[3] $ACT_TOOL = 3 $LOAD = LOAD_DATA[3] LOOP_MSG("Werkstueck 3") ENDIF IF DI43_Teil_gegriffen THEN $TOOL =TOOL_DATA[4] $ACT_TOOL = 4 $LOAD = LOAD_DATA[4] LOOP_MSG("Werkstueck 4") ENDIF SWITCH (LOCATION_SOURCE) CASE ... CASE #ST10 LOOP_MSG("BAUTEIL in ST20 ablegen: aus Bereich <ST10> fahren") $BASE = BASE_DATA[1] ;Reichmann $ACT_BASE = 1 ;Reichmann LIN XN1_Pick_ST10_SB7 C_DIS LIN XN2_Pick_ST10_SB7 C_DIS LIN XN3_Pick_ST10_SB7 C_DIS LIN XN4_Pick_ST10_SB7 C_DIS LIN XN5_Pick_ST10_SB7 C_DIS LIN XN6_Pick_ST10_SB7 C_DIS LIN XN7_Pick_ST10_SB7 C_DIS LIN XN8_Pick_ST10_SB7 C_DIS CONTINUE ;Vorlaufstopp verhindern $BASE = BASE_DATA[2] ;Maus CONTINUE ;Vorlaufstopp verhindern $ACT_BASE = 2 ;Maus LIN XZW_ST10_ST20 C_VEL ;LOCATION_ACTUAL=#preST20 retValue = TRUE CASE ... ENDSWITCH CONTINUE ;Vorlaufstopp verhindern IF retValue == FALSE THEN DO37_Job_beendet = TRUE RETURN ENDIF CONTINUE ;Vorlaufstopp verhindern $BASE = BASE_DATA[2] ;Maus CONTINUE ;Vorlaufstopp verhindern $ACT_BASE = 2 ;Maus LIN XPrepos_ST20 C_VEL LIN XV1_Place_ST21_SB7 C_VEL ;Arbeitsraum abfragen CONTINUE ;Vorlaufstopp verhindern IF NOT DI114_AR_2 THEN CONTINUE ;Vorlaufstopp verhindern WAIT FOR DI114_AR_2 ENDIF ;250mm vor nachfolgendem Zielpunkt Geschwindigkeit anpassen TRIGGER WHEN PATH=-250 DELAY=0 DO Max_Override = 30 LIN XPlace_ST21_SB7 WAIT SEC 0 Max_Override = 100 ENDSWITCH ;TRIGGER WHEN DISTANCE=0 DELAY=0 DO CHECK_AND_LOCK_AREA() PRIO=-1 LOCATION_ACTUAL=LOCATION_DESTINATION END
Kann dass vielleicht auch mit den Lastdaten zusammenhängen? Diese sind händisch eingegeben und ich bin mir nicht sicher ob der Schwerpunkt bzw die Trägheitsmomente stimmen. LoadDetermination bekomme ich erst später.
-
Dass die BASE-Zuweisung eine Stopp auslöst wusste ich nicht. D.h. jeweils davor ein CONTINUE?
-
Dann versuch ich mal C_VEL. Welche Befehle lösen den Vorlaufstopp aus? Zwischen den Punkten steht ja nur eine IF-Abfrage.
-
Der Vorlaufzeiger ist im gesamten Programm auf 5 gesetzt.
-
Hallo Zusammen,
ich brauche Hilfe beim Überschleifen von mehreren LIN-Befehlen.
Ich bin eigentlich SPS-Programmierer und muss leider auf Grund eines Ausfalls unseres Roboterprogrammierers die Anlage fertigstellen.
Das Programm ansich steht und läuft auch soweit sehr gut. Im Grunde nur noch Optimierung.
Es geht nur um das fahren von A nach C über B. Die Punkte sind jeweils 1,5-2m auseinander, liegen also auch nicht zu nahe beisammen.
Hier mal der Programmteil:
Code
Alles anzeigen&ACCESS RVP2 &REL 124 &PARAM DISKPATH = KRC:\R1\Program\JOBS DEF Ablegen_Maus ( ) DECL BOOL retValue ;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) IF (FALSE) THEN BAS(#INITMOV,0) PA_TMP = $AXIS_ACT PTP PA_TMP ENDIF $APO.CPTP = 100 ;[mm] oder [%] (Abhängig von Registry-Eintrag) Überschleifen wenn ... ;$APO.CVEL = 100 ;[mm] Überschleifen wenn Geschwindigkeit < X zum Zielpunkt $APO.CDIS = 500 ;[mm] Überschleifen wenn Entfernung < X zum Zielpunkt retValue = FALSE LOCATION_SOURCE = LOCATION_ACTUAL LOCATION_DESTINATION = #ST21 SWITCH WerkstParaIN CASE ... CASE 3, 4 ;SB 7 IF DI44_Teil_n_gegriffen THEN $TOOL =TOOL_DATA[3] $ACT_TOOL = 3 $LOAD = LOAD_DATA[3] LOOP_MSG("Werkstueck 3") ENDIF IF DI43_Teil_gegriffen THEN $TOOL =TOOL_DATA[4] $ACT_TOOL = 4 $LOAD = LOAD_DATA[4] LOOP_MSG("Werkstueck 4") ENDIF SWITCH (LOCATION_SOURCE) ... CASE #ST10 LOOP_MSG("BAUTEIL in ST20 ablegen: aus Bereich <ST10> fahren") $BASE = BASE_DATA[1] $ACT_BASE = 1 LIN XN1_Pick_ST10_SB7 C_Dis LIN XN2_Pick_ST10_SB7 C_Dis LIN XN3_Pick_ST10_SB7 C_Dis LIN XN4_Pick_ST10_SB7 C_Dis LIN XN5_Pick_ST10_SB7 C_Dis LIN XN6_Pick_ST10_SB7 C_Dis LIN XN7_Pick_ST10_SB7 C_Dis LIN XN8_Pick_ST10_SB7 C_Dis $BASE = BASE_DATA[2] $ACT_BASE = 2 LIN XZW_ST10_ST20 C_Dis ;LOCATION_ACTUAL=#preST20 retValue = TRUE CASE ... ENDSWITCH IF retValue == FALSE THEN DO37_Job_beendet = TRUE RETURN ENDIF $BASE = BASE_DATA[2] $ACT_BASE = 2 LIN XPrepos_ST20 C_Dis LIN XV1_Place_ST21_SB7 C_Dis ;Arbeitsraum abfragen CONTINUE ;Vorlaufstopp verhindern IF NOT DI114_AR_2 THEN CONTINUE ;Vorlaufstopp verhindern WAIT FOR DI114_AR_2 ENDIF ;250mm vor nachfolgendem Zielpunkt Geschwindigkeit anpassen TRIGGER WHEN PATH=-250 DELAY=0 DO Max_Override = 30 LIN XPlace_ST21_SB7 WAIT SEC 0 Max_Override = 100 CASE ... ENDSWITCH ;TRIGGER WHEN DISTANCE=0 DELAY=0 DO CHECK_AND_LOCK_AREA() PRIO=-1 LOCATION_ACTUAL=LOCATION_DESTINATION END
Die Bewegungen beginnen am Zeile 64 bzw danach.
ZitatLIN XN1_Pick_ST10_SB7 C_Dis
LIN XN2_Pick_ST10_SB7 C_Dis...
LIN XZW_ST10_ST20 C_DIS
und enden bei Zeile 94
ZitatLIN XPrepos_ST20 C_DIS
LIN XV1_Place_ST21_SB7 C_DIS
Die Bewegungen werden zwar überschliefen, der Roboter Bremst aber bei jedem Punkt etwas ab, was nicht schön aussieht und auf die Taktzeit geht.
Hierzu wäre noch zu sagen, dass die Achse 5 um etwa 90° geknickt ist und bei der Bewegung ausgestreckt wird. Achse 6 wird über die 3 Positionen um 180° gedreht.
Mit PTP kann ich die Positionen nicht anfahren, da wir Störkonturen haben. Habe es schon mit C_ORI versucht, da hält der Roboter bei jedem Punkt an. SPLINE-Bewegung fährt der Roboter in die Störkontur.
Wie bekomme ich die Bewegung flüssiger hin?
MfG Oma
-
Hallo nochmal,
ich habe den Fehler gefunden. Die Ader schwarz/weiß wurde mit der Ader schwarz/grau vertauscht. Somit hatte nur Kanal A Verbindung und Kanal B hatte keine.
Dennoch danke für die Hilfe. -
Hi,
stimmt, im normalen Schaltenplan der 2005edition gibt es X22 nicht.
ich bin mir nicht sicher ob die E67-Schnittstelle verbaut ist. Woran erkenne ich das? Der Roboter war zuvor auf jeden Fall bei Mercedes, vielleicht hilft das weiter. Danach war er jedoch auch noch bei anderen Firmen...
Im Anhang hab ich Bilder vom Schaltschrank.
Laut Schaltplan war der Sicherheitskreis auf X211c Pin 7-10 gelegt. Dies haben unsere Elektriker aber umverdrahtet. Wie im Schaltplan in Eintrag 1 zu sehen ist, sind X22 Pin 2(ws) und Pin 9(gn) sowie Pin 21(or/sw) und Pin 28(ws/sw) gebrückt (Siehe Anhang). Somit ist die Brücke direkt am Kabel von X22. Was ich noch nicht gemacht habe, ist das Kabel von X22 geprüft.
Laut ESC-Diagnose ist der Bedienerschutz am KCP und ESCC geschlossen, am KPS jedoch offen. -
Hallo zusammen,
ich soll einen KRC2 2005edition inbetriebnehmen. Nun habe ich das Problem, dass der Bedienerschutz im AUT und EXT-Modus nicht geschlossen wird (Meldung 207 Bedienerschutz/Schutzgitter offen). Zuerst dachte ich es liegt am Lichtvorhang/Schutztür, daher habe ich diesen testweise Überbrückt. Die Brücken sind wie in der Anlage zu sehen direkt an X22 gemacht worden. Also direkt an der Leitung die vom Sub-D-Stecker kommt. An der Schutztür bzw. dem Lichtvorhang kann es also nicht liegen.
Muss zusätzlich noch etwas gebrückt werden, was von mir übersehen wurde?
Kann die Software so eingestellt werden, dass die Sicherheitseinrichtung über z.B. eine SaftySPS oder ähnliches geführt wird? Denn zuvor war soweit ich weiß war dort mal ein sichere ET200 drinen.KUKA konnte mir bisher auch nicht wirklich weiterhelfen. Die meinten nur, dass sie den Roboter nichtmehr im System haben...
Vielen Dank schon mal im voraus.
-
Hallo zusammen, ich weis dass das Thema schon über ein Jahr alt ist, aber ich habe den gleichen Fehler wie oben beschrieben.
Mein aktueller Stand sieht so aus:
Ich habe einen alten KR125/3 an einer KRC2. Dieser stand das letzte halbe Jahr nur in der Ecke und war nicht angeschlossen. (Hatte eine Lineareinheit und wurde als Schweißrobi genutzt)
Nun soll ich den Robi wieder Inbetriebnehmen, aber ohne Lineareinheit und ohne Schweißteil.Angeschlossen habe ich die X20 zur X30 und die X21 zur X31.
Beim Einschalten der Steuerung bekam ich keine Verbindung zur RDW2. Diese hat nichtmal geleuchtet. Also KUKA kontaktiert. Dieser meinte ich solle hier und da Spannung messen. Gesagt getan. Wieder KUKA angerufen, woraufhin der Mann meinte die RDW2 sei defekt.Also habe ich eine neue bestellt und eingebaut. Selbes Fehlerbild.
Durch Zufall bin ich nach stöbern in ein paar PDFs darauf gestoßen, dass die Pin-Belegung am Kabel so nicht passen kann.
Muss hierzu sagen, das die Datenleitung von X21 zu X31 bei uns aus 2 Leitungen besteht, die man hintereinander verbauen muss. Dass wusste ich nicht, da ich den Robi nicht abgebaut hatte und für den Robi keine Dokument mehr vorhanden sind. Dachte das sei eine 1:1 Verlängerung, also hab ich diese weggelassen. Hab sie dann wieder zwischenrein gebaut und siehe da, die grüne LED an der RDW 2 leuchtet. Die rote blinkt allerdings auch.
Fehler am KCP habe ich unter anderem "Justage Achse A1" bis A6 und E1. Wobei ich nicht weis, wie die nichtmehr vorhandene Lineareinheit hier mit ins Fehlerbild passt.
Außerdem kommt der Fehler "Übertragunsfehler 1. DES - RDW". Dass dürfte wohl der ausschlaggebende Punkt sein.
Zwischendurch hatte ich auch mal die Meldung "Powermodul Achse 1 (bis 6) nicht oder falsch gesteckt". Diese ist nun aber wieder weg.Im Controller leuchten alle LEDs grün. Auch der Herr von KUKA meint, dass dort alles OK sei.
Hat von euch jemand schonmal ein ähnliches oder vielleicht das gleiche Problem gehabt?
Kann es sein, das ich durch die zunächst falsch angeschlossene Datenleitung die RDW 2 zerschossen hab? Da ja hierbei die 27V am falschen Pin anstanden.
Um hilfe wäre ich wirklich sehr dankbar.
Alles Gute, Alex
-
OK, ich hab nur beim Hindernis selbst geschaut und nicht beim Controller.
-
Hallo,
danke für die Antwort. Ich habe die Sensitivity auf 200% (dachte 100% wären Obergrenze) gestellt, dann gings auch per Hand. Der angegeben Ausgang wird also geschaltet.
Wie ich bereits geschrieben habe bin ich recht neu in dem Bereich (1 Monat). Auf Schulung werden ich noch geschickt. Ich muss ja wissen, ob das so funktioniert wie ich das denke. Kann ja nicht einfach hergehen und sagen das funktioniert so und fertig. Gerade weil ich mich noch nicht so gut auskenne.
Wo aktiviere ich die Erkennung im RoboGuide? Ich habe nichts gefunden, was darauf hingewiesen hat.
Die Gefahr nehme ich ernst, vorallem nachdem ich das von dem tödlichen Unfall bei VW gehört habe. Und da ich jetzt die Erfahrung gemacht habe, wie schwer es sein kann nur so einen "kleinen" Roboter per Hand zu stoppen erstrecht.
Danke euch
-
Hi, ich bin recht neu in der Materie Robotik und soll gerade einen LR Mate 200iD progammieren.
Nun bin ich an der Kollisionserkennung. Das Register, welches geschaltet werden soll hab ich angegeben und sicherheitshalber auch das COL DETECT ON im Programm integriert.
Jetzt stellt sich mir die Frage, wie ich das ganze teste ob es funktioniert.
Einen absichtlichen, wenn auch langsamen Crash zu fahren kommt natürlich nicht in Frage. Per Hand einen Crash zu simulieren scheint auch nicht zu klappen. Entweder bin ich zu schwach oder traue mich nicht richtig zu drücken.
Im Roboguide habe ich bereits versucht ein Hindernis einzubauen, jedoch durchfährt der Roboter dieses einfach. Muss ich da noch etwas einstellen, damit das Hinternis auch als solches erkannt wird?
Wie könnte ich die Kollisionserkennung sonst noch testen?Vielen Dank