Moin !
Langsam kriege ich die Krise mit diesem sch****-Roboter.
Was mache ich falsch? Der Roboter soll Suchläufe durchführen, stoppen, dann die Palette aufnehmen, oder den Deckel ablegen. Das tut aber nicht. Anbei das Programm.
Ersma
Programm:
____________________________________________________
INTERRUPT DECL 10 WHEN NOT E_0B1 DO GEFUNDEN ( )
INTERRUPT DECL 11 WHEN NOT E_0B2 DO GEFUNDEN ( )
INTERRUPT DECL 12 WHEN E_0B1 DO VERLOREN ( )
PTP HOME ; Homeposition anfahren
LOOP
;----------------------
;- Hauptprogramm- -
;- schleife -
;----------------------
;----------------------
;- Abfrage ob Leer- -
;- palette auf Deckel--
;- stapelposition und -
;- nicht voll beladen -
;----------------------
IF E_2B1 AND (STAPEL<40) THEN
;---------------------------
;- Deckelabholprogramm -
;---------------------------
WAIT FOR E_0B1 AND E_0B2
WAIT FOR E_SIG_DECKEL
PTP P001 C_PTP ;Vorposition nach Home
PTP P002 C_PTP ;Vorposition vor Deckel holen
LIN P_DECKEL_HOL C_DIS ;Deckelabholposition
WAIT FOR NOT E_0B2
SAUG_AN ( ) ;Deckel aufnehmen
STAPEL=STAPEL+1
LIN P003 C_DIS ;Vorposition nach Deckel holen
PTP P004 C_PTP ;Vorposition vor Deckelablage
PTP P_START_ABL C_PTP ;Startposition Suchlauf Deckelstapel
SUCHE_DECKEL ( )
SAUG_AUS ( ) ;Deckel ablegen
PTP HOME ; Homeposition anfahren
ENDIF
;----------------------
;- Abfrage ob Leer- -
;- palette auf Deckel--
;- stapelposition und -
;- nicht voll beladen -
;----------------------
IF NOT E_2B1 AND E_1B1 AND (STAPEL>=40) THEN
;---------------------------
;- Leerpalettenholprogramm
;---------------------------
WAIT FOR E_0B1 AND E_0B2
PTP P101 C_PTP
PTP P102 C_PTP
PTP P103 C_PTP
SUCHE_PALETT ( )
SAUG_AN ( ) ;Leerpal. aufnehmen
PTP P104 C_PTP
SAUG_AUS ( ) ;Leerpal. abgeben
PTP HOME ; Homeposition anfahren
ENDIF
ENDLOOP
END
;---------------------------
;- Allgemeine Unterprogr -
;---------------------------
;----------------------------
;- Suchen Deckelstapel -
;----------------------------
DEF SUCHE_DECKEL ( )
INTERRUPT ON 11 ;Suchinterrupt EIN
LIN P_END_ABLAGE C_DIS ;Endposition Suchlauf Deckelstapel
$ADVANCE=0
INTERRUPT OFF 11 ;SUCHINTERRUPT AUS
PTP HOME ; Homeposition anfahren
$ADVANCE=3
END
;----------------------------
;- Suchen Leerpalette -
;----------------------------
DEF SUCHE_PALETT ( )
INTERRUPT ON 10 ;Suchinterrupt EIN
LIN P_AUFNAHME C_DIS ;Endposition Suchlauf Leerpaletten
$ADVANCE=0
INTERRUPT OFF 10 ;SUCHINTERRUPT AUS
PTP HOME ; Homeposition anfahren
$ADVANCE=3
END
;----------------------------
;- Suchen Deckel/Leer- -
;- palette beenden -
;----------------------------
DEF GEFUNDEN ( )
INTERRUPT OFF 10 ;SUCHINTERRUPT DECKEL AUS
INTERRUPT OFF 11 ;SUCHINTERRUPT LEERPAL AUS
$ADVANCE=0
BRAKE
RESUME
END
;-------------------------------
;- Stoerung Stueck verloren -
;-------------------------------
DEF VERLOREN ( )
INTERRUPT OFF 12 ;Teil-verloren-INTERRUPT AUS
$ADVANCE=0
BRAKE
HALT
RESUME
END
;-------------------------------
;- Palettensauger einschalten -
;-------------------------------
DEF SAUG_AN ( )
;Ventil 1 und 2 ansteuern
A_SAUG1_EIN=TRUE
A_SAUG2_EIN=TRUE
WAIT SEC 0.8
INTERRUPT ON 12 ;Teil-verloren-INTERRUPT EIN
END
;-------------------------------
;- Palettensauger ausschalten -
;-------------------------------
DEF SAUG_AUS ( )
INTERRUPT OFF 12 ;Teil verloren INTERRUPT AUS
;Ventil 1 und 2 ansteuern
A_SAUG1_EIN=FALSE
A_SAUG2_EIN=FALSE
WAIT SEC 0.5
END