KRC1 Steuerung Unterprogramm verlassen

  • Hallo liebe Roboterfreunde


    ich sitz grad an einem Robi mit einer KRC1 Steuerung leider besitze ich nur Unterlagen zu der KRC2.


    Hab das UP in der Config.dat deklariert und rufe es in meinem HP auf.
    Er sprint auch sauber rein ins UP, aber leider nicht mehr raus.


    Hab Befehle wie Exit, Return() oder Brake versucht.
    Keine Reaktion auser bei Brake da kommt Befehl nicht zugelassen :)


    Wie komm ich wieder aus dem UP raus??



    Im Voraus schon mal danke für eure Hilfe

  • Schritt für Schritt zum Roboterprofi!
  • Zum Rücksprung in das Programm aus dem heraus dein Up aufgerufen worden ist, muss eigentlich nichts eingegeben werden.


    DEF unterprogramm()
    .
    .
    .
    machwas
    .
    END


    Das Return wird nur bei einer Funktion bei der irgendwelche Parameter übergeben werden und ein Ergebnis zurückerwartet wird verwendet.

    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

  • Die deklaration mit


    DEF UP ()
    .
    INI
    .
    .
    END


    klappt nicht so richitg. Er bringt mir immer einen bzw. 33 Fehler bei Analyse.


    Danach steht das ganze mit


    ***DEF UP()
    .
    .
    INI
    .
    ***END
    drin.

    Einmal editiert, zuletzt von Ivgo ()

  • Wenn Fehlermeldungen kommen dann erstellt die KRC1 eine errordatei.
    Was steht denn da drinn?
    Kannst du das mal hier posten?
    Und eventuell auch dein up.

    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

  • Du hast das UP in der Config.dat deklariert??? Wie? Mit EXT?
    Bitte poste mal einen Programmabzug als Anhang. Deine beschreibung ist doch sehr lückenhaft.


    Wo hast du das UP eingerichtet? Die 3 Sterne kenne ich nur aus Fehlern in der $Config.dat!


    Welche Software-version?

    Greetings, Irrer Polterer!

    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.


    Life is a beta version. Full of bugs and no Manual.

    Einmal editiert, zuletzt von IrrerPolterer ()

  • KRC1
    Version2.2.8


    UP wurde in der Config.dat mit EXT HOLEN () unter USER EXTERNALS deklariert


    Der Fehler mit den Sternen wurde behoben....musste die DEF Zeile einblenden, hatte quasi zweimal die def Zeile.


    Das UP wurde als globales UP eingerichtet also mit eigenem src file.
    Ich hab nun nur noch das Problem wenn ich das UP im HP aufruf wird es abgearbeitet aber nicht mehr verlassen.
    Muss ich das UP im HP noch extra deklariern oder reicht es in der Config.dat oder gibt es einen Befehl um wieder heraus zu springen?


    Hier nun ein Programmauszug meines HPs.


    Mein UP heißt HOLEN ()



    &ACCESS RVP
    DEF SK_OBEN ( )


    ;FOLD INI;%{PE}%V2.2.2,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
    ;FOLD BAS INI;%{PE}%V2.2.2,%MKUKATPBASIS,%CINIT,%VINIT,%P
    INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
    BAS (#INITMOV,0 )
    ;ENDFOLD
    ;FOLD A20 INI;%{E}%V2.2.2,%MKUKATPA20,%CINIT,%VINIT,%P
    IF ARC20==TRUE THEN
    A20 (ARC_INI )
    INTERRUPT DECL 6 WHEN $CYCFLAG[3]==FALSE DO A20 (TECH_STOP2 )
    ENDIF
    ;ENDFOLD
    ;FOLD A10 INI;%{E}%V2.2.2,%MKUKATPARC,%CINIT,%VINIT,%P
    IF A10_OPTION==#ACTIVE THEN
    INTERRUPT DECL 4 WHEN $CYCFLAG[2]==FALSE DO A10 (#APPL_ERROR )
    INTERRUPT DECL 7 WHEN A_ARC_SWI==#ACTIVE DO A10 (#ARC_SEAM )
    INTERRUPT DECL 5 WHEN A_FLY_ARC==TRUE DO A10 (#HPU_ARC )
    INTERRUPT ON 5
    A10_INI ( )
    ENDIF
    ;ENDFOLD
    ;FOLD GRIPPER INI;%{E}%V2.2.2,%MKUKATPGRIPPER,%CINIT,%VINIT,%P
    USER_GRP (0,DUMMY,DUMMY,GDEFAULT )
    ;ENDFOLD
    ;FOLD SPOT INI;%{E}%V.2.2,%MKUKATPSPOT,%CINIT,%VINIT,%P
    USERSPOT (#INIT )
    ;ENDFOLD
    ;FOLD TOUCHSENSE INI;%{E}%V2.2.2,%MKUKATPTS,%CINIT,%VINIT,%P
    IF H70_OPTION THEN
    INTERRUPT DECL 15 WHEN $MEAS_PULSE[TOUCH_I[TOUCH_ACTIVE].IN_NR] DO H70 (6,CD0 )
    INTERRUPT DECL 16 WHEN $ZERO_MOVE DO H70 (7,CD0 )
    INTERRUPT DECL 17 WHEN $TECHPAR_C[FG_TOUCH,8]>0.5 DO H70 (8,CD0 )
    H70 (1,CD0 )
    ENDIF
    ;ENDFOLD
    ;FOLD USER INI;%{P}%V2.2.2,%MKUKATPUSER,%CINIT,%VINIT,%P
    ;Make your modifications here
    ;ENDFOLD
    ;ENDFOLD


    LOOP


    HOLEN ( )


    ;FOLD PTP ueber_bearbeitung Vel= 100 % PDAT1;%{PE}%R 2.4.6,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:ueber_bearbeitung, 3:, 5:100, 7:PDAT1
    PDAT_ACT=PPDAT1
    BAS (#PTP_DAT )
    FDAT_ACT=FUEBER_BEARBEITUNG
    BAS (#FRAMES )
    BAS (#VEL_PTP,100 )
    PTP XUEBER_BEARBEITUNG
    ;ENDFOLD


    ;FOLD LIN bearbeitung_1 Vel= 0.2 m/s CPDAT1;%{PE}%R 2.4.6,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:bearbeitung_1, 3:, 5:0.2, 7:CPDAT1
    LDAT_ACT=LCPDAT1
    BAS (#CP_DAT )
    FDAT_ACT=FBEARBEITUNG_1
    BAS (#FRAMES )
    BAS (#VEL_CP,0.2 )
    LIN XBEARBEITUNG_1
    ;ENDFOLD




    ENDLOOP


    ;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%V2.2.2,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
    $H_POS=XHOME
    PDAT_ACT=PDEFAULT
    BAS (#PTP_DAT )
    FDAT_ACT=FHOME
    BAS (#FRAMES )
    BAS (#VEL_PTP,100 )
    PTP XHOME
    ;ENDFOLD
    END

  • Wenn du jetzt noch in das Holen() Einsicht gewährst könnte man vielleicht helfen.
    ;)

    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

  • so hier noch das holen programm


    ist quasi ein leeres programm also INI PTP HOME --> PTP HOME --> END


    &ACCESS RVO
    DEF HOLEN ( )



    ;FOLD INI;%{PE}%V2.2.2,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
    ;FOLD BAS INI;%{PE}%V2.2.2,%MKUKATPBASIS,%CINIT,%VINIT,%P
    INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
    BAS (#INITMOV,0 )
    ;ENDFOLD
    ;FOLD A20 INI;%{E}%V2.2.2,%MKUKATPA20,%CINIT,%VINIT,%P
    IF ARC20==TRUE THEN
    A20 (ARC_INI )
    INTERRUPT DECL 6 WHEN $CYCFLAG[3]==FALSE DO A20 (TECH_STOP2 )
    ENDIF
    ;ENDFOLD
    ;FOLD A10 INI;%{E}%V2.2.2,%MKUKATPARC,%CINIT,%VINIT,%P
    IF A10_OPTION==#ACTIVE THEN
    INTERRUPT DECL 4 WHEN $CYCFLAG[2]==FALSE DO A10 (#APPL_ERROR )
    INTERRUPT DECL 7 WHEN A_ARC_SWI==#ACTIVE DO A10 (#ARC_SEAM )
    INTERRUPT DECL 5 WHEN A_FLY_ARC==TRUE DO A10 (#HPU_ARC )
    INTERRUPT ON 5
    A10_INI ( )
    ENDIF
    ;ENDFOLD
    ;FOLD GRIPPER INI;%{E}%V2.2.2,%MKUKATPGRIPPER,%CINIT,%VINIT,%P
    USER_GRP (0,DUMMY,DUMMY,GDEFAULT )
    ;ENDFOLD
    ;FOLD SPOT INI;%{E}%V.2.2,%MKUKATPSPOT,%CINIT,%VINIT,%P
    USERSPOT (#INIT )
    ;ENDFOLD
    ;FOLD TOUCHSENSE INI;%{E}%V2.2.2,%MKUKATPTS,%CINIT,%VINIT,%P
    IF H70_OPTION THEN
    INTERRUPT DECL 15 WHEN $MEAS_PULSE[TOUCH_I[TOUCH_ACTIVE].IN_NR] DO H70 (6,CD0 )
    INTERRUPT DECL 16 WHEN $ZERO_MOVE DO H70 (7,CD0 )
    INTERRUPT DECL 17 WHEN $TECHPAR_C[FG_TOUCH,8]>0.5 DO H70 (8,CD0 )
    H70 (1,CD0 )
    ENDIF
    ;ENDFOLD
    ;FOLD USER INI;%{P}%V2.2.2,%MKUKATPUSER,%CINIT,%VINIT,%P
    ;Make your modifications here
    ;ENDFOLD
    ;ENDFOLD



    ;FOLD PTP P1 Vel= 100 % PDAT1;%{PE}%R 2.4.6,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P1, 3:, 5:100, 7:PDAT1
    PDAT_ACT=PPDAT1
    BAS (#PTP_DAT )
    FDAT_ACT=FP1
    BAS (#FRAMES )
    BAS (#VEL_PTP,100 )
    PTP XP1
    ;ENDFOLD


    ;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%V2.2.2,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
    $H_POS=XHOME
    PDAT_ACT=PDEFAULT
    BAS (#PTP_DAT )
    FDAT_ACT=FHOME
    BAS (#FRAMES )
    BAS (#VEL_PTP,100 )
    PTP XHOME
    ;ENDFOLD
    END

  • Das passt schon alles.
    Wie äussert sich denn das 'springt nicht mehr raus' ? Wo bleibt der PZ stehen?


    Kann es sein, daß die ganzen Punkte auf ein und der selben Stelle geteacht sind?
    Da das ganz eine Endlosschleife ist, kann es sein, daß es nur so aussieht als ob das Unterprogramm
    nicht beendet wird, da die Anzeige nicht so schnell aufgefrischt wird.


    Programm im Einzelschritt ausführen und dabei nochmal kontrollieren, ob es da
    rausspringt, oder die Punkte mal etwas voneinander entfernt teachen.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden