Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;*********************************************************
- ;** Programmbeschreibung: **
- ;** Es sollen Werkstücke von Palette holen über die **
- ;** neue Formel auf Palette Ablegen gebracht werden. **
- ;** Dabei spielt erstmalig der Versatz der Paletten **
- ;** keine Rolle. Gleichzeitig soll geprüft werden ob **
- ;** ein Werkstück Grün ist, wenn ja, soll dieses in **
- ;** den Ausschuss transportiert werden. Dies soll **
- ;** zusätzlich durch eine Nachricht auf dem PHG **
- ;** signalisiert werden. **
- ;** Außerdem soll die Palette von Rechts -> Links **
- ;** bearbeitet werden. Das bedeutet man räumt zuerst **
- ;** auf Y-Achse die Werkstücke aus. **
- ;*********************************************************
- ;*********************************************************
- ;** Programmkopf **
- ;*********************************************************
- ;;einfuege kopfsr60
- programm Auf4a
- ;*********************************************************
- ;** Eingang und Ausgangsbits **
- ;** Neu: Initiatoren für Hell/Dunkel und Metall/Plastik **
- ;*********************************************************
- Eingang: 1 = grf_bel, ;Greifer belegt 1=Nicht belegt, 0=Belegt
- 19 = hell, ;Erkennung ob Hell Dunkel 1=Hell 0=Dunkel
- 20 = metall ;Erkennung ob Metall 0=Plastik 1=Metall
- Ausgang: 5 = grf_auf, ;Greifer auffahren
- 6 = grf_zu ;Greifer zufahren
- ;*********************************************************
- ;** Punkte und Variablen Deklarationen **
- ;*********************************************************
- mk_punkt: @start, ;Startposition
- @hpos ;Hardwareendschalter
- Punkt: holen1, holen2, holen3, ;Teachpunkte für Palette holen
- ablegen1, ablegen2, ablegen3, ;Teachpunkte für Palette ablegen
- ausschuss, ;Teachpunkt für Ausschuss ablegen
- metal_sensor, ;Teachpunkt für Metall Sensor
- hell_sensor ;Teachpunkt für Helligkeits Sensor
- Punkt: diffx_hol, diffy_hol, ;Berechnungspunkte Abstand Palette holen
- diffx_abl, diffy_abl, ;Berechnungspunkte Abstand Palette ablegen
- hoch, ;Hilfspunkt für Höhen Position
- hph, ;Hilfspunkt für Palette holen
- hpa ;Hilfspunkt für Palette ablegen
- Ganz: i, j, ;Zählvariablen für Palette holen
- m, n ;Zählvariablen für Palette ablegen
- Binaer: w_gruen_mett, ;Werkstück Grün Metall Zwischenspeicher für WENN.DANN.SONST
- w_gruen_hell ;Werkstück Grün Hell Zwischenspeicher für WENN.DANN.SONST
- ;*********************************************************
- ;** Hauptprogramm **
- ;*********************************************************
- anfang ;Programm Anfang
- diffx_hol = (holen1-holen2)/3 ;Individueller Abstand X-Koordinate Werkstück-Werkstück auf Palette holen
- diffy_hol = (holen2-holen3)/2 ;Individueller Abstand Y-Koordinate Werkstück-Werkstück auf Palette holen
- diffx_abl = (ablegen1-ablegen2)/3 ;Individueller Abstand X-Koordinate Werkstück-Werkstück auf Palette ablegen
- diffy_abl = (ablegen2-ablegen3)/2 ;Individueller Abstand Y-Koordinate Werkstück-Werkstück auf Palette ablegen
- hoch = (0,0,90,0) ;Hochpunkt auf 90 festlegen
- v = 100 ;Geschwindigkeit auf 100 festlegen
- v_ptp = 0.2 ;Punkt zu Punkt Geschwindigkeit auf 0.2 festlegen
- @hpos = @ipos ;Sicherheitsposition
- @hpos.a_3 = 180 ;Maximale Höhe
- fahre nach @hpos, @start ;Sicherheitsposition dann start anfahren
- wdh 10 mal ;Startposition erreicht, Ausgabe auf PHG
- schreibe PHG, 'Startposition'
- wdh_ende
- i = 0 ;Zähler für X-Achse auf Palette holen auf 0
- j = 0 ;Zähler für Y-Achse auf Palette holen auf 0
- m = 0 ;Zähler für X-Achse auf Palette ablegen auf 0
- n = 0 ;Zähler für Y-Achse auf Plette ablegen auf 0
- w_gruen_hell = 0 ;Binärvariable Werkstück Hell auf 0
- w_gruen_mett = 0 ;Binärvariable Werkstück Metall auf 0
- wdh 4 mal ;Y-Seitig gibt es 4 Reihen
- wdh 3 mal ;X-Seitig gibt es 3 Spalten
- Aufnehmen ;UP-Aufruf: Werkstück aufnehmen
- WENN grf_bel = 0 ;Abfrage Greifer Belegt 0=Werkstück im Greifer
- DANN ANFANG ;DANN führe Verbund Instruktionen aus mittels ANFANG...ENDE
- Sensorcheck ;UP-Aufruf: Sensoren Anfahren
- WENN (w_gruen_mett = 1) UND (w_gruen_hell = 0) ;Abfrage ob Werkstück Grün ist
- DANN Ausschus ;DANN UP-Aufruf: Ausschuss
- SONST Ablegen ;SONST UP-Aufruf: Ablegen
- ENDE ;Beende Verbund-Instruktionen
- j = j + 1 ;Inkrementiere Y-Zähler s. Fahrweise
- wdh_ende ;Ende Spalten Durchlauf
- i = i + 1 ;Inkrementiere X-Zähler s. Fahrweise
- j = 0 ;Setze Y-Zähler auf 0
- wdh_ende ;Ende Reihen Durchlauf
- fahre nach @start ;Nach Start fahren
- programm_ende ;Hauptprogramm zu ende
- ;*********************************************************
- ;** Unterprogramm: Sensoren anfahren und Checkup **
- ;*********************************************************
- UP Sensorcheck
- anfang
- fahre ueber metal_sensor + hoch nach metal_sensor ;Fahre zum Metall Sensor
- w_gruen_mett = metall ;Lese Eingang Metall und setze Variable
- fahre nach hell_sensor ;Fahre zum Helligkeits Sensor
- w_gruen_hell = hell ;Lese Eingang Helligkeit und setze Variable
- fahre ptp nach hell_sensor + hoch ;Fahre wieder hoch
- up_ende
- ;*********************************************************
- ;** Unterprogramm: Greifer Schließen **
- ;*********************************************************
- UP G_Zu
- anfang
- warte 1 ;1 Sekunde warten
- grf_auf = 0 ;Verriegelung
- grf_zu = 1 ;Greifer Zu
- warte 1 ;s.O.
- up_ende
- ;*********************************************************
- ;** Unterprogramm: Greifer Öffnen **
- ;*********************************************************
- UP G_Auf
- anfang
- warte 1 ;s.O.
- grf_auf = 1 ;Greifer Auf
- grf_zu = 0 ;Verriegelung
- warte 1 ;s.O.
- up_ende
- ;*********************************************************
- ;** Unterprogramm: Aufnehmen **
- ;*********************************************************
- UP Aufnehmen
- anfang
- hph = holen1 + i * diffx_hol + j * diffy_hol ;Hilfspunkt berechnen
- G_Auf ;UP-Aufruf: Greifer Öffnen
- fahre ueber hph + hoch nach hph ;Über Hilfspunkt+hoch nach hilfspunkt fahren
- G_Zu ;UP-Aufruf: Greifer Schließen
- fahre ptp nach hph + hoch ;Hochfahren mit PTP
- up_ende
- ;*********************************************************
- ;** Unterprogramm: Ausschuss **
- ;*********************************************************
- UP Ausschus
- anfang
- Schreibe PHG, CLS ;PHG-Display löschen
- fahre ueber ausschuss + hoch nach ausschuss ;Über Ausschuss + hoch nach Ausschuss fahren
- G_Auf ;UP-Aufruf: Greifer Öffnen
- wdh 10 mal
- Schreibe PHG,'Ausschuss-Ware' ;Ausgabe Ausschuss auf PHG
- wdh_ende
- G_Zu ;UP-Aufruf: Greifer schließen
- fahre ptp nach ausschuss + hoch ;Hochfahren mit PTP
- up_ende
- ;*********************************************************
- ;** Unterprogramm: Ablegen **
- ;*********************************************************
- UP Ablegen
- anfang
- WENN m < 5 ;WENN X-Seitig unter 5(Ungewollten UP-Aufruf verhindern)
- DANN ANFANG ;DANN Verbund Instruktionen ausführen
- hpa = ablegen1 + m * diffx_abl + n * diffy_abl ;Hilfspunkt berechnen
- fahre ueber hpa + hoch nach hpa ;Über Hilfspunkt + hoch nach hilfspunkt fahren
- G_Auf ;UP-Aufruf: Greifer Öffnen
- fahre ptp nach hpa + hoch ;Hochfahren
- n = n + 1 ;Inkrementiere Y-Zähler
- WENN n = 3 ;Wenn Y-Zähler auf 3, führe Verbund-Instruktionen aus
- DANN ANFANG ;DANN Verbund Instruktionen ausführen
- m = m + 1 ;Inkrementiere X-Zähler
- n = 0 ;Setze Y-Zähler auf 0
- Ende ;Ende Verbund Instruktionen Innere Bedingte Abfrage
- Ende ;Ende Verbund Instruktionen Äußere Bedingte Abfrage
- up_ende
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement