und da bin ich wieder
kurzer zwischenstand, automatikprogramm läuft problemlos ab, Material holen, Stempeln, Presse einfahren
nun soll eine zwischenstation noch gemacht werden für das schmieren des Materials
ich wähl erst aus ob es mit/ohne schmierung laufen soll und der Roboter fähr dann dem entsprechend wobei bei schmieren die Achse 6 um 180° gedreht ist, hat oben und unten Sauger,
das fährt er alles ab, aber er fährt nicht zu home position und spuckt mir die 1401 meldung raus
den code hab ich nicht auf dem PCS, aber hab im Editor Kommentriert wo er auftritt, nach if else anweisung
also das if bzw. else fährt er ab, dann kehrt er ja in die Zeile zurück und dann kommt die meldung
in der "mitschmieren" steht der ablauf mit 180° gedrehter achse und "ohneschmieren" originaler laufbahn
edit "ohneschmieren" ablauf geht dann in die home Position, d.h das hängt mit if iwie zusammen, wenn ich die beide zeile aufteile, if mit then endif if ohne then endif home, kommt die selbe meldung
DEF Presse( )
;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)
If doRobInService == false then
;FOLD Stations INI
xablage = xteach
x_3 = offset_x_3 / 100.0
y_3 = offset_y_3 / 100.0
z_3 = offset_z_3 / 100.0
xablage.x = xablage.x + x_3
xablage.y = xablage.y + y_3
xablage.z = xablage.z + z_3
xvorpos = xablage
xvorpos.z = xvorpos.z + vorposz
xvorpresse = xvorpos
xvorpresse.x = xvorpresse.x + vorpospressex
;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
;FOLD TeachPosition
IF False then
; ======== Hier Satzanwahl um den Punkt zu Teachen ========
;FOLD PTP teach Vel= 100 % PDAT1 Tool[1]:Sauger Base[1]:Presse;%{PE}%R 4.1.16,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:teach, 3:, 5:100, 7:PDAT1
$BWDSTART = FALSE
PDAT_ACT=PPDAT1
BAS(#PTP_DAT)
FDAT_ACT=Fteach
BAS(#FRAMES)
BAS(#VEL_PTP,100)
PTP Xteach
;ENDFOLD
halt
Endif
;ENDFOLD
IF diMitSchmieren == TRUE THEN
mitschmieren()
ELSE
ohneschmieren()
ENDIF
;HIER KOMMT IMMER DIE MELDUNG DANN
;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
ENDIF
END
def mitschmieren ()
;blabla
end
def ohneschmieren()
;blabla
end
Alles anzeigen