Werner Hampel
Administrator
Forenjunkie
    
Offline
Geschlecht: 
Beiträge: 1476

|
 |
« Antworten #3 am: 03. April 2006, 12:21:28 » |
|
ja, an Programmbeispielen mangelt es generell. Aber bei den anderen Roboterherstellern ebenso...
Zur Erklärung, warum selten Roboterprogramme weitergegeben werden ist: - Die Roboterprogramme gehören unseren Kunden und wir wollen / dürfen sie deshalb nicht veröffentlichen. - Roboterprogramme zu schreiben benötigt ein bisschen Zeit und muss vor Ort getestet werden.
Ich fang da im Prinzip auch immer von vorne an, so aufwendig is die Programmierung bei Melfa Basic ja eh nicht.
im Prinzip so:
Roboterprogramm 1 mit .mb4 und .pos Datei erstellen: 1.mb 1.pos
Dann in die 1.MB Dein Programm reinschreiben.
Zum Beispiel so: (schnell zusammenkopiertes altes Programm)
1 '************************************************************************* 2 ' MB4 Beispielprogramm ROBTEC GmbH 3 '************************************************************************* 4 ' letzte Aenderung 03.04.2006 12:30 5 ' Werner Hampel / ROBTEC GmbH 6 ' Tel.: 0871 2763 110 (von 7:00 h - 20:00 h) 7 '************************************************************************* 13 ' 14 ' Origin Werte (nach Kalibrierung hier neu eintragen !) 15 ' 1.Original 2.aktuell (Datum: 03.04.02) 16 ' D 06U84F 06U5#7 17 ' J1 Z2Y6L6 Z2Y6AL 18 ' J2 YZU@DQ YZU@DI 19 ' J3 Z2V?@1 Z2V@2D 20 ' J4 Z2OUHK Z2OTDA 21 ' J5 Z2XNO& Z2XQ?& 22 ' J6 Z2V8FM Z2V8LJ 23 '************************************************************************* 24 ' Definition Eingänge 25 '************************************************************************* 26 DEF IO IGETL = BIT,6 'Eingang Freigabe 1 27 DEF IO ISETL = BIT,7 'Eingang Freigabe 2 28 DEF IO IGETR = BIT,8 'Eingang Freigabe 3 30 DEF IO IGOHOME = BIT,9 'Startbefehl gehe in Homeposition 34 DEF IO IKLEBRDY = BIT,11 'Eingang Station 1 bereit 44 ' 98 '************************************************************************* 100 ' Definition Ausgänge 102 '************************************************************************* 104 ' 106 DEF IO OSETRDY = BIT,8 'Ausgang Freigabe 1 108 DEF IO OROBEIN = BIT,6 'Roboter bereit 110 DEF IO OROBERR = BIT,7 'Roboter gestört 112 DEF IO OGETRDY = BIT,5 'Teil 1 geholt 114 DEF IO OROBHOM = BIT,9 'Roboter in Grundstellung 146 DEF IO OSP1 = BIT,27 'Spanner 1 schließen 148 DEF IO OSP2 = BIT,28 'Spanner 2 schließen
98 '************************************************************************* 100 ' Positionsmerker 102 '************************************************************************* 200 DEF INTE POSI 'Merker letzte Position 201 ' 0 Homeposition 202 ' 1 vor Homeposition 203 ' 10 Applikationspositionen 204 ' 100 Vorposition 1 205 ' 101 Holen 11 206 ' 102 Holen 12 207 ' 105 Holen 13 210 ' 200 Vorposition 2 211 ' 201 Holen 21 212 ' 202 Holen 22 213 ' 300 Vorposition 3 214 ' 301 Holen 31 215 ' 302 Holen 32 263 ' 600 Position Mülleimer
300 DEF INTE TIMER 'Variable TIMER für Überwachungszeit
999 FINE 220 'Genaue Positionierung fordern 1000 SERVO ON 1005 OVRD 10 1010 GOSUB *INIT 'Variablen initialisieren 1020 IF M_SVO <> 1 THEN GOTO 1020 'Warten bis Servo ON 1030 GOSUB *MUELL 1040 'IF IGRC0O = 0 THEN GOSUB *MUELL 'Wenn ein Greifer nicht offen > zum Mülleimer 1090 NTEIL% = 0 1100 IF IGETL = 1 THEN GOSUB *GETL 1110 IF ISETL = 1 THEN GOSUB *SETL 1120 IF IGETR = 1 THEN GOSUB *GETR 1130 IF ISETR = 1 THEN GOSUB *SETR 1140 IF IGOHOME = 1 THEN GOSUB *GOHOME 1150 GOTO 1100 1196 ' 1197 '************************************************************************* 1198 ' Unterprogramm Homeposition anfahren 1199 '************************************************************************* 1200 *GOHOME 1201 CNT 0 1202 FINE 0 'Genaue Positionierung deaktivieren 1203 IF ITROPR = 0 THEN GOTO 1203 'Warten bis Tropschutz rueck 1204 IF POSI% = 0 THEN GOTO 1664 1206 IF POSI% = 1 THEN GOTO 1664 1208 IF POSI% = 10 THEN GOTO 1346 1210 IF POSI% = 11 THEN GOTO 1336 1212 IF POSI% = 12 THEN GOTO 1342 1214 IF POSI% = 100 THEN GOTO 1664 1216 IF POSI% = 101 THEN GOTO 1360 1218 IF POSI% = 102 THEN GOTO 1352 1220 IF POSI% = 103 THEN GOTO 1380 1222 IF POSI% = 104 THEN GOTO 1372 1224 IF POSI% = 105 THEN GOTO 1392 1226 IF POSI% = 200 THEN GOTO 1664 1228 IF POSI% = 201 THEN GOTO 1448 1230 IF POSI% = 202 THEN GOTO 1456 1332 IF POSI% = 600 THEN GOTO 1664 1334 HLT 'Unbekannte Position 1336 GOSUB *TOOL_CV 1338 MVS PKLEBCVV 1340 GOTO 1346 1342 GOSUB *TOOL_CV 1344 MVS PKLELCVV 1346 GOSUB *TOOL_0 1348 MOV PHKLEB 1350 GOTO 1664 1352 OGRC0 = 1 'Greifer auf 1354 GOSUB *TOOL_C0 1356 MOV PBCL0,-10 1358 GOTO 1366 1360 OGRC0 = 1 'Greifer auf 1362 GOSUB *TOOL_C0 1364 MOV PACL0,-10 1366 GOSUB *TOOL_0 1368 MOV PHCL0 1370 GOTO 1664 1372 OGRC2 = 1 'Greifer auf 1374 GOSUB *TOOL_C2 1376 MOV PBCL2,-10 1378 GOTO 1386 1380 OGRC2 = 1 'Greifer auf 1382 GOSUB *TOOL_C2 1384 MOV PACL2,-10 1386 GOSUB *TOOL_0 1388 MOV PHCL2 1390 GOTO 1664 1392 OGRC1 = 1 'Greifer auf 1394 GOSUB *TOOL_0 1396 MOV PHCL1 1398 GOTO 1664 1400 OGRC0 = 1 'Greifer auf 1402 GOSUB *TOOL_C0 1404 MOV PBCR0,-10 1406 GOTO 1414 1408 OGRC0 = 1 'Greifer auf 1410 GOSUB *TOOL_0 1412 MOV PHACR0 1414 GOSUB *TOOL_0 1416 MOV PHCR0 1418 GOTO 1664 1420 OGRC2 = 1 'Greifer auf 1602 GOTO 1700 1604 OGRC2 = 1 'Greifer auf 1606 GOSUB *TOOL_C2 1608 MVS PSETCR2,-10 1610 GOSUB *TOOL_C2 1612 MOV P1SETCR2 1614 GOSUB *TOOL_C2 1616 MOV P2SETCR2 1618 GOSUB *TOOL_0 1620 MOV PHSETCR2 1622 GOTO 1700 1624 OGRCM = 1 'Greifer auf 1626 GOSUB *TOOL_CM 1628 MVS PSETCRM,-10 1630 GOSUB *TOOL_CM 1632 MOV P1SETCRM 1634 GOSUB *TOOL_CM 1636 MOV P2SETCRM 1638 GOSUB *TOOL_0 1640 MOV PHSETCRM 1642 GOTO 1700 1644 OGRCV = 1 'Greifer auf 1646 GOSUB *TOOL_CV 1648 MOV P4SETCRV 1650 GOSUB *TOOL_CV 1652 MOV P2SETCRV 1654 GOSUB *TOOL_CV 1995 ' 1996 '************************************************************************* 1997 ' Unterprogramm Clips holen 1998 '************************************************************************* 1999 ' 2000 *GETL 2005 GOSUB *GOHOME 2007 OVRD 100 2010 OROBHOM = 0 2016 OTROPFR = 1 'Tropfschutz rueck EIN 2017 IF ITROPR = 0 THEN GOTO 2017 'Warten bis Tropschutz rueck 2018 OTROPFR = 0 'Tropfschutz rueck AUS 2020 IF NTEIL% <> 0 THEN GOTO *ERROR4 'Hat schon Clips geholt 2025 GOTO 2065 2030 *GETR 2040 GOSUB *GOHOME 2042 OVRD 100 2045 OROBHOM = 0 2050 IF NTEIL% <> 0 THEN GOTO *ERROR4 'Hat schon Clips geholt 2051 OTROPFR = 1 'Tropfschutz rueck EIN 2052 IF ITROPR = 0 THEN GOTO 2052 'Warten bis Tropschutz rueck 2053 OTROPFR = 0 'Tropfschutz rueck AUS 2055 GOTO 2105 2065 NTEIL% = 2 'Merker hole linke Clips 2066 IF ICL0RDY = 0 THEN GOTO 2066 2067 IF ICL1RDY = 0 THEN GOTO 2066 2068 IF ICL2RDY = 0 THEN GOTO 2066 2069 IF ICMRDY = 0 THEN GOTO 2066 2070 IF ICVRDY = 0 THEN GOTO 2066 2071 GOSUB *GETCL0 2075 GOSUB *GETCL1 2080 GOSUB *GETCL2 2085 GOSUB *GETCM 2090 GOSUB *GETCVL 2095 GOTO 2135 2100 ' 2105 NTEIL% = 1 'Merker hole rechte Clips 2106 IF ICR0RDY = 0 THEN GOTO 2106 2107 IF ICR1RDY = 0 THEN GOTO 2106 2108 IF ICR2RDY = 0 THEN GOTO 2106 2109 IF ICMRDY = 0 THEN GOTO 2106 2110 IF ICVRDY = 0 THEN GOTO 2106 2111 GOSUB *GETCR0 2115 GOSUB *GETCR1 2120 GOSUB *GETCR2 2125 GOSUB *GETCM 2130 GOSUB *GETCVR 2135 OGETRDY = 1 'Meldung Clips geholt 2140 OROBWORK = 0 2145 IF IGETL = 1 THEN GOTO 2145 2150 IF IGETR = 1 THEN GOTO 2145 2155 OGETRDY = 0 2160 RETURN 2195 ' 2196 '************************************************************************* 2197 ' Unterprogramm Clips setzen 2198 '************************************************************************* 2199 ' 2200 *SETL 2205 IF NTEIL% = 0 THEN GOTO *ERROR5 'Habe keine Clips 2210 GOSUB *KLEBERL 2211 OTROPFR = 1 'Tropfschutz rueck EIN 2212 IF ITROPR = 0 THEN GOTO 2212 'Warten bis Tropschutz rueck 2213 OTROPFR = 0 'Tropfschutz rueck AUS 2217 CNT 1 2218 MOV PVHSET1 2220 MOV PHSET 2225 GOTO 2270 2235 *SETR 2240 IF NTEIL% = 0 THEN GOTO *ERROR5 'Habe keine Clips 2245 GOSUB *KLEBERR 2246 OTROPFR = 1 'Tropfschutz rueck EIN 2247 IF ITROPR = 0 THEN GOTO 2247 'Warten bis Tropschutz rueck 2248 OTROPFR = 0 'Tropfschutz rueck AUS 2251 CNT 1 2252 MOV PVHSET1 2255 MOV PHSET1 2260 GOTO 2295 2270 IF NTEIL% <> 2 THEN GOTO *ERROR6 2275 OROBWORK = 1 2280 GOSUB *SETCLNK 'Setze linke Clips 2285 GOTO 2315 2295 IF NTEIL% <> 1 THEN GOTO *ERROR6 2300 OROBWORK = 1 2305 GOSUB *SETCRECH 'Setze rechte Clips 2315 NTEIL% = 0 'Greifer leer 2320 MOV PHSET1 'Bei Test Kleben ohne Einsetzen auskommentieren 2325 GOSUB *GOHOME 'Bei Test Kleben ohne Einsetzen auskommentieren 2330 OROBWORK = 0 2335 OSETRDY = 1 'Meldung Setzen fertig 2340 IF ISETL = 1 THEN GOTO 2340 2345 IF ISETR = 1 THEN GOTO 2340 2350 OSETRDY = 0 2355 RETURN 2995 ' 8995 ' 8996 '************************************************************************* 8997 ' Unterprogramm Mülleimer 8998 '************************************************************************* 8999 ' 9000 *MUELL 9002 OVRD 20 9004 GOSUB *GOHOME 'Gehe in Homepüosition 9006 OVRD 50 9008 GOSUB *TOOL_0 9010 CNT 0 9012 MOV PMUELL 9014 POSI% =600 'Positionsmerker ROB in Mülleimer 9016 OGRC0 = 1 'Greifer 1 auf 9018 OGRC1 = 1 'Greifer 2 auf 9020 OGRC2 = 1 'Greifer 3 auf 9022 OGRCM = 1 'Greifer 4 auf 9024 OGRCV = 1 'Greifer 5 auf 9051 DLY 0.1 9052 OGRC0 = 0 'Greifer 1 zu 9054 OGRC1 = 0 'Greifer 2 zu 9056 OGRC2 = 0 'Greifer 3 zu 9058 OGRCM = 0 'Greifer 4 zu 9060 OGRCV = 0 'Greifer 5 zu 9087 DLY 0.1 9088 OGRC0 = 1 'Greifer 1 auf 9090 OGRC1 = 1 'Greifer 2 auf 9092 OGRC2 = 1 'Greifer 3 auf 9094 OGRCM = 1 'Greifer 4 auf 9096 OGRCV = 1 'Greifer 5 auf 9196 NTEIL% = 0 'Merker Greifer leer 9198 GOSUB *GOHOME 9200 CNT 1 9202 RETURN 9495 ' 9496 '************************************************************************* 9497 ' Unterprogramm Variablen initialisieren 9498 '************************************************************************* 9499 ' 9500 *INIT 9501 VERH = 0.01 9502 VERB = 0.6 9503 VERR = 0.3 9504 TIMER% = 0 9505 OKLHSTA = 0 'Kleber H Start AUS 'Kleber H Start AUS 9506 OKLBSTA = 0 'Kleber B Start AUS 9507 OKLBSTO = 1 'Kleber B Stop 9508 OKLHSTO = 1 'Kleber H Stop 9509 OSP1 = 0 'Spanner 1 schließen AUS 9510 OSP2 = 0 'Spanner 1 schließen AUS 9511 OSP3 = 0 'Spanner 1 schließen AUS 9512 OSP4 = 0 'Spanner 1 schließen AUS 9513 OSP5 = 0 'Spanner 1 schließen AUS 9554 OROBWORK = 0 9556 FINE 220 'Genaue Positionierung fordern 9558 IF IGETL = 1 THEN GOTO 9558 'Warten bis alle Startbefehle auf 0 9560 IF ISETL = 1 THEN GOTO 9558 9562 IF IGETR = 1 THEN GOTO 9558 9564 IF ISETR = 1 THEN GOTO 9558 9565 OVRD 100 9566 OGRC0 = 1 'Greifer 1 auf 9567 OGRC1 = 1 'Greifer 2 auf 9568 OGRC2 = 1 'Greifer 3 auf 9569 OGRCM = 1 'Greifer 4 auf 9570 OGRCV = 1 'Greifer 5 auf 9590 RETURN 9596 ' 9597 '************************************************************************* 9598 ' Unterprogramm Überwachungszeit 9599 '************************************************************************* 9600 *ZEIT 9605 DLY 0.1 9610 IF TIMER% = 0 THEN GOTO 9620 'Timer ist schon 0 9615 TIMER% = TIMER% - 1 9620 RETURN 9696 ' 9697 '************************************************************************* 9698 ' Unterprogramm Fehlernummer setzen 9699 '************************************************************************* 9700 *ERROR1 9702 OERRB0 = 1 'Fehlernummer 1 GREIFER STÖRUNG 9704 OERRB1 = 0 9706 OERRB2 = 0 9708 HLT 9710 *ERROR2 9712 OERRB0 = 0 'Fehlernummer 2 KLEBER STÖRUNG 9714 OERRB1 = 1 9716 OERRB2 = 0 9718 HLT 9750 *ERROR6 9752 OERRB0 = 0 'Fehlernummer 6 Habe falsche CLIPS 9754 OERRB1 = 1 9756 OERRB2 = 1 9758 HLT 9896 '************************************************************************* 9897 ' Unterprogramm Tooldaten anfahren 9898 '************************************************************************* 9900 *TOOL_0 9902 TOOL (+0.00,+0.00,+0.00,+0.00,+0.00,+0.00) 9904 RETURN 9906 *TOOL_C0 9908 TOOL (+0.00,+0.00,+0.00,+0.00,+0.00,+0.00) 9910 TOOL (-22.00,-82.00,+130.00,+15.00,+0.00,+72.00) 'Clip 0 9912 RETURN 9914 *TOOL_C1 9916 TOOL (+0.00,+0.00,+0.00,+0.00,+0.00,+0.00) 9918 TOOL (+72.00,-45.00,+90.00,+0.00,+0.00,+144.00) 'Clip 1 9920 RETURN 9922 *TOOL_C2 9924 TOOL (+0.00,+0.00,+0.00,+0.00,+0.00,+0.00) 9926 TOOL (+72.00,+45.00,+90.00,+0.00,+0.00,-144.00) 'Clip 2 9928 RETURN 9930 *TOOL_CM 9932 TOOL (+0.00,+0.00,+0.00,+0.00,+0.00,+0.00) 9934 TOOL (-22.00,+90.00,+85.00,+0.00,+0.00,-72.00) 'Clip Metall 9936 RETURN 9938 *TOOL_CV 9940 TOOL (+0.00,+0.00,+0.00,+0.00,+0.00,+0.00) 9942 TOOL (-100.00,+0.00,+110.00,+0.00,-30.00,+0.00) 'Verbinder 9944 RETURN
|