No there is 24v (actually 27v) on the X11 for use on the inputs, if you check the terminal layout on the drawing (can't remember the pin number off hand).
Sent with Tapatalk.
No there is 24v (actually 27v) on the X11 for use on the inputs, if you check the terminal layout on the drawing (can't remember the pin number off hand).
Sent with Tapatalk.
106 is positive, 107 is negative (KRC2)
yes in krc 1 is pin 1 and 19 for +24V internal, 102 for 0V input (9-16) and pin 37 for 0V internal but i test it and that not work, i don't understand why!!
You cannot use pin 1 or 19 for source of 24v.
This is channel A and channel B source of voltage for safety inputs.
Schematics posted by panic mode are for X11 safety jumper plug.
Not for digital IO
yes I see that, but why 24 volt could not be used for inputs and outputs?
it is prohibited or discouraged?
Discouraged
I don't know the details but 24V for safety is probably very low amperage.
Therefore you can blow up safety fuse easily.
KUKA has separate source of voltage for your external devices pins 106 and 107.
In any case use of separate (external) 24V power supply is recommended for user IO.
Can someone explain me why my interruption don't work?
I have create sub file for set variable DEM_ACCES with $IN[11]
&ACCESS RVO
&PARAM TEMPLATE = C:\KRC\Roboter\Template\submit
&PARAM EDITMASK = *
DEF DEM_ACCES( )
;FOLD DECLARATIONS;%{PE}%3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD USER DECL;%{PE}%3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
; Please insert user defined declarations
;ENDFOLD (USER DECL)
;ENDFOLD (DECLARATIONS)
;FOLD INI;%{PE}%3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD USER INIT;%{E}%3.2.0,%MKUKATPBASIS,%CSPS,%VAUTOEXT,%P
; Please insert user defined initialization commands
;ENDFOLD (USER INIT)
;ENDFOLD (INI)
LOOP
;FOLD USER PLC;%{PE}%3.2.0,%MKUKATPUSER,%CSPS,%VSPS,%P
IF $IN[11] == TRUE THEN
DEM_ACCES = TRUE
ENDIF
;ENDFOLD (USER PLC)
ENDLOOP
;FOLD ;%{H};
END
;ENDFOLD
;FOLD USER SUBROUTINE;%{H}%V3.2.0,%MKUKATPUSER,%CSPS,%VSPS,%P
;Integrate your user defined subroutines
;ENDFOLD (USER SUBROUTINE)
Display More
and in my programme i declare this variables for trigger an interruption 10 and go to programme HOME, but don't working
&ACCESS RVP1
&REL 16
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF Roller_1( )
;FOLD INI;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD BAS INI;%{E}%V3.2.0,%MKUKATPBASIS,%CINIT,%VINIT,%P
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BAS INI)
;FOLD A20 INI;%{E}%V3.2.0,%MKUKATPA20,%CINIT,%VINIT,%P
IF ARC20==TRUE THEN
A20 (ARC_INI)
INTERRUPT DECL 6 WHEN $CYCFLAG[3]==FALSE DO A20(TECH_STOP2)
ENDIF
;ENDFOLD (A20 INI)
;FOLD A10 INI;%{E}%V3.2.0,%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 (A10 INI)
;FOLD GRIPPER INI;%{E}%V3.2.0,%MKUKATPGRIPPER,%CINIT,%VINIT,%P
USER_GRP(0,DUMMY,DUMMY,GDEFAULT)
;ENDFOLD (GRIPPER INI)
;FOLD SPOT INI;%{E}%V3.2.0,%MKUKATPSPOT,%CINIT,%VINIT,%P
USERSPOT(#INIT)
;ENDFOLD (SPOT INI)
;FOLD TOUCHSENSE INI;%{E}%V3.2.0,%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 (TOUCHSENSE INI)
;FOLD USER INI;%{E}%V3.2.0,%MKUKATPUSER,%CINIT,%VINIT,%P
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;FOLD INITIALISATION VARIABLES
;INITIALISATION VARIABLES
;FOLD OUT 17 'Ouverture Pince' State= TRUE CONT;%{PE}%R 4.1.7,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:17, 3:'Ouverture Pince', 5:TRUE, 6:CONTINUE
CONTINUE
$OUT[17]=TRUE
;ENDFOLD
;ENDFOLD
;********************
;*DEBUT DU PROGRAMME*
;********************
;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%V3.2.0,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
$H_POS=XHOME
PDAT_ACT=PDEFAULT
BAS (#PTP_DAT )
FDAT_ACT=FHOME
BAS (#FRAMES )
BAS (#VEL_PTP,100 )
PTP XHOME
;ENDFOLD
REPEAT
INTERRUPT ON 10
;FOLD PTP App_1_Prise_Boite CONT Vel= 100 % PDAT1 Tool[1]:Pince Base[1]:Prise boite;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:Approche_Prise_Boite_1, 3:C_PTP, 5:100, 7:PDAT1
$BWDSTART = FALSE
PDAT_ACT=PPDAT1
BAS(#PTP_DAT)
FDAT_ACT=FApp_1_Prise_Boite
BAS(#FRAMES)
BAS(#VEL_PTP,100)
PTP XApp_1_Prise_Boite C_PTP
;ENDFOLD
;FOLD WAIT FOR IN 13 'Autorisation Prise Boite' State= TRUE ;%{PE}%R 4.1.7,%MKUKATPBASIS,%CWAIT_FOR,%VWAIT_FOR,%P 1:0, 2:13, 3:'Autorisation Prise Boite', 5:TRUE, 6:
WAIT FOR $IN[13]==TRUE
;ENDFOLD
INTERRUPT OFF 10
;FOLD LIN App_2_Prise_Boite CONT Vel= 2 m/s CPDAT1 Tool[1]:Pince Base[1]:Prise boite;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:Approche_Prise_Boite_2, 3:C_DIS, 5:2, 7:CPDAT1
$BWDSTART = FALSE
LDAT_ACT=LCPDAT1
BAS(#CP_DAT)
FDAT_ACT=FApp_2_Prise_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XApp_2_Prise_Boite C_DIS
;ENDFOLD
;FOLD LIN Prise_Boite CONT Vel= 2 m/s CPDAT2 Tool[1]:Pince Base[1]:Prise boite;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:Prise_Boite, 3:C_DIS, 5:2, 7:CPDAT2
$BWDSTART = FALSE
LDAT_ACT=LCPDAT2
BAS(#CP_DAT)
FDAT_ACT=FPrise_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XPrise_Boite C_DIS
;ENDFOLD
;FOLD WAIT Time= 0.5 sec;%{PE}%R 4.1.7,%MKUKATPBASIS,%CWAIT,%VWAIT,%P 2:0.5
WAIT SEC 0.5
;ENDFOLD
;FOLD OUT 17 'Ouverture Pince' State= FALSE CONT;%{PE}%R 4.1.7,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:17, 3:'Ouverture Pince', 5:FALSE, 6:CONTINUE
CONTINUE
$OUT[17]=FALSE
;ENDFOLD
;FOLD WAIT FOR IN 14 'SQ1 Pince Fermee' State= TRUE ;%{PE}%R 4.1.7,%MKUKATPBASIS,%CWAIT_FOR,%VWAIT_FOR,%P 1:0, 2:14, 3:'SQ1 Pince Fermee', 5:TRUE, 6:
WAIT FOR $IN[14]==TRUE
;ENDFOLD
;FOLD LIN App_2_Prise_Boite CONT Vel= 2 m/s CPDAT3 Tool[1]:Pince Base[1]:Prise boite;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:Approche_Prise_Boite_2, 3:C_DIS, 5:2, 7:CPDAT3
$BWDSTART = FALSE
LDAT_ACT=LCPDAT3
BAS(#CP_DAT)
FDAT_ACT=FApp_2_Prise_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XApp_2_Prise_Boite C_DIS
;ENDFOLD
INTERRUPT ON 10
;FOLD LIN App_1_Prise_Boite CONT Vel= 2 m/s CPDAT4 Tool[1]:Pince Base[1]:Prise boite;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:Approche_Prise_Boite_1, 3:C_DIS, 5:2, 7:CPDAT4
$BWDSTART = FALSE
LDAT_ACT=LCPDAT4
BAS(#CP_DAT)
FDAT_ACT=FApp_1_Prise_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XApp_1_Prise_Boite C_DIS
;ENDFOLD
IF COLONNE_2 == TRUE THEN ; ***************
OFFSET.X = NB_COLONNE * OFFSET_X ; *Decalage en X*
ELSE ; ***************
OFFSET.x = 0
ENDIF
BASE_DATA[10] = BASE_DATA[2]:OFFSET
;FOLD PTP App_1_Depose_Boite CONT Vel= 100 % PDAT2 Tool[1]:Pince Base[10]:Roller 1;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:App_1_Dep_Boite_COL_1, 3:C_PTP, 5:100, 7:PDAT2
$BWDSTART = FALSE
PDAT_ACT=PPDAT2
BAS(#PTP_DAT)
FDAT_ACT=FApp_1_Depose_Boite
BAS(#FRAMES)
BAS(#VEL_PTP,100)
PTP XApp_1_Depose_Boite C_PTP
;ENDFOLD
;FOLD LIN App_2_Depose_Boite CONT Vel= 2 m/s CPDAT5 Tool[1]:Pince Base[10]:Roller 1;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:App_2_Dep_Boite_COL_1, 3:C_DIS, 5:2, 7:CPDAT5
$BWDSTART = FALSE
LDAT_ACT=LCPDAT5
BAS(#CP_DAT)
FDAT_ACT=FApp_2_Depose_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XApp_2_Depose_Boite C_DIS
;ENDFOLD
INTERRUPT OFF 10
; ***************
OFFSET.Z= NB_RANGEE * OFFSET_Z ; *Decalage en Z*
; ***************
BASE_DATA[10] = BASE_DATA[2]:OFFSET
;FOLD LIN App_3_Depose_Boite CONT Vel= 2 m/s CPDAT6 Tool[1]:Pince Base[10];%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:App_3_Dep_Boite_COL_1, 3:C_DIS, 5:2, 7:CPDAT6
$BWDSTART = FALSE
LDAT_ACT=LCPDAT6
BAS(#CP_DAT)
FDAT_ACT=FApp_3_Depose_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XApp_3_Depose_Boite C_DIS
;ENDFOLD
;FOLD LIN Depose_Boite CONT Vel= 2 m/s CPDAT7 Tool[1]:Pince Base[10];%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:Dep_Boite_COL_1, 3:C_DIS, 5:2, 7:CPDAT7
$BWDSTART = FALSE
LDAT_ACT=LCPDAT7
BAS(#CP_DAT)
FDAT_ACT=FDepose_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XDepose_Boite C_DIS
;ENDFOLD
;FOLD WAIT Time= 0.5 sec;%{PE}%R 4.1.7,%MKUKATPBASIS,%CWAIT,%VWAIT,%P 2:0.5
WAIT SEC 0.5
;ENDFOLD
;FOLD OUT 17 'Ouverture Pince' State= TRUE CONT;%{PE}%R 4.1.7,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:17, 3:'Ouverture Pince', 5:TRUE, 6:CONTINUE
CONTINUE
$OUT[17]=TRUE
;ENDFOLD
;FOLD WAIT FOR IN 15 'SQ2 Pince Ouverte' State= TRUE ;%{PE}%R 4.1.7,%MKUKATPBASIS,%CWAIT_FOR,%VWAIT_FOR,%P 1:0, 2:15, 3:'SQ2 Pince Ouverte', 5:TRUE, 6:
WAIT FOR $IN[15]==TRUE
;ENDFOLD
;FOLD LIN App_3_Depose_Boite CONT Vel= 2 m/s CPDAT8 Tool[1]:Pince Base[10];%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:App_3_Dep_Boite_COL_1, 3:C_DIS, 5:2, 7:CPDAT8
$BWDSTART = FALSE
LDAT_ACT=LCPDAT8
BAS(#CP_DAT)
FDAT_ACT=FApp_3_Depose_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XApp_3_Depose_Boite C_DIS
;ENDFOLD
; ********************************
OFFSET.z = 0 ; *Remise a zero du decalage en Z*
; ********************************
BASE_DATA[10] = BASE_DATA[2]:OFFSET
;FOLD LIN App_2_Depose_Boite CONT Vel= 2 m/s CPDAT9 Tool[1]:Pince Base[10]:Roller 1;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:App_2_Dep_Boite_COL_1, 3:C_DIS, 5:2, 7:CPDAT9
$BWDSTART = FALSE
LDAT_ACT=LCPDAT9
BAS(#CP_DAT)
FDAT_ACT=FApp_2_Depose_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XApp_2_Depose_Boite C_DIS
;ENDFOLD
INTERRUPT ON 10
;FOLD LIN App_1_Depose_Boite CONT Vel= 2 m/s CPDAT10 Tool[1]:Pince Base[10]:Roller 1;%{PE}%R 4.1.7,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:App_1_Dep_Boite_COL_1, 3:C_DIS, 5:2, 7:CPDAT10
$BWDSTART = FALSE
LDAT_ACT=LCPDAT10
BAS(#CP_DAT)
FDAT_ACT=FApp_1_Depose_Boite
BAS(#FRAMES)
BAS(#VEL_CP,2)
LIN XApp_1_Depose_Boite C_DIS
;ENDFOLD
;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%V3.2.0,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
$H_POS=XHOME
PDAT_ACT=PDEFAULT
BAS (#PTP_DAT )
FDAT_ACT=FHOME
BAS (#FRAMES )
BAS (#VEL_PTP,100 )
PTP XHOME
;ENDFOLD
IF COLONNE_2 == TRUE THEN ; ****************************
NB_RANGEE = NB_RANGEE + 1 ; *Compteur nombre de rangees*
ENDIF ; ****************************
IF COLONNE_2 == FALSE THEN ;**********************
COLONNE_2 = TRUE ;*Gestion 2eme colonne*
ELSE ;**********************
COLONNE_2 = FALSE
ENDIF
UNTIL NB_RANGEE == ROLLER_PLEIN
;****************************************
;*Fin de programme si 5 rangees empilees*
;****************************************
END
Display More
Prog HOME
&ACCESS RVP2
&REL 2
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF Home( )
;FOLD INI;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD BAS INI;%{E}%V3.2.0,%MKUKATPBASIS,%CINIT,%VINIT,%P
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BAS INI)
;FOLD A20 INI;%{E}%V3.2.0,%MKUKATPA20,%CINIT,%VINIT,%P
IF ARC20==TRUE THEN
A20 (ARC_INI)
INTERRUPT DECL 6 WHEN $CYCFLAG[3]==FALSE DO A20(TECH_STOP2)
ENDIF
;ENDFOLD (A20 INI)
;FOLD A10 INI;%{E}%V3.2.0,%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 (A10 INI)
;FOLD GRIPPER INI;%{E}%V3.2.0,%MKUKATPGRIPPER,%CINIT,%VINIT,%P
USER_GRP(0,DUMMY,DUMMY,GDEFAULT)
;ENDFOLD (GRIPPER INI)
;FOLD SPOT INI;%{E}%V3.2.0,%MKUKATPSPOT,%CINIT,%VINIT,%P
USERSPOT(#INIT)
;ENDFOLD (SPOT INI)
;FOLD TOUCHSENSE INI;%{E}%V3.2.0,%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 (TOUCHSENSE INI)
;FOLD USER INI;%{E}%V3.2.0,%MKUKATPUSER,%CINIT,%VINIT,%P
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;FOLD PTP HOME Vel= 100 % DEFAULT;%{PE}%V3.2.0,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
$H_POS=XHOME
PDAT_ACT=PDEFAULT
BAS (#PTP_DAT )
FDAT_ACT=FHOME
BAS (#FRAMES )
BAS (#VEL_PTP,100 )
PTP XHOME
;ENDFOLD
;FOLD WAIT FOR IN 10 'Depart Cycle(EXT_START)' State= TRUE ;%{PE}%R 4.1.7,%MKUKATPBASIS,%CWAIT_FOR,%VWAIT_FOR,%P 1:0, 2:10, 3:'Depart Cycle(EXT_START)', 5:TRUE, 6:
WAIT FOR $IN[10]==TRUE
;ENDFOLD
END
Display More
I can't find declaration of interrupt anywhere in your programs.
But assuming that it is somewhere else
INTERRUPT ON 10
and INTERRUPT OFF 10
These two commands do not stop advance run. They will get executed 3 motions steps ahead.
So it is possible that your interrupt is OFF when you think it is on.
do this
wait sec 0 ;stops advance run
interrupt on 10
and
wait sec 0 ;stops advance run
interrupt off 10
Now it should work exactly how you planned.
I think it is because DEM_ACCES has already TRUE
Can someone explain to me how return to the same place in my main program (ROLLER_1) for continue after the execution of the interruption program (HOME)?
yes I see that, but why 24 volt could not be used for inputs and outputs?it is prohibited or discouraged?
Using 24V for I/O is fine. So is to use external 24V on X11 (to power it). In fact using external 24V to bring power to X11 is you have to do when robot is part of a roboteam.
BUT...! This 24V (or 27V) is what you would bring to contacts 88 and 89 - to power X11 (ESC board).
Other contacts like 1, 5 etc are test outputs, and not power terminals.
this means:
a. current draw is limited
b. level is not constant (test outputs are pulse train with 70us pulses/gaps). this is used by ESC board to detect if circuit is wired correctly or not.
c. you mess with them wrong way, you may have to get another ESC (and maybe KPS600), so always watch polarity and proper connections
ok thanks for explication, and for that ?
I think it is because DEM_ACCES has already TRUE
Can someone explain to me how return to the same place in my main program (ROLLER_1) for continue after the execution of the interruption program (HOME)?
Modify message
not sure I understand (and too lazy to read everything)...
if your main program was running at the moment interrupt occurs, it will be resumed after interrupt is completed. if the robot was moving at the moment interrupt occurs, you can choose to cancel or pause that motion but you have to be aware of consequences and peculiarities of advance run pointer.
Problem solved, thanks for all