Posts by Sliwka

    Morgen,


    generell stimme ich Woodys vorgehensweise zu. Würde aber den Raum aber einfach sperren, wenn der Roboter nicht in Hand ist, da ist man auf der sicheren Seite:


    Als Beispiel hab ich den Raum 1 genommen.

    ;

    ; UP Service anfahren

    ;

    ; Warte auf Handmode

    WAIT FOR $T1

    $WORKSPACE[1].MODE = #OFF

    ;

    PTP XHOME

    ;

    ;....

    ;

    PTP XHOME

    ;

    $WORKSPACE[1].MODE = #OUTSIDE_STOP

    ;

    ;ENDE Service anfahren

    ;

    ;

    ; nicht vergessen wieder zurueckzuschreiben!

    ; Beispiel:

    ; im SPS.sub

    IF NOT $T1 THEN

    $WORKSPACE[1].MODE = #OUTSIDE_STOP

    ENDIF

    ;

    ja genau. also wäre die variable mymessage .nr = 123
    wenn du die dann auslesen willst dann
    IF (mymessage.nr == 123) THEN
    ...
    ENDIF
    Kannst du so nutzen.

    Oder kannst du den originalen Programmcode zur Verfügung stellen? Vilt kann ich dir da genauer helfen.

    :wallbash:

    Ach wie herrlich ist doch so ein Perspektivwechsel... wenn man mal den Code kopiert und in einer anderen Darstellung sieht, fällt gleich was auf. Ich habe hier schön die Kommentarzeilen mit CONTINUE versehen...

    Code
    CONTINUE
    ;Bereich 1 frei

    Hier wird zwar nicht auf Ein-/Ausgänge geschaut, aber wer weiß...

    Code
    DEFFCT REAL Min(Z1:IN, Z2:IN)
    REAL Z1, Z2
    IF Z1<Z2 THEN
    RETURN Z1
    ENDIF
    RETURN Z2
    ENDFCT

    ah mist, da war ich etwas zu spät dran :D hatte es grad geschrieben

    Wie sieht denn das Ablegeprogramm aus? Fährst du da am Anfang des Programms auf Home?

    Weil der letzte Punkt beim Holen Home ist, Kuka kann 2 Punkte nacheinander mit der selben Punktkoordinate nicht sauber "verarbeiten" und dadurch entsteht ein Vorlaufstop


    CONTINUE

    ;Bereich 1 frei

    IF MIN(Stapelhoehe[1,1],Stapelhoehe[1,3])>MIN(Stapelhoehe[1,2],Stapelhoehe[1,4]) THEN

    Holen_B1S1()

    ELSE

    Holen_B1S2()

    ENDIF


    Hier sind die Continues falsch gesetzt

    Also das Continue vor dem END ist schon richtig, bei lokalen Interrupts. Hatte mal dasselbe Problem.
    Wo springt der Roboter denn nach dem holen_B1S1() Programm rein? Hast du ein Auszug?

    Bist du dir sicher, dass es in dem Holen Programm zum Vorlaufstopp kommt?

    Heißt nur, dass du von Ausgang 1 - 1000 die Signale nicht zurücksetzen sollst. Kannst für die 1000 auch eine andere Zahl eintragen.

    Hi,

    so wie es sich anhört, scheint die KRCDRYRUN nicht eingestellt zu sein.


    -<DIG_OUT>


    <!-- ************************* EXAMPLE ****************************** -->



    <!-- <NO_RESET_RESTORE StartIdx="1" /> => $OUT[1] -->



    <!-- <NO_RESET_RESTORE StartIdx="55" EndIdx="66" /> => $OUT[55...66] -->



    <!-- **************************************************************** -->



    <NO_RESET_RESTORE EndIdx="1000" StartIdx="1"/>


    </DIG_OUT>





    Diese findest du unter:


    C:/KRC/ROBOTER/CONFIG/USER/COMMON/KRCDRYRUN.xml


    Viele Grüße,


    Sliwka

    Hi Romelipemi,
    optional kannst du einfach auch eine Position triggern. Dann weißt du, wo der Roboter steht.
    TRIGGER WHEN DISTANCE=1 DELAY=0 DO bWarteposition = TRUE
    und beim verlassen der Position, kannst du die Variable wieder auf FALSE setzen.
    (bWarteposition ist nur ein Beispiel).
    Viele Grüße