Wer kann mir folgendes Programm erklären? Was versteht man unter der Interrupt-Funktion und unter break?
&ACCESS RVP
DEF SCHOK ( )
EXT BAS (BAS_COMMAND :IN,REAL :IN )
;************************
DECL MSG_T EMPTY_MSG ;****
INT ANSWER ;**************
;************************
BAS (#INITMOV,0 )
;Achsgeschwindigkeit
FOR I=1 TO 6 STEP 1
$VEL_AXIS[I]=100
ENDFOR
;Achsbeschleunigung
FOR I=1 TO 6 STEP 1
$ACC_AXIS[I]=100
ENDFOR
$VEL.CP=0.15
$ACC.CP=0.5
$APO.CDIS=1
$APO.CORI=0
$APO.CVEL=50
$APO.CDIS=1
PL_NR=1
PTP XHOME
$BASE=BASE_DATA[8]
$TOOL=TOOL_DATA[10]
TAFEL=0
LOOP ;Endlosschleife
WAIT FOR $IN[202]==TRUE
TAFEL=TAFEL+1
IF TAFEL>7 THEN
EMPTY_MSG={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}
$MSG_T=EMPTY_MSG
$MSG_T.MODUL[]=" "
$MSG_T.KEY[]="Leider keine leckere Schokolade mehr da!"
$MSG_T.PARAM_TYP=#VALUE
$MSG_T.VALID=TRUE
WHILE $MSG_T.VALID
WAIT SEC 0.05
ENDWHILE
WAIT SEC 0.2
WAIT SEC 2
EXIT
ENDIF
PALL_INIT ( )
;PALL_TEACH ( )
BERECHNEN ( )
PALETTIEREN ( )
WAIT FOR $IN[203]==TRUE
NEU_ABLEGEN ( )
ABLEGEN ( )
ENDLOOP
PTP XHOME
END
;***** PALETTIEREN *****
DEF PALETTIEREN ( )
;Aufnehmen
PTP PAL_POS_2 C_PTP
LIN PAL_POS_1
;Greifer setzen
GREIFER_ZU ( )
;Hochfahren
PTP PAL_POS_2 C_PTP
END
DEF ABLEGEN ( )
PTP ABLEG_POS
GREIFER_AUF ( )
END
DEF BERECHNEN ( )
SWITCH TAFEL
CASE 1
NV={X 0,Y 0,Z 0,A 0,B 0,C 0}
CASE 2
NV={X 0,Y 0,Z -13,A 0,B 0,C 0}
CASE 3
NV={X 0,Y 0,Z -26,A 0,B 0,C 0}
CASE 4
NV={X 0,Y 0,Z -39,A 0,B 0,C 0}
CASE 5
NV={X 0,Y 0,Z -52,A 0,B 0,C 0}
CASE 6
NV={X 0,Y 0,Z -65,A 0,B 0,C 0}
CASE 7
NV={X 0,Y 0,Z -78,A 0,B 0,C 0}
ENDSWITCH
$BASE=BASE_DATA[8]:NV
END
;***** bearbeiten *****
DEF NEU_ABLEGEN ( )
SWITCH TAFEL
CASE 1
NV={X 0,Y 0,Z 13,A 0,B 0,C 0}
CASE 2
NV={X 0,Y 0,Z 26,A 0,B 0,C 0}
CASE 3
NV={X 0,Y 0,Z 39,A 0,B 0,C 0}
CASE 4
NV={X 0,Y 0,Z 52,A 0,B 0,C 0}
CASE 5
NV={X 0,Y 0,Z 65,A 0,B 0,C 0}
CASE 6
NV={X 0,Y 0,Z 78,A 0,B 0,C 0}
CASE 7
NV={X 0,Y 0,Z 91,A 0,B 0,C 0}
ENDSWITCH
$BASE=BASE_DATA[8]:NV
END
;***** PALETTIEREN INITIALISIEREN *****
DEF PALL_INIT ( )
$OUT[4]=FALSE
PAL_POS_1=UR_PAL
PAL_POS_2=UR_PAL
PAL_POS_2.Z=PAL_POS_1.Z+120
$TOOL=TOOL_DATA[10]
$BASE=BASE_DATA[8]
END
;***** PALETTIEREN TEACHEN *****
DEF PALL_TEACH ( )
$BASE=BASE_DATA[8]
$TOOL=TOOL_DATA[10]
LIN UR_PAL
HALT
LIN ABLEG_POS
HALT
END
;***** Greifer auf *****
DEF GREIFER_AUF ( )
$OUT[4]=FALSE
WAIT SEC 1.0
END
;***** Greifer zu *****
DEF GREIFER_ZU ( )
$OUT[4]=TRUE
WAIT SEC 1.0
END
;++++++++++++++++++++++++++++++++++++++++++++++++++