ABB Roboterschulung von praxiserfahrenen Trainern
in unserem Schulungszentrum in Mainburg oder vor Ort bei Ihnen
Bediener und Expertenschulungen anfragen

Neueste Beiträge

Seiten: [1] 2 3 ... 10
1
ABB Roboter / Re: IRC5 Multimove system
« Letzter Beitrag von Roland Keller am Gestern um 22:27:23 »
Zu 100% ABB in Friedberg
2
KUKA Roboter / Re: Justagereferenz
« Letzter Beitrag von Roland Keller am Gestern um 22:20:29 »
In $T1 funktioniert es? Aus Cell heraus? Und da kommt keine Meldung daß sich das System in der falschen Betriebsart befindet?
Erklär das bitte mal genauer.
Für $EXT solltest du das auch mal so programmieren wie du es haben möchtest und nicht so wie es in deiner CELL() aussieht.
3
&ACCESS RVO4
&REL 1
&PARAM DISKPATH = KRC:\R1\Program\C00
DEF c00_v_r_GET( )
;FOLD INI;%{PE}
  ;FOLD BASISTECH INI
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
    BAS (#INITMOV,0 )
INTERRUPT DECL 8 WHEN $IN[68] DO ABBRUCH()
INTERRUPT ON 8
  ;ENDFOLD (BASISTECH INI)
;FOLD SPOTTECH INI
USERSPOT(#INIT)
;ENDFOLD (SPOTTECH INI)
;FOLD GRIPPERTECH INI
USER_GRP(0,DUMMY,DUMMY,GDEFAULT)
;ENDFOLD (GRIPPERTECH INI)
  ;FOLD USER INI
    ;Make your modifications here

  ;ENDFOLD (USER INI)
;ENDFOLD (INI)

BEWEGUNG()

IF MSTOP==TRUE THEN
  RUE_RAUS()
  INTERRUPT ON 8
ENDIF

END
DEF BEWEGUNG()

;FOLD PTP HOME  Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS (#PTP_PARAMS,100 )
$H_POS=XHOME
PTP  XHOME
;ENDFOLD
TRIGGER WHEN DISTANCE=0 DELAY=0 DO ZRR=1
GRIP_VX_UNCLAMP()
;FOLD SPTP P1 Vel=100 % PDAT1 Tool[1]:GREIFER VX Base[1]:C00_120GRAD;%{PE}%R 8.3.40,%MKUKATPBASIS,%CSPLINE,%VSPTP_SB,%P 1:SPTP_SB, 2:P1, 3:, 5:100, 7:PDAT1
SPTP XP1 WITH $VEL_AXIS[1]= SVEL_JOINT( 100), $TOOL= STOOL2( FP1), $BASE= SBASE( FP1.BASE_NO),$IPO_MODE= SIPO_MODE( FP1.IPO_FRAME), $LOAD= SLOAD( FP1.TOOL_NO), $ACC_AXIS[1]= SACC_JOINT( PPDAT1), $GEAR_JERK[1]= SGEAR_JERK( PPDAT1)
;ENDFOLD
TRIGGER WHEN DISTANCE=0 DELAY=0 DO ZRR=10
; ABFRAGE TOR AUF
;FOLD WAIT FOR ( IN 112 'C00_Tor_ist_auf' );%{PE}%R 8.3.40,%MKUKATPBASIS,%CEXT_WAIT_FOR,%VEXT_WAIT_FOR,%P 2:, 4:, 5:$IN, 6:112, 7:C00_Tor_ist_auf, 9:
WAIT FOR  ( $IN[112] )
;ENDFOLD
;FOLD WAIT FOR ( IN 124 'Spanner_C00_V_R_zu' );%{PE}%R 8.3.40,%MKUKATPBASIS,%CEXT_WAIT_FOR,%VEXT_WAIT_FOR,%P 2:, 4:, 5:$IN, 6:124, 7:Spanner_C00_V_R_zu, 9:
WAIT FOR  ( $IN[124] )
;ENDFOLD
;########################################
;FOLD SLIN OBEN CONT Vel=2 m/s CPDAT1 ADAT0 Tool[1]:GREIFER VX Base[1]:C00_120GRAD;%{PE}%R 8.3.40,%MKUKATPBASIS,%CSPLINE,%VSLIN_SB,%P 1:SLIN_SB, 2:OBEN, 3:C_SPL, 5:2, 7:CPDAT1, 8:ADAT0
SLIN XOBEN WITH $VEL=SVEL_CP( 2, , LCPDAT1), $TOOL=STOOL2( FOBEN), $BASE= SBASE( FOBEN.BASE_NO),$IPO_MODE=SIPO_MODE( FOBEN.IPO_FRAME), $LOAD=SLOAD( FOBEN.TOOL_NO), $ACC=SACC_CP( LCPDAT1), $APO=SAPO( LCPDAT1), $ORI_TYPE=SORI_TYP( LCPDAT1), $JERK=SJERK( LCPDAT1) C_SPL
;ENDFOLD
TRIGGER WHEN DISTANCE=0 DELAY=0 DO ZRR=20
;FOLD LIN M_P Vel=0.1 m/s CPDAT8 Tool[1]:GREIFER VX Base[2]:C02_105GRAD;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:M_P, 3:, 5:0.1, 7:CPDAT8
$BWDSTART=FALSE
LDAT_ACT=LCPDAT8
FDAT_ACT=FM_P
BAS(#CP_PARAMS,0.1)
LIN XM_P
;ENDFOLD
;########################################
;FOLD LIN MITTE CONT Vel=0.1 m/s CPDAT2 Tool[1]:GREIFER VX Base[1]:C00_120GRAD;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:MITTE, 3:C_DIS C_DIS, 5:0.1, 7:CPDAT2
$BWDSTART=FALSE
LDAT_ACT=LCPDAT2
FDAT_ACT=FMITTE
BAS(#CP_PARAMS,0.1)
LIN XMITTE C_DIS C_DIS
;ENDFOLD
TRIGGER WHEN DISTANCE=0 DELAY=0 DO ZRR=30
;########################################
;FOLD LIN UNTEN Vel=0.04 m/s CPDAT3 Tool[1]:GREIFER VX Base[1]:C00_120GRAD;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:UNTEN, 3:, 5:0.04, 7:CPDAT3
$BWDSTART=FALSE
LDAT_ACT=LCPDAT3
FDAT_ACT=FUNTEN
BAS(#CP_PARAMS,0.04)
LIN XUNTEN
;ENDFOLD
;FOLD WAIT Time=0 sec;%{PE}%R 8.3.40,%MKUKATPBASIS,%CWAIT,%VWAIT,%P 3:0
WAIT SEC 0
;ENDFOLD
;aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
; GREIFER ZU UND SPANNER OEFFNEN
;FOLD WAIT FOR ( IN 50 'GRE_VX_R_BTK' );%{PE}%R 8.3.40,%MKUKATPBASIS,%CEXT_WAIT_FOR,%VEXT_WAIT_FOR,%P 2:, 4:, 5:$IN, 6:50, 7:GRE_VX_R_BTK, 9:
WAIT FOR  ( $IN[50] )
;ENDFOLD
    GRIP_VX_R_CLAMP()
;FOLD OUT 112 'C00 ROB IN POS' State=TRUE CONT;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:112, 3:C00 ROB IN POS, 5:TRUE, 6:CONTINUE
CONTINUE
$OUT[112]=TRUE
;ENDFOLD
;FOLD WAIT FOR ( IN 123 'Spanner_C00_V_R_auf' );%{PE}%R 8.3.40,%MKUKATPBASIS,%CEXT_WAIT_FOR,%VEXT_WAIT_FOR,%P 2:, 4:, 5:$IN, 6:123, 7:Spanner_C00_V_R_auf, 9:
WAIT FOR  ( $IN[123] )
;ENDFOLD
;FOLD OUT 112 'C00 ROB IN POS' State=FALSE CONT;%{PE}%R 8.3.40,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:112, 3:C00 ROB IN POS, 5:FALSE, 6:CONTINUE
CONTINUE
$OUT[112]=FALSE
;ENDFOLD
;eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
;FOLD LIN MITTE Vel=0.2 m/s CPDAT4 Tool[1]:GREIFER VX Base[1]:C00_120GRAD;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:MITTE, 3:, 5:0.2, 7:CPDAT4
$BWDSTART=FALSE
LDAT_ACT=LCPDAT4
FDAT_ACT=FMITTE
BAS(#CP_PARAMS,0.2)
LIN XMITTE
;ENDFOLD
;########################################
TRIGGER WHEN DISTANCE=0 DELAY=0 DO ZRR=20
;FOLD LIN OBEN Vel=2 m/s CPDAT5 Tool[1]:GREIFER VX Base[1]:C00_120GRAD;%{PE}%R 8.3.40,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:OBEN, 3:, 5:2, 7:CPDAT5
$BWDSTART=FALSE
LDAT_ACT=LCPDAT5
FDAT_ACT=FOBEN
BAS(#CP_PARAMS,2)
LIN XOBEN
;ENDFOLD
;########################################
TRIGGER WHEN DISTANCE=0 DELAY=0 DO ZRR=10
;FOLD SLIN P1 Vel=2 m/s CPDAT6 ADAT0 Tool[1]:GREIFER VX Base[1]:C00_120GRAD;%{PE}%R 8.3.40,%MKUKATPBASIS,%CSPLINE,%VSLIN_SB,%P 1:SLIN_SB, 2:P1, 3:, 5:2, 7:CPDAT6, 8:ADAT0
SLIN XP1 WITH $VEL=SVEL_CP( 2, , LCPDAT6), $TOOL=STOOL2( FP1), $BASE= SBASE( FP1.BASE_NO),$IPO_MODE=SIPO_MODE( FP1.IPO_FRAME), $LOAD=SLOAD( FP1.TOOL_NO), $ACC=SACC_CP( LCPDAT6), $ORI_TYPE=SORI_TYP( LCPDAT6), $JERK=SJERK( LCPDAT6)
;ENDFOLD
;########################################
TRIGGER WHEN DISTANCE=0 DELAY=0 DO ZRR=1
;FOLD PTP HOME  Vel= 100 % DEFAULT;%{PE}%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT
$BWDSTART = FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS (#PTP_PARAMS,100 )
$H_POS=XHOME
PTP  XHOME
;ENDFOLD

END

DEF ABBRUCH()

INTERRUPT OFF 8; INTERRUPT AUSSCHALTEN
BRAKE;  BREMSEN
MSTOP = TRUE; STOPMERKER SETZEN
IF $IN[42] THEN
   TiG = TRUE
ENDIF
RESUME; ABBRECHEN DER INTERRUPTROUTINE

END


DEF RUE_RAUS()

$out[68]=TRUE
$OV_PRO = 10

WHILE ZRR > 0

IF ZRR== 30 THEN
  LIN XMITTE
  ZRR = 20
ENDIF

IF ZRR== 20 THEN
  LIN XOBEN
  ZRR = 10
ENDIF

IF ZRR== 10 THEN
  LIN XP1
  ZRR = 1
ENDIF

IF ZRR== 1 THEN
  PTP XHOME
  ZRR = 0
ENDIF

ENDWHILE

END
Dies wäre eine mögliche Lösung. Hier muss ein Interrupt programmiert werden (hier: Interrupt 8), der den Abbruch in die Wege leitet. Im Hauptprogramm wird das Programm BEWEGUNG aufgerufen, in dem das normale Programm abläuft. Bei einer Störung oder einem Abbruch wird von der SPS der Eingang 68 geschaltet und damit das Programm ABBRUCH eingeleitet.
Im Programm ABBRUCH wird der Merker MSTOP gesetzt, der in der SPS.SUB wieder zurückgesetzt wird, wenn der Roboter in Home steht. Das Programm BEWEGUNG wird abgebrochen. In der nächsten Zeile steht die IF-Bedingung und das Programm RUE_RAUS wird aufgerufen und ausgeführt, bis der Roboter in Home steht.
Das Ganze must du natürlich spezifisch für dein eigenes Programm anpassen.
Viel Spass
OLDDRAGON  :lol:
4
KUKA Roboter / Re: Justagereferenz
« Letzter Beitrag von olddragon am Gestern um 11:57:06 »
In T1 funktioniert es ja. Aber nicht in Automatik EXT, so wie es bei der ersten Anlage (0775) der Fall ist. Ich möchte einfach, dass nach dem Einschalten der Roboter in AutoEXT die Referenz anfährt.
5
KUKA Roboter / Re: Justagereferenz
« Letzter Beitrag von d4nuu8 am Gestern um 11:42:36 »
Zur Referenzierung in T1 wird aufgefordert, wenn diese zuvor fehlgeschlagen ist. Schon mal in T1 abgefahren und erneut versucht?
6
KUKA Roboter / Justagereferenz
« Letzter Beitrag von olddragon am Gestern um 10:56:51 »
Hallo, Forum,
Ich habe in einer seit einem Jahr bestehenden Anlage 2 Safe-Roboter stehen, die wunderbar funktionieren. Die masref_main wird im CELL zyklisch aufgerufen (nach Start und Übergabe einer gültigen Programmnummer). Nach einem Neustart der Anlage (Hauptschalter ein) läuft das System hoch, CELL wird angewählt und die Programme darin auch ausgeführt. (Anlage 0775)
In einer neuen Anlage, die ich bereits fertig programmiert habe, funktioniert dieses automatische Referenzfahren seltsamerweise nicht, obwohl das CELL ähnlich programmiert wurde. Hier wird ein Fehler generiert, der mich zum Referenzfahren in T1 auffordert. Ich weiß aber nicht, was ich hier anders gemacht habe. (Anlage C00)

Roboter: KR20
Steuerung: KRC4-8.3.26
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Programmteil in beiden Anlagen:
DEF BREMSuREFTEST( )
masref_main()
braketestreq()
END
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Anlage 0775: BREMSuREFTEST wird nach Aufruf der Programmnummer - falls notwendig - ausgeführt: funktioniert
DEF  CELL ( )
 
INIT
BASISTECH INI

IF $IN[68] then
   PRG_ABBRUCH()
ENDIF
CHECK HOME
HOME  Vel= 100 % DEFAULT
AUTOEXT INI
  LOOP
    P00 (#EXT_PGNO,#PGNO_GET,DMY[],0 )
    SWITCH  PGNO ; Select with Programnumber

;======================================
    CASE 55; Vorrichtung 5:  Seite B    Serie
      BREMSuREFTEST()
      P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request
   BAS(#TOOL,4)
   BAS(#BASE,1)
   WAIT SEC 0.5
   Gcodeexecute("PROGRAMM_55.nc")
   TOOLLAENGE()
HOME  Vel= 100 % DEFAULT
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Anlage C00: BREMSuREFTEST wird nach Aufruf der Programmnummer - falls notwendig - ausgeführt: funktioniert NICHT - erzeugt Fehler: Referenztest in T1 durchführen.
DEF  CELL ( )

INIT
BASISTECH INI
CHECK HOME
HOME  Vel= 100 % DEFAULT
AUTOEXT INI
  LOOP
    P00 (#EXT_PGNO,#PGNO_GET,DMY[],0 )
    SWITCH  PGNO ; Select with Programnumber

    ;####################################
    
    CASE 7; Wartungsstellung anfahren     

     BREMSuREFTEST()
      P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 )
      WARTUNGSSTELLUNG()

    ;####################################
    
    CASE 11; TB_V_L_in C02 einlegen
     BREMSuREFTEST()
      P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 )
      V_L_IN_C02()

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Gibt es einen Parameter, der sich auf die Referenzfahrt bezieht bzw. der mich zwingend auffordert, eine Referenzfahrt in T1 durchzuführen? Wenn ja, warum funktioniert es dann bei der ersten Anlage?
7
KUKA Roboter / Re: Wert von Variable soll nach Neustart erhalten bleiben
« Letzter Beitrag von WolfHenk am 15. August 2017, 19:11:08  »
Semikolon: Nein, Das ist C++ und Python z.B. 
bei KRL ist ; das Zeichen für "Es folgt ein Kommentar bis Zeilenrücklauf"
Zuweisungen (irgendwas) muss sein (und wenns -99 ist) damit die Werte bei Stromaus erhalten bleiben.
Zuweisungen werden ja dann im Programm gesetzt und gelesen und im Dat-File immer aktualisiert. 
8
ABB Roboter / Re: IRC5 Multimove system
« Letzter Beitrag von Konstantin am 15. August 2017, 19:05:37  »
Hallo Thilbi
Mit SaveMove gab es da mal eine Begrenzung auf 2 Roboter!
Gruß,
Konstantin
9
KUKA Roboter / Re: Wert von Variable soll nach Neustart erhalten bleiben
« Letzter Beitrag von LunoLbo am 15. August 2017, 13:38:12  »
Danke WolfHenk!
müssen da noch ";" (Semikolons) hinter die Zuweisungen? Und: Auch bei Neustart werden die Variablen
nicht auf den Wert initialisiert? D.h. es ist eigentlich egal, welchen Wert ich zuweise?
Thx!
10
KUKA Roboter / Re: VKRC4 Kommunikationsfehler Profisafe 15009
« Letzter Beitrag von Ser-G am 15. August 2017, 12:50:46  »
Eventuell EMV-Probleme.
Die Erdung und den Schirm kontrollieren
Seiten: [1] 2 3 ... 10

über das Roboterforum

Nutzungsbedingungen Impressum
Sitemap