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

[offen] KRC Modul LIN CONT mit 6 Achswerten


normal_post Autor Thema: [offen] KRC Modul LIN CONT mit 6 Achswerten  (Gelesen 698 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

26. Februar 2019, 17:30:34
Gelesen 698 mal
Offline

damarius


Hallo zusammen,

ich versuche aktuell in einem anderen Programm einen Parser zu schreiben, der mir automatisiert ein KUKA Modul bestehend aus einer .src und einer .dat Datei erzeugt. In dem Programm selbst erzeuge ich für jede Stellung 6 Achswinkel (A1-A6), die ich dann in einem LIN CONT Programm abfahren möchte. Leider habe ich noch irgendeinen Fehler in der Übersetzung, den ich aber leider nicht finde. Wenn ich die beiden Files auf den KUKA lade bekomme ich immer die Meldungen "Ausdruck ungleich POS, FRAME LIN XP1 C_SPL C_SPL".

Hier mal ein Teil der .dat und .src:

...
DECL BASIS_SUGG_T LAST_BASIS={POINT1[] "P1",POINT2[] "P1",CP_PARAMS[] "CPDAT1",PTP_PARAMS[] "PDAT0",CONT[] "C_DIS C_DIS",CP_VEL[] "2",PTP_VEL[] "100",SYNC_PARAMS[] "SYNCDAT",SPL_NAME[] "S0",A_PARAMS[] "ADAT0"}
DECL AXIS XP2={A1 0,A2 -135,A3 145,A4 0,A5 0,A6 0}
DECL FDAT FP2={TOOL_NO 8,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT2={VEL 2.0,ACC 100,APO_DIST 100,APO_FAC 50,AXIS_VEL 100.0,AXIS_ACC 100.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,GEAR_JERK 50.0,EXAX_IGN 0}
DECL AXIS XP3={A1 0,A2 -134.5,A3 144.9,A4 0,A5 -0.6,A6 0}
DECL FDAT FP3={TOOL_NO 8,BASE_NO 0,IPO_FRAME #BASE,POINT2[] " ",TQ_STATE FALSE}
DECL LDAT LCPDAT3={VEL 2.0,ACC 100,APO_DIST 100,APO_FAC 50,AXIS_VEL 100.0,AXIS_ACC 100.0,ORI_TYP #VAR,CIRC_TYP #BASE,JERK_FAC 50.0,GEAR_JERK 50.0,EXAX_IGN 0}
...

...
;FOLD PTP HOME  Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART=FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS(#CP_PARAMS,100)
$H_POS=XHOME
PTP XHOME
;ENDFOLD
;FOLD LIN P2 CONT Vel=2 m/s CPDAT2 Tool[8] Base[0];%{PE}%R 8.3.43,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P2, 3:C_DIS C_DIS, 5:2, 7:CPDAT2
$BWDSTART=FALSE
LDAT_ACT=LCPDAT2
FDAT_ACT=FP2
BAS(#CP_PARAMS,2)
LIN XP2 C_DIS C_DIS
;ENDFOLD
;FOLD LIN P3 CONT Vel=2 m/s CPDAT3 Tool[8] Base[0];%{PE}%R 8.3.43,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P3, 3:C_DIS C_DIS, 5:2, 7:CPDAT3
$BWDSTART=FALSE
LDAT_ACT=LCPDAT3
FDAT_ACT=FP3
BAS(#CP_PARAMS,2)
LIN XP3 C_DIS C_DIS
;ENDFOLD
...

Ich würde mich sehr freuen, wenn mir an der Stelle jemand weiterhelfen kann.
Vielen Dank schonmal!
« Letzte Änderung: 26. Februar 2019, 17:47:13 von damarius »
  • gefällt mir    Danke

Heute um 03:02:19
Antwort #1

Werbung

Gast

26. Februar 2019, 18:04:48
Antwort #1
Offline

Fughulu


Hi,

bei einer LIN-Bewegung ist nur POS, E6POS und FRAME als Position zulässig. AXIS-Type ist für PTP-Bewegungen.
  • gefällt mir    Danke

26. Februar 2019, 18:42:46
Antwort #2
Offline

damarius


Hi,

danke für deine schnelle Rückmeldung. Das heisst aber im Umkehrschluss, dass ich, wenn ich nur 6 Achswerte habe und nicht x,y,z, ry,ry,rz gar nicht LIN benutzen kann? Ich bekomme die Punkte nämlich nur als 6 Gelenkwinkel aus meinem Programm heraus...
  • gefällt mir    Danke

27. Februar 2019, 04:40:28
Antwort #3
Offline

fubini


Hallo, dann rechne die Achswerte doch über Forward um:

LIN FORWARD(xp666, Status)

Genaue Syntax sollte die Forumsuche liefern.

Fubini

27. Februar 2019, 09:26:35
Antwort #4
Offline

damarius


Danke für den Hinweis, die Funktion war mir bisher nicht bekannt.

Leider sind die meisten Seiten im Forum zu diesem Thema schon nicht mehr auf dem Server. Ich habe gefunden, dass ich folgendermaßen die Punkte umrechnen kann:
EXTFCTP E6POS FORWARD (E6AXIS AXVAL : IN, INT STATUS : OUT)
Aber wo und wie genau bringe ich dies im Code unter? Das muss ja irgendwie in die .src rein... Auch verstehe ich nicht ganz, was mit INT STATUS gemeint ist.
Würde mich freuen, wenn mir da noch jemand auf die Sprünge helfen könnte, wie ich das oben aufgeführte Beispiel entsprechend anpassen müsste.
  • gefällt mir    Danke

Heute um 03:02:19
Antwort #5

Werbung

Gast

27. Februar 2019, 13:01:40
Antwort #5
Offline

fubini


Bereits innerhalb des 1. Treffers in der Forumsuche mit Keyword "Forward" findet sich ein Link nach

https://www.roboterforum.de/roboter-forum/kuka-roboter/3/seo/4875/msg21737#msg21737

und hier kann man sich die Beschreibung zu FORWARD runterladen. Ansonsten ja, du musst das Program umschreiben. Entweder indem du jedem Bewegungsbefehl auch das Forward mitgibst:

LIN Forward(XP*, ERR_STATUS)

oder du rechnest vor jedem Punkt um:

XP*Cart = Forward(XP*, ERR_STATUS)
LIN XP*Cart

Ersetze * mit Punktenummern deiner Wahl!

Fubini
  • 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