Geschwindigkeit PoV in T 2 und Automatik immer 0% bei aktivem Submit

  • Hallo zusammen, ich bin der Philipp.


    Ich bin neu hier und habe mich aus beruflichen Gründen hier angemeldet .

    Ich arbeite mich in meinem Betrieb in das Thema Kuka Roboter ein.


    Kurz was zum System .

    Krc2 KSS V5.2.12

    Beckhoff Devicenett

    Fronius Schweißstromquelle

    Kuka Arctec installiert.


    Folgendes Problem:


    Es ist kein automatische verfahren in Betriebsart T2 und automatik möglich solange der Submit ( Archtech) aktiv ist.

    Pov steht immer auf 0% oder lässt sich nicht hoch stellen ( geht sofort wieder runter).

    Die kommunkation zu Schweißstromquelle steht.


    Ist der Submit deaktiviert funktioniert es.

    Hat einer von euch Experten eine Idee wo ich nach dem Fehler suchen soll?

    Ich weiß , in die Glaskugel schauen ist immer schwer.


    Ich danke euch jetzt schon für eure Hilfe.


    Beste Grüße


    Philipp

  • Schritt für Schritt zum Roboterprofi!
  • Poste doch bitte mal das File sps.sub (Submitinterpreterprogramm)


    Gruss SJX

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

  • Hallo.


    hier die sps.sub ( alle folds geöfnet)



    DEF sps( )

    DECLARATIONS

    BASISTECH DECL

    ;Automatik extern

    DECL STATE_T STAT

    DECL MODUS_T MODE


    ARCTECHDIGITAL DECL

    INT WFD_PLUS_D,WFD_MINUS_D,OLD_WFD_D

    USER DECL

    ; Please insert user defined declarations

    INI

    DEFAULT MSG_T

    $MSG_T={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}

    AUTOEXT INIT

    INTERRUPT DECL 91 WHEN $PRO_STATE1==#P_FREE DO RESET_OUT ()

    INTERRUPT ON 91

    $LOOP_MSG[]=" "

    MODE=#SYNC

    $H_POS=$H_POS

    ;Automatik extern

    IF $MODE_OP==#EX THEN

    CWRITE($CMD,STAT,MODE,"RUN /R1/CELL()")

    ENDIF

    ARCTECHDIGITAL INIT

    ARCD_WFD_PRE_INIT (WFD_PLUS_D,WFD_MINUS_D,OLD_WFD_D )

    USER INIT

    ; Please insert user defined initialization commands


    LOOP

    WAIT FOR NOT($POWER_FAIL)

    ARCTECHDIGITAL PLC

    IF (ARC20==TRUE) THEN

    A20_TECH ( )

    ARCD_WFD_FUNCTIONALITY(WFD_PLUS_D,WFD_MINUS_D,OLD_WFD_D)

    ENDIF

    USER PLC

    ;Make your modifications here

    ; Quittierung Froniussteuerung

    IF ($IN[39] AND NOT $IN[38]) THEN ;Kommunikation bereit und nicht Stromquelle bereit

    PULSE ($OUT[44], TRUE, 0.8) ;Quellen-Stoerung quittieren

    wait sec 1.0

    ; PULSE ($OUT[44], FALSE, 0.8)


    OUT 34 'Roboter bereit' State= TRUE

    $OUT[34]=TRUE

    ENDIF


    IF ($PERI_RDY==TRUE) THEN


    $OUT[35]=FALSE

    $OUT[36]=TRUE

    $OUT[37]=FALSE


    ENDIF


    IF ($PERI_RDY==FALSE) THEN


    $OUT[35]=TRUE

    $OUT[36]=TRUE

    $OUT[37]=FALSE


    ENDIF

    ;*******************************

    ; Seitenauswahl d. Bauteil-Prog.

    ;*******************************

    IF (STARTFREIG_A==TRUE) THEN

    SEITE_A=TRUE

    ENDIF

    IF (STARTFREIG_B==TRUE) THEN

    SEITE_B=TRUE

    ENDIF

    ;Kollisionsschutz Brenner Schweissen aus

    IF NOT $IN[101] AND NOT $T1 THEN

    ;$OUT[33]=FALSE

    $OV_PRO=0

    ENDIF

    ENDLOOP



    ;FOLD

    END



    DEF RESET_OUT ( )

    INT N

    $LOOP_MSG[]=" "

    IF REFLECT_PROG_NR == 1 THEN

    FOR N = 0 TO PGNO_LENGTH - 1

    $OUT[PGNO_FBIT_REFL + N] = FALSE

    ENDFOR

    ENDIF

    IF (PGNO_REQ>0) THEN

    $OUT[PGNO_REQ]=FALSE

    ELSE

    IF (PGNO_REQ<0) THEN

    $OUT[-PGNO_REQ]=TRUE

    ENDIF

    ENDIF

    END


    ARCTECHDIGITAL After


    DEF A20_TECH ( )

    IF ($PRO_STATE1==#P_STOP) THEN

    A20 (TECH_STOP )

    ENDIF

    END

    ;----------------------------------------------------------------

    DEF ARCD_WFD_PRE_INIT (WFD_P :OUT,WFD_M :OUT,OLD_WFD_STS :OUT )


    INT WFD_P,WFD_M,OLD_WFD_STS


    A_HPU_WFD_D=0 ;Reset Wirefeed key state

    WFD_P=0

    WFD_M=0


    IF (O_WRFEDP.NO>0) THEN

    IF (O_WELD_CTRL[O_WRFEDP.NO].OUT_NR>0) THEN

    WFD_P=O_WELD_CTRL[O_WRFEDP.NO].OUT_NR

    ENDIF

    ENDIF


    OLD_WFD_STS=0


    IF O_WRFEDN.NO>0 THEN

    IF (O_WELD_CTRL[O_WRFEDN.NO].OUT_NR>0) THEN

    WFD_M=O_WELD_CTRL[O_WRFEDN.NO].OUT_NR

    ENDIF

    ENDIF


    END ;(ARCD_WFD_PRE_INIT)

    ;------------------------------------------------------------------

    DEF ARCD_WFD_FUNCTIONALITY (WFD_P :OUT,WFD_M :OUT,OLD_WFD_STS :OUT )


    INT WFD_P,WFD_M,OLD_WFD_STS


    IF (OLD_WFD_STS <>A_HPU_WFD_D) THEN

    IF A_HPU_WFD_D<>0 THEN

    OLD_WFD_STS=A_HPU_WFD_D

    IF (A_HPU_WFD_D>0) THEN

    IF WFD_P<>0 THEN

    $OUT[WFD_P]=O_WRFEDP.STATE

    ENDIF

    ENDIF

    IF (A_HPU_WFD_D<0) THEN

    IF WFD_M<>0 THEN

    $OUT[WFD_M]=O_WRFEDN.STATE

    ENDIF

    ENDIF

    ELSE

    OLD_WFD_STS=A_HPU_WFD_D

    IF WFD_P<>0 THEN

    $OUT[WFD_P]= NOT (O_WRFEDP.STATE)

    ENDIF

    IF WFD_M<>0 THEN

    $OUT[WFD_M]= NOT (O_WRFEDN.STATE)

    ENDIF

    ENDIF

    ENDIF


    END ;(ARCD_WFD_FUNCTIONALITY)

    USER SUBROUTINE

    ; Integrate your user defined subroutines

  • ;Kollisionsschutz Brenner Schweissen aus

    IF NOT $IN[101] AND NOT $T1 THEN

    ;$OUT[33]=FALSE

    $OV_PRO=0

    ENDIF


    Was macht Dein Kollisionsschutz (Eingang 101) ?


    Gruss SJX

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

  • Hallo Philipp,


    noch ein Tipp am Rande: Du solltest in .sub Programmen keine Wartezeiten programmieren.

    Das bremst die Laufzeit des Submitinterpreters aus.


    IF ($IN[39] AND NOT $IN[38]) THEN ;Kommunikation bereit und nicht Stromquelle bereit

    PULSE ($OUT[44], TRUE, 0.8) ;Quellen-Stoerung quittieren

    wait sec 1.0

    ; PULSE ($OUT[44], FALSE, 0.8)


    OUT 34 'Roboter bereit' State= TRUE

    $OUT[34]=TRUE

    ENDIF


    $OUT[44] und $OUT[34] wird sowieso jeden Submit-Takt (~20ms) auf TRUE geschalten solange die IF-Bedingung erfüllt ist.


    Außerdem würde ich dir raten deinen E/As in der config.dat Namen zuzuweisen. Das macht das Programm leichter verständlich. Für dich und für uns ;).

  • Das Wahr das Problem . Danke !

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now