Beiträge von Sarkermann

    schau mal ob du was zur Funktion "Syn OUT" in deinen Unterlagen findest, damit kannst du Ausgänge wärend der Bahnbewegung schalten

    Vielen Danke für den Tipp!

    Ich bin mir hier nicht mit der Syntax sicher, wie ich dann meinen Augang $OUT[6]=TRUE da einfügen kann.

    Ich habe es eben in zwei Varianten probiert, bei beiden schimpft die Steuerung, dass "(" erwartet wird. Ich weiß aber nicht wo

    Variante 1.

    LIN {X 72.500,Y 23.157,Z -0.000,A 90.000,B -0.000,C 180.000} C_DIS

    LIN {X 72.500,Y 226.843,Z 0.000,A 90.000,B -0.000,C 180.000} C_DIS

    SYN OUT [6] '' State= TRUE at START Delay=20ms

    LIN {X 72.500,Y 276.843,Z -0.000,A 90.000,B -0.000,C 180.000} C_DIS

    LIN {X 72.500,Y 376.843,Z 100.000,A 90.000,B -0.000,C 180.000} C_DIS


    Variante 2.

    LIN {X 72.500,Y 23.157,Z -0.000,A 90.000,B -0.000,C 180.000} C_DIS

    LIN {X 72.500,Y 226.843,Z 0.000,A 90.000,B -0.000,C 180.000} C_DIS

    SYN OUT $OUT[6]=TRUE '' State= TRUE at START Delay=20ms

    LIN {X 72.500,Y 276.843,Z -0.000,A 90.000,B -0.000,C 180.000} C_DIS

    LIN {X 72.500,Y 376.843,Z 100.000,A 90.000,B -0.000,C 180.000} C_DIS

    Ausgänge wie Du sie verwendest lösen Vorlaufstop aus.


    Trigger ist Deine Lösung. Kannst Sie weggesteuert wie Zeitversetzt benutzen.

    Findest gute Beispiele in der Standarddoku für Systemintegratoren.

    Hey, vielen Dank!

    Das hat schon sehr geholfen, ich habe jetzt folgendes in das Programm Geschrieben.

    Ich habe hier mal eben mit #... Kommentare eingefügt (Stehen nicht im echten Programm).


    LIN {X 37.500,Y 23.157,Z 0.000,A 90.000,B -0.000,C 180.000} C_DIS #Start der Bahn

    LIN {X 37.500,Y 226.843,Z 0.000,A 90.000,B -0.000,C 180.000} C_DIS #Ab hier soll die Spritze aus sein

    TRIGGER WHEN DISTANCE=1 DELAY=0 DO $OUT[6]=TRUE

    LIN {X 37.500,Y 276.843,Z -0.000,A 90.000,B 0.000,C -180.000} C_DIS #Ende der Bahn


    Das hat schon einen deutlichen erfolg gezeigt, jedoch wird der Robo an dem Punkt immer noch minimal langsamer. Kann man das noch verhindern?

    Das mit DISTANCE=1 habe ich noch nicht Verstanden.

    Liest die Steuerung den Befehl jetzt sozusagen soviel früher, damit der Befehl auf dem Punkt dann auch ausgeführt werden kann?

    Macht es Sinn DISTANCE=1 und DELAY=(z.B.-50) zu nutzen?

    Hallo,

    ich bin ziemlich neu im Thema Robotik.

    Ich habe einen KR 60-3 mit der Steuerung KR C2 und nutze RoboDK um die Bewegungen usw. zu Steuern. Die Steuerung hat keine DI/DO´s verbaut, weswegen diese per Profibus an eine Siemens ET200B geleitet werden, diese Steuert meine Peripherie.

    Das Ziel ist es Klebstoffraupen aufzutragen, diese sollen so gleichmäßig wie irgendwie möglich sein (für wissenschaftliche Anwendung).

    Nun habe ich folgendes Problem.

    Ich habe in RoboDK eine Bahnverfolgungsprojekt angelegt, welches meine Punkte abfährt. Ich möchte das der Roboter die Klebstoff-Spritze x cm vor erreichen von dem Ende der Bahn ausschaltet um einen Tropfen am ende zu vermeiden. In der RoboDK Simulation sieht das auch gut aus und es geschieht was ich möchte, jedoch bleibt der Kuka im Programmablauf in der Realität immer an dem Punkt, an dem die Spritze ausgeschaltet wird für den Bruchteil einer Sekunde stehen, was natürlich immer einen dicken Tropfen verursacht.

    Ich habe schon die Zyklus Taktzeit gefunden, diese scheint mir aber nicht zu helfen. Ich wäre für Hilfe sehr Dankbar.

    Vielen Dank im Voraus ,

    David


    Hier kommt noch eines der Unterprogramme.

    &ACCESS RVP

    &REL 1

    &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe

    &PARAM EDITMASK = *

    DEF Path10 ( )


    EXT BAS (BAS_COMMAND :IN,REAL :IN )


    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )

    INTERRUPT ON 3


    ;FOLD Initialise and set default speed

    BAS (#INITMOV,0)

    BAS (#VEL_PTP,100)

    BAS (#ACC_PTP,20)

    $VEL.CP=0.2

    BAS (#TOOL,0)

    BAS (#BASE,0)

    ;ENDFOLD


    ;;FOLD STARTPOS

    ;$BWDSTART = FALSE

    ;PDAT_ACT = PDEFAULT

    ;BAS(#PTP_DAT)

    ;FDAT_ACT = {TOOL_NO 0,BASE_NO 0,IPO_FRAME #BASE}

    ;BAS(#FRAMES)

    ;;ENDFOLD


    $ADVANCE = 5


    ;FOLD ---- Quickly skip BCO ----

    ; PTP $AXIS_ACT

    ;ENDFOLD


    ;FOLD ---- GO HOME ----

    ; PTP {A1 0.000, A2 -90.000, A3 90.000, A4 0.000, A5 0.000, A6 0.000, E1 0, E2 0, E3 0, E4 0, E5 0, E6 0}

    ;ENDFOLD



    ; Program generated by RoboDK v4.0.1 for KUKA KR 60 L45 HA on 16/12/2019 14:30:54

    ; Using nominal kinematics.

    $APO.CPTP = 1.000

    $APO.CDIS = 1.000

    $VEL.CP = 0.25000

    $BASE = {FRAME: X 1711.354,Y 691.928,Z 423.102,A 90.000,B 0.000,C 0.000}

    ; BASE_DATA[3] = {FRAME: X 1711.354,Y 691.928,Z 423.102,A 90.000,B 0.000,C 0.000}

    ; $BASE = BASE_DATA[3]

    $TOOL = {FRAME: X 91.520,Y 488.790,Z 105.000,A 90.000,B 90.000,C 0.000}

    ; Anzeigen Spritzenkopf 20ml Links

    PTP {A1 -31.20253,A2 -60.03840,A3 99.70798,A4 136.50466,A5 48.82286,A6 -58.00754} C_PTP

    $OUT[6]=FALSE

    LIN {X 72.500,Y 23.157,Z -0.000,A 90.000,B -0.000,C 180.000} C_DIS

    LIN {X 72.500,Y 226.843,Z 0.000,A 90.000,B -0.000,C 180.000} C_DIS

    $OUT[6]=true

    LIN {X 72.500,Y 276.843,Z -0.000,A 90.000,B -0.000,C 180.000} C_DIS

    LIN {X 72.500,Y 376.843,Z 100.000,A 90.000,B -0.000,C 180.000} C_DIS

    END