Hallo liebe Community,
ich habe folgende Aufgabe zu lösen:
Mein Roboter KRC 4 R600 mit der KRC 5 micro Steuerung ist mit einem Vakuumgreifer bestückt.
Es geht um das Handling zwei verschiedener Baugrößen (Quadrat-/ Block-Form) in ein Werkzeug.
Nach dem bearbeiten durch das Werkzeug soll das Bauteil zurück auf seine ursprüngliche Tray-Position abgelegt werden.
Der Greifer verfügt über 4 Sauggreifer, 2x Quadrat und 2x Block-Handling. (siehe Skizze)
Es müssen pro Tray 20 Bauteile bearbeitet werden.
Zu meiner Frage:
Hier am besten erstmal der Code.
1 IF diVakuum1==FALSE THEN
2
3 ;FOLD Unbearbeitete_Varistoren_prüfen
4 IF edited_QUADR[1]==FALSE THEN
5 XP11=XP_QUADRAT_V1_P[1]
6 ELSE
7 IF edited_QUADR[2]==FALSE THEN
8 XP11=XP_QUADRAT_V1_P[2]
9 ELSE
10 IF edited_QUADR[3]==FALSE THEN
11 XP11=XP_QUADRAT_V1_P[3]
12 ELSE
13 IF edited_QUADR[4]==FALSE THEN
14 XP11=XP_QUADRAT_V1_P[4]
15 ...
16 ...
17 ...
18 ENDIF
19 ENDIF
20 ENDIF
21 ENDIF
22 ;ENDFOLD Unbearbeitete_Varistoren_prüfen
24
23 ENDIF
Alles anzeigen
Die Idee ist folgende:
(Zeile 1) Zuerst wird geprüft an welchem der beiden Sauger kein Vakuum anliegt / somit auch kein Bauteil angesaugt ist.
(Zeile 4-17....) Anschließend wird geprüft welche Bauteile im Tray noch unbearbeitet sind. Die Variable
"edited_QUADR" setze ich nach dem es bearbeitet wurde auf TRUE und markiere somit dieses Bauteil im Tray als abgearbeitet.
Die IF-Verschachtelung soll dem Roboter somit eine Position eines unbearbeiteten Bauteils übergeben.
Die beiden Felder sind in der dat.file wie folgt hinterlegt:
DECL BOOL edited_QUADR [20]
edited_QUADR[1] = False
edited_QUADR[2] = False
edited_QUADR[3] = False
edited_QUADR[4] = False
...
...
...
DECL E6POS XP_QUADRAT_V1_P[20]
XP_QUADRAT_V1_P[1]={X 0.0,Y 0.0,Z 0.0,......}
XP_QUADRAT_V1_P[2]={X 50.0,Y 0.0,Z 0.0,......}
XP_QUADRAT_V1_P[3]={X 100.0,Y 0.0,Z 0.0,......}
XP_QUADRAT_V1_P[4]={X 150.0,Y 0.0,Z 0.0,......}
...
...
...
Alles anzeigen
Die Funktion müsste gegeben sein, ich hab nur das Gefühl, dass man die IF-Verschachtelung auch deutlich einfacher gestalten kann.
Habt ihr dafür Tipps/Tricks?
Vielen Dank schon mal für die Hilfe,
Grüße