1. Dashboard
    1. Dashboard
    2. Suche
  2. Forum
    1. Unresolved Threads
  3. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Search Members
  4. Jobs
  5. Articles
  6. Calendar
    1. Upcoming Events
    2. Map
  7. Shop
    1. Orders
    2. Shipping Costs
  • Login or register
  • Search
Roboterprogrammierer finden
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Events
  • Files
  • Products
  • More Options
  1. Roboterforum.de - die Industrieroboter und Cobot Community
  2. Forum
  3. Industrieroboter Support
  4. KUKA Roboter
Your browser does not support videos Handwerk automatisieren - ich schaffs mit KUKA
besuche unseren Partner
Roboterprogrammierer
Online Roboterschulung
Werbung schalten Roboter
Advertise in Robotics
Der Roboterkanal
Deutscher Robotikverband
Werben in Robotik
Werben für Robotik

Anleitung zur Bewegungs-Programmierung

  • singular
  • April 15, 2024 at 1:14 PM
  • Thread is Resolved
  • singular
    Points
    70
    Posts
    11
    • April 15, 2024 at 1:14 PM
    • #1

    Hallo allerseits,

    ich habe das Problem, dass viele Codebeispiele aus der Dokumentation, z.B. "KSS 8.7 Bedien- und Programmieranleitung für Systemintegratoren", offenbar nicht direkt lauffähig sind, da weitere Variablen gesetzt bzw. Bibliotheksfunktionen aufgerufen werden müssen, um die Steuerung für die Bewegung zu konfigurieren.

    Es geht schon mit der bei Programmstart erforderlichen SAK-Fahrt mit PTP los - PTP HOME; verursacht Fehler ("Achsgeschwindigkeit nicht programmiert A1").

    Leider finde ich dazu keinerlei Hinweise in der Dokumentation.

    Ich versuche daher, den von Inline-Formularen generierten Code nachzuvollziehen (ebenfalls offenbar nicht dokumentiert, z.B. BAS()).

    Beispiel:

    Code
    ;FOLD PTP XHOME Vel=100 % PDAT1 Tool[1]:Tool1 Base[0] ;%{PE}
      ;FOLD Parameters ;%{h}
        ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=XXHOME; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
      ;ENDFOLD
      $BWDSTART = FALSE
      PDAT_ACT = PPDAT1
      FDAT_ACT = FXHOME
      BAS(#PTP_PARAMS, 100.0)
      SET_CD_PARAMS (0)
      PTP XXHOME
    ;ENDFOLD
    Display More
    • Warum wird aus HOME hier XHOME bzw. XXHOME?
    • Welche der Aufrufe müssen vor jedem Bewegungsbefehl erfolgen (oder reicht es einmal für weitere PTPs)?
    • Kann ich die Inlineformular-Parameter (und Folds) einfach weglassen?
    • Was wäre der "klassische" Weg der Programmierung (d.h. ohne Inlineformulare) und gibt es dazu vollständigere, offizielle Dokumentation bzw. Beispiele?

    Nach PTP soll es mit LIN und SCIRC im SPLINE-Block weitergehen...

  • Schritt für Schritt zum Roboterprofi!
  • AtoK09
    Reactions Received
    21
    Points
    2,151
    Trophies
    1
    Posts
    385
    • April 15, 2024 at 1:28 PM
    • #2
    Quote from singular

    ...

    • Warum wird aus HOME hier XHOME bzw. XXHOME?
    • Welche der Aufrufe müssen vor jedem Bewegungsbefehl erfolgen (oder reicht es einmal für weitere PTPs)?
    • Kann ich die Inlineformular-Parameter (und Folds) einfach weglassen?
    • Was wäre der "klassische" Weg der Programmierung (d.h. ohne Inlineformulare) und gibt es dazu vollständigere, offizielle Dokumentation bzw. Beispiele?

    Nach PTP soll es mit LIN und SCIRC im SPLINE-Block weitergehen...

    KUKA schreibt vor seine Positionsnamen immer ein "x", ist halt so. Warum da ein "xx" steht kann ich dir so nicht sagen

    Wenn du ein Standard .src (Achtung, kein Experten .src!) am KCP erstellst, sind oben so eine Handvoll "ini-Zeilen" dabei, dort wird so etwas wie Achsgeschwindigkeit initialisiert.

    Prinzipiell können Inlineformulare weggelassen werden. Jedoch, wenn du kein "Experte" bist und dazu noch das Technologiepaket "ExpertTech" nicht vorhanden ist, fehlen dann Informationen und Bedienmöglichkeiten.

    Zum Beispiel steht im ILF das Tool und die Base die du sonst mit Hand zwingend reinschreiben musst, bzw. ohne ILF und "ExpertTech" kannst du nicht teachen.

    Klassisch ist mit ILF, ohne nennt sich dann "Expertenprogrammierung". ich habe das aus der Erfahrung des "Machens" gelernt...

    Den Roboter "in seinem Lauf hält weder Ochs noch Esel auf!"

  • Roland Keller
    Reactions Received
    41
    Points
    5,936
    Posts
    1,028
    • April 15, 2024 at 2:27 PM
    • #3

    In deinem Fold steht

    Code
    ;FOLD PTP XHOME Vel=100 % PDAT1 Tool[1]:Tool1 Base[0] ;%{PE}

    Warum XHOME?

    Die Positionsvariable heißt einfach nur HOME.

    Gruß Roland

    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.

    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • panic mode
    Reactions Received
    91
    Points
    3,541
    Trophies
    1
    Posts
    689
    About Me

    Any idea that cannot withstand honest criticism, is not worth believing.

    Location
    Mississauga, Ontario, Canada
    • April 15, 2024 at 2:47 PM
    • #4

    Genau...

    ILF fügt den Punktnamen das Präfix „x“ hinzu. Da der im ILF-Editor eingegebene Name bereits „x“ enthält, hat ILF einfach ein weiteres hinzugefügt.

  • singular
    Points
    70
    Posts
    11
    • April 16, 2024 at 7:14 PM
    • #5

    Ok, danke soweit. Hatte gestern noch ein paar ähnliche Threads gefunden, werde ich morgen bei Gelegenheit verlinken. Das INI hatte ich noch nicht auf dem Schirm - werde ich mir ansehen.

    XHOME, weil ich in der config (?) nirgends HOME gefunden habe.

    Wenn das ILF ein X vor HOME setzt, passt es ja wieder.

    Hab das nirgends in den Dokus gefunden.

    "Ich schaff's mit Kuka. Jetzt einfach ..." - naja, wird schon ... irgendwann ;)

  • Programmiersklave
    Reactions Received
    104
    Points
    6,299
    Posts
    1,203
    About Me

    neuerdings freigelassen

    Location
    märk. Sauerland
    Occupation
    Roboter- und SPS-Programmierer
    • April 16, 2024 at 10:27 PM
    • #6

    Man muss auch im Hinterkopf behalten, dass KRL seit 30 Jahren oder so weitgehend zu sich selbst abwärtskompatibel ist. Nicht vollständig, aber doch in wesentlichen Eigenschaften. Was früher aus der Not heraus als Konvention festgelegt wurde, ist heute vielleicht nicht mehr zeitgemäß - aber nun eben Standard. Und so gibt es ein paar Merkwürdigkeiten, über die Du jetzt stolperst - und die man uns 1998 in Augsburg schon als "ist eben so, weil man das früher so haben wollte" erklärte.

    Automatisierung mit dem geflügelten Walross aus dem Sauerland

  • Roland Keller
    Reactions Received
    41
    Points
    5,936
    Posts
    1,028
    • April 17, 2024 at 8:23 AM
    • #7
    Quote from singular

    XHOME, weil ich in der config (?) nirgends HOME gefunden habe.

    Deklariert in der Config.dat im Fold Basistech Globals

    Gruß Roland

    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.

    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • singular
    Points
    70
    Posts
    11
    • April 17, 2024 at 3:24 PM
    • #8

    Im INI-Fold der "Modul"-Vorlage werden über bas.src die Standardwerte aus $config.dat geladen (und der STOPMESS Interrupt aktiviert):

    Code
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3 
    BAS (#INITMOV,0 )

    Damit bewegt sich schonmal was!

    30 Jahre Rückwärtskompatibilität schön und gut - das bedeutet aber auch, dass 30 Jahre Zeit waren, an der Dokumentation zu arbeiten!

  • SJX
    Reactions Received
    241
    Points
    10,686
    Trophies
    64
    Posts
    2,082
    • April 17, 2024 at 8:08 PM
    • #9
    Quote from singular

    30 Jahre Rückwärtskompatibilität schön und gut - das bedeutet aber auch, dass 30 Jahre Zeit waren, an der Dokumentation zu arbeiten!

    Man kann auch Dokumentationen so umfangreich schreiben, dass sie niemand mehr liest!

    Prinzipiell reden wir hier von Basics, die an einer guten Schulung Dir beigebracht werden.

    Dann fällt der Einstieg in KRL relativ leicht.

    Oder selber mal überlegen, was vorgegeben sein muss, dass eine Bewegung stattfinden kann.

    Ist beim Roboter dasselbe wie bei anderen Werkzeugmaschinen. Ohne Werkzeug-, Basis-,Geschwindigkeiten-, Beschleunigungen-, ...., Vorgaben geht halt nichts.

    BAS (...,..) ist simpler Unterprog Aufruf mit Parameterübergabe. Ist dokumentiert, wie UP Aufruf geht.

    BAS.SRC ist ein KUKA Programm, der Dir gewisse Funktionen zur Verfügung stellt, die KUKA selbst in den ILF's verwendet. Die Du selbst aber auch nutzen kannst. Ist einsehbar und nachverfolgbar, was darin abläuft. Einzelne Systemvariablen darin sind gut dokumentiert.

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

  • Thilbi
    Reactions Received
    11
    Points
    1,556
    Posts
    302
    Location
    Schwäbisch Gmünd
    • April 18, 2024 at 8:26 AM
    • #10
    Quote from SJX

    Man kann auch Dokumentationen so umfangreich schreiben, dass sie niemand mehr liest!

    Prinzipiell reden wir hier von Basics, die an einer guten Schulung Dir beigebracht werden.

    Dann fällt der Einstieg in KRL relativ leicht.

    Hallo,

    wie eine gute Dokumentation aussehen kann, kann man sich bei ABB anschauen. Hier wird das komplette Rapid in zwei Dokumenten vollständig erklärt.

    Natürlich ersetzt auch diese Doku keine Schulung, aber man findet sich wesentlich besser und schneller zurecht als in den Dokumenten von KUKA.


    Grüße

    Thilbi

  • singular
    Points
    70
    Posts
    11
    • April 22, 2024 at 3:51 PM
    • #11

    Hallo nochmal,

    ich habe nun versucht, (in KSS 8.7) die Parameter aus Inlineformularen zu übernehmen und anzupassen, muss dabei aber etwas übersehen: das unten folgende Test-Programm

    1. fährt den Spline-Block deutlich schneller als Schrittgeschwindigkeit ab, d.h. die von mir auf 50% reduzierten VEL, ACC und JERK Parameter scheinen keinen Einfluss zu haben (zumindest ist die anfängliche PTP-Bewegung deutlich langsamer)

    2. stoppt an tangentialen Übergängen

    Ich vermute 1. könnte am Geltungsbereich liegen - benötigt der SPLINE-Block die Parameter als WITH?

    Andererseits:

    Quote

    Die Parameter (Tool, Base, Geschwindigkeit etc.), die dem Spline-

    Block zugewiesen werden, wirken sich genauso aus wie Zuweisungen

    vor dem Spline-Block.

    Welche Parameter/Variablen muss ich setzen, damit im T1 mit der eingestellten, reduzierten Geschwindigkeit gefahren wird?

    2. wird ja explizit in der Anleitung erwähnt:

    Quote

    Aufeinanderfolgende SLIN- und/oder SCIRC-Segmente vermeiden, da

    die Geschwindigkeit hierdurch häufig auf 0 reduziert wird.

    Zwischen SLIN- und SCIRC-Segmenten SPL-Segmente programmie-

    ren. Die Länge der SPL-Segmente muss mindestens > 0,5 mm sein.

    Abhängig vom konkreten Bahnverlauf können auch deutlich größere

    SPL-Segmente erforderlich sein

    Display More

    Meine Frage ist, warum ist so ein Workaround nötig, wenn der Vorteil des Spline-Blocks die optimale Bewegungsplanung ist? Sind bei tangentialen Übergängen die Werte (Jerk) nicht besser beherrschbar und berechenbarer als bei allen anderen Übergängen? Wenn ja, warum kann die Steuerung im Zweifel nicht die Geschwindigkeit des SCIRC-Segments auf das vorhergehende SLIN-Segment anwenden, so dass die Grenzwerte nicht überschritten werden?

    Der Hintergrund meiner Frage ist, dass ich eine konstante Geschwindigkeit auf dem Pfad benötige.

    Hier nun das Programm:

    Code
    DEF test( )
    
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3 
    BAS (#INITMOV,0 ) ; -> INITMOV(), RESET_CD_PARAMS(), SJERK(LDEFAULT)
    
    ;ACC_CP(10)
    ;$ORI_TYPE = #CONSTANT;
    ;$CIRC_TYPE = DEF_CIRC_TYP
    ;$JERK=SJERK(LDEFAULT)
    
    LDAT_ACT = LCPDAT1
    FDAT_ACT = FP1
    BAS(#CP_PARAMS, 2.0)
    
    PDAT_ACT = PPDAT1
    FDAT_ACT = FXXHOME
    BAS(#PTP_PARAMS, 100.0)
    SET_CD_PARAMS (0)
    
    PTP XXXHOME
    PTP {Z 40}
    
    LIN {Z 10}
    LIN_REL {X 50, Y 50}
    
    SPLINE
       SCIRC {X  100, Y 0},{X  50, Y -50}
       SLIN_REL {X -50}
       SCIRC {X -100, Y 0},{X -50, Y  50}
       SLIN_REL {X 50}
    ENDSPLINE
    END
    Display More
    Code
    DEFDAT  TEST
    
    EXT  BAS (BAS_COMMAND  :IN,REAL  :IN )
    DECL INT SUCCESS
    
    DECL E6POS XXXHOME={X 0,Y 0,Z 500,A 62.8432350,B -3.87019610,C 179.032257,S 18,T 42,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    DECL FDAT FXXHOME={TOOL_NO 2,BASE_NO 1,IPO_FRAME #BASE,POINT2[] " "}
    DECL PDAT PPDAT1={    VEL 50.000,    ACC 50.000,    APO_DIST 500.000,    APO_MODE #CDIS,    GEAR_JERK 50.000,    EXAX_IGN 0    }
    DECL LDAT LCPDAT1 = {CB {AUX_PT {ORI #CONSIDER,E1 #CONSIDER,E2 #CONSIDER,E3 #CONSIDER,E4 #CONSIDER,E5 #CONSIDER,E6 #CONSIDER},TARGET_PT {ORI #INTERPOLATE,E1 #INTERPOLATE,E2 #INTERPOLATE,E3 #INTERPOLATE,E4 #INTERPOLATE,E5 #INTERPOLATE,E6 #INTERPOLATE}},APO_FAC 50.0,APO_DIST 500,AXIS_ACC 50.0,AXIS_VEL 50.0,CIRC_TYP #BASE,JERK_FAC 50.0,ORI_TYP #VAR,VEL 2,ACC 50,GEAR_JERK 50.0,EXAX_IGN 0}
    DECL FDAT FP1 = {BASE_NO 1,TOOL_NO 2,IPO_FRAME #BASE,POINT2[] " "}
    
    ENDDAT
    Display More

    Besten Dank!

  • Programmiersklave
    Reactions Received
    104
    Points
    6,299
    Posts
    1,203
    About Me

    neuerdings freigelassen

    Location
    märk. Sauerland
    Occupation
    Roboter- und SPS-Programmierer
    • April 22, 2024 at 8:51 PM
    • #12

    Is' vielleicht nicht wirklich hilfreich, aber so macht das niemand und man versteht es auch nicht.

    ENTWEDER man programmiert mit den Inline-Formularen, gibt dort die Werte ein, die man braucht, und ist fertig damit.

    ODER man schreibt das Programm von Hand. Dann befüllt man aber keine LCPDAT und so'n Gedöns, sondern man schreibt die modalen(!) Zuweisungen an die passenden Stellen ins Programm. Im Idealfall ist dann die *.DAT komplett leer.


    Bei VEL = 2 m/s wirst Du in T1 keinen Unterschied bemerken, da der Robbi auf 0.25 m/s begrenzt. Standardmäßig nicht proportional, sondern eben gedeckelt (kann man aber irgendwo umschalten, wenn man das will).

    Bei PTP wird die Geschwindigkeit prozentual vom Maximum angegeben, deshalb merkste das da.

    Automatisierung mit dem geflügelten Walross aus dem Sauerland

  • singular
    Points
    70
    Posts
    11
    • April 23, 2024 at 11:24 AM
    • #13

    Hi,

    danke für die Hinweise!

    Ich möchte es ja direkt programmieren. Aber da ich die "passenden Stellen" noch nicht kenne, wollte ich es mir von den Inlineformularen abschauen... klappt nicht so gut :-/

    Das Beispiel aus der Doku für SLIN...

    Code
    SPLINE WITH $VEL = SVEL_CP(2.0, , LCPDAT2), $TOOL =
    STOOL2(FS2), $BASE = SBASE(FS2.BASE_NO), $IPO_MODE =
    SIPO_MODE(FS2.IPO_FRAME), $LOAD = SLOAD(FS2.TOOL_NO), $ACC
    = SACC_CP(LCPDAT2), $APO = SAPO(LCPDAT2), $ORI_TYPE =
    SORI_TYP(LCPDAT2), $CIRC_TYPE = SCIRC_TYP(LCPDAT2), $JERK =
    SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(1)
    SLIN {X 1000, Z -1000} WITH $ACC={CP 5.0,ORI1 500.0,ORI2
    500.0}
    ENDSPLINE C_Spl
    Als Einzelsatz:
    SLIN {X 1000, Z -1000} C_SPL
    Display More

    ... benutzt undokumentierte Funktionen (aus bas.src) und die undefinierte Struktur LCPDAT2.

    Wie reduziere ich denn beispielsweise die Geschwindigkeit auf 0.1 m/s?

    Kann die Struktur bzw. ihr Attribut .AXIS_VEL im Funktionsaufruf spezifiziert werden?

    Analog für Beschleunigung (.ACC) und Ruck (.GEAR_JERK)...

    SPLINE WITH $VEL=SVEL_CP(0.1,,?), $ACC=SACC_CP(?), $JERK=SJERK(?)

    Gibt es irgendwo Beispielprogramme zum Lernen?

    Ich habe gerade erst OfficeLite (KSS auf virtueller Maschine) entdeckt, vielleicht können wir das anschaffen, dann könnte ich besser und schneller mit KRL experimentieren.

  • funnougat
    Reactions Received
    14
    Points
    864
    Posts
    169
    • April 23, 2024 at 11:51 AM
    • #14

    BAS(#TOOL,1) ; TOOL zuweisen

    BAS(#BASE,1) ; BASE zuweisen

    BAS(#VEL_CP,1.0)      ;LIN SPEED

    BAS(#VEL_PTP,40)      ;PTP SPEED

  • singular
    Points
    70
    Posts
    11
    • April 23, 2024 at 12:32 PM
    • #15

    Ok, perfekt, danke.

    Jetzt sehe ich auch, was da (befürchtungsgemäß) passiert: er hält an jedem Übergang, entweder KSS03173: "Knick in XYZ-Bahn" oder KSS03174: "SLIN-SCIRC-Sequenz".

    Dann muss ich da jetzt wirklich überall kurze SPL-Segmente als Workaround einbauen (und so wird es auch bei Dosierungsanwendungen etc. gemacht?)?

  • singular
    Points
    70
    Posts
    11
    • April 23, 2024 at 1:48 PM
    • #16

    Habe die SPLs dazwischengesetzt, und siehe da: er fährt durch.

  • fubini
    Reactions Received
    73
    Points
    4,728
    Trophies
    2
    Posts
    924
    Location
    München
    • April 23, 2024 at 3:28 PM
    • #17

    Nur so als Hinweis: Der Spline is eigentlich so gedacht, daß man die gewünschte Kontur immer als Spline hat also mit SPLs modelliert. Die Verwendung von slin bzw scirc im Block sollte da die Ausnahme sein nicht umgekehrt.

    Fubini

  • singular
    Points
    70
    Posts
    11
    • April 23, 2024 at 3:51 PM
    • #18

    Ah, ok, ich hatte angenommen, dass das äquivalente "convenience functions" sind... aber wohl nicht.

    Ja, dann sehe ich zu, dass ich das ändere!

    Danke!

Tags

  • 1
  • 33
  • 2
  • ABB
  • ABB Roboter
  • ABS
  • base
  • constant
  • CP_PARAMS
  • Dialog
  • EX
  • fanuc
  • Fehler
  • FRAMES
  • INIT
  • INITIALIZED
  • INITMOV
  • IRC5
  • joint
  • KRC2
  • KRC4
  • kuka
  • new
  • NONE
  • notify
  • PATH
  • PGNO_GET
  • profinet
  • PTP_DAT
  • PTP_PARAMS
  • P_ACTIVE
  • P_FREE
  • P_RESET
  • P_STOP
  • Quit
  • Roboter
  • RobotStudio
  • Schweißen
  • Sps
  • Sync
  • T1
  • t2
  • tcp
  • Tool
  • VALUE
  • VAR
  • vel_cp
  • vel_ptp
  • Yaskawa
  • YRC1000
AD
Your browser does not support videos Automatisierung im Handwerk - ich schaffs mit KUKA
Einloggen für weniger Werbung

gesponserte Artikel

  • Gebrauchtroboter kaufen - Was ist zu beachten. Die Checkliste zum kauf von gebrauchten Robotern

    August 11, 2019 at 7:02 PM
  • Was macht ein Roboterprogrammierer genau und was verdient er?

    August 21, 2019 at 8:17 AM
  • Vernetzen, referenzieren, kollaborieren: Das B2B Portal für die Produktionsautomatisierung

    June 2, 2021 at 11:29 AM

Job Offer

  • Sie wollen Ihr Stellenangebot im Roboterforum schalten? Ab 149€

    Werner Hampel June 17, 2021 at 9:52 AM
  • Werde Roboterprogrammierer bei ROBTEC GmbH in Mainburg / Bayern

    Werner Hampel April 5, 2023 at 7:13 PM
Werbung auf Roboterseite
Roboter programmieren lernen
Banner Robotik

Tags

  • Tool
  • base
  • vel_cp
  • vel_ptp

Wieviele Mitglieder waren heute eingeloggt?

Logge Dich ein, um hier zu lesen wer in den letzten 24h Online war und um weniger Werbung zu sehen.

  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™ 6.0.22
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on Google Play
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on the App Store
Download