25. Mai 2019, 03:25:04
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

 tm_useraction.src Geschwindigkeiten reduzieren


normal_post Autor Thema:  tm_useraction.src Geschwindigkeiten reduzieren  (Gelesen 1050 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

13. Mai 2019, 06:41:22
Gelesen 1050 mal
Offline

Mikeg_60


Hallo zuasmmen,

wir haben bei einem KR240 die Kollisionserkennung aktiviert. Das funktioniert auch relativ gut.
Nun haben wir aber beim abarbeiten des Kollisionsprogramms ein Problem, die Bewegungsgeschwindigkeit definiert langsam zu schalten.
Leider finde ich die Ursache dafür nicht.

Der Code lautet in etwa so:

TQM_OK=FALSE  ;MELDUNG absetzen
BRAKE

wait for i_crash_ignore or i_move_up or NOT sTQM_SPSACTIVE ;SPS-Signale sind im ersten Moment FALSE, Vorlaufstop wird ausgelöst

BAS(#Base,0)
BAS(#VEL_PTP,5)
BAS(#ACC_PTP,50)
BAS(#VEL_CP,0.1)
BAS(#ACC_CP, 50)
$APO.CVEL=10
$APO.CPTP=10     

 wait sec 0
 LIN_REL {z 250}



Die $APO.CVEL reduziert sich auf 10% aber die $APO_C.CVEL bleibt auf 100% stehen. Somit ist die Geschwindigkeit bei LIN_REL auch 100%
Wenn dann das Kollisionsprogramm beendet wurde und der normale Programmablauf bearbeitet wird, wird die Geschwindigkeit übernommen. Alle weiteren Bewegungen werden dann mit 10% gefahren.

Kann mir jemend sagen, wie ich die Geschwindigkeit im tm_useraction.src reduziert bekomme?

Vielen Dank schon mal.
  • gefällt mir    Danke

Heute um 03:25:04
Antwort #1

Werbung

Gast

13. Mai 2019, 13:40:05
Antwort #1
Offline

SJX

Global Moderator

Wichtiger bei solchen Problemen ist die Steuerungsversion / Softwareversion


Bitte, Bitte:  Immer Originalcode posten.


$APO.CVEL ist das Verhalten des Überschleifens Geschwindigkeitsbezogen.
$VEL.CP wäre in Deinem Falle zuständig für das Geschwindigkeitsverhalten für die LIN_REL.
Das Programm TM_USERACTION.SRC läuft standardmässig als Interruptprogramm ab. Vorlauf gibt's da keinen.


Gruss SJX



 
  • gefällt mir    Danke
Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

13. Mai 2019, 14:39:35
Antwort #2
Offline

Mikeg_60


Steuerungsversion ist 8.3.39

Danke für den Hinweis.Werde es mit der $Vel_CP testen
Dachte dass dies bereits mit BAS(#VEL_CP,0.1) funktionieren müsste.


Sorry, habe den Code Übersichtshalber einfach eingekürtzt. Gelobe Besserung!
  • gefällt mir    Danke

23. Mai 2019, 18:51:59
Antwort #3
Offline

Mikeg_60


hab jetzt den Test mit $Vel_CP=0.1 probiert.
Leider fährt der Roboter nicht wie gewünscht langsam sondern mit der letzt geschrieben Geschwindigkeit
Hat jemand noch eine Idee woran das liegen könnte?

Hier der ganze Code:

DEF TM_USERACTION( )
   
   ;===================
   ; Stop robot
   ;===================
   
   ;Kollision wurde erkannt
   tMOVE_up=false
   tCrash_ignore=false
   
   TQM_OK=FALSE  ;MELDUNG absetzen
   BRAKE
   REPEAT
      o_Crash_identified = TRUE
     
      wait for i_crash_ignore or i_move_up or NOT sTQM_SPSACTIVE
     
      IF i_crash_Ignore THEN
         tCrash_ignore=TRUE
      ENDIF
      IF i_move_up Then
         tMOVE_up=TRUE
         
         ;FOLD (+) Parameter setzen
            BAS(#Base,0)
            BAS(#VEL_PTP,5)
            BAS(#ACC_PTP,50)
            BAS(#VEL_CP,0.1)
            BAS(#ACC_CP, 50)
            $APO.CVEL=10
            $APO.CPTP=10
            $VEL.CP=0.1           
         ;ENDFOLD
         
         wait sec 0
         LIN_REL {z 250}
         wait sec 0
         o_above_Crash=TRUE
         wait for i_Ack_above_Crash
         o_above_Crash=FALSE
         ;ENDWHILE
         
         wait for NOT i_move_up AND NOT i_crash_ignore
         
      ENDIF
     
      IF tCrash_ignore OR o_above_Crash THEN
         o_Crash_identified=FALSE
         tMOVE_up=FALSE
      ENDIF   
     
   UNTIL  tCrash_ignore OR NOT sTQM_SPSACTIVE OR NOT tMOVE_up OR  o_Crash_identified


   wait for (NOT i_crash_ignore AND NOT i_move_up) or NOT sTQM_SPSACTIVE
   
   wait sec 0
   o_above_Crash=FALSE
   o_Crash_identified = FALSE
   
   TQM_OK=TRUE ;MELDUNG löschen

   PTP $POS_ACT

END
  • gefällt mir    Danke

Gestern um 12:37:04
Antwort #4
Offline

Otto Sieben


Moin,
programmiertechnisch bin ich nicht besonders fit. Daher weiss ich nicht, ob ich richtig liege.
Nach dem Setzen der Verfahrparameter kommt sofort der LIN_REL. Ich meine, dass die Parameter erst mit einer PTP , LIN, CIRC ..  Bewegung aktiviert werden. Schiebe doch einfach mal ein PTP $POS_ACT zwischen Parametrierung und LIN_REL ein. Dabei bewegt sich der Robbie nicht...
  • gefällt mir    Danke
never touch a running system

Heute um 03:25:04
Antwort #5

Werbung

Gast

Gestern um 14:55:09
Antwort #5
Offline

SJX

Global Moderator
Hallo Mike,

Problematik Deines Problems besteht eben wie schon erwähnt, dass TM_USERACTION.src  als Interruptprogramm ausgeführt wird.


Gut erklärt findest Du diese Problematik mit Workaround in einem Post von Fubini:

https://www.robot-forum.com/robotforum/kuka-robot-forum/changing-vel-cp-speed-in-interrupt/

When Workaround mit $OV_PRO, würde ich vor Änderung alten Wert speichern und nach Lin_Rel direkt wieder zurückwechseln auf alten Wert.

Workaround von Nosochek über Resume zu handeln wäre meine bevorzugte Variante.
In Deinem Fall aber fast unmöglich umzusetzen (gegebene Struktur aus InlineFormular)

Gruss SJX

« Letzte Änderung: Gestern um 15:01:31 von SJX »
  • gefällt mir    Danke
Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

Gestern um 16:39:33
Antwort #6
Offline

Mikeg_60


 :danke: SJX

Jetzt wird mir einiges klar. Dieser Beitrag erklärt die Siuation recht gut.

$OV_PRO könnte funktionieren, wenn nicht die SPS zyklisch den Sollwert vorgeben würde. Könnt ich aber ggf. in dem Interrupt blockieren

Würde es mit einem Inlineformular Punkt funktionieren?
Dann könnt ich ja den Punkt vorab um Z 250 manipulieren.
In etwa so:

xPosUp=$Pos_Int:{x 0.0,y 0.0,z 250.0,a 0.0,b 0.0,c 0.0}

Inlineformular: LIN xPosUP

oder ist das Verhalten identisch?
  • gefällt mir    Danke


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH