67
%%% VERSION:1 LANGUAGE:ENGLISH %%% MODULE Maschine_1 !****************************************************************** !* * !* A B B - E N T N A H M E R O B O T E R * !* ===================================== * !* * !* Station : Maschine 1 * !* Subjekt : Entnahme für 99 Typen * !* Roboter Nr. : IRB 64-10478 * !* Softwarestand: OS 3.2 * !* * !* Author : M. Majewski / O. Salo * !* Company : IRS Industrie-Roboter-Service GmbH * !* Adress : Vogelsbergstr. 199 * !* 63679 Schotten * !* Version : 1.0 * !* Created : 16. September 2002 * !* Modified : 28. Mai 2004 M.Majewski Greifertyp 1 * !* * !****************************************************************** !********************************************************** !* Variablendefinition * !********************************************************** !Merker, Schutztüranforderung VAR bool bSchutztuer:=FALSE; !Merker, Taktende VAR bool bTaktende:=FALSE; !Merker, Roboter zur Homepos PERS bool bIRBzurHome:=FALSE; !Merker, aktueller Teiltyp PERS num nTyp:=1; PERS string stTyp:="1"; !Merker, aktueller Greifertyp PERS num nGreiferTyp:=1; PERS string stGreiferTyp:="1"; !Variablen für Zyklus Greiferreinigung VAR num nZaehlerReinigen:=0; CONST num nAnzahlReinigen:=2; !Wartezeit, bis eine Meldung auf dem PG ausgegeben wird PERS num ntTimeOut:=3; !Tauchzeiten im Schlichtebecken CONST num ntTauchen:=4.5; !Abtropfzeit über Schlichtebecken CONST num nt1Abtropfen:=4; CONST num nt2Abtropfen:=3; !Merker, Funktionstaste VAR num nFkey; !Abbruch bei falscher Auswahl CONST errnum erAnwahl:=95; CONST errnum erOfenFrei:=95; !* Teilgewicht für 99 Typen * PERS loaddata loAlleTypen{99}:=[[24,[0,0,400],[1,0,0,0],0,0,0],[20,[0,0,400],[1 PERS loaddata loKerntyp:=[24,[0,0,400],[1,0,0,0],0,0,0]; !********************************************************** !* Prozedur haupt() * !* * !* Diese Routine steuert den kompletten Zyklus des * !* Roboters. * !* * !* Date: Version: Programmer: Reason: * !* 16.09.2002 1.0 O.Salo created * !* 28.05.2004 2.0 M.Majewski modify * !********************************************************** PROC haupt() !Hauptprogramm, Neustart von hier

MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

%%% VERSION:1 LANGUAGE:ENGLISH%%%

MODULE Maschine_1 !****************************************************************** !* * !* A B B - E N T N A H M E R O B O T E R * !* ===================================== * !* * !* Station : Maschine 1 * !* Subjekt : Entnahme für 99 Typen * !* Roboter Nr. : IRB 64-10478 * !* Softwarestand: OS 3.2 * !* * !* Author : M. Majewski / O. Salo * !* Company : IRS Industrie-Roboter-Service GmbH * !* Adress : Vogelsbergstr. 199 * !* 63679 Schotten * !* Version : 1.0 * !* Created : 16. September 2002 * !* Modified : 28. Mai 2004 M.Majewski Greifertyp 1 * !* * !****************************************************************** !********************************************************** !* Variablendefinition * !********************************************************** !Merker, Schutztüranforderung VAR bool bSchutztuer:=FALSE; !Merker, Taktende VAR bool bTaktende:=FALSE; !Merker, Roboter zur Homepos PERS bool bIRBzurHome:=FALSE; !Merker, aktueller Teiltyp PERS num nTyp:=1; PERS string stTyp:="1"; !Merker, aktueller Greifertyp PERS num nGreiferTyp:=1; PERS string stGreiferTyp:="1"; !Variablen für Zyklus Greiferreinigung VAR num nZaehlerReinigen:=0; CONST num nAnzahlReinigen:=2; !Wartezeit, bis eine Meldung auf dem PG ausgegeben wird PERS num ntTimeOut:=3; !Tauchzeiten im Schlichtebecken CONST num ntTauchen:=4.5; !Abtropfzeit über Schlichtebecken CONST num nt1Abtropfen:=4; CONST num nt2Abtropfen:=3; !Merker, Funktionstaste VAR num nFkey; !Abbruch bei falscher Auswahl CONST errnum erAnwahl:=95; CONST errnum erOfenFrei:=95; !* Teilgewicht für 99 Typen * PERS loaddata loAlleTypen{99}:=[[24,[0,0,400],[1,0,0,0],0,0,0],[20,[0,0,400],[1 PERS loaddata loKerntyp:=[24,[0,0,400],[1,0,0,0],0,0,0];

!********************************************************** !* Prozedur haupt() * !* * !* Diese Routine steuert den kompletten Zyklus des * !* Roboters. * !* * !* Date: Version: Programmer: Reason: * !* 16.09.2002 1.0 O.Salo created * !* 28.05.2004 2.0 M.Majewski modify * !********************************************************** PROC haupt() !Hauptprogramm, Neustart von hier

Page 2: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!Startwerte setzen !Stand: 29.05.2004 12:00 Init; !Bremsscheibentyp von KSM einlesen TypEinlesen; GrTypEinl; !von Homepos zur Vorpos KSM IF nGreiferTyp=1 mvHome_10VPA; IF nGreiferTyp=2 mvHome_10VPB; !Anwahl Greiferwechsel an KSM IF diGreiferWechsel=1 GreiferWechsel; !Typnummer und Greifercode prüfen CheckGreiferTyp; !Anwahl Fingerwechsel an KSM IF diGrFingWechsel=1 AND nGreiferTyp=1 FingerWechselA; IF diGrFingWechsel=1 AND nGreiferTyp=2 FingerWechselB; CheckGreifer; ProgInfo; !Produktion bis Roboter zur Homepos angewählt ist WHILE diIRBzurHome=0 DO !warten auf Freigabe von KSM IF diKSMentladen=1 Produktion; IF diSchutztuer=1 OR diTaktEnde=1 Stop; ENDWHILE IF nGreiferTyp=1 mv10VPA_Home; IF nGreiferTyp=2 mv10VPB_Home; GreiferAus; Set doIRBausKSM; Set doIRBausBand; EXIT; ENDPROC

!********************************************************** !* Prozedur Init() * !* * !* Initialisierungsroutine * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC Init() !Kunden/Anlagendaten stKunde:="Hottinger 1/Busch Eisenwerke"; stAnlage:="ABB Entnahmeroboter Maschine 1502"; stRobNr:="IRB64-10478"; stProgrammierer:="M.Majewski"; stVersion:="29.05.2004"; CheckHomePos; !Ein/Ausgänge initialisieren Set doIRBausKSM; Set doIRBausTauchen; Set doIRBausBand; Reset doKSMentladen; SetGO goTyp_Wahl,0; Reset doKSMentladen; Reset doAufBandAbgel; Reset doProgStoerung; Reset doGreifStörung; Reset doGrDrehen; Reset doGreifTyp1; Reset doGreifTyp2; !Homeposmerker zurücksetzen bIRBzurHome:=FALSE; bProgInfo:=TRUE; ENDPROC

!********************************************************** !* Prozedur TypEinlesen() * !* * !* Diese Prozedur liest beim Start von Haupt die * !* aktuelle Typnummer von der KSM ein. *

Page 3: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC TypEinlesen() !Bremsscheibentyp von KSM einlesen ! nTyp:=giTyp_Wahl; !Wertebereich des eingelesenen Wertes prüfen !max. 99 Typen möglich IF nTyp<1 OR nTyp>99 THEN Message fmTypWert; Stop; EXIT; ENDIF !Typnummer für den dynamischen Aufruf !der Bewegungsprogramme zuweisen stTyp:=NumToStr(nTyp,0); !Typ an KSM zurückmelden SetGO goTyp_Wahl,nTyp; !aktuelles Kerngewicht zuweisen loKerntyp:=loAlleTypen{nTyp}; ENDPROC

!********************************************************** !* Prozedur GrTypEinl() * !* * !* Diese Prozedur liest beim Start von Haupt die * !* aktuelle Greifernummer von der KSM ein. * !* * !* Date: Version: Programmer: Reason: * !* 26.09.2002 1.0 O.Salo created * !********************************************************** PROC GrTypEinl() !Greifercodierung vom Greifer einlesen ! nGreiferTyp:=0; !Kontrolle der Greifercodierung WHILE diGreiferCode1=0 AND diGreiferCode2=0 DO !kein Greifer am Roboter Message fmGreiferCode0; Stop; ENDWHILE WHILE diGreiferCode1=1 AND diGreiferCode2=1 DO !beide Greifercodierungen belegt Message fmGreiferCode1; Stop; RETURN; ENDWHILE IF diGreiferCode1=1 nGreiferTyp:=1; IF diGreiferCode2=1 nGreiferTyp:=2; !Wertebereich des eingelesenen Wertes prüfen !max. 2 Typen möglich IF nGreiferTyp<1 OR nGreiferTyp>2 THEN Message fmGrTypWert; Stop; EXIT; ENDIF !Typnummer für den dynamischen Aufruf !der Bewegungsprogramme zuweisen stGreiferTyp:=NumToStr(nGreiferTyp,0); IF nGreiferTyp=1 Set doGreifTyp1; IF nGreiferTyp=2 Set doGreifTyp2; ENDPROC

!********************************************************** !* Prozedur Produktion() * !* * !* Produktionszyklus * !* * !* Date: Version: Programmer: Reason: *

Page 4: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC Produktion() !Roboter auf Vorpos KSM (10) KernEntnehmen; !An-/Abwahl Entgratstatation IF diMitEntgraten=0 AND diOhneEntgraten=0 RAISE erAnwahl; IF diMitEntgraten=1 THEN !von KSM zum Entgraten IF nGreiferTyp=1 mv10EPA_20VPA; IF nGreiferTyp=2 mv10EPB_20VPB; Entgraten; !vom Entgraten zum Tauchbecken IF diMitKontrolle=1 Inspektion; IF nGreiferTyp=1 mv20EPA_30VPA; IF nGreiferTyp=2 mv20EPB_30VPB; ELSEIF diOhneEntgraten=1 THEN !von KSM zum Entgraten IF nGreiferTyp=1 mv10EPA_20VPA; IF nGreiferTyp=2 mv10EPB_20VPB; IF diMitKontrolle=1 Inspektion; !vom Entgraten zum Tauchbecken IF nGreiferTyp=1 mv20EPA_30VPA; IF nGreiferTyp=2 mv20EPB_30VPB; ENDIF !An-/Abwahl Tauchbecken IF diMitTauchen=0 AND diOhneTauchen=0 RAISE erAnwahl; IF diMitTauchen=1 THEN Tauchen; ELSEIF diOhneTauchen=1 THEN !vom Tauchen zum Auslaufband IF nGreiferTyp=1 mv30EPA_40VPA; IF nGreiferTyp=2 mv30EPB_40VPB; ENDIF !Bremsscheiben auf Auslaufband ablegen IF diMitTauchen=1 AND nGreiferTyp=1 mv30EPA_40VPA; IF diMitTauchen=1 AND nGreiferTyp=2 mv30EPB_40VPB; KernAblegen; !zurück zur KSM IF nGreiferTyp=1 THEN !Zykluszähler nur beim Tauchen erhöhen IF diMitTauchen=1 Incr nZaehlerReinigen; IF nZaehlerReinigen>=nAnzahlReinigen AND nAnzahlReinigen<>0 THEN Clear nZaehlerReinigen; !mit Reinigung Greifer A mv40EPA_50RPA; mv50RPA_10VPA; ELSE !direkt zurück zur KSM mv40EPA_10VPA; ENDIF ENDIF IF nGreiferTyp=2 mv40EPB_10VPB; bProgInfo:=TRUE; ERROR IF ERRNO=erAnwahl THEN Message fmAnwahl; Stop; RETRY; ENDIF ENDPROC

!********************************************************** !* Prozedur KernEntnehmen() * !* * !* Kern aus der Kernschießmaschine entnehmen. * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC KernEntnehmen()

Page 5: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!Kern aus der Kernschießmaschine entnehmen ! Reset doIRBausKSM; Reset doKSMentladen; GreiferLoesen; !von Vorpos zu Greifpos KSM !mvGr1_10VP_10GP1 %"mvGr"+stGreiferTyp+"10VP_10GP"+stTyp%; GreiferSpannen; Set doKSMentladen; !von Greifpos zu Endpos KSM !mvGr1_10GP1_10EP %"mvGr"+stGreiferTyp+"10GP"+stTyp+"_10EP"%; Set doIRBausKSM; ERROR !wenn der dynamische Programmaufruf falsch ist IF ERRNO=ERR_CALLPROC OR ERRNO=ERR_REFUNKPRC THEN Message fmDynamAufruf; TPWrite " "; TPWrite "mvGr"+stGreiferTyp+"10VP_10GP"+stTyp+" oder mvGr"+stGreiferTyp+"10 TPReadFK nFkey,"Prozedur existiert nicht !","EXIT","","","",""; EXIT; ENDIF ENDPROC

!********************************************************** !* Prozedur Entgraten() * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC Entgraten() !Entgraten ! !von Vorpos zu Entgratpos KSM !mv20VP_20EgP1 %"mv20VP_20EgP"+stTyp%; !von Entgratpos 1 zu Endpos KSM !mv20EgP1_20EP %"mv20EgP"+stTyp+"_20EP"%; ERROR !wenn der dynamische Programmaufruf falsch ist IF ERRNO=ERR_CALLPROC OR ERRNO=ERR_REFUNKPRC THEN Message fmDynamAufruf; TPWrite " "; TPWrite " mv20VP_20EgP"+stTyp+" oder mv20EgP"+stTyp+"_20EP"; TPReadFK nFkey,"Prozedur existiert nicht !","EXIT","","","",""; EXIT; ENDIF ENDPROC

!********************************************************** !* Prozedur Tauchen() * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC Tauchen() !Tauchen ! Motor zum Tauchen einschalten GreiferDrehen; !von Vorpos zu Tauchpos !mv30VP_30TP1 %"mv30VP_30TP"+stTyp%; !Tauchzeit WaitTime ntTauchen; ! Motor AUS !von Tauchpos zu Tropfposition !mv30TP1_30AP1 %"mv30TP"+stTyp+"_31AP"+stTyp%; ! Motor zum abtropfen einschalten

Page 6: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

GreiferDrehen; !Abtropfzeit WaitTime nt1Abtropfen; !von Abtropfpos 1 zu Abtropfpos2 !mv31AP1_32AP1 %"mv31AP"+stTyp+"_32AP"+stTyp%; !Abtropfzeit WaitTime nt2Abtropfen; ! Motor AUS IF nGreiferTyp=2 WaitDI diGraufPos,1; GreiferStop; !von Abtropfpos zu Endpos !mv32AP1_30EP %"mv32AP"+stTyp+"_30EP"%; ERROR !wenn der dynamische Programmaufruf falsch ist IF ERRNO=ERR_CALLPROC OR ERRNO=ERR_REFUNKPRC THEN Message fmDynamAufruf; TPWrite " "; TPWrite " mv30VP_30TP"+stTyp+" oder mv30TP"+stTyp+"_30EP"; TPReadFK nFkey,"Prozedur existiert nicht !","EXIT","","","",""; EXIT; ENDIF ENDPROC

!********************************************************** !* Prozedur KernAblegen() * !* * !* Kerne auf Auslaufband ablegen. * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC KernAblegen() !Kerne auf Auslaufband ablegen ! WaitMsgDI diBandBereit,1,fmAblageFrei; ! Kern ablegen Reset doIRBausBand; Reset doAufBandAbgel; !von Vorpos zu Ablagepos Auslaufband !mv40VP_41AP %"mv40VP_40AP"+stTyp%; GreiferLoesen; Set doAufBandAbgel; !von Ablagepos zu Endpos Band !mv41AP1_40EP %"mv40AP"+stTyp+"_40EP"%; Set doIRBausBand; ERROR !wenn der dynamische Programmaufruf falsch ist IF ERRNO=ERR_CALLPROC OR ERRNO=ERR_REFUNKPRC THEN Message fmDynamAufruf; TPWrite " "; TPWrite " mv40VP_40AP"+stTyp+" oder mv40AP"+stTyp+"_40EP"; TPReadFK nFkey,"Prozedur existiert nicht !","EXIT","","","",""; EXIT; ENDIF ENDPROC

!********************************************************** !* Prozedur Inspektion() * !* * !* Inspektion durch Sichtprüfung mit Quittierung. * !* * !* Date: Version: Programmer: Reason: * !* 12.05.2004 1.0 M.Majewski created * !********************************************************** PROC Inspektion() !Kerninspektion durch Sichtkontrolle IF nGreiferTyp=1 mv20EPA_70VPA;

Page 7: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

IF nGreiferTyp=2 mv20EPB_70VPB; !zur ersten Kontrollpos IF nGreiferTyp=1 mv70VPA_71KPA; IF nGreiferTyp=2 mv70VPB_71KPB; !Quittiertaster betätigen WaitMsgDI diKontrQuitt,1,fmInspektion; !zur zweiten Kontrollpos IF nGreiferTyp=1 mv71KPA_72KPA; IF nGreiferTyp=2 mv71KPB_72KPB; !Quittiertaster betätigen WaitMsgDI diKontrQuitt,1,fmInspektion; !zur Endpos Inspektion IF nGreiferTyp=1 mv72KPA_70EPA; IF nGreiferTyp=2 mv72KPB_70EPB; !zurück zur Endpos Entgraten IF nGreiferTyp=1 mv70EPA_20EPA; IF nGreiferTyp=2 mv70EPB_20EPB; ENDPROC

!********************************************************** !* Prozedur CheckGreifer () * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC CheckGreifer() !Greifercheck GreiferLoesen; GreiferSpannen; GreiferLoesen; ENDPROC

!********************************************************** !* Prozedur CheckGreiferTyp() * !* * !* Date: Version: Programmer: Reason: * !* 28.05.2004 1.0 M.Majewski created * !********************************************************** PROC CheckGreiferTyp() !Check Greifertyp !Kontrolle der Greifercodierung WHILE diGreiferCode1=0 AND diGreiferCode2=0 DO !kein Greifer am Roboter Message fmGreiferCode0; Stop; ENDWHILE WHILE diGreiferCode1=1 AND diGreiferCode2=1 DO !beide Greifercodierungen belegt Message fmGreiferCode1; Stop; RETURN; ENDWHILE !Typnummer und Greifercodierung prüfen IF nTyp>0 AND nTyp<=30 THEN !Typnummer 1 - 30 werden mit Greifer A produziert GrTypEinl; IF diGreiferCode1=1 RETURN; ELSEIF nTyp>30 AND nTyp<=99 THEN !Typnummer 31 - 99 werden mit Greifer B produziert GrTypEinl; IF diGreiferCode2=1 RETURN; ENDIF !wenn Typnummer und Greifercode nicht passen !dann Greifer wechseln GreiferWechsel; GrTypEinl; ENDPROC

!********************************************************** !* Prozedur GreiferSpannen() * !* *

Page 8: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC GreiferSpannen() !Greifer Kern spannen ! Reset doGreiferAUF; Set doGreiferZU; !Status abfragen WaitMsgDI diGrGespannt,1,fmGr_gespannt_1; WaitTime 1; !aktuelles Kerngewicht zuweisen GripLoad loKerntyp; ENDPROC

!********************************************************** !* Prozedur GreiferLoesen() * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC GreiferLoesen() !Greifer Kern lösen ! Reset doGreiferZU; Set doGreiferAUF; !Status abfragen WaitMsgDI diGrGespannt,0,fmGr_gespannt_0; WaitTime 1.5; !Kerngewicht zurücksetzen GripLoad load0; ENDPROC

!********************************************************** !* Prozedur GreiferDrehen() * !* * !* Date: Version: Programmer: Reason: * !* 16.09.2002 1.0 O.Salo created * !********************************************************** PROC GreiferDrehen() IF nGreiferTyp=1 RETURN; Set doGrDrehen; ENDPROC

!********************************************************** !* Prozedur GreiferStop() * !* * !* Date: Version: Programmer: Reason: * !* 16.09.2002 1.0 O.Salo created * !********************************************************** PROC GreiferStop() IF nGreiferTyp=1 RETURN; Reset doGrDrehen; ENDPROC

!********************************************************** !* Prozedur GreiferAus() * !* * !* Date: Version: Programmer: Reason: * !* 09.09.2002 1.0 O.Salo created * !********************************************************** PROC GreiferAus() !Alle Greifersignale abschalten Reset doGreiferZU; Reset doGreiferAUF; Reset doGrDrehen; GripLoad load0; ENDPROC

!********************************************************** !* Prozedur GreiferWechsel () *

Page 9: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* * !* Diese Prozedur wechselt den aktuellen Greifer. * !* * !* Date: Version: Programmer: Reason: * !* 28.05.2004 1.1 M.Majewski created * !********************************************************** PROC GreiferWechsel() !Greiferwechsel funktioniert nur bei erfolgreicher Kontrolle !Kontrolle der Greifercodierung WHILE diGreiferCode1=0 AND diGreiferCode2=0 DO !kein Greifer am Roboter Message fmGreiferCode0; Stop; ENDWHILE WHILE diGreiferCode1=1 AND diGreiferCode2=1 DO !beide Greifercodierungen belegt Message fmGreiferCode1; Stop; RETURN; ENDWHILE !Kontrolle des Ablageplatzes IF diGrAblage1Frei=0 AND diGrAblage2Frei=0 THEN !kein Greifer zum Wechseln vorhanden Message fmGrTypWert; Stop; IF nGreiferTyp=1 mv10VPA_Home; IF nGreiferTyp=2 mv10VPB_Home; EXIT; ELSEIF diGrAblage1Frei=1 AND diGrAblage2Frei=1 THEN !beide Ablageplätze belegt Message fmAllesBelegt; Stop; IF nGreiferTyp=1 mv10VPA_Home; IF nGreiferTyp=2 mv10VPB_Home; EXIT; ENDIF !VP -> Vorpos, EP -> Endpos !GAP -> Greif- und Ablagepos !Ws -> Wechselsystem IF diGrAblage1Frei=1 AND diGreiferCode1=1 THEN !von Vorpos KSM nach Vorpos Greiferwechsel mv10VPA_60VPA; !Greifer A ablegen GreiferSpannen; GripLoad load0; mv60VPA_60GAPA; WsAUF; Set doWSAbblasen; !Greifer B holen mv60GAPA_60GAPB; Reset doWSAbblasen; WsZU; GreiferSpannen; GripLoad load0; mv60GAPB_60EPB; !von Endpos Greiferwechsel zu Vorpos KSM mv60EPB_10VPB; ELSEIF diGrAblage2Frei=1 AND diGreiferCode2=1 THEN !von Vorpos KSM nach Vorpos Greiferwechsel mv10VPB_60VPB; !Greifer B ablegen GreiferSpannen; GripLoad load0; mv60VPB_60GAPB; WsAUF; Set doWSAbblasen; !Greifer A holen mv60GAPB_60GAPA; Reset doWSAbblasen; WsZU; GreiferSpannen;

Page 10: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

GripLoad load0; mv60GAPA_60EPA; !von Endpos Greiferwechsel zu Vorpos KSM mv60EPA_10VPA; ELSE !Fehler Greiferwechsel Stop; EXIT; ENDIF ENDPROC

!********************************************************** !* Prozedur WsZU() * !* * !* Greiferwechselsystem schließen. * !* * !* Date: Version: Programmer: Reason: * !* 21.03.2000 1.0 M.Majewski created * !********************************************************** PROC WsZU() !Wechselsystem ZU Reset doWSAbblasen; Reset doGreiferAUF; Reset doGreiferZU; Reset doWsAUF; Set doWsZU; WaitTime 1.5; ENDPROC

!********************************************************** !* Prozedur WsAUF() * !* * !* Greiferwechselsystem öffnen. * !* * !* Date: Version: Programmer: Reason: * !* 21.03.2000 1.0 M.Majewski created * !********************************************************** PROC WsAUF() !Wechselsystem AUF Reset doWSAbblasen; Reset doGreiferAUF; Reset doGreiferZU; Reset doWsZU; Set doWsAUF; WaitTime 1.5; ENDPROCENDMODULE

MODULE Text !****************************************************************** !* Dieses Modul enthält alle Fehler- und Textmeldungen. * !* * !* Version: 1.0 Created: 03/2000 * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !****************************************************************** !Fehlermeldungen CONST string fmGr_gespannt_1{5}:=["1"," - Greiferfehler beim Greifer Spannen -" CONST string fmGr2_gespannt_1{5}:=["2"," - Greiferfehler beim Greifer Spannen - CONST string fmGr_gespannt_0{5}:=["3"," - Greiferfehler beim Greifer Loesen -", CONST string fmGr2_gespannt_0{5}:=["4"," - Greiferfehler beim Greifer Loesen -" ! CONST string fmFreigabeKSM{5}:=["10"," Warte auf Freigabe von der"," CONST string fmOfenBereit{5}:=["40"," Warte auf Freigabe vom Auslaufband."," CONST string fmTauchenOK{5}:=["40"," Warte auf Freigabe vom Tauchbecken."," Ta CONST string fmAblageOfenFrei{5}:=["40"," Warte auf Freigabe vom"," CONST string fmFUbereit{5}:=["0"," Warte auf Freigabesignal"," -Freque CONST string fmDynamAufruf{5}:=["20"," ==> Dynamischer Programmaufruf <=="," CONST string fmTypWert{5}:=["21"," Der eingelesene Wert für die"," CONST string fmGrTypWert{5}:=["22"," Der eingelesene Wert für die","

Page 11: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

CONST string fmAnwahl{5}:=["10"," Fehler Signale Stationsanwahl."," Sig CONST string fmAblageFrei{5}:=["10"," Fehler Signale Ablage."," Signale CONST string fmAllesBelegt{5}:=["6"," - Fehler Greiferwechselstation -"," CONST string fmInspektion{5}:=["0"," Warte auf Quittierung für"," d CONST string fmGreiferCode0{5}:=["0"," Fehler Greifercodierung."," "," CONST string fmGreiferCode1{5}:=["0"," Fehler Greifercodierung."," "," ENDMODULE

MODULE Beweg_A !********************************************************** !* * !* Dieses Modul enthält alle Bewegungsprogramme, die * !* typunabhängig sind und zu Greifer A zugehörig sind. * !* * !* Date: Version: Programmer: Reason: * !* 12.05.2004 2.0 M.Majewski created * !********************************************************** ! !Positions-Namen: ! !10 : Entnahme Kernschießmaschine !10VPA : Vorpos Kernschießmaschine !10EPA : Endpos Kernschießmaschine ! !20 : Entgratstation !20VPA : Vorpos Entgratstation !20EPA : Endpos Entgratstation ! !30 : Tauchen !30VPA : Vorpos Tauchen !30EPA : Endpos Tauchen ! !40 : Ablegen auf Transportband !40VPA : Vorpos Band !40EPA : Endpos Band ! !50 : Greiferreinigung !50RPA : Reinigungspos Greifer A ! !60 : Greiferwechselstation !60VPA : Vorpos Greiferwechselstation Greifer A !60GAPA : Greif- und Ablagepos 1 Greiferwechselstation Greifer A !60EPA : Endpos Greiferwechselstation Greifer A ! !70 : Kerninspektion !70VPA : Vorpos Inspektion Greifer A !71KPA : Kontrollpos 1 Inspektion Greifer A !72KPA : Kontrollpos 2 Inspektion Greifer A !70EPA : Endpos Inspektion Greifer A ! !* tooldata * PERS tooldata tHome:=[TRUE,[[0,0,0],[1,0,0,0]],[50,[0,0,0.001],[1,0,0,0],0,0,0] PERS tooldata tGreiferA:=[TRUE,[[0,0,425],[1,0,0,0]],[50,[0,0,400],[1,0,0,0],2, ! !********************************************************** !* Robtarget-Definition (Greiferabhängig) * !********************************************************** ! CONST robtarget p10VPA:=[[407.94,1592.33,1693.49],[0.000406,0.501142,-0.865365, CONST robtarget p10EPA:=[[407.94,1592.12,1651.43],[0.000381,0.501133,-0.865371, ! CONST robtarget p20VPA:=[[1406.17,834.26,1651.44],[0.000508,0.154182,-0.988043, CONST robtarget p20EPA:=[[1562.81,480.6,1651.46],[0.000532,0.036238,-0.999343,0 ! CONST robtarget p30VPA:=[[1509.35,-363.21,1651.46],[0.000568,-0.224168,-0.97455 CONST robtarget p30EPA:=[[1509.3,-519.45,1489.98],[2.4E-05,-0.224176,-0.974549, ! CONST robtarget p40VPA:=[[1005.94,-1239.35,1490],[6E-06,-0.483687,-0.875242,0], CONST robtarget p40EPA:=[[341.65,-1108.05,1334.91],[0.001465,0.984334,0.176302, ! CONST robtarget p50RPA:=[[2361.39,1506.6,748.13],[0.683019,0.176891,0.681553,0.

Page 12: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

! CONST robtarget p60VPA:=[[68.15,-1603.75,1279.74],[1.4E-05,-0.256809,-0.966454, CONST robtarget p60GAPA:=[[82.36,-2186.6,725.82],[0.000891,0.257316,0.966327,0. CONST robtarget p60EPA:=[[68.16,-1603.74,1279.75],[1.4E-05,-0.256816,-0.966452, ! CONST robtarget p70EPA:=[[-548.42,1348.77,1738.41],[0.000203,0.746982,-0.664844 CONST robtarget p71KPA:=[[-999.01,1439.72,1445.04],[0.113825,0.805501,-0.219445 CONST robtarget p72KPA:=[[-615.82,1439.74,1445.08],[0.008414,-0.931793,0.298403 CONST robtarget p70VPA:=[[-548.41,1348.76,1738.4],[0.000206,0.746978,-0.664849, ! CONST robtarget pFingerWechselA:=[[-548.4,898.1,1226.44],[1.7E-05,0.474036,-0.8 ! CONST robtarget pVPHome2:=[[1947.66,381.91,1792.66],[0.724717,-0.657944,0.16969 CONST robtarget pVPHome1:=[[1560.59,353,1959.91],[0.959682,0.007656,0.208521,0. CONST robtarget pHome:=[[2063.82,381.92,1792.66],[0.724714,-0.657946,0.169693,0 ! ! Drehgeschwindigkeiten beim Tauchen CONST speeddata vRotT1:=[100,100,5000,1000]; CONST speeddata vRotT2:=[20,500,5000,1000]; ! Drehwinkel beim Tauchen CONST num nRotT1:=350; CONST num nRotT2:=180; !temporäre Pos beim Tauchen (zurückdrehen) VAR robtarget pTemp:=[[1634.62,-512.27,1244.99],[0.113839,0.858527,0.230543,0.4

PROC mv10EPA_20VPA() !von : Endpos Kernschießmaschine !nach: Vorpos Entgratstation FirstMove p10EPA,v200,z10,tGreiferA; MoveJ p20VPA,v2500,z100,tGreiferA; ENDPROC

PROC mv20EPA_30VPA() !von : Endpos Entgratstation !nach: Vorpos Tauchen FirstMove p20EPA,v200,z10,tGreiferA; MoveJ p30VPA,v1500,z200,tGreiferA; ENDPROC

PROC mv20VPA_30VPA() !von : Vorpos Entgratstation !nach: Vorpos Tauchen FirstMove p20VPA,v200,z10,tGreiferA; MoveJ p30VPA,v1500,z200,tGreiferA; ENDPROC

PROC mv30EPA_40VPA() !von : Endpos Tauchen !nach: Vorpos Band FirstMove p30EPA,v200,z10,tGreiferA; MoveJ p40VPA,v500,z200,tGreiferA; ENDPROC

PROC mv30VPA_40VPA() !von : Vorpos Tauchen !nach: Vorpos Band FirstMove p30VPA,v200,z10,tGreiferA; MoveJ p40VPA,v2500,z200,tGreiferA; ENDPROC

PROC mv40EPA_10VPA() !von : Endpos Band !nach: Vorpos Kernschießmaschine FirstMove p40EPA,v6000,z10,tGreiferA; MoveJ p10VPA,v7000,z200,tGreiferA; ENDPROC

PROC mv40EPA_50RPA() !von : Endpos Band !nach: Reinigung Greifer A FirstMove p40EPA,v6000,z10,tGreiferA;

Page 13: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveJ [[1207.35,-374.59,1830.18],[0.397796,0.72328,0.548415,-0.133661],[0,-1, MoveJ [[1782.08,942.69,1995.8],[0.640691,0.199104,0.716795,0.189939],[0,-1,1, MoveJ [[2029.21,1506.57,1907.46],[0.68303,0.176888,0.681543,0.194115],[0,-2,1 MoveL [[2372.76,1506.58,1410.65],[0.683031,0.176889,0.681544,0.194106],[0,-2, MoveL p50RPA,v300,fine,tGreiferA; MoveL [[2372.76,1506.58,1410.65],[0.683031,0.176889,0.681544,0.194106],[0,-2, MoveL p50RPA,v300,fine,tGreiferA; ENDPROC

PROC mv50RPA_10VPA() !von : Reinigung Greifer A !nach: Vorpos Kernschießmaschine FirstMove p50RPA,v500,z10,tGreiferA; MoveJ [[2235.68,1506.56,748.11],[0.683015,0.176896,0.681556,0.194115],[0,-2,1 MoveL [[1960.31,1506.53,2112.53],[0.683025,0.176878,0.681548,0.194124],[0,-1, MoveJ [[1043.7,1342.41,1911.37],[0.27971,-0.155015,0.947467,-0.006314],[0,-1, MoveJ p10VPA,v5000,z200,tGreiferA; ENDPROC

PROC mv10VPA_Home() !von : Vorpos Kernschießmaschine !nach: Homeposition FirstMove p10VPA,v200,z10,tGreiferA; MoveJ [[1263.97,1276.36,1942.62],[0.311638,-0.263481,0.895125,0.179476],[0,0, MoveJ pVPHome1,v1000,z50,tHome; MoveJ pVPHome2,v500,fine,tHome; MoveL pHome,v100,fine,tHome; ENDPROC

PROC mv10VPA_60VPA() !von : Vorpos Kernschießmaschine Greifer A !nach: Vorpos Greiferwechselstation Greifer A FirstMove p10VPA,v200,z10,tGreiferA; MoveJ [[1214.63,49.4,1728.92],[0.001985,0.168864,-0.985637,-0.000775],[0,0,-1 MoveJ p60VPA,v1500,z200,tGreiferA; ENDPROC

PROC mv60VPA_60GAPA() !von : Vorpos Greiferwechselstation Greifer A !nach: Greif- und Ablagepos Greifer A FirstMove p60VPA,v1000,z50,tGreiferA; MoveL RelTool(p60GAPA,300,500,-25),v500,z10,tGreiferA; MoveL RelTool(p60GAPA,0,0,-25),v300,z5,tGreiferA; MoveL p60GAPA,v30,fine,tGreiferA; ENDPROC

PROC mv60GAPA_60GAPB() !von : Greif- und Ablagepos Greifer A !nach: Greif- und Ablagepos Greifer B FirstMove p60GAPA,v60,z50,tGreiferA; MoveL RelTool(p60GAPA,0,0,-25),v30,z10,tGreiferA; MoveL RelTool(p60GAPA,0,0,-100),v100,z10,tGreiferA; MoveJ RelTool(p60GAPA,200,500,-150),v500,z200,tGreiferA; MoveJ RelTool(p60GAPB,0,0,-200),v300,z200,tGreiferB; MoveL RelTool(p60GAPB,0,0,-100),v500,z50,tGreiferB; MoveL RelTool(p60GAPB,0,0,-50),v50,z50,tGreiferB; MoveL p60GAPB,v30,fine,tGreiferB; ENDPROC

PROC mv60GAPA_60EPA() !von : Greif- und Ablagepos Greifer A !nach: Endpos Greiferwechselstation Greifer A FirstMove p60GAPA,v60,z50,tGreiferA; MoveL RelTool(p60GAPA,0,0,-25),v30,z5,tGreiferA; MoveL RelTool(p60GAPA,300,500,-25),v500,z100,tGreiferA; MoveJ p60EPA,v500,fine,tGreiferA; ENDPROC

PROC mv60EPA_10VPA() !von : Endpos Greifer A Greiferwechselstation !nach: Vorpos Kernschießmaschine Greifer A

Page 14: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveJ p60EPA,v1000,z50,tGreiferA; MoveJ [[1243.39,52.73,1512.87],[0.001981,0.169414,-0.985543,-0.000775],[0,0,- MoveJ p10VPA,v1000,z50,tGreiferA; ENDPROC

PROC mv70EPA_20EPA() !von : Endpos Inspektion Greifer A !nach: Endpos Entgratstation Greifer A FirstMove p70EPA,v300,z50,tGreiferA; MoveJ p20EPA,v300,z50,tGreiferA; ENDPROC

PROC mv70VPA_71KPA() !von : Vorpos Inspektion Greifer A !nach: Kontrollpos 1 Inspektion Greifer A FirstMove p70VPA,v300,z50,tGreiferA; MoveL p71KPA,v300,fine,tGreiferA; ENDPROC

PROC mv71KPA_72KPA() !von : Kontrollpos 1 Inspektion Greifer A !nach: Kontrollpos 2 Inspektion Greifer A FirstMove p71KPA,v300,z50,tGreiferA; MoveJ p72KPA,v300,fine,tGreiferA; ENDPROC

PROC mv72KPA_70EPA() !von : Kontrollpos 2 Inspektion Greifer A !nach: Endpos Inspektion Greifer A FirstMove p72KPA,v300,z50,tGreiferA; MoveL p70EPA,v300,z50,tGreiferA; ENDPROC

PROC mv20EPA_70VPA() !von : Endpos Entgratstation Greifer A !nach: Vorpos Inspektion Greifer A FirstMove\J,p20EPA,v200,z10,tGreiferA; MoveJ p70VPA,v300,z50,tGreiferA; ENDPROC

PROC mvHomePos() !direkt zur Homepos mit Greifer A MoveJ pVPHome1,v200,fine,tHome; MoveJ pVPHome2,v150,fine,tHome; MoveL pHome,v150,fine,tHome; WaitTime 1; ENDPROC

PROC mvHome_10VPA() !von : Homeposition !nach: Vorpos Kernschießmaschine FirstMove\L,pHome,v200,z10,tHome; MoveJ pVPHome2,v100,z200,tHome; MoveJ pVPHome1,v800,z200,tHome; MoveJ [[1263.97,1276.36,1942.62],[0.311638,-0.263481,0.895125,0.179476],[0,0, MoveJ p10VPA,v1500,z200,tGreiferA; ENDPROC

PROC FingerWechselA() !von : Vorpos Kernschießmaschine !ueber: StopPos Fingerwechsel Greifer A !nach : Vorpos Kernschießmaschine FirstMove p10VPA,v800,z50,tGreiferA; MoveJ p70VPA,v800,z50,tGreiferA; MoveJ pFingerWechselA,v800,fine,tGreiferA; !Greiferfinger A jetzt wechseln Stop; MoveJ p70EPA,v800,z50,tGreiferA; MoveJ p10VPA,v800,z50,tGreiferA; ENDPROCENDMODULE

Page 15: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MODULE Beweg_B !********************************************************** !* * !* Dieses Modul enthält alle Bewegungsprogramme, die * !* typunabhängig sind und zu Greifer B zugehörig sind. * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !* 16.09.2002 2.0 O.SALO created * !********************************************************** ! !Positions-Namen: ! !10 : Entnahme Kernschießmaschine !10VPB : Vorpos Kernschießmaschine Greifer B !10EPB : Endpos Kernschießmaschine Greifer B ! !20 : Entgratstation !20VPB : Vorpos Entgratstation Greifer B !20EPB : Endpos Entgratstation Greifer B ! !30 : Tauchen !30VPB : Vorpos Tauchen Greifer B !30EPB : Endpos Tauchen Greifer B ! !40 : Ablegen auf Auslaufband !40VPB : Vorpos Auslaufband Greifer B !40EPB : Endpos Auslaufband Greifer B ! !60 : Greiferwechselstation !60VPB : Vorpos Greiferwechselstation Greifer B !60GAPB : Greif- und Ablagepos 1 Greiferwechselstation Greifer B !60EPB : Endpos Greiferwechselstation Greifer B ! !70 : Kerninspektion !70VPB : Vorpos Inspektion Greifer B !71KPB : Kontrollpos 1 Inspektion Greifer B !72KPB : Kontrollpos 2 Inspektion Greifer B !70EPB : Endpos Inspektion Greifer B ! !********************************************************** !* Robtarget-Definition (Greiferabhängig) * !********************************************************** ! CONST robtarget p10VPB:=[[402.41,1595.44,1716.05],[0.695381,-0.122651,-0.696761 CONST robtarget p10EPB:=[[402.42,1595.46,1746.2],[0.695383,-0.12265,-0.696759,- ! CONST robtarget p20VPB:=[[1606.13,682.19,1801.68],[0.304873,-0.634488,-0.310614 CONST robtarget p20EPB:=[[1605.66,682.16,1466.34],[0.265133,-0.650835,-0.271624 ! CONST robtarget p30VPB:=[[1304,-196.91,1872.23],[0.421496,-0.539917,-0.403887,- CONST robtarget p30EPB:=[[1106.3,-193.74,1815.91],[0.350032,-0.59475,-0.337497, ! CONST robtarget p40VPB:=[[-444.47,-1398.13,1778.41],[0.696958,0.054301,-0.71264 CONST robtarget p40EPB:=[[-444.27,-1399.59,1778.4],[0.69688,0.053323,-0.712718, ! CONST robtarget p60VPB:=[[576.55,-1788.64,1269.35],[0.502625,0.502619,-0.497366 CONST robtarget p60GAPB:=[[599.44,-2193.38,711.9],[0.501304,0.500351,-0.500093, CONST robtarget p60EPB:=[[576.54,-1788.64,1269.37],[0.502634,0.502626,-0.497353 ! CONST robtarget p70EPB:=[[-304.65,888.65,1766.29],[0.675862,0.151338,-0.709304, CONST robtarget p71KPB:=[[-1055.46,1439.15,1724.06],[0.945788,-0.071072,-0.3168 CONST robtarget p72KPB:=[[-640.49,1552.75,1441.04],[0.342104,0.1867,-0.920627,0 CONST robtarget p70VPB:=[[-304.64,888.63,1766.28],[0.675857,0.151332,-0.709309, ! CONST robtarget pFingerWechselB:=[[-423.54,838.54,1439.04],[0.665264,0.199696,- ! !* tooldata * PERS tooldata tGreiferB:=[TRUE,[[-550,0,222],[1,0,0,0]],[80,[-400,0,200],[1,0,0

Page 16: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

! ! PROC mv10VPB_Home() !von : Vorpos Kernschießmaschine Greifer B !nach: Homepos FirstMove\J,p10VPB,v200,z10,tGreiferB; MoveJ [[1612.09,1141.8,2006.35],[0.016446,0.311368,0.670323,0.673385],[0,0,0, MoveJ [[1797.21,608.67,2055.8],[0.293868,0.338461,0.625883,0.638245],[0,0,0,0 MoveJ pVPHome1,v500,z50,tHome; MoveJ pVPHome2,v500,fine,tHome; MoveL pHome,v100,fine,tHome; ENDPROC

PROC mv10VPB_60VPB() !von : Vorpos Kernschießmaschine Greifer B !nach: Vorpos Greiferwechselstation Greifer B FirstMove p10VPB,v1000,z50,tGreiferB; MoveJ [[1342.42,-309.71,1737.76],[0.08729,-0.756164,0.000161,-0.648534],[-1,0 MoveJ p60VPB,v1000,z50,tGreiferB; ENDPROC

PROC mv10EPB_20VPB() !von : Endpos Kernschießmaschine Greifer B !nach: Vorpos Entgratstation Greifer B FirstMove\L,p10EPB,v800,z10,tGreiferB; MoveL p20VPB,v2500,z10,tGreiferB; ENDPROC

PROC mv10EPB_30VPB() !von : Endpos Kernschießmaschine Greifer B !nach: Vorpos Tauchen Greifer B FirstMove\L,p10EPB,v200,z10,tGreiferB; MoveL p30VPB,v2500,z10,tGreiferB; ENDPROC

PROC mv20EPB_30VPB() !von : Endpos Entgratstation Greifer B !nach: Vorpos Tauchen Greifer B FirstMove\L,p20EPB,v200,z10,tGreiferB; MoveL p30VPB,v2500,z10,tGreiferB; ENDPROC

PROC mv30EPB_40VPB() !von : Endpos Tauchen Greifer B !nach: Vorpos Auslaufband Greifer B FirstMove\L,p30EPB,v200,z10,tGreiferB; MoveJ p40VPB,v2500,z20,tGreiferB; ENDPROC

PROC mv40EPB_10VPB() !von : Endpos Auslaufband Greifer B !nach: Vorpos Kernschießmaschine Greifer B FirstMove\J,p40EPB,v200,z10,tGreiferB; MoveJ [[1262.89,86.54,1646.83],[0.202904,-0.594775,-0.182184,-0.756229],[-1,1 MoveJ p10VPB,vmax,z10,tGreiferB; ENDPROC

PROC mv60VPB_60GAPB() !von : Vorpos Greiferwechselstation Greifer B !nach: Greif- und Ablagepos 1 Greiferwechselstation FirstMove p60VPB,v1000,z50,tGreiferB; MoveL RelTool(p60GAPB,150,0,-150),v500,z50,tGreiferB; MoveL RelTool(p60GAPB,150,0,0),v500,z50,tGreiferB; MoveL RelTool(p60GAPB,50,0,0),v150,z50,tGreiferB; MoveL p60GAPB,v30,fine,tGreiferB; ENDPROC

PROC mv60GAPB_60GAPA() !von : Greif- und Ablagepos Greifer B !nach: Greif- und Ablagepos Greifer A FirstMove p60GAPB,v60,z50,tGreiferB;

Page 17: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL RelTool(p60GAPB,0,0,-50),v150,z50,tGreiferB; MoveL RelTool(p60GAPB,0,0,-100),v500,z50,tGreiferB; MoveJ RelTool(p60GAPB,0,0,-200),v500,z50,tGreiferB; MoveJ RelTool(p60GAPA,200,500,-150),v500,z10,tGreiferA; MoveL RelTool(p60GAPA,0,0,-100),v300,z10,tGreiferA; MoveL RelTool(p60GAPA,0,0,-25),v150,z10,tGreiferA; MoveL p60GAPA,v30,fine,tGreiferA; ENDPROC

PROC mv60GAPB_60EPB() !von : Greif- und Ablagepos 1 Greifer B !nach: Endpos Greifer B Greiferwechselstation FirstMove p60GAPB,v60,z50,tGreiferB; MoveL RelTool(p60GAPB,50,0,0),v30,z50,tGreiferB; MoveL RelTool(p60GAPB,150,0,0),v100,z50,tGreiferB; MoveL RelTool(p60GAPB,150,0,-150),v500,z50,tGreiferB; MoveJ p60EPB,v500,z50,tGreiferB; ENDPROC

PROC mv60EPB_10VPB() !von : Endpos Greifer B Greiferwechselstation !nach: Vorpos Kernschießmaschine Greifer B FirstMove p60EPB,v1000,z50,tGreiferB; MoveJ [[1377.52,202.27,1722.57],[0.100719,-0.755788,-0.013601,-0.646881],[0,0 MoveJ p10VPB,v1000,z50,tGreiferB; ENDPROC

PROC mv70EPB_20EPB() !von : Endpos Inspektion Greifer B !nach: Endpos Entgratstation Greifer B FirstMove p70EPB,v300,z50,tGreiferB; MoveJ p20EPB,v300,z50,tGreiferB; ENDPROC

PROC mv70VPB_71KPB() !von : Vorpos Inspektion Greifer B !nach: Kontrollpos 1 Inspektion Greifer B FirstMove p70VPB,v300,z50,tGreiferB; MoveL p71KPB,v300,fine,tGreiferB; ENDPROC

PROC mv71KPB_72KPB() !von : Kontrollpos 1 Inspektion Greifer B !nach: Kontrollpos 2 Inspektion Greifer B FirstMove p71KPB,v300,z50,tGreiferB; MoveJ [[-441.52,1402.38,1032.36],[0.483276,0.171864,-0.855526,0.070589],[1,0, MoveJ p72KPB,v300,fine,tGreiferB; ENDPROC

PROC mv72KPB_70EPB() !von : Kontrollpos 2 Inspektion Greifer B !nach: Endpos Inspektion Greifer B FirstMove p72KPB,v300,z50,tGreiferB; MoveL p70EPB,v300,z50,tGreiferB; ENDPROC

PROC mv20EPB_70VPB() !von : Endpos Entgratstation Greifer B !nach: Vorpos Inspektion Greifer B FirstMove\J,p20EPB,v200,z10,tGreiferB; MoveJ p70VPB,v300,z50,tGreiferB; ENDPROC

PROC mvHome_10VPB() !von : Homepos !nach: Vorpos Kernschießmaschine FirstMove\L,pHome,v200,fine,tHome; MoveJ pVPHome2,v100,z200,tHome; MoveJ pVPHome1,v500,z200,tHome; MoveJ [[1797.21,608.67,2055.8],[0.293868,0.338461,0.625883,0.638245],[0,0,0,0 MoveJ [[1612.09,1141.8,2006.35],[0.016446,0.311368,0.670323,0.673385],[0,0,0,

Page 18: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveJ p10VPB,v500,z10,tGreiferB; ENDPROC

PROC FingerWechselB() !von : Vorpos Kernschießmaschine !ueber: StopPos Fingerwechsel Greifer B !nach : Vorpos Kernschießmaschine FirstMove p10VPB,v800,z50,tGreiferB; MoveJ p70VPB,v800,z50,tGreiferB; MoveJ pFingerWechselB,v800,fine,tGreiferB; !Greiferfinger B jetzt wechseln Stop; MoveJ p70EPB,v800,z50,tGreiferB; MoveJ p10VPB,v800,z50,tGreiferB; ENDPROCENDMODULE

MODULE Move_T1 !******************************************************************* !* MODULE Move_T1 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 1. * !* Bremsscheibe. Stapelkern A * !* * !* Version: 1.0 Datum: 12.05.2004 * !******************************************************************* ! !10GP2 : Greifpos KSM Typ 2 !20EgP2 : Entgratpos Typ 2 !30TP2 : Tauchpos Teiltyp 2 !31AP2 : Abtropfposition 1 Typ 2 !32AP2 : Abtropfposition 2 Typ 2 !40AP2 : Ablegepos Typ 2 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP1:=[[407.91,1594.86,1441.93],[0.000388,0.501133,-0.865371, CONST robtarget p20EgP1:=[[1466.05,723.89,1651.45],[0.00052,0.116132,-0.993234, CONST robtarget p30TP1:=[[1509.5,-519.51,1016.56],[0.089603,-0.930964,0.088304, CONST robtarget p31AP1:=[[1509.37,-519.32,1592.78],[0.834511,-0.074221,0.533248 CONST robtarget p32AP1:=[[1509.33,-519.47,1490.04],[0.442705,0.413831,0.758026, CONST robtarget p40AP1:=[[-1615.86,-1527.49,816.71],[0.001942,0.954481,-0.29826

PROC mvGr110VP_10GP1() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 1 FirstMove p10VPA,v200,z10,tGreiferA; MoveL RelTool(p10GP1,0,0,-100),v1500,z10,tGreiferA; MoveL p10GP1,v500,fine,tGreiferA; ENDPROC

PROC mvGr110GP1_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP1,v200,z200,tGreiferA; MoveL RelTool(p10GP1,0,0,-50),v200,z10,tGreiferA; MoveL RelTool(p10GP1,0,0,-200),v1000,z200,tGreiferA; MoveL p10EPA,v2000,z200,tGreiferA; ENDPROC

PROC mv20VP_20EgP1() !von : Vorpos Entgratstation !nach: Entgratpos Teiltyp 1 FirstMove p20VPA,v200,z10,tGreiferA; MoveL p20EgP1,v800,z30,tGreiferA; ENDPROC

PROC mv20EgP1_20EP() !von : Entgratpos Teiltyp 1

Page 19: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!nach: Endpos Entgratstation FirstMove p20EgP1,v200,z10,tGreiferA; MoveL p20EPA,v1000,z100,tGreiferA; ENDPROC

PROC mv30VP_30TP1() !von : Vorpos Tauchen !nach: Tauchposition Teiltyp 1 FirstMove p30VPA,v200,z10,tGreiferA; MoveL [[1509.5,-519.48,1228.86],[0.089617,-0.930967,0.088295,-0.342745],[-1,0 MoveL [[1509.5,-519.49,1194.54],[0.089615,-0.930966,0.088303,-0.342745],[-1,0 MoveL p30TP1,v50,fine,tGreiferA; ENDPROC

PROC mv30TP1_31AP1() !von : Tauchposition Teiltyp 1 !nach: Abtropfposition 1 Typ 1 FirstMove p30TP1,v200,fine,tGreiferA; MoveJ [[1509.51,-519.52,1016.58],[0.223668,-0.81053,0.466398,-0.274748],[-1,0 MoveJ [[1509.48,-519.52,1234.33],[0.223654,-0.810546,0.466391,-0.274727],[-1, MoveJ p31AP1,v500,fine,tGreiferA; ENDPROC

PROC mv31AP1_32AP1() !von : Abtropfposition 1 Typ 1 !nach: Abtropfposition 2 Typ 1 FirstMove p31AP1,v20,fine,tGreiferA; MoveJ [[1509.33,-519.47,1490.06],[0.001002,-0.863624,0.002513,-0.504129],[-1, MoveJ [[1509.33,-519.48,1490.06],[0.406459,-0.51024,0.696783,-0.298229],[-1,0 MoveJ p32AP1,vRotT1,fine,tGreiferA; ENDPROC

PROC mv32AP1_30EP() !von : Abtropfposition 1 Teiltyp 1 !nach: Endpos Tauchen FirstMove p32AP1,v60,z10,tGreiferA; MoveJ p30EPA,v400,z50,tGreiferA; ENDPROC

PROC mv40VP_40AP1() !von : Vorpos Band !nach: Ablegeposition Teiltyp 1 Band FirstMove p40VPA,v3000,z200,tGreiferA; VelSet 50,500; MoveL Offs(p40AP1,800,0,50),v6000,z10,tGreiferA; MoveL Offs(p40AP1,0,0,50),v6000,z1,tGreiferA; MoveL p40AP1,v200,fine,tGreiferA; VelSet 100,5000; ENDPROC

PROC mv40AP1_40EP() !von : Ablegeposition Teiltyp 1 Band !nach: Endpos Band FirstMove\L,p40AP1,v6000,z200,tGreiferA; MoveL Offs(p40AP1,800,0,100),v6000,z1,tGreiferA; MoveJ p40EPA,v6000,z200,tGreiferA; ENDPROCENDMODULE

MODULE Move_T2 !******************************************************************* !* MODULE Move_T2 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 1. * !* Bremsscheibe. Stapelkern B * !* * !* Version: 1.0 Datum: 12.05.2004 * !******************************************************************* ! !Positions-Namen:

Page 20: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

! !10GP2 : Greifpos KSM Typ 2 !20EgP2 : Entgratpos Typ 2 !30TP2 : Tauchpos Teiltyp 2 !31AP2 : Abtropfposition 1 Typ 2 !32AP2 : Abtropfposition 2 Typ 2 !40AP2 : Ablegepos Typ 2 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP2:=[[402.14,1572.68,1596.49],[2.2E-05,0.521776,-0.853083,0 CONST robtarget p20EgP2:=[[1532.32,545.88,1573.42],[7E-06,-0.061742,0.998092,1. CONST robtarget p30TP2:=[[1362.64,-513.83,1275.86],[0.40666,-0.620519,0.566548, CONST robtarget p31AP2:=[[1509.37,-519.32,1592.78],[0.834511,-0.074221,0.533248 CONST robtarget p32AP2:=[[1509.33,-519.47,1490.04],[0.442705,0.413831,0.758026, CONST robtarget p40AP2:=[[-141.52,-2063.36,856.17],[9E-06,-0.025936,0.999664,-4

! PROC mvGr110VP_10GP2() !von : Vorpos Kernschießmaschine !nach: Greifpos Teiltyp 2 Kernschießmaschine FirstMove p10VPA,v200,z10,tGreiferA; MoveL RelTool(p10GP2,0,0,-200),v1500,z200,tGreiferA; MoveL RelTool(p10GP2,0,0,-50),v1000,z10,tGreiferA; MoveL p10GP2,v500,fine,tGreiferA; ENDPROC

PROC mvGr110GP2_10EP() !von : Greifpos Teiltyp 2 Kernschießmaschine !nach: Endpos Kernschießmaschine FirstMove\L,p10GP2,v200,z200,tGreiferA; MoveL RelTool(p10GP2,0,0,-100),v200,z10,tGreiferA; MoveL RelTool(p10GP2,0,0,-200),v1000,z200,tGreiferA; MoveL p10EPA,v2000,z200,tGreiferA; ENDPROC

PROC mv20VP_20EgP2() !von : Vorpos Entgratstation !nach: Entgratpos Teiltyp 2 FirstMove p20VPA,v200,z10,tGreiferA; MoveL RelTool(p20EgP2,0,0,-100),v500,z10,tGreiferA; MoveL p20EgP2,v100,fine,tGreiferA; ENDPROC

PROC mv20EgP2_20EP() !von : Entgratpos Teiltyp 2 !nach: Endpos Entgratstation FirstMove p20EgP2,v200,z10,tGreiferA; MoveL RelTool(p20EgP2,0,0,-100),v300,z10,tGreiferA; MoveL p20EPA,v1000,z100,tGreiferA; ENDPROC

PROC mv30VP_30TP2() !von : Vorpos Tauchen !nach: Tauchposition Teiltyp 2 FirstMove p30VPA,v200,z10,tGreiferA; MoveL Offs(p30TP2,0,0,250),v50,z1,tGreiferA; MoveL Offs(p30TP2,0,0,20),v50,z1,tGreiferA; MoveL p30TP2,v50,fine,tGreiferA; ConfJ\Off; MoveJ RelTool(p30TP2,0,0,0\Rz:=nRotT2/2),vRotT2,z1,tGreiferA; MoveJ RelTool(p30TP2,0,0,0\Rz:=nRotT2),vRotT2,fine,tGreiferA; ConfJ\On; ENDPROC

PROC mv30TP2_31AP1() !von : Tauchposition Teiltyp 2 !nach: Abtropfposition A Typ 2 FirstMove p30TP2,v200,fine,tGreiferA; MoveL [[1509.38,-519.3,1369.83],[0.706944,0.154673,0.670807,0.162247],[-1,1,-

Page 21: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveJ [[1509.38,-519.32,1592.76],[0.834508,-0.074224,0.533252,-0.117176],[-1, MoveJ [[1509.37,-519.29,1592.75],[0.809224,-0.149626,0.517186,-0.235135],[-1, MoveJ p31AP2,vRotT1,fine,tGreiferA; ENDPROC

PROC mv31AP2_32AP2() !von : Abtropfposition 1 Typ 2 !nach: Abtropfposition 2 Typ 2 FirstMove p31AP2,v20,fine,tGreiferA; MoveJ [[1509.33,-519.47,1490.06],[0.001002,-0.863624,0.002513,-0.504129],[-1, MoveJ [[1509.33,-519.48,1490.06],[0.406459,-0.51024,0.696783,-0.298229],[-1,0 MoveJ p32AP2,vRotT1,fine,tGreiferA; ENDPROC

PROC mv32AP2_30EP() !von : Abtropfposition 2 Teiltyp 2 !nach: Endpos Tauchen FirstMove p32AP2,v60,z10,tGreiferA; MoveJ p30EPA,v400,z50,tGreiferA; ENDPROC

PROC mv40VP_40AP2() !von : Vorpos Band !nach: Ablegeposition Teiltyp 2 Band FirstMove p40VPA,v200,z10,tGreiferA; MoveL RelTool(p40AP2,0,0,-300),v1000,z10,tGreiferA; MoveL RelTool(p40AP2,0,0,-20),v500,z10,tGreiferA; MoveL p40AP2,v100,fine,tGreiferA; ENDPROC

PROC mv40AP2_40EP() !von : Ablegeposition Teiltyp 2 Band !nach: Endpos Band FirstMove\L,p40AP2,v200,z200,tGreiferA; MoveL RelTool(p40AP2,0,0,-200),v1000,z1,tGreiferA; MoveL p40EPA,v2500,z200,tGreiferA; ENDPROCENDMODULE

MODULE Move_T71 !******************************************************************* !* MODULE Move_T1 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 71. * !* Bremsscheibe.Sauer 4079000501 3 Belegung. * !* * !* Version: 1.0 Datum: 16.09.2002 * !******************************************************************* ! !10GP71 : Greifpos KSM Typ 71 !20EgP71 : Entgratpos Typ 71 !30TP71 : Tauchpos Typ 71 !31AP71 : Abtropfposition 1 Typ 71 !32AP71 : Abtropfposition 2 Typ 71 !40AP71 : Ablagepos Typ 71 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP71:=[[403.1,1593.4,1432.02],[0.69559,-0.125392,-0.696208,- CONST robtarget p20EgP71:=[[1607.18,680.58,1223.72],[0.338433,-0.618801,-0.3353 CONST robtarget p30TP71:=[[1695.04,-442.29,1069.28],[0.048131,-0.252002,-0.7090 CONST robtarget p31AP71:=[[1695.04,-442.2,1277.69],[0.083199,-0.289527,-0.69454 CONST robtarget p32AP71:=[[1686.67,-377.63,1727.02],[0.200864,-0.031311,0.75182 CONST robtarget p40AP71:=[[-1613.71,-1525.03,890.2],[0.08248,0.705301,0.082669,

PROC mvGr210VP_10GP71() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 71 FirstMove p10VPB,v800,z10,tGreiferB;

Page 22: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL RelTool(p10GP71,200,0,0),v800,z1,tGreiferB; MoveL p10GP71,v800,fine,tGreiferB; ENDPROC

PROC mvGr210GP71_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP71,v200,z200,tGreiferB; MoveL RelTool(p10GP71,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP71,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP71() !von : Vorpos Entgratstation !nach: Entgratpos Typ 71 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP71,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP71,50,0,0),v300,z5,tGreiferB; MoveL p20EgP71,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP71_20EP() !von : Entgratpos Typ 71 !nach: Endpos Entgratstation FirstMove p20EgP71,v200,z10,tGreiferB; MoveL RelTool(p20EgP71,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP71,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP71() !von : Vorpos Tauchen !nach: Tauchpos Typ 71 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP71,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP71,0,0,20),v200,z10,tGreiferB; MoveL p30TP71,v100,fine,tGreiferB; ENDPROC

PROC mv30TP71_31AP71() !von : Tauchpos Typ 71 !nach: Abtropfpos 1 Typ 71 FirstMove p30TP71,v200,z10,tGreiferB; MoveL Offs(p30TP71,0,0,250),v500,z200,tGreiferB; MoveL p31AP71,v400,fine,tGreiferB; ENDPROC

PROC mv31AP71_32AP71() !von : Abtropfpos 1 Typ 71 !nach: Abtropfpos 2 Typ 71 FirstMove p31AP71,v200,z10,tGreiferB; MoveL p32AP71,v400,fine,tGreiferB; ENDPROC

PROC mv32AP71_30EP() !von : Abtropfpos Typ 71 !nach: Endpos Tauchen FirstMove p32AP71,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP71() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 71 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-589.98,-906.9,1228.36],[0.559596,0.562266,-0.444318,-0.416282],[-2,0 MoveL [[-455.59,-1411.79,929.59],[0.089875,0.705043,0.089691,-0.697706],[-2,0 MoveL [[-1044.17,-1524.77,923.92],[0.089879,0.705036,0.089726,-0.697707],[-2, MoveL [[-1379.27,-1518.98,924.1],[0.132646,-0.698601,0.133951,0.690232],[-2,0

Page 23: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL [[-1561.4,-1526.67,886.53],[0.123418,-0.694331,0.126102,0.697691],[-2,0 ENDPROC

PROC mv40AP71_40EP() !von : Ablagepos 1 Typ 71 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP71,v200,fine,tGreiferB; MoveL [[-1590.53,-1525.07,805.46],[0.08245,0.705288,0.082643,-0.699244],[-2,0 MoveL [[-691.08,-1530.78,810.23],[0.082451,0.705292,0.082669,-0.699236],[-2,0 MoveL [[-814.01,-995.98,1081.67],[0.540198,0.569393,-0.424318,-0.451588],[-2, MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T72 !******************************************************************* !* MODULE Move_T72 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 72. * !* Bremsscheibe.Knorr 72669 * !* * !* Version: 1.0 Datum: 16.09.2002 * !******************************************************************* ! !10GP72 : Greifpos KSM Typ 72 !20EgP72 : Entgratpos Typ 72 !30TP72 : Tauchpos Typ 72 !31AP72 : Abtropfposition 1 Typ 72 !32AP72 : Abtropfposition 2 Typ 72 !40AP72 : Ablagepos Typ 72 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP72:=[[402.78,1596.42,1421.97],[0.700486,-0.11819,-0.691758 CONST robtarget p20EgP72:=[[1606.51,679.69,1207.97],[0.300521,-0.6422,-0.305732 CONST robtarget p30TP72:=[[1695.04,-442.18,1027.66],[0.083206,-0.289531,-0.6945 CONST robtarget p31AP72:=[[1695.04,-442.2,1277.69],[0.083199,-0.289527,-0.69454 CONST robtarget p32AP72:=[[1683.97,-356.86,1871.69],[0.286756,-0.136319,0.74002 CONST robtarget p40AP72:=[[-1639.76,-1533.1,772.88],[0.696898,0.053318,-0.71270

PROC mvGr210VP_10GP72() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 72 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP72,200,0,0),v800,z1,tGreiferB; MoveL p10GP72,v300,fine,tGreiferB; ENDPROC

PROC mvGr210GP72_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP72,v200,z200,tGreiferB; MoveL RelTool(p10GP72,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP72,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP72() !von : Vorpos Entgratstation !nach: Entgratpos Typ 72 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP72,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP72,50,0,0),v600,z10,tGreiferB; MoveL p20EgP72,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP72_20EP() !von : Entgratpos Typ 72 !nach: Endpos Entgratstation

Page 24: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

FirstMove p20EgP72,v200,z10,tGreiferB; MoveL RelTool(p20EgP72,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP72,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP72() !von : Vorpos Tauchen !nach: Tauchpos Typ 72 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP72,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP72,0,0,20),v200,z10,tGreiferB; MoveL p30TP72,v100,fine,tGreiferB; ENDPROC

PROC mv30TP72_31AP72() !von : Tauchpos Typ 72 !nach: Abtropfpos 1 Typ 72 FirstMove p30TP72,v200,z10,tGreiferB; MoveL Offs(p30TP72,0,0,250),v500,z200,tGreiferB; MoveL p31AP72,v400,fine,tGreiferB; ENDPROC

PROC mv31AP72_32AP72() !von : Abtropfpos 1 Typ 72 !nach: Abtropfpos 2 Typ 72 FirstMove p31AP72,v200,z10,tGreiferB; MoveL p32AP72,v400,fine,tGreiferB; ENDPROC

PROC mv32AP72_30EP() !von : Abtropfpos Typ 72 !nach: Endpos Tauchen FirstMove p32AP72,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP72() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 72 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP72,-50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP72,-50,0,0),v500,z1,tGreiferB; MoveL p40AP72,v50,fine,tGreiferB; ENDPROC

PROC mv40AP72_40EP() !von : Ablagepos 1 Typ 72 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP72,v200,z200,tGreiferB; MoveL RelTool(p40AP72,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP72,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T73 !******************************************************************* !* MODULE Move_T73 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 73. * !* Bremsscheibe.Knorr 34533F * !* * !* Version: 1.0 Datum: 16.09.2002 * !******************************************************************* ! !10GP73 : Greifpos KSM Typ 73 !20EgP73 : Entgratpos Typ 73 !30TP73 : Tauchpos Typ 73

Page 25: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!31AP73 : Abtropfposition 1 Typ 73 !32AP73 : Abtropfposition 2 Typ 73 !40AP73 : Ablagepos Typ 73 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP73:=[[401.21,1594.18,1429.54],[0.69614,-0.124909,-0.69614, CONST robtarget p20EgP73:=[[1607.27,682.17,1150.73],[0.317548,-0.630558,-0.3099 CONST robtarget p30TP73:=[[1674.49,-441.86,1074.87],[0.008736,-0.208217,-0.7225 CONST robtarget p31AP73:=[[1695.05,-442.27,1277.92],[0.140731,-0.349921,-0.6661 CONST robtarget p32AP73:=[[1687.41,-383.34,1687.42],[0.176573,-0.002341,0.75247 CONST robtarget p40AP73:=[[-1582.39,-1524.16,757.33],[0.703919,0.056946,-0.7054

PROC mvGr210VP_10GP73() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 73 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP73,200,0,0),v800,z1,tGreiferB; MoveL p10GP73,v800,fine,tGreiferB; ENDPROC

PROC mvGr210GP73_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP73,v200,z200,tGreiferB; MoveL RelTool(p10GP73,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP73,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP73() !von : Vorpos Entgratstation !nach: Entgratpos Typ 73 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP73,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP73,50,0,0),v600,z10,tGreiferB; MoveL p20EgP73,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP73_20EP() !von : Entgratpos Typ 73 !nach: Endpos Entgratstation FirstMove p20EgP73,v200,z10,tGreiferB; MoveL RelTool(p20EgP73,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP73,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP73() !von : Vorpos Tauchen !nach: Tauchpos Typ 73 FirstMove p30VPB,v600,z10,tGreiferB; MoveL Offs(p30TP73,0,0,250),v800,z200,tGreiferB; MoveL Offs(p30TP73,0,0,20),v400,z10,tGreiferB; MoveL p30TP73,v200,fine,tGreiferB; ENDPROC

PROC mv30TP73_31AP73() !von : Tauchpos Typ 73 !nach: Abtropfpos 1 Typ 73 FirstMove p30TP73,v200,z10,tGreiferB; MoveL Offs(p30TP73,0,0,250),v500,z200,tGreiferB; MoveL p31AP73,v400,fine,tGreiferB; WaitTime 5; ENDPROC

PROC mv31AP73_32AP73() !von : Abtropfpos 1 Typ 73 !nach: Abtropfpos 2 Typ 73 FirstMove p31AP73,v200,z10,tGreiferB;

Page 26: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL p32AP73,v400,fine,tGreiferB; ENDPROC

PROC mv32AP73_30EP() !von : Abtropfpos Typ 73 !nach: Endpos Tauchen FirstMove p32AP73,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP73() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 73 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP73,50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP73,50,0,0),v800,z1,tGreiferB; MoveL p40AP73,v600,fine,tGreiferB; ENDPROC

PROC mv40AP73_40EP() !von : Ablagepos 1 Typ 73 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP73,v200,z200,tGreiferB; MoveL RelTool(p40AP73,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP73,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T74 !******************************************************************* !* MODULE Move_T74 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 74. * !* Bremsscheibe.Brembo 01718306 * !* * !* Version: 1.0 Datum: 02.09.2003 * !******************************************************************* ! !10GP74 : Greifpos KSM Typ 74 !20EgP74 : Entgratpos Typ 74 !30TP74 : Tauchpos Typ 74 !31AP74 : Abtropfposition 1 Typ 74 !32AP74 : Abtropfposition 2 Typ 74 !40AP74 : Ablagepos Typ 74 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP74:=[[402.96,1596.36,1420.62],[0.695383,-0.122653,-0.69676 CONST robtarget p20EgP74:=[[1608.06,681.8,1150.54],[0.308784,-0.632901,-0.31412 CONST robtarget p30TP74:=[[1681.01,-440.94,1050.6],[0.047916,-0.249829,-0.71048 CONST robtarget p31AP74:=[[1659.7,-448.19,1238.35],[0.011459,-0.210293,-0.72341 CONST robtarget p32AP74:=[[1688.53,-398.48,1593.4],[0.16933,0.005683,0.753014,0 CONST robtarget p40AP74:=[[-1638.57,-1528.3,759.4],[0.700957,0.05138,-0.709257,

PROC mvGr210VP_10GP74() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 74 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP74,200,0,0),v800,z1,tGreiferB; MoveL p10GP74,v800,fine,tGreiferB; ENDPROC

PROC mvGr210GP74_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP74,v200,z200,tGreiferB; MoveL RelTool(p10GP74,50,0,0),v100,z1,tGreiferB;

Page 27: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL RelTool(p10GP74,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP74() !von : Vorpos Entgratstation !nach: Entgratpos Typ 74 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP74,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP74,50,0,0),v600,z10,tGreiferB; MoveL p20EgP74,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP74_20EP() !von : Entgratpos Typ 74 !nach: Endpos Entgratstation FirstMove p20EgP74,v200,z10,tGreiferB; MoveL RelTool(p20EgP74,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP74,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP74() !von : Vorpos Tauchen !nach: Tauchpos Typ 74 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP74,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP74,0,0,20),v400,z10,tGreiferB; MoveL p30TP74,v30,fine,tGreiferB; ENDPROC

PROC mv30TP74_31AP74() !von : Tauchpos Typ 74 !nach: Abtropfpos 1 Typ 74 FirstMove p30TP74,v200,z10,tGreiferB; MoveL [[1693.7,-441.27,1307.87],[0.019699,0.175918,0.732626,0.65721],[-1,0,-1 MoveL p31AP74,v400,fine,tGreiferB; ENDPROC

PROC mv31AP74_32AP74() !von : Abtropfpos 1 Typ 74 !nach: Abtropfpos 2 Typ 74 FirstMove p31AP74,v200,z10,tGreiferB; MoveL p32AP74,v400,fine,tGreiferB; ENDPROC

PROC mv32AP74_30EP() !von : Abtropfpos Typ 74 !nach: Endpos Tauchen FirstMove p32AP74,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP74() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 74 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-1046.4,-1437.91,861.58],[0.696899,0.053325,-0.7127,0.059562],[-2,0,1 MoveL [[-1638.66,-1533.37,861.63],[0.696881,0.053293,-0.712722,0.059535],[-2, MoveL p40AP74,v400,fine,tGreiferB; ENDPROC

PROC mv40AP74_40EP() !von : Ablagepos 1 Typ 74 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP74,v200,z200,tGreiferB; MoveL RelTool(p40AP74,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP74,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v2500,z200,tGreiferB; ENDPROC

Page 28: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

ENDMODULE

MODULE Move_T75 !******************************************************************* !* MODULE Move_T75 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 75. * !* Bremsscheibe.Knorr 31070 * !* * !* Version: 1.0 Datum:05.09.2003 * !******************************************************************* ! !10GP75 : Greifpos KSM Typ 75 !20EgP75 : Entgratpos Typ 75 !30TP75 : Tauchpos Typ 75 !31AP75 : Abtropfposition 1 Typ 75 !32AP75 : Abtropfposition 2 Typ 75 !40AP75 : Ablagepos Typ 75 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP75:=[[403.04,1596.38,1435.94],[0.695374,-0.122639,-0.69676 CONST robtarget p20EgP75:=[[1608.51,682.27,1151.95],[0.304704,-0.63202,-0.31270 CONST robtarget p30TP75:=[[1693.47,-441.08,1031.96],[0.094769,-0.272971,-0.7404 CONST robtarget p31AP75:=[[1693.38,-442.88,1296.25],[0.03734,0.156929,0.736999, CONST robtarget p32AP75:=[[1688.53,-398.48,1593.4],[0.16933,0.005683,0.753014,0 CONST robtarget p40AP75:=[[-1638.6,-1528.52,759.28],[0.703703,0.055494,-0.70629

PROC mvGr210VP_10GP75() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 75 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP75,200,0,0),v800,z1,tGreiferB; MoveL p10GP75,v600,fine,tGreiferB; ENDPROC

PROC mvGr210GP75_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP75,v200,z200,tGreiferB; MoveL RelTool(p10GP75,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP75,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP75() !von : Vorpos Entgratstation !nach: Entgratpos Typ 75 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP75,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP75,50,0,0),v600,z10,tGreiferB; MoveL p20EgP75,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP75_20EP() !von : Entgratpos Typ 75 !nach: Endpos Entgratstation FirstMove p20EgP75,v200,z10,tGreiferB; MoveL RelTool(p20EgP75,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP75,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP75() !von : Vorpos Tauchen !nach: Tauchpos Typ 75 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP75,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP75,0,0,20),v300,z10,tGreiferB;

Page 29: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL p30TP75,v60,fine,tGreiferB; ENDPROC

PROC mv30TP75_31AP75() !von : Tauchpos Typ 75 !nach: Abtropfpos 1 Typ 75 FirstMove p30TP75,v200,z10,tGreiferB; MoveL [[1693.7,-441.27,1307.87],[0.019699,0.175918,0.732626,0.65721],[-1,0,-1 MoveL p31AP75,v400,fine,tGreiferB; ENDPROC

PROC mv31AP75_32AP75() !von : Abtropfpos 1 Typ 75 !nach: Abtropfpos 2 Typ 75 FirstMove p31AP75,v200,z10,tGreiferB; MoveL p32AP75,v400,fine,tGreiferB; ENDPROC

PROC mv32AP75_30EP() !von : Abtropfpos Typ 75 !nach: Endpos Tauchen FirstMove p32AP75,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP75() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 75 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-1046.4,-1437.91,861.58],[0.696899,0.053325,-0.7127,0.059562],[-2,0,1 MoveL [[-1638.66,-1533.37,861.63],[0.696881,0.053293,-0.712722,0.059535],[-2, MoveL p40AP75,v400,fine,tGreiferB; ENDPROC

PROC mv40AP75_40EP() !von : Ablagepos 1 Typ 75 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP75,v200,z200,tGreiferB; MoveL RelTool(p40AP75,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP75,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v2500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T76 !******************************************************************* !* MODULE Move_T76 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 76. * !* Bremsscheibe. SMB200135 * !* * !* Version: 1.0 Datum: 08.09.2003 * !******************************************************************* ! !10GP76 : Greifpos KSM Typ 76 !20EgP76 : Entgratpos Typ 76 !30TP76 : Tauchpos Typ 76 !31AP76 : Abtropfposition 1 Typ 76 !32AP76 : Abtropfposition 2 Typ 76 !40AP76 : Ablagepos Typ 76 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP76:=[[404,1594.41,1472.56],[0.694894,-0.123873,-0.696757,- CONST robtarget p20EgP76:=[[1607.13,680.66,1203.12],[0.305057,-0.633112,-0.3135 CONST robtarget p30TP76:=[[1677.88,-442.2,1046.37],[0.072536,-0.278138,-0.69914 CONST robtarget p31AP76:=[[1695.04,-442.21,1277.72],[0.009023,0.189513,0.728218 CONST robtarget p32AP76:=[[1687.41,-383.34,1687.42],[0.176573,-0.002341,0.75247

Page 30: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

CONST robtarget p40AP76:=[[-1616.75,-1530.59,811.68],[0.702337,0.060139,-0.7071

PROC mvGr210VP_10GP76() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 76 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP76,200,0,0),v800,z1,tGreiferB; MoveL p10GP76,v300,fine,tGreiferB; ENDPROC

PROC mvGr210GP76_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP76,v200,z200,tGreiferB; MoveL RelTool(p10GP76,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP76,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP76() !von : Vorpos Entgratstation !nach: Entgratpos Typ 76 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP76,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP76,50,0,0),v600,z10,tGreiferB; MoveL p20EgP76,v200,fine,tGreiferB; ENDPROC

PROC mv20EgP76_20EP() !von : Entgratpos Typ 76 !nach: Endpos Entgratstation FirstMove p20EgP76,v200,z10,tGreiferB; MoveL RelTool(p20EgP76,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP76,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP76() !von : Vorpos Tauchen !nach: Tauchpos Typ 76 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP76,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP76,0,0,20),v200,z10,tGreiferB; MoveL p30TP76,v100,fine,tGreiferB; ENDPROC

PROC mv30TP76_31AP76() !von : Tauchpos Typ 76 !nach: Abtropfpos 1 Typ 76 FirstMove p30TP76,v200,z10,tGreiferB; MoveL Offs(p30TP76,0,0,250),v500,z200,tGreiferB; MoveL p31AP76,v400,fine,tGreiferB; ENDPROC

PROC mv31AP76_32AP76() !von : Abtropfpos 1 Typ 76 !nach: Abtropfpos 2 Typ 76 FirstMove p31AP76,v200,z10,tGreiferB; MoveL p32AP76,v400,fine,tGreiferB; ENDPROC

PROC mv32AP76_30EP() !von : Abtropfpos Typ 76 !nach: Endpos Tauchen FirstMove p32AP76,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP76() !von : Vorpos Auslaufband

Page 31: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!nach: Ablagepos 1 Typ 76 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP76,50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP76,50,0,0),v500,z1,tGreiferB; MoveL p40AP76,v50,fine,tGreiferB; ENDPROC

PROC mv40AP76_40EP() !von : Ablagepos 1 Typ 76 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP76,v200,z200,tGreiferB; MoveL RelTool(p40AP76,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP76,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T77 !******************************************************************* !* MODULE Move_T1 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 77. * !* Bremsscheibe.Z006407 * !* * !* Version: 1.0 Datum: 10.09.2003 * !******************************************************************* ! !10GP77 : Greifpos KSM Typ 77 !20EgP77 : Entgratpos Typ 77 !30TP77 : Tauchpos Typ 77 !31AP77 : Abtropfposition 1 Typ 77 !32AP77 : Abtropfposition 2 Typ 77 !40AP77 : Ablagepos Typ 77 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP77:=[[402.83,1594.09,1456.15],[0.694887,-0.122479,-0.69689 CONST robtarget p20EgP77:=[[1609.43,680.83,1253.32],[0.343212,-0.61515,-0.34692 CONST robtarget p30TP77:=[[1695.05,-442.22,1045.49],[0.048165,-0.251987,-0.7090 CONST robtarget p31AP77:=[[1695.04,-442.2,1277.69],[0.083199,-0.289527,-0.69454 CONST robtarget p32AP77:=[[1686.67,-377.63,1727.02],[0.200864,-0.031311,0.75182 CONST robtarget p40AP77:=[[-1613.71,-1525.03,890.2],[0.08248,0.705301,0.082669,

PROC mvGr210VP_10GP77() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 77 FirstMove p10VPB,v800,z10,tGreiferB; MoveL RelTool(p10GP77,200,0,0),v800,z1,tGreiferB; MoveL p10GP77,v400,fine,tGreiferB; ENDPROC

PROC mvGr210GP77_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP77,v200,z200,tGreiferB; MoveL RelTool(p10GP77,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP77,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP77() !von : Vorpos Entgratstation !nach: Entgratpos Typ 77 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP77,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP77,50,0,0),v300,z5,tGreiferB; MoveL p20EgP77,v40,fine,tGreiferB; ENDPROC

Page 32: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

PROC mv20EgP77_20EP() !von : Entgratpos Typ 77 !nach: Endpos Entgratstation FirstMove p20EgP77,v200,z10,tGreiferB; MoveL RelTool(p20EgP77,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP77,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP77() !von : Vorpos Tauchen !nach: Tauchpos Typ 77 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP77,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP77,0,0,20),v200,z10,tGreiferB; MoveL p30TP77,v100,fine,tGreiferB; ENDPROC

PROC mv30TP77_31AP77() !von : Tauchpos Typ 77 !nach: Abtropfpos 1 Typ 77 FirstMove p30TP77,v200,z10,tGreiferB; MoveL Offs(p30TP77,0,0,250),v500,z200,tGreiferB; MoveL p31AP77,v400,fine,tGreiferB; ENDPROC

PROC mv31AP77_32AP77() !von : Abtropfpos 1 Typ 77 !nach: Abtropfpos 2 Typ 77 FirstMove p31AP77,v200,z10,tGreiferB; MoveL p32AP77,v400,fine,tGreiferB; ENDPROC

PROC mv32AP77_30EP() !von : Abtropfpos Typ 77 !nach: Endpos Tauchen FirstMove p32AP77,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP77() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 77 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-589.98,-906.9,1228.36],[0.559596,0.562266,-0.444318,-0.416282],[-2,0 MoveL [[-455.59,-1411.79,929.59],[0.089875,0.705043,0.089691,-0.697706],[-2,0 MoveL [[-1044.17,-1524.77,923.92],[0.089879,0.705036,0.089726,-0.697707],[-2, MoveL [[-1611,-1524.32,923.97],[0.089901,0.704993,0.089803,-0.697738],[-2,0,- MoveL [[-1611.01,-1524.3,869.14],[0.090948,0.696326,0.088647,-0.7064],[-2,0,- ENDPROC

PROC mv40AP77_40EP() !von : Ablagepos 1 Typ 77 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP77,v200,fine,tGreiferB; MoveL [[-1590.53,-1525.07,805.46],[0.08245,0.705288,0.082643,-0.699244],[-2,0 MoveL [[-691.08,-1530.78,810.23],[0.082451,0.705292,0.082669,-0.699236],[-2,0 MoveL [[-814.01,-995.98,1081.67],[0.540198,0.569393,-0.424318,-0.451588],[-2, MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T78 !******************************************************************* !* MODULE Move_T1 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 78. * !* Bremsscheibe.Z004338 * !* *

Page 33: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* Version: 1.0 Datum: 10.09.2003 * !******************************************************************* ! !10GP78 : Greifpos KSM Typ 78 !20EgP78 : Entgratpos Typ 78 !30TP78 : Tauchpos Typ 78 !31AP78 : Abtropfposition 1 Typ 78 !32AP78 : Abtropfposition 2 Typ 78 !40AP78 : Ablagepos Typ 78 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP78:=[[403.27,1593.44,1436.42],[0.69545,-0.125167,-0.696367 CONST robtarget p20EgP78:=[[1606.71,682.54,1183.98],[0.370978,-0.599217,-0.3675 CONST robtarget p30TP78:=[[1693.47,-441.15,1056.77],[0.061049,-0.265425,-0.7037 CONST robtarget p31AP78:=[[1695.04,-442.2,1277.69],[0.083199,-0.289527,-0.69454 CONST robtarget p32AP78:=[[1686.67,-377.63,1727.02],[0.200864,-0.031311,0.75182 CONST robtarget p40AP78:=[[-1613.71,-1525.03,890.2],[0.08248,0.705301,0.082669,

PROC mvGr210VP_10GP78() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 78 FirstMove p10VPB,v800,z10,tGreiferB; MoveL RelTool(p10GP78,200,0,0),v800,z1,tGreiferB; MoveL p10GP78,v600,fine,tGreiferB; ENDPROC

PROC mvGr210GP78_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP78,v200,z200,tGreiferB; MoveL RelTool(p10GP78,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP78,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP78() !von : Vorpos Entgratstation !nach: Entgratpos Typ 78 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP78,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP78,50,0,0),v300,z5,tGreiferB; MoveL p20EgP78,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP78_20EP() !von : Entgratpos Typ 78 !nach: Endpos Entgratstation FirstMove p20EgP78,v200,z10,tGreiferB; MoveL RelTool(p20EgP78,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP78,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP78() !von : Vorpos Tauchen !nach: Tauchpos Typ 78 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP78,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP78,0,0,20),v300,z10,tGreiferB; MoveL p30TP78,v60,fine,tGreiferB; ENDPROC

PROC mv30TP78_31AP78() !von : Tauchpos Typ 78 !nach: Abtropfpos 1 Typ 78 FirstMove p30TP78,v200,z10,tGreiferB; MoveL Offs(p30TP78,0,0,250),v500,z200,tGreiferB; MoveL p31AP78,v400,fine,tGreiferB; ENDPROC

Page 34: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

PROC mv31AP78_32AP78() !von : Abtropfpos 1 Typ 78 !nach: Abtropfpos 2 Typ 78 FirstMove p31AP78,v200,z10,tGreiferB; MoveL p32AP78,v400,fine,tGreiferB; ENDPROC

PROC mv32AP78_30EP() !von : Abtropfpos Typ 78 !nach: Endpos Tauchen FirstMove p32AP78,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP78() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 78 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-589.98,-906.9,1228.36],[0.559596,0.562266,-0.444318,-0.416282],[-2,0 MoveL [[-455.59,-1411.79,929.59],[0.089875,0.705043,0.089691,-0.697706],[-2,0 MoveL [[-1044.17,-1524.77,923.92],[0.089879,0.705036,0.089726,-0.697707],[-2, MoveL [[-1611,-1524.32,923.97],[0.089901,0.704993,0.089803,-0.697738],[-2,0,- MoveL [[-1611.08,-1524.61,896.18],[0.09042,0.700455,0.089233,-0.7023],[-2,0,- ENDPROC

PROC mv40AP78_40EP() !von : Ablagepos 1 Typ 78 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP78,v200,fine,tGreiferB; MoveL [[-1590.53,-1525.07,805.46],[0.08245,0.705288,0.082643,-0.699244],[-2,0 MoveL [[-691.08,-1530.78,810.23],[0.082451,0.705292,0.082669,-0.699236],[-2,0 MoveL [[-814.01,-995.98,1081.67],[0.540198,0.569393,-0.424318,-0.451588],[-2, MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T79 !******************************************************************* !* MODULE Move_T79 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 79. * !* Bremsscheibe. BPW 452 * !* * !* Version: 1.0 Datum: 10.09.2003 * !******************************************************************* ! !10GP79 : Greifpos KSM Typ 79 !20EgP79 : Entgratpos Typ 79 !30TP79 : Tauchpos Typ 79 !31AP79 : Abtropfposition 1 Typ 79 !32AP79 : Abtropfposition 2 Typ 79 !40AP79 : Ablagepos Typ 79 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP79:=[[403.99,1594.27,1479.32],[0.694888,-0.123882,-0.69675 CONST robtarget p20EgP79:=[[1608.66,680.88,1186.6],[0.287804,-0.642874,-0.28573 CONST robtarget p30TP79:=[[1671.84,-442.57,1067.25],[0.058617,-0.197253,-0.7826 CONST robtarget p31AP79:=[[1695.04,-442.21,1277.72],[0.009023,0.189513,0.728218 CONST robtarget p32AP79:=[[1687.41,-383.34,1687.42],[0.176573,-0.002341,0.75247 CONST robtarget p40AP79:=[[-1617.2,-1530.7,819.12],[0.701991,0.055855,-0.707496

PROC mvGr210VP_10GP79() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 79 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP79,200,0,0),v800,z1,tGreiferB;

Page 35: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL p10GP79,v300,fine,tGreiferB; ENDPROC

PROC mvGr210GP79_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP79,v200,z200,tGreiferB; MoveL RelTool(p10GP79,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP79,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP79() !von : Vorpos Entgratstation !nach: Entgratpos Typ 79 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP79,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP79,50,0,0),v300,z1,tGreiferB; MoveL p20EgP79,v80,fine,tGreiferB; ENDPROC

PROC mv20EgP79_20EP() !von : Entgratpos Typ 79 !nach: Endpos Entgratstation FirstMove p20EgP79,v200,z10,tGreiferB; MoveL RelTool(p20EgP79,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP79,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP79() !von : Vorpos Tauchen !nach: Tauchpos Typ 79 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP79,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP79,0,0,20),v200,z10,tGreiferB; MoveL p30TP79,v100,fine,tGreiferB; ENDPROC

PROC mv30TP79_31AP79() !von : Tauchpos Typ 79 !nach: Abtropfpos 1 Typ 79 FirstMove p30TP79,v200,z10,tGreiferB; MoveL Offs(p30TP79,0,0,250),v500,z200,tGreiferB; MoveL p31AP79,v400,fine,tGreiferB; ENDPROC

PROC mv31AP79_32AP79() !von : Abtropfpos 1 Typ 79 !nach: Abtropfpos 2 Typ 79 FirstMove p31AP79,v200,z10,tGreiferB; MoveL p32AP79,v400,fine,tGreiferB; ENDPROC

PROC mv32AP79_30EP() !von : Abtropfpos Typ 79 !nach: Endpos Tauchen FirstMove p32AP79,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP79() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 79 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP79,50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP79,50,0,0),v600,z1,tGreiferB; MoveL p40AP79,v300,fine,tGreiferB; ENDPROC

Page 36: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

PROC mv40AP79_40EP() !von : Ablagepos 1 Typ 79 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP79,v200,z200,tGreiferB; MoveL RelTool(p40AP79,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP79,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T80 !******************************************************************* !* MODULE Move_T80 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 80. * !* Bremsscheibe. BPW 453 * !* * !* Version: 1.0 Datum: 10.09.2003 * !******************************************************************* ! !10GP80 : Greifpos KSM Typ 80 !20EgP80 : Entgratpos Typ 80 !30TP80 : Tauchpos Typ 80 !31AP80 : Abtropfposition 1 Typ 80 !32AP80 : Abtropfposition 2 Typ 80 !40AP80 : Ablagepos Typ 80 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP80:=[[404.01,1594.33,1422.55],[0.694888,-0.123878,-0.69675 CONST robtarget p20EgP80:=[[1608.43,681.26,1148.7],[0.23555,-0.661539,-0.244458 CONST robtarget p30TP80:=[[1677.88,-442.2,1046.37],[0.072536,-0.278138,-0.69914 CONST robtarget p31AP80:=[[1695.04,-442.21,1277.72],[0.009023,0.189513,0.728218 CONST robtarget p32AP80:=[[1687.41,-383.34,1687.42],[0.176573,-0.002341,0.75247 CONST robtarget p40AP80:=[[-1636.54,-1530.07,762.04],[0.702334,0.05803,-0.70732

PROC mvGr210VP_10GP80() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 80 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP80,200,0,0),v800,z1,tGreiferB; MoveL p10GP80,v300,fine,tGreiferB; ENDPROC

PROC mvGr210GP80_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP80,v200,z200,tGreiferB; MoveL RelTool(p10GP80,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP80,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP80() !von : Vorpos Entgratstation !nach: Entgratpos Typ 80 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP80,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP80,50,0,0),v600,z10,tGreiferB; MoveL p20EgP80,v200,fine,tGreiferB; ENDPROC

PROC mv20EgP80_20EP() !von : Entgratpos Typ 80 !nach: Endpos Entgratstation FirstMove p20EgP80,v200,z10,tGreiferB; MoveL RelTool(p20EgP80,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP80,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB;

Page 37: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

ENDPROC

PROC mv30VP_30TP80() !von : Vorpos Tauchen !nach: Tauchpos Typ 80 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP80,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP80,0,0,20),v200,z10,tGreiferB; MoveL p30TP80,v100,fine,tGreiferB; ENDPROC

PROC mv30TP80_31AP80() !von : Tauchpos Typ 80 !nach: Abtropfpos 1 Typ 80 FirstMove p30TP80,v200,z10,tGreiferB; MoveL Offs(p30TP80,0,0,250),v500,z200,tGreiferB; MoveL p31AP80,v400,fine,tGreiferB; ENDPROC

PROC mv31AP80_32AP80() !von : Abtropfpos 1 Typ 80 !nach: Abtropfpos 2 Typ 80 FirstMove p31AP80,v200,z10,tGreiferB; MoveL p32AP80,v400,fine,tGreiferB; ENDPROC

PROC mv32AP80_30EP() !von : Abtropfpos Typ 80 !nach: Endpos Tauchen FirstMove p32AP80,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP80() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 80 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP80,50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP80,50,0,0),v500,z1,tGreiferB; MoveL p40AP80,v50,fine,tGreiferB; ENDPROC

PROC mv40AP80_40EP() !von : Ablagepos 1 Typ 80 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP80,v200,z200,tGreiferB; MoveL RelTool(p40AP80,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP80,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T81 !******************************************************************* !* MODULE Move_T81 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 81. * !* Bremsscheibe.Brembo IAG 5468 * !* * !* Version: 1.0 Datum: 11.09.2003 * !******************************************************************* ! !10GP81 : Greifpos KSM Typ 81 !20EgP81 : Entgratpos Typ 81 !30TP81 : Tauchpos Typ 81 !31AP81 : Abtropfposition 1 Typ 81 !32AP81 : Abtropfposition 2 Typ 81 !40AP81 : Ablagepos Typ 81 Auslaufband !

Page 38: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP81:=[[404.48,1596.88,1418.97],[0.695462,-0.12317,-0.69667, CONST robtarget p20EgP81:=[[1609.01,683.21,1149.91],[0.37454,-0.596512,-0.37014 CONST robtarget p30TP81:=[[1681.64,-440.85,1056.24],[0.043259,-0.244775,-0.7122 CONST robtarget p31AP81:=[[1693.41,-442.93,1296.34],[0.011635,-0.211379,-0.7235 CONST robtarget p32AP81:=[[1688.53,-398.48,1593.4],[0.16933,0.005683,0.753014,0 CONST robtarget p40AP81:=[[-1635.54,-1521.21,759.42],[0.704289,0.053483,-0.7061

PROC mvGr210VP_10GP81() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 81 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP81,200,0,0),v800,z1,tGreiferB; MoveL p10GP81,v600,fine,tGreiferB; ENDPROC

PROC mvGr210GP81_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP81,v200,z200,tGreiferB; MoveL RelTool(p10GP81,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP81,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP81() !von : Vorpos Entgratstation !nach: Entgratpos Typ 81 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP81,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP81,50,0,0),v600,z10,tGreiferB; MoveL p20EgP81,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP81_20EP() !von : Entgratpos Typ 81 !nach: Endpos Entgratstation FirstMove p20EgP81,v200,z10,tGreiferB; MoveL RelTool(p20EgP81,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP81,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP81() !von : Vorpos Tauchen !nach: Tauchpos Typ 81 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP81,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP81,0,0,20),v200,z10,tGreiferB; MoveL p30TP81,v40,fine,tGreiferB; ENDPROC

PROC mv30TP81_31AP81() !von : Tauchpos Typ 81 !nach: Abtropfpos 1 Typ 81 FirstMove p30TP81,v200,z10,tGreiferB; MoveL [[1693.7,-441.27,1307.87],[0.019699,0.175918,0.732626,0.65721],[-1,0,-1 MoveL p31AP81,v400,fine,tGreiferB; ENDPROC

PROC mv31AP81_32AP81() !von : Abtropfpos 1 Typ 81 !nach: Abtropfpos 2 Typ 81 FirstMove p31AP81,v200,z10,tGreiferB; MoveL p32AP81,v400,fine,tGreiferB; ENDPROC

PROC mv32AP81_30EP() !von : Abtropfpos Typ 81

Page 39: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!nach: Endpos Tauchen FirstMove p32AP81,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP81() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 81 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-1046.4,-1437.91,861.58],[0.696899,0.053325,-0.7127,0.059562],[-2,0,1 MoveL [[-1638.66,-1533.37,861.63],[0.696881,0.053293,-0.712722,0.059535],[-2, MoveL p40AP81,v400,fine,tGreiferB; ENDPROC

PROC mv40AP81_40EP() !von : Ablagepos 1 Typ 81 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP81,v200,z200,tGreiferB; MoveL RelTool(p40AP81,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP81,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v2500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T82 !******************************************************************* !* MODULE Move_T1 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 82. * !* Bremsscheibe.73260 * !* * !* Version: 1.0 Datum: 11.09.2003 * !******************************************************************* ! !10GP82 : Greifpos KSM Typ 82 !20EgP82 : Entgratpos Typ 82 !30TP82 : Tauchpos Typ 82 !31AP82 : Abtropfposition 1 Typ 82 !32AP82 : Abtropfposition 2 Typ 82 !40AP82 : Ablagepos Typ 82 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP82:=[[402.83,1594.63,1455.96],[0.695129,-0.123511,-0.69667 CONST robtarget p20EgP82:=[[1607.44,681.3,1249.9],[0.342628,-0.621207,-0.341963 CONST robtarget p30TP82:=[[1693.81,-441.47,1073.48],[0.048989,-0.25258,-0.70853 CONST robtarget p31AP82:=[[1695.04,-442.2,1277.69],[0.083199,-0.289527,-0.69454 CONST robtarget p32AP82:=[[1686.67,-377.63,1727.02],[0.200864,-0.031311,0.75182 CONST robtarget p40AP82:=[[-1613.71,-1525.03,890.2],[0.08248,0.705301,0.082669,

PROC mvGr210VP_10GP82() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 82 FirstMove p10VPB,v800,z10,tGreiferB; MoveL RelTool(p10GP82,200,0,0),v800,z1,tGreiferB; MoveL p10GP82,v400,fine,tGreiferB; ENDPROC

PROC mvGr210GP82_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP82,v200,z200,tGreiferB; MoveL RelTool(p10GP82,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP82,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP82()

Page 40: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!von : Vorpos Entgratstation !nach: Entgratpos Typ 82 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP82,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP82,50,0,0),v300,z5,tGreiferB; MoveL p20EgP82,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP82_20EP() !von : Entgratpos Typ 82 !nach: Endpos Entgratstation FirstMove p20EgP82,v200,z10,tGreiferB; MoveL RelTool(p20EgP82,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP82,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP82() !von : Vorpos Tauchen !nach: Tauchpos Typ 82 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP82,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP82,0,0,20),v200,z10,tGreiferB; MoveL p30TP82,v100,fine,tGreiferB; ENDPROC

PROC mv30TP82_31AP82() !von : Tauchpos Typ 82 !nach: Abtropfpos 1 Typ 82 FirstMove p30TP82,v200,z10,tGreiferB; MoveL Offs(p30TP82,0,0,250),v500,z200,tGreiferB; MoveL p31AP82,v400,fine,tGreiferB; ENDPROC

PROC mv31AP82_32AP82() !von : Abtropfpos 1 Typ 82 !nach: Abtropfpos 2 Typ 82 FirstMove p31AP82,v200,z10,tGreiferB; MoveL p32AP82,v400,fine,tGreiferB; ENDPROC

PROC mv32AP82_30EP() !von : Abtropfpos Typ 82 !nach: Endpos Tauchen FirstMove p32AP82,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP82() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 82 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-589.98,-906.9,1228.36],[0.559596,0.562266,-0.444318,-0.416282],[-2,0 MoveL [[-455.59,-1411.79,929.59],[0.089875,0.705043,0.089691,-0.697706],[-2,0 MoveL [[-1044.17,-1524.77,923.92],[0.089879,0.705036,0.089726,-0.697707],[-2, MoveL [[-1611,-1524.32,923.97],[0.089901,0.704993,0.089803,-0.697738],[-2,0,- MoveL [[-1611.1,-1525.88,868.19],[0.089481,0.702248,0.089104,-0.700644],[-2,0 ENDPROC

PROC mv40AP82_40EP() !von : Ablagepos 1 Typ 82 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP82,v200,fine,tGreiferB; MoveL [[-1590.53,-1525.07,805.46],[0.08245,0.705288,0.082643,-0.699244],[-2,0 MoveL [[-691.08,-1530.78,810.23],[0.082451,0.705292,0.082669,-0.699236],[-2,0 MoveL [[-814.01,-995.98,1081.67],[0.540198,0.569393,-0.424318,-0.451588],[-2, MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

Page 41: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MODULE Move_T83 !******************************************************************* !* MODULE Move_T1 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 83. * !* Bremsscheibe.9754210112 * !* * !* Version: 1.0 Datum: 11.09.2003 * !******************************************************************* ! !10GP83 : Greifpos KSM Typ 83 !20EgP83 : Entgratpos Typ 83 !30TP83 : Tauchpos Typ 83 !31AP83 : Abtropfposition 1 Typ 83 !32AP83 : Abtropfposition 2 Typ 83 !40AP83 : Ablagepos Typ 83 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP83:=[[402.62,1592.8,1429.58],[0.695904,-0.126003,-0.695904 CONST robtarget p20EgP83:=[[1605.29,681.58,1149.89],[0.495566,-0.506582,-0.4929 CONST robtarget p30TP83:=[[1697.95,-437.95,1078.89],[0.034093,-0.204728,-0.7688 CONST robtarget p31AP83:=[[1695.04,-442.2,1277.69],[0.083199,-0.289527,-0.69454 CONST robtarget p32AP83:=[[1686.67,-377.63,1727.02],[0.200864,-0.031311,0.75182 CONST robtarget p40AP83:=[[-1613.71,-1525.03,890.2],[0.08248,0.705301,0.082669,

PROC mvGr210VP_10GP83() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 83 FirstMove p10VPB,v800,z10,tGreiferB; MoveL RelTool(p10GP83,200,0,0),v800,z1,tGreiferB; MoveL p10GP83,v800,fine,tGreiferB; ENDPROC

PROC mvGr210GP83_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP83,v200,z200,tGreiferB; MoveL RelTool(p10GP83,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP83,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP83() !von : Vorpos Entgratstation !nach: Entgratpos Typ 83 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP83,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP83,50,0,0),v300,z5,tGreiferB; MoveL p20EgP83,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP83_20EP() !von : Entgratpos Typ 83 !nach: Endpos Entgratstation FirstMove p20EgP83,v200,z10,tGreiferB; MoveL RelTool(p20EgP83,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP83,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP83() !von : Vorpos Tauchen !nach: Tauchpos Typ 83 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP83,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP83,0,0,20),v200,z10,tGreiferB; MoveL p30TP83,v100,fine,tGreiferB; ENDPROC

Page 42: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

PROC mv30TP83_31AP83() !von : Tauchpos Typ 83 !nach: Abtropfpos 1 Typ 83 FirstMove p30TP83,v200,z10,tGreiferB; MoveL Offs(p30TP83,0,0,250),v500,z200,tGreiferB; MoveL p31AP83,v400,fine,tGreiferB; ENDPROC

PROC mv31AP83_32AP83() !von : Abtropfpos 1 Typ 83 !nach: Abtropfpos 2 Typ 83 FirstMove p31AP83,v200,z10,tGreiferB; MoveL p32AP83,v400,fine,tGreiferB; ENDPROC

PROC mv32AP83_30EP() !von : Abtropfpos Typ 83 !nach: Endpos Tauchen FirstMove p32AP83,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP83() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 83 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-589.98,-906.9,1228.36],[0.559596,0.562266,-0.444318,-0.416282],[-2,0 MoveL [[-455.59,-1411.79,929.59],[0.089875,0.705043,0.089691,-0.697706],[-2,0 MoveL [[-1044.17,-1524.77,923.92],[0.089879,0.705036,0.089726,-0.697707],[-2, MoveL [[-1611,-1524.32,923.97],[0.089901,0.704993,0.089803,-0.697738],[-2,0,- MoveL [[-1610.99,-1524.35,895.38],[0.090407,0.700814,0.089244,-0.701942],[-2, ENDPROC

PROC mv40AP83_40EP() !von : Ablagepos 1 Typ 83 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP83,v200,fine,tGreiferB; MoveL [[-1590.53,-1525.07,805.46],[0.08245,0.705288,0.082643,-0.699244],[-2,0 MoveL [[-691.08,-1530.78,810.23],[0.082451,0.705292,0.082669,-0.699236],[-2,0 MoveL [[-814.01,-995.98,1081.67],[0.540198,0.569393,-0.424318,-0.451588],[-2, MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T84 !******************************************************************* !* MODULE Move_T84 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 84. * !* Bremsscheibe. RC 31303 * !* * !* Version: 1.0 Datum: 11.09.2003 * !******************************************************************* ! !10GP84 : Greifpos KSM Typ 84 !20EgP84 : Entgratpos Typ 84 !30TP84 : Tauchpos Typ 84 !31AP84 : Abtropfposition 1 Typ 84 !32AP84 : Abtropfposition 2 Typ 84 !40AP84 : Ablagepos Typ 84 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP84:=[[404,1594.41,1472.56],[0.694894,-0.123873,-0.696757,- CONST robtarget p20EgP84:=[[1606.02,681.35,1252.86],[0.328805,-0.621097,-0.3374 CONST robtarget p30TP84:=[[1677.23,-441.79,1038.04],[0.072969,-0.278446,-0.6988 CONST robtarget p31AP84:=[[1695.04,-442.21,1277.72],[0.009023,0.189513,0.728218

Page 43: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

CONST robtarget p32AP84:=[[1687.41,-383.34,1687.42],[0.176573,-0.002341,0.75247 CONST robtarget p40AP84:=[[-1616.75,-1530.59,811.68],[0.702337,0.060139,-0.7071

PROC mvGr210VP_10GP84() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 84 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP84,200,0,0),v800,z1,tGreiferB; MoveL p10GP84,v300,fine,tGreiferB; ENDPROC

PROC mvGr210GP84_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP84,v200,z200,tGreiferB; MoveL RelTool(p10GP84,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP84,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP84() !von : Vorpos Entgratstation !nach: Entgratpos Typ 84 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP84,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP84,50,0,0),v300,z10,tGreiferB; MoveL p20EgP84,v100,fine,tGreiferB; ENDPROC

PROC mv20EgP84_20EP() !von : Entgratpos Typ 84 !nach: Endpos Entgratstation FirstMove p20EgP84,v200,z10,tGreiferB; MoveL RelTool(p20EgP84,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP84,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP84() !von : Vorpos Tauchen !nach: Tauchpos Typ 84 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP84,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP84,0,0,20),v200,z10,tGreiferB; MoveL p30TP84,v100,fine,tGreiferB; ENDPROC

PROC mv30TP84_31AP84() !von : Tauchpos Typ 84 !nach: Abtropfpos 1 Typ 84 FirstMove p30TP84,v200,z10,tGreiferB; MoveL Offs(p30TP84,0,0,250),v500,z200,tGreiferB; MoveL p31AP84,v400,fine,tGreiferB; ENDPROC

PROC mv31AP84_32AP84() !von : Abtropfpos 1 Typ 84 !nach: Abtropfpos 2 Typ 84 FirstMove p31AP84,v200,z10,tGreiferB; MoveL p32AP84,v400,fine,tGreiferB; ENDPROC

PROC mv32AP84_30EP() !von : Abtropfpos Typ 84 !nach: Endpos Tauchen FirstMove p32AP84,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP84()

Page 44: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 84 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP84,50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP84,50,0,0),v500,z1,tGreiferB; MoveL p40AP84,v50,fine,tGreiferB; ENDPROC

PROC mv40AP84_40EP() !von : Ablagepos 1 Typ 84 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP84,v200,z200,tGreiferB; MoveL RelTool(p40AP84,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP84,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T85 !******************************************************************* !* MODULE Move_T85 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 85. * !* Bremsscheibe. BPW 433/434 * !* * !* Version: 1.0 Datum: 11.09.2003 * !******************************************************************* ! !10GP85 : Greifpos KSM Typ 85 !20EgP85 : Entgratpos Typ 85 !30TP85 : Tauchpos Typ 85 !31AP85 : Abtropfposition 1 Typ 85 !32AP85 : Abtropfposition 2 Typ 85 !40AP85 : Ablagepos Typ 85 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP85:=[[404,1594.41,1472.56],[0.694894,-0.123873,-0.696757,- CONST robtarget p20EgP85:=[[1605.82,681.62,1256.99],[0.329338,-0.622156,-0.3367 CONST robtarget p30TP85:=[[1676.64,-441.35,1067.62],[0.058837,-0.263104,-0.7046 CONST robtarget p31AP85:=[[1695.04,-442.21,1277.72],[0.009023,0.189513,0.728218 CONST robtarget p32AP85:=[[1687.41,-383.34,1687.42],[0.176573,-0.002341,0.75247 CONST robtarget p40AP85:=[[-1617.13,-1530.73,808.21],[0.702184,0.05827,-0.70730

PROC mvGr210VP_10GP85() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 85 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP85,200,0,0),v800,z1,tGreiferB; MoveL p10GP85,v600,fine,tGreiferB; ENDPROC

PROC mvGr210GP85_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP85,v200,z200,tGreiferB; MoveL RelTool(p10GP85,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP85,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP85() !von : Vorpos Entgratstation !nach: Entgratpos Typ 85 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP85,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP85,50,0,0),v600,z10,tGreiferB; MoveL p20EgP85,v60,fine,tGreiferB; ENDPROC

Page 45: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

PROC mv20EgP85_20EP() !von : Entgratpos Typ 85 !nach: Endpos Entgratstation FirstMove p20EgP85,v200,z10,tGreiferB; MoveL RelTool(p20EgP85,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP85,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP85() !von : Vorpos Tauchen !nach: Tauchpos Typ 85 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP85,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP85,0,0,20),v200,z10,tGreiferB; MoveL p30TP85,v100,fine,tGreiferB; ENDPROC

PROC mv30TP85_31AP85() !von : Tauchpos Typ 85 !nach: Abtropfpos 1 Typ 85 FirstMove p30TP85,v200,z10,tGreiferB; MoveL Offs(p30TP85,0,0,250),v500,z200,tGreiferB; MoveL p31AP85,v400,fine,tGreiferB; ENDPROC

PROC mv31AP85_32AP85() !von : Abtropfpos 1 Typ 85 !nach: Abtropfpos 2 Typ 85 FirstMove p31AP85,v200,z10,tGreiferB; MoveL p32AP85,v400,fine,tGreiferB; ENDPROC

PROC mv32AP85_30EP() !von : Abtropfpos Typ 85 !nach: Endpos Tauchen FirstMove p32AP85,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP85() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 85 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP85,50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP85,50,0,0),v500,z1,tGreiferB; MoveL p40AP85,v150,fine,tGreiferB; ENDPROC

PROC mv40AP85_40EP() !von : Ablagepos 1 Typ 85 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP85,v200,z200,tGreiferB; MoveL RelTool(p40AP85,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP85,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T86 !******************************************************************* !* MODULE Move_T86 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 86. * !* Bremsscheibe. 281721 * !* * !* Version: 1.0 Datum: 25.09.2003 * !*******************************************************************

Page 46: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

! !10GP86 : Greifpos KSM Typ 86 !20EgP86 : Entgratpos Typ 86 !30TP86 : Tauchpos Typ 86 !31AP86 : Abtropfposition 1 Typ 86 !32AP86 : Abtropfposition 2 Typ 86 !40AP86 : Ablagepos Typ 86 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP86:=[[404.12,1594.88,1468.42],[0.694892,-0.123887,-0.69675 CONST robtarget p20EgP86:=[[1608.11,681.14,1187.53],[0.300888,-0.639945,-0.2991 CONST robtarget p30TP86:=[[1677.89,-442.2,1067.31],[0.013164,-0.213905,-0.72139 CONST robtarget p31AP86:=[[1695.04,-442.21,1277.72],[0.009023,0.189513,0.728218 CONST robtarget p32AP86:=[[1687.41,-383.34,1687.42],[0.176573,-0.002341,0.75247 CONST robtarget p40AP86:=[[-1616.9,-1530.46,806.23],[0.70314,0.058076,-0.706393

PROC mvGr210VP_10GP86() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 86 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP86,200,0,0),v800,z1,tGreiferB; MoveL p10GP86,v300,fine,tGreiferB; ENDPROC

PROC mvGr210GP86_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP86,v200,z200,tGreiferB; MoveL RelTool(p10GP86,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP86,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP86() !von : Vorpos Entgratstation !nach: Entgratpos Typ 86 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP86,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP86,50,0,0),v600,z10,tGreiferB; MoveL p20EgP86,v200,fine,tGreiferB; ENDPROC

PROC mv20EgP86_20EP() !von : Entgratpos Typ 86 !nach: Endpos Entgratstation FirstMove p20EgP86,v200,z10,tGreiferB; MoveL RelTool(p20EgP86,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP86,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP86() !von : Vorpos Tauchen !nach: Tauchpos Typ 86 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP86,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP86,0,0,20),v200,z10,tGreiferB; MoveL p30TP86,v100,fine,tGreiferB; ENDPROC

PROC mv30TP86_31AP86() !von : Tauchpos Typ 86 !nach: Abtropfpos 1 Typ 86 FirstMove p30TP86,v200,z10,tGreiferB; MoveL Offs(p30TP86,0,0,250),v500,z200,tGreiferB; MoveL p31AP86,v400,fine,tGreiferB; ENDPROC

PROC mv31AP86_32AP86()

Page 47: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!von : Abtropfpos 1 Typ 86 !nach: Abtropfpos 2 Typ 86 FirstMove p31AP86,v200,z10,tGreiferB; MoveL p32AP86,v400,fine,tGreiferB; ENDPROC

PROC mv32AP86_30EP() !von : Abtropfpos Typ 86 !nach: Endpos Tauchen FirstMove p32AP86,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP86() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 86 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP86,50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP86,50,0,0),v500,z1,tGreiferB; MoveL p40AP86,v50,fine,tGreiferB; ENDPROC

PROC mv40AP86_40EP() !von : Ablagepos 1 Typ 86 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP86,v200,z200,tGreiferB; MoveL RelTool(p40AP86,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP86,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T87 !******************************************************************* !* MODULE Move_T87 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 87. * !* Bremsscheibe. OZT6502 * !* * !* Version: 1.0 Datum: 29.09.2003 * !******************************************************************* ! !10GP87 : Greifpos KSM Typ 87 !20EgP87 : Entgratpos Typ 87 !30TP87 : Tauchpos Typ 87 !31AP87 : Abtropfposition 1 Typ 87 !32AP87 : Abtropfposition 2 Typ 87 !40AP87 : Ablagepos Typ 87 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP87:=[[404.04,1594.27,1420.9],[0.694889,-0.123884,-0.696748 CONST robtarget p20EgP87:=[[1607.64,679.98,1212.62],[0.304103,-0.637016,-0.3103 CONST robtarget p30TP87:=[[1671.86,-442.56,1049.52],[0.09018,-0.239117,-0.77088 CONST robtarget p31AP87:=[[1695.04,-442.21,1277.72],[0.009023,0.189513,0.728218 CONST robtarget p32AP87:=[[1687.41,-383.34,1687.42],[0.176573,-0.002341,0.75247 CONST robtarget p40AP87:=[[-1617.23,-1530.69,761.14],[0.702113,0.057255,-0.7073

PROC mvGr210VP_10GP87() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 87 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP87,200,0,0),v800,z1,tGreiferB; MoveL p10GP87,v300,fine,tGreiferB; ENDPROC

PROC mvGr210GP87_10EP() !von : Greifpos KSM Typ 1

Page 48: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!nach: Endpos Kernschießmaschine FirstMove\L,p10GP87,v200,z200,tGreiferB; MoveL RelTool(p10GP87,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP87,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP87() !von : Vorpos Entgratstation !nach: Entgratpos Typ 87 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP87,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP87,50,0,0),v300,z1,tGreiferB; MoveL p20EgP87,v80,fine,tGreiferB; ENDPROC

PROC mv20EgP87_20EP() !von : Entgratpos Typ 87 !nach: Endpos Entgratstation FirstMove p20EgP87,v200,z10,tGreiferB; MoveL RelTool(p20EgP87,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP87,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP87() !von : Vorpos Tauchen !nach: Tauchpos Typ 87 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP87,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP87,0,0,20),v200,z10,tGreiferB; MoveL p30TP87,v100,fine,tGreiferB; ENDPROC

PROC mv30TP87_31AP87() !von : Tauchpos Typ 87 !nach: Abtropfpos 1 Typ 87 FirstMove p30TP87,v200,z10,tGreiferB; MoveL Offs(p30TP87,0,0,250),v500,z200,tGreiferB; MoveL p31AP87,v400,fine,tGreiferB; ENDPROC

PROC mv31AP87_32AP87() !von : Abtropfpos 1 Typ 79 !nach: Abtropfpos 2 Typ 79 FirstMove p31AP79,v200,z10,tGreiferB; MoveL p32AP79,v400,fine,tGreiferB; ENDPROC

PROC mv32AP87_30EP() !von : Abtropfpos Typ !nach: Endpos Tauchen FirstMove p32AP87,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP87() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 87 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL RelTool(p40AP87,50,0,-600),v800,z20,tGreiferB; MoveL RelTool(p40AP87,50,0,0),v600,z1,tGreiferB; MoveL p40AP87,v300,fine,tGreiferB; ENDPROC

PROC mv40AP87_40EP() !von : Ablagepos 1 Typ 87 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP87,v200,z200,tGreiferB; MoveL RelTool(p40AP87,80,0,0),v800,z10,tGreiferB;

Page 49: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL RelTool(p40AP87,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T88 !******************************************************************* !* MODULE Move_T88 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 88. * !* Bremsscheibe.RC 72890 * !* * !* Version: 1.0 Datum: 24.10.2003 * !******************************************************************* ! !10GP88 : Greifpos KSM Typ 88 !20EgP88 : Entgratpos Typ 88 !30TP88 : Tauchpos Typ 88 !31AP88 : Abtropfposition 1 Typ 88 !32AP88 : Abtropfposition 2 Typ 88 !40AP88 : Ablagepos Typ 88 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP88:=[[402.43,1595.53,1419.39],[0.696854,-0.12186,-0.695276 CONST robtarget p20EgP88:=[[1608.94,681.56,1143.83],[0.248923,-0.653054,-0.2477 CONST robtarget p30TP88:=[[1679.11,-439.59,1057.73],[0.049201,-0.250669,-0.7096 CONST robtarget p31AP88:=[[1673.77,-445.41,1247.88],[0.026969,-0.227772,-0.7185 CONST robtarget p32AP88:=[[1688.53,-398.48,1593.4],[0.16933,0.005683,0.753014,0 CONST robtarget p40AP88:=[[-1637.85,-1523.43,758.06],[0.703883,0.053432,-0.7062

PROC mvGr210VP_10GP88() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 88 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP88,200,0,0),v800,z1,tGreiferB; MoveL p10GP88,v600,fine,tGreiferB; ENDPROC

PROC mvGr210GP88_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP88,v200,z200,tGreiferB; MoveL RelTool(p10GP88,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP88,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP88() !von : Vorpos Entgratstation !nach: Entgratpos Typ 88 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP88,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP88,50,0,0),v600,z10,tGreiferB; MoveL p20EgP88,v20,fine,tGreiferB; ENDPROC

PROC mv20EgP88_20EP() !von : Entgratpos Typ 88 !nach: Endpos Entgratstation FirstMove p20EgP88,v200,z10,tGreiferB; MoveL RelTool(p20EgP88,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP88,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP88() !von : Vorpos Tauchen !nach: Tauchpos Typ 88

Page 50: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP88,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP88,0,0,20),v400,z10,tGreiferB; MoveL p30TP88,v100,fine,tGreiferB; ENDPROC

PROC mv30TP88_31AP88() !von : Tauchpos Typ 88 !nach: Abtropfpos 1 Typ 88 FirstMove p30TP88,v200,z10,tGreiferB; MoveL [[1693.7,-441.27,1307.87],[0.019699,0.175918,0.732626,0.65721],[-1,0,-1 MoveL p31AP88,v400,fine,tGreiferB; ENDPROC

PROC mv31AP88_32AP88() !von : Abtropfpos 1 Typ 88 !nach: Abtropfpos 2 Typ 88 FirstMove p31AP88,v200,z10,tGreiferB; MoveL p32AP88,v400,fine,tGreiferB; ENDPROC

PROC mv32AP88_30EP() !von : Abtropfpos Typ 88 !nach: Endpos Tauchen FirstMove p32AP88,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP88() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 88 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-1046.4,-1437.91,861.58],[0.696899,0.053325,-0.7127,0.059562],[-2,0,1 MoveL [[-1638.66,-1533.37,861.63],[0.696881,0.053293,-0.712722,0.059535],[-2, MoveL p40AP88,v400,fine,tGreiferB; ENDPROC

PROC mv40AP88_40EP() !von : Ablagepos 1 Typ 88 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP88,v200,z200,tGreiferB; MoveL RelTool(p40AP88,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP88,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v2500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T89 !******************************************************************* !* MODULE Move_T1 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 89. * !* Bremsscheibe.Z000556 * !* * !* Version: 1.0 Datum: 07.01.2004 * !******************************************************************* ! !10GP78 : Greifpos KSM Typ 89 !20EgP78 : Entgratpos Typ 89 !30TP78 : Tauchpos Typ 89 !31AP78 : Abtropfposition 1 Typ 89 !32AP78 : Abtropfposition 2 Typ 89 !40AP78 : Ablagepos Typ 89 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP89:=[[403.41,1593.48,1438.52],[0.695433,-0.125156,-0.69637 CONST robtarget p20EgP89:=[[1607.84,681.53,1234.23],[0.375733,-0.597308,-0.3773

Page 51: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

CONST robtarget p30TP89:=[[1693.81,-441.42,1064.99],[0.028658,-0.226243,-0.7148 CONST robtarget p31AP89:=[[1765.77,-435.77,1464.74],[0.036984,0.15844,0.735595, CONST robtarget p32AP89:=[[1686.67,-377.63,1727.02],[0.200864,-0.031311,0.75182 CONST robtarget p40AP89:=[[-1613.71,-1525.03,890.2],[0.08248,0.705301,0.082669,

PROC mvGr210VP_10GP89() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 89 FirstMove p10VPB,v800,z10,tGreiferB; MoveL RelTool(p10GP89,200,0,0),v800,z1,tGreiferB; MoveL p10GP89,v600,fine,tGreiferB; ENDPROC

PROC mvGr210GP89_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP89,v200,z200,tGreiferB; MoveL RelTool(p10GP89,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP89,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP89() !von : Vorpos Entgratstation !nach: Entgratpos Typ 89 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP89,200,0,0),v300,z10,tGreiferB; MoveL RelTool(p20EgP89,50,0,0),v150,z5,tGreiferB; MoveL p20EgP89,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP89_20EP() !von : Entgratpos Typ 89 !nach: Endpos Entgratstation FirstMove p20EgP89,v200,z10,tGreiferB; MoveL RelTool(p20EgP89,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP89,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP89() !von : Vorpos Tauchen !nach: Tauchpos Typ 89 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP89,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP89,0,0,20),v300,z10,tGreiferB; MoveL p30TP89,v60,fine,tGreiferB; ENDPROC

PROC mv30TP89_31AP89() !von : Tauchpos Typ 89 !nach: Abtropfpos 1 Typ 89 FirstMove p30TP89,v200,z10,tGreiferB; MoveL Offs(p30TP89,0,0,250),v500,z200,tGreiferB; MoveL p31AP89,v400,fine,tGreiferB; ENDPROC

PROC mv31AP89_32AP89() !von : Abtropfpos 1 Typ 89 !nach: Abtropfpos 2 Typ 89 FirstMove p31AP89,v200,z10,tGreiferB; MoveL p32AP89,v400,fine,tGreiferB; ENDPROC

PROC mv32AP89_30EP() !von : Abtropfpos Typ 89 !nach: Endpos Tauchen FirstMove p32AP89,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

Page 52: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

PROC mv40VP_40AP89() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 89 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-589.98,-906.9,1228.36],[0.559596,0.562266,-0.444318,-0.416282],[-2,0 MoveL [[-455.59,-1411.79,929.59],[0.089875,0.705043,0.089691,-0.697706],[-2,0 MoveL [[-1044.17,-1524.77,923.92],[0.089879,0.705036,0.089726,-0.697707],[-2, MoveL [[-1611,-1524.32,923.97],[0.089901,0.704993,0.089803,-0.697738],[-2,0,- MoveL [[-1611.12,-1524.58,882.76],[0.090405,0.700452,0.089223,-0.702306],[-2, ENDPROC

PROC mv40AP89_40EP() !von : Ablagepos 1 Typ 89 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP89,v200,fine,tGreiferB; MoveL [[-1590.53,-1525.07,805.46],[0.08245,0.705288,0.082643,-0.699244],[-2,0 MoveL [[-691.08,-1530.78,810.23],[0.082451,0.705292,0.082669,-0.699236],[-2,0 MoveL [[-814.01,-995.98,1081.67],[0.540198,0.569393,-0.424318,-0.451588],[-2, MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T90 !******************************************************************* !* MODULE Move_T90 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme * !* für den Bremsscheibentyp 90. * !* Bremsscheibe.Brembo 01718309 * !* * !* Version: 1.0 Datum: 16.03.2004 * !******************************************************************* ! !10GP90 : Greifpos KSM Typ 90 !20EgP90 : Entgratpos Typ 90 !30TP90 : Tauchpos Typ 90 !31AP90 : Abtropfposition 1 Typ 90 !32AP90 : Abtropfposition 2 Typ 90 !40AP90 : Ablagepos Typ 90 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP90:=[[404.48,1596.88,1418.97],[0.695462,-0.12317,-0.69667, CONST robtarget p20EgP90:=[[1605.79,683.13,1147.24],[0.409819,-0.575043,-0.4084 CONST robtarget p30TP90:=[[1681.64,-440.85,1056.24],[0.043259,-0.244775,-0.7122 CONST robtarget p31AP90:=[[1693.41,-442.93,1296.34],[0.011635,-0.211379,-0.7235 CONST robtarget p32AP90:=[[1688.53,-398.48,1593.4],[0.16933,0.005683,0.753014,0 CONST robtarget p40AP90:=[[-1635.54,-1521.21,759.42],[0.704289,0.053483,-0.7061

PROC mvGr210VP_10GP90() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 90 FirstMove p10VPB,v200,z10,tGreiferB; MoveL RelTool(p10GP90,200,0,0),v800,z1,tGreiferB; MoveL p10GP90,v600,fine,tGreiferB; ENDPROC

PROC mvGr210GP90_10EP() !von : Greifpos KSM Typ 1 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP90,v200,z200,tGreiferB; MoveL RelTool(p10GP90,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP90,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP90() !von : Vorpos Entgratstation !nach: Entgratpos Typ 90

Page 53: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP90,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP90,50,0,0),v600,z10,tGreiferB; MoveL p20EgP90,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP90_20EP() !von : Entgratpos Typ 90 !nach: Endpos Entgratstation FirstMove p20EgP90,v200,z10,tGreiferB; MoveL RelTool(p20EgP90,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP90,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP90() !von : Vorpos Tauchen !nach: Tauchpos Typ 90 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP90,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP90,0,0,20),v200,z10,tGreiferB; MoveL p30TP90,v40,fine,tGreiferB; ENDPROC

PROC mv30TP90_31AP90() !von : Tauchpos Typ 90 !nach: Abtropfpos 1 Typ 90 FirstMove p30TP90,v200,z10,tGreiferB; MoveL [[1693.7,-441.27,1307.87],[0.019699,0.175918,0.732626,0.65721],[-1,0,-1 MoveL p31AP90,v400,fine,tGreiferB; ENDPROC

PROC mv31AP90_32AP90() !von : Abtropfpos 1 Typ 90 !nach: Abtropfpos 2 Typ 90 FirstMove p31AP90,v200,z10,tGreiferB; MoveL p32AP90,v400,fine,tGreiferB; ENDPROC

PROC mv32AP90_30EP() !von : Abtropfpos Typ 90 !nach: Endpos Tauchen FirstMove p32AP90,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP90() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 90 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-1046.4,-1437.91,861.58],[0.696899,0.053325,-0.7127,0.059562],[-2,0,1 MoveL [[-1638.66,-1533.37,861.63],[0.696881,0.053293,-0.712722,0.059535],[-2, MoveL p40AP90,v400,fine,tGreiferB; ENDPROC

PROC mv40AP90_40EP() !von : Ablagepos 1 Typ 90 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP90,v200,z200,tGreiferB; MoveL RelTool(p40AP90,80,0,0),v800,z10,tGreiferB; MoveL RelTool(p40AP90,80,0,-600),v800,z10,tGreiferB; MoveL p40EPB,v2500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Move_T91 !******************************************************************* !* MODULE Move_T91 * !* * !* Dieses Modul enthält die typspezifischen Bewegungsprogramme *

Page 54: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* für den Bremsscheibentyp 91. * !* Bremsscheibe.Knorr 004321 * !* * !* Version: 1.0 Datum: 06.04.2004 * !******************************************************************* ! !10GP91 : Greifpos KSM Typ 91 !20EgP91 : Entgratpos Typ 91 !30TP91 : Tauchpos Typ 91 !31AP91 : Abtropfposition 1 Typ 91 !32AP91 : Abtropfposition 2 Typ 91 !40AP91 : Ablagepos Typ 91 Auslaufband ! !********************************************************** !* Robtarget-Definition * !********************************************************** CONST robtarget p10GP91:=[[403.27,1593.44,1436.42],[0.69545,-0.125167,-0.696367 CONST robtarget p20EgP91:=[[1606.83,680.12,1234.45],[0.308257,-0.638424,-0.3134 CONST robtarget p30TP91:=[[1695.04,-442.23,1060.09],[0.048164,-0.252003,-0.7090 CONST robtarget p31AP91:=[[1695.04,-442.2,1277.69],[0.083199,-0.289527,-0.69454 CONST robtarget p32AP91:=[[1686.67,-377.63,1727.02],[0.200864,-0.031311,0.75182 CONST robtarget p40AP91:=[[-1613.71,-1525.03,890.2],[0.08248,0.705301,0.082669,

PROC mvGr210VP_10GP91() !von : Vorpos Kernschießmaschine !nach: Greifpos KSM Typ 91 FirstMove p10VPB,v800,z10,tGreiferB; MoveL RelTool(p10GP91,200,0,0),v800,z1,tGreiferB; MoveL p10GP91,v400,fine,tGreiferB; ENDPROC

PROC mvGr210GP91_10EP() !von : Greifpos KSM Typ 91 !nach: Endpos Kernschießmaschine FirstMove\L,p10GP91,v200,z200,tGreiferB; MoveL RelTool(p10GP91,50,0,0),v100,z1,tGreiferB; MoveL RelTool(p10GP91,200,0,0),v500,z200,tGreiferB; MoveL p10EPB,v1000,z200,tGreiferB; ENDPROC

PROC mv20VP_20EgP91() !von : Vorpos Entgratstation !nach: Entgratpos Typ 91 FirstMove p20VPB,v200,z10,tGreiferB; MoveL RelTool(p20EgP91,200,0,0),v1500,z10,tGreiferB; MoveL RelTool(p20EgP91,50,0,0),v300,z5,tGreiferB; MoveL p20EgP91,v40,fine,tGreiferB; ENDPROC

PROC mv20EgP91_20EP() !von : Entgratpos Typ 91 !nach: Endpos Entgratstation FirstMove p20EgP91,v200,z10,tGreiferB; MoveL RelTool(p20EgP91,70,0,0),v100,z10,tGreiferB; MoveL RelTool(p20EgP91,200,0,0),v800,z10,tGreiferB; MoveL p20EPB,v1500,fine,tGreiferB; ENDPROC

PROC mv30VP_30TP91() !von : Vorpos Tauchen !nach: Tauchpos Typ 91 FirstMove p30VPB,v200,z10,tGreiferB; MoveL Offs(p30TP91,0,0,250),v500,z200,tGreiferB; MoveL Offs(p30TP91,0,0,20),v200,z10,tGreiferB; MoveL p30TP91,v100,fine,tGreiferB; ENDPROC

PROC mv30TP91_31AP91() !von : Tauchpos Typ 91 !nach: Abtropfpos 1 Typ 91 FirstMove p30TP91,v200,z10,tGreiferB;

Page 55: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

MoveL Offs(p30TP91,0,0,250),v500,z200,tGreiferB; MoveL p31AP91,v400,fine,tGreiferB; ENDPROC

PROC mv31AP91_32AP91() !von : Abtropfpos 1 Typ 91 !nach: Abtropfpos 2 Typ 91 FirstMove p31AP91,v200,z10,tGreiferB; MoveL p32AP91,v400,fine,tGreiferB; ENDPROC

PROC mv32AP91_30EP() !von : Abtropfpos Typ 91 !nach: Endpos Tauchen FirstMove p32AP91,v200,fine,tGreiferB; MoveJ [[1492.75,-413.77,1488.8],[0.244325,-0.453953,-0.60041,-0.611343],[-1,0 MoveL p30EPB,v1500,z200,tGreiferB; ENDPROC

PROC mv40VP_40AP91() !von : Vorpos Auslaufband !nach: Ablagepos 1 Typ 91 Auslaufband FirstMove p40VPB,v200,z10,tGreiferB; MoveL [[-589.98,-906.9,1228.36],[0.559596,0.562266,-0.444318,-0.416282],[-2,0 MoveL [[-455.59,-1411.79,929.59],[0.089875,0.705043,0.089691,-0.697706],[-2,0 MoveL [[-1044.17,-1524.77,923.92],[0.089879,0.705036,0.089726,-0.697707],[-2, MoveL [[-1611,-1524.32,923.97],[0.089901,0.704993,0.089803,-0.697738],[-2,0,- MoveL [[-1611.03,-1524.3,888.49],[0.09095,0.696331,0.088648,-0.706395],[-2,0, ENDPROC

PROC mv40AP91_40EP() !von : Ablagepos 1 Typ 91 Auslaufband !nach: Endpos Auslaufband FirstMove\L,p40AP91,v200,fine,tGreiferB; MoveL [[-1590.53,-1525.07,805.46],[0.08245,0.705288,0.082643,-0.699244],[-2,0 MoveL [[-691.08,-1530.78,810.23],[0.082451,0.705292,0.082669,-0.699236],[-2,0 MoveL [[-814.01,-995.98,1081.67],[0.540198,0.569393,-0.424318,-0.451588],[-2, MoveL p40EPB,v1500,z200,tGreiferB; ENDPROCENDMODULE

MODULE Einricht VAR jointtarget jpos10:=[[-112.82,13.9,-12.94,0.03,102.91,1.81],[9E+09,9E+09,9E

!********************************************************** !* Procedure CalibrierPos * !* * !* Diese Routine bewegt den Roboter in die Calibrier- * !* position. Hier kann anhand der Nonien der 0-Punkt * !* überprüft werden * !* Dieser Test sollte z.B. nach dem Booten oder nach * !* dem Countersetzen durchgeführt werden * !* * !* Date: Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC CalibrierPos() TPErase; TPWrite " Calibrier-Position"; TPWrite " ------------------"; TPWrite " "; TPWrite "Bewegung zur Sync-Position 0:"; TPWrite " Achse 1 0 deg"; TPWrite " 2 0 deg"; TPWrite " 3 0 deg"; TPReadFK nFkey,"Zur Calibrierposition fahren ?","JA","","","","NEIN"; IF nFkey=1 THEN MoveAbsJ [[0,0,0,0,0,0],[0,9E+09,9E+09,9E+09,9E+09,9E+09]],v200,fine,tGreif Stop; ELSE EXIT;

Page 56: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

ENDIF ENDPROC

!********************************************************** !* Routine SoftServo * !* * !* Aktivierung der Soft-Servo-Funktion * !* * !* Datum Version: Programmer: Reason: * !* 13.08.2002 1.0 M.Majewski created * !********************************************************** PROC SoftServo() SoftAct 1,0; SoftAct 2,0; SoftAct 3,0; SoftAct 4,20; SoftAct 5,20; SoftAct 6,20; RETURN; SoftDeact; RETURN; ENDPROC

PROC service() MoveJ [[-278.51,-984,969.18],[2E-05,0.707533,0.706681,2.5E-05],[-1,0,0,0],[9E MoveL [[-278.7,-1169.38,683.08],[9E-06,0.707521,0.706693,4.6E-05],[-1,0,0,0], MoveL [[-278.75,-1210.41,208.15],[5E-06,-0.707528,-0.706686,-5.3E-05],[-1,0,0 Stop; MoveL [[-278.75,-1210.41,208.15],[5E-06,-0.707528,-0.706686,-5.3E-05],[-1,0,0 MoveL [[-278.7,-1169.38,683.08],[9E-06,0.707521,0.706693,4.6E-05],[-1,0,0,0], MoveL [[-278.51,-984.01,969.21],[2.8E-05,0.707533,0.706681,1.8E-05],[-1,0,0,0 Stop; MoveJ p10VPB,v200,z10,tGreiferA; MoveJ p60VPB,v200,z10,tGreiferA; ENDPROC

PROC Ach6au0() jpos10:=CJointT(); jpos10.robax.rax_5:=90; jpos10.robax.rax_4:=90; MoveAbsJ jpos10,v800,z1,tGreiferA; Stop; ENDPROCENDMODULE

MODULE BUSCH(NOSTEPIN) !******************************************************** !* MODULE BUSCH * !* * !* Dieses Systemmodul enthält alle erforderlichen * !* Standard-Systemroutinen und Variablen. * !* * !* * !* Firma: IRS Industrie-Roboter-Service GmbH * !* D-35325 Mücke-Merlau * !* in Zusammenarbeit mit * !* ABB Flexible Automation GmbH * !* D-61169 Friedberg * !* * !* Date: Version: Programmer: * !* 12.12.2001 2.0 M. Majewski * !******************************************************** !******************************************************** !* Globale Variablen * !******************************************************** !Fehlernummer um Roboter zur Grundstellung zu fahren CONST errnum erZurHomePos:=89; CONST errnum erZurHomePos1:=90; CONST errnum erZurHomePos2:=91; CONST errnum erZurHomePos3:=92; CONST errnum erZurHomePos4:=93;

Page 57: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!Fehlernummer für Programmabbruch CONST errnum erAbbruch:=88; !Merker ob der Inhalt der Triggervariablen initialisiert ist VAR bool bInitTrigger:=FALSE; !Merker fuer Ausgabe der ProgInfo VAR bool bProgInfo:=FALSE; !Name des Kunden PERS string stKunde:="Hottinger 1/Busch Eisenwerke"; !Bezeichnung der Anlage PERS string stAnlage:="ABB Entnahmeroboter Maschine 1502"; !Robotertyp und Seriennummer PERS string stRobNr:="IRB64-10478"; !Name des Programmiers PERS string stProgrammierer:="M.Majewski"; !Zusatzinformation zur Programminfo (z.B. Bezeichnung des Bauteils) PERS string stInfo1:=""; PERS string stInfo2:=""; PERS string stInfo3:=""; !Version der letzen Programmänderung PERS string stVersion:="29.05.2004"; !Merker zum erneuten Anzeigen der Meldung nach einem Programmstop VAR bool bNeuAnzeige:=FALSE; !Merker ob der Inhalt der Triggervariablen erhalten ist VAR bool bInitTrigg:=FALSE; !clock zum Messen der Taktzeit VAR clock cl_Zeit; !********************************************************** !* Weltzonen Variablen * !********************************************************** !Volumen-Daten für die Homeposition VAR shapedata shHomePos; !Weltzone für die Überwachung der Homeposition VAR wzstationary wzHomePos:=[0]; !********************************************************** !* Meldungen * !********************************************************** CONST string stAuto_Manuell:="Wählen Sie MANUELL oder AUTO"; CONST string stWeiter_Abbruch:="Wählen Sie Weiter oder Abbruch !"; CONST string stManuell:="MANUELL"; CONST string stAuto:="AUTO"; CONST string stOK:="OK"; CONST string stWeiter:="Weiter"; CONST string stAbbruch:="Abbruch"; ! CONST string tmInHome{7}:=["-1"," Roboter ist in der Grundstellung"," "," ", CONST string tmNotInHome{7}:=["-1"," Roboter ist nicht in der Grundstellung"," CONST string tmAutoHome{7}:=["-1"," Sie haben AUTOMATIC gewählt !!!"," "," CONST string tmManualHome{7}:=["-1"," Sie haben MANUELL gewählt !!!"," "," CONST string tmOP_Auto{7}:=["-1"," Der Roboter befindet sich in der"," CONST string tmOP_MAN_PROG{7}:=["-1"," Der Roboter befindet sich nicht","

!********************************************************** !* Prozedur CheckHomepos * !* * !* CheckHomePos wird verwendet um zu überprüfen ob der * !* Roboter sich in seiner Homeposition befindet. * !* Steht er nicht in der Homeposition, so wird ein Menü * !* angeboten um den Roboter manuell oder automatisch * !* über die Prozedur mvHomePos in die Homeposition zu * !* fahren. * !* * !* Date: Version: Programmer: Reason: * !* 06.06.96 1.0 B. Schmitt created * !* 23.02.2001 2.0 B. Schmitt Betriebsarten* !********************************************************** PROC CheckHomePos() VAR num nFKey;

!Prüfen ob sich der Roboter in der Homeposition befindet WHILE diIRBinHome=low DO !Roboter muss im Handbetrieb sein

Page 58: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

WHILE OpMode()<>OP_MAN_PROG DO Message tmOP_MAN_PROG; TPReadFK nFKey,"",stOK,"","","",""; Stop; ENDWHILE Message tmNotInHome; TPReadFK nFKey,stAuto_Manuell,stManuell,"","","",stAuto; IF nFKey=5 AND OpMode()=OP_MAN_PROG THEN Message tmAutoHome; TPReadFK nFKey,Center(stWeiter_Abbruch),stWeiter,"","","",stAbbruch; IF nFKey=1 AND OpMode()=OP_MAN_PROG THEN %"mvHomePos"%; IF diIRBinHome=high THEN Message tmOP_Auto; TPReadFK nFKey,"",stOK,"","","",""; !Stop; ENDIF ELSE EXIT; ENDIF ELSE TPErase; Message tmManualHome; TPReadFK nFKey,"",stOK,"","","",""; EXIT; ENDIF ENDWHILE Message tmInHome; WaitTime 0.5; TPErase; ENDPROC

!********************************************************** !* Procedure Message * !* * !* Eine Fehlermeldung wird aus dem PG ausgeben. * !* Die Fehlermeldung besteht aus einem String-Datenfeld * !* das die Störungnummer sowie vier Zeilen Text enthält. * !* * !* Ist die Störungsnummer größer als Null, so wird die * !* Störungsnummer an die SPS gemeldet und die Meldung * !* wird in der Error-Log des Roboters gespeichert. * !* * !* Störungsnummern: * !* <0 : Ausgabe ohne Header * !* =0 : Meldung * !* >0 : Störung * !* * !* Date: Version: Programmer: Reason: * !* 16.02.2000 1.0 B. Schmitt created * !********************************************************** PROC Message( string fmMessage{*} \string Header \string Info)

VAR bool bOK; VAR num nErrorNo; VAR string stTitel; CONST string stStoerung:="Störung"; CONST string stMeldung:="Meldung";

!Auslesen der Störungsnummer aus dem ersten Datenfeld bOK:=StrToVal(fmMessage{1},nErrorNo); !Auswahl der Meldungsüberschrift IF Present(Header) THEN stTitel:=Header+" "+fmMessage{1}; ELSEIF nErrorNo>0 THEN stTitel:=stStoerung+" "+fmMessage{1}; ELSE stTitel:=stMeldung;

Page 59: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

ENDIF TPErase; TPWrite " "; IF nErrorNo>=0 THEN TPWrite "\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06 TPWrite Center(stTitel); TPWrite "\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06 ENDIF FOR i FROM 2 TO Dim(fmMessage,1) DO TPWrite fmMessage{i}; ENDFOR !Ausgabe der Zusatzmeldung IF Present(Info) TPWrite Info; !Störung muss von SPS oder über das PG quittiert werden IF nErrorNo>0 THEN !Fehlermeldung in die System-Error-Log schreiben ErrorLog stTitel,fmMessage\Info?Info; ENDIF !bei Schutzüranforderung -> Programmstop IF diSchutztuer=1 Stop; WaitTime 0.1; ENDPROC

!********************************************************** !* Procedure ProgInfo * !* * !* ProgInfo wird verwendet um Programminformationen auf * !* dem Programmiergerät auszugeben * !* * !* Globale Daten: string stKunde * !* string stAnlage * !* string stInfo * !* string stInfo2 * !* string stInfo3 * !* string stRobNr * !* string stProgrammierer * !* string stVersion * !* * !* * !* Date: Version: Programmer: Reason: * !* 25.08.1995 1.0 M. Majewski * !* 02.06.1997 2.0 B. Schmitt bAnzeige * !* 14.12.1999 3.0 B. Schmitt \Show * !********************************************************** PROC ProgInfo( \switch Show)

CONST string stRoboter:="Roboter"; CONST string stAutor:="Autor ";

!Routine verlassen, wenn Daten bereits angezeigt wurden IF bProgInfo=FALSE AND Present(Show)=FALSE RETURN; TPErase; TPWrite Center(stKunde); TPWrite Center(stAnlage); TPWrite " "; TPWrite Center(stInfo1); TPWrite Center(stInfo2); TPWrite Center(stInfo3); TPWrite "\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\06\0 TPWrite stRoboter+": "+stRobNr; IF StrLen(stProgrammierer)>18 THEN TPWrite stAutor+": "+StrPart(stProgrammierer,1,18)+" / "+stVersion; ELSE TPWrite stAutor+": "+stProgrammierer+" / "+stVersion; ENDIF WaitTime 0.1; !Merker um Daten nur einmal anzuzeigen bProgInfo:=FALSE; ENDPROC

Page 60: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!********************************************************** !* Prozedur WaitBreakDI * !* * !* Diese Prozedur wartet auf einen Eingang eine max. * !* Zeit. nach Ablauf der Zeit erfolgt die Meldung * !* welches Signal fehlt. Über den Eingang diIRBzurHome * !* wird die Prozedur durch einen ErrorHandler * !* abgebrochen * !* * !* Über die optionalen Parameter diOr und diAnd kann ein * !* zweiter Eingang über eine ODER- oder UND-Funktion * !* verarbeitet werden. * !* * !* Input Parameter: signaldi diSignal * !* dionum iCondition * !* string stMSG * !* errnum erNo * !* * !* Optionale Parameter: signaldi diOr * !* signaldi diAnd * !* switch Low * !* num MaxTime * !* * !* Date: Version: Programmer: Reason: * !* 12.12.96 1.0 B. Schmitt * !* 18.11.97 2.0 B. Schmitt * !* 28.08.98 3.0 B. Schmitt Opt. Low * !* 16.02.00 4.0 B. Schmitt opt. MaxTime * !* 07.10.01 4.1 M.Majewski opt. XOR * !********************************************************** PROC WaitBreakDI( VAR signaldi diSignal, dionum iCondition \VAR signaldi diOR |VAR signaldi diAND |VAR signaldi diXOR \switch Low, string stMSG{*} \num MaxTime, errnum erNo)

VAR bool bTimeOut; VAR bool bOk; VAR bool bFehler; VAR dionum iOptCond:=high; VAR num nMaxTime;

!Wartezeit festlegen, wird global über ntTimeOut deklariert, wenn keine Max-Z nMaxTime:=ntTimeOut; IF Present(MaxTime) nMaxTime:=MaxTime; !Abfragebedingung für optionalen Eingang bestimmen IF Present(Low) iOptCond:=0; WHILE NOT bOk DO !Auf die Eingänge eine max. Zeit warten, Abbruch mit diIRBzurHome ist mögli IF Present(diOR) THEN WaitUntil diSignal=iCondition OR diOR=iOptCond OR diIRBzurHome=high\MaxTi ELSEIF Present(diAND) THEN WaitUntil (diSignal=iCondition AND diAND=iOptCond) OR diIRBzurHome=high\M ELSEIF Present(diXOR) THEN WaitUntil (diSignal=iCondition XOR diXOR=iOptCond) OR diIRBzurHome=high\M ELSE WaitUntil diSignal=iCondition OR diIRBzurHome=high\MaxTime:=nMaxTime\Time ENDIF !bei Schutzüranforderung -> Programmstop IF diSchutztuer=1 Stop; !Wenn Zeit abgelaufen, dann Fehlermeldung ausgeben IF bTimeOut OR diIRBzurHome=high THEN !Bei Anforderung zur Homeposition Routine mit Errorhandler verlassen IF diIRBzurHome=high RAISE erNo; !Meldung nur einmal generieren IF NOT bFehler OR bNeuAnzeige Message stMSG;

Page 61: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!Fehlermerker setzen bFehler:=TRUE; bNeuAnzeige:=FALSE; ELSE bOk:=TRUE; ENDIF ENDWHILE IF bFehler TPErase; ERROR RAISE; ENDPROC

!********************************************************** !* Prozedur WaitMsgDI * !* * !* Diese Prozedur wartet auf einen Eingang eine max. * !* Zeit. nach Ablauf der Zeit erfolgt die Meldung * !* welches Signal fehlt. * !* * !* Über die optionalen Parameter diOr und diAnd kann ein * !* zweiter Eingang über eine ODER- oder UND-Funktion * !* verarbeitet werden. * !* * !* Input Parameter: signaldi diSignal * !* dionum iCondition * !* string stMSG * !* * !* Optionale Parameter: signaldi diOr * !* signaldi diAnd * !* switch Low * !* num MaxTime * !* * !* Date: Version: Programmer: Reason: * !* 16.05.95 1.0 M. Majewski * !* 07.05.97 2.0 B. Schmitt diOr * !* 28.08.98 3.0 B. Schmitt Opt. Low * !* 16.02.00 4.0 B. Schmitt opt. MaxTime* !* 07.10.01 4.1 M.Majewski diXOR * !********************************************************** PROC WaitMsgDI( VAR signaldi diSignal, dionum iCondition \VAR signaldi diOR |VAR signaldi diAND |VAR signaldi diXOR \switch Low, string stMSG{*} \num MaxTime)

VAR bool bTimeout:=FALSE; VAR bool bFehler:=FALSE; VAR bool bOK:=FALSE; VAR dionum iOptCond:=high; VAR num nMaxTime;

!Wartezeit festlegen, wird global über ntTimeOut deklariert, wenn keine Max-Z nMaxTime:=ntTimeOut; IF Present(MaxTime) nMaxTime:=MaxTime; !Abfragebedingung für optionalen Eingang bestimmen IF Present(Low) iOptCond:=0; WHILE NOT bOK DO !Warten auf die erforderlichen Signale IF Present(diOR) THEN WaitUntil diSignal=iCondition OR diOR=iOptCond\MaxTime:=nMaxTime\TimeFlag ELSEIF Present(diAND) THEN WaitUntil diSignal=iCondition AND diAND=iOptCond\MaxTime:=nMaxTime\TimeFl ELSEIF Present(diXOR) THEN WaitUntil diSignal=iCondition XOR diXOR=iOptCond\MaxTime:=nMaxTime\TimeFl ELSE WaitDI diSignal,iCondition\MaxTime:=nMaxTime\TimeFlag:=bTimeout; ENDIF

Page 62: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!bei Schutzüranforderung -> Programmstop IF diSchutztuer=1 Stop; !Anzeigen einer Meldung auf dem Programmiergerät IF bTimeout THEN !Meldung nur einmal generieren IF NOT bFehler OR bNeuAnzeige Message stMSG; bFehler:=TRUE; bNeuAnzeige:=FALSE; ELSE bOK:=TRUE; ENDIF ENDWHILE IF bFehler TPErase; ENDPROC

!********************************************************** !* Procedure WaitTimeDI * !* * !* Diese Prozedur wartet auf einen Eingang eine max. * !* Zeit. nach Ablauf der Zeit erfolgt die Meldung * !* welches Signal fehlt und eine Fehlerbehandlung wird * !* mit der übergebenen Fehlernummer ausgelöst. * !* * !* Input Parameter: signaldi diSignal * !* dionum iCondition * !* string stMSG * !* num nMaxTime * !* errnum erNo * !* * !* Optionale Parameter: signaldi diOr, diAnd * !* * !* Date: Version: Programmer: Reason: * !* 17.06.1998 1.0 B. Schmitt created * !* 28.08.98 2.0 B. Schmitt Optional Low* !* 26.03.99 3.0 B. Thurn diAnd * !* 21.12.2000 4.0 B. Schmitt ntTime1+2 * !********************************************************** PROC WaitTimeDI( VAR signaldi diSignal, dionum iCondition \VAR signaldi diOr |VAR signaldi diAnd \switch Low, string stMSG{*}, num nMaxTime, errnum erNo)

VAR bool bTimeout:=FALSE; VAR dionum iOptCond:=high; VAR num ntTime1; VAR num ntTime2;

!Abfragebedingung für optinonalen Eingang bestimmen IF Present(Low) iOptCond:=0; !Zeitbestimmung für erste Meldung IF nMaxTime>ntTimeOut THEN ntTime1:=ntTimeOut; ntTime2:=nMaxTime-ntTimeOut; ELSE ntTime1:=nMaxTime; ENDIF !Abbruchbedingung IF Present(diOr) THEN WaitUntil diSignal=iCondition OR diOr=iOptCond\MaxTime:=ntTime1\TimeFlag:=b IF bTimeout Message stMSG; IF ntTime2>0 WaitUntil diSignal=iCondition OR diOr=iOptCond\MaxTime:=ntTime ELSEIF Present(diAnd) THEN WaitUntil diSignal=iCondition AND diAnd=iOptCond\MaxTime:=ntTime1\TimeFlag: IF bTimeout Message stMSG; IF ntTime2>0 WaitUntil diSignal=iCondition AND diAnd=iOptCond\MaxTime:=ntTi ELSE

Page 63: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

WaitDI diSignal,iCondition\MaxTime:=ntTime1\TimeFlag:=bTimeout; IF bTimeout Message stMSG; IF ntTime2>0 WaitDI diSignal,iCondition\MaxTime:=ntTime2\TimeFlag:=bTimeout ENDIF !Abbruch bei Zeitüberschreitung IF bTimeout RAISE erNo; ERROR RAISE; ENDPROC

!********************************************************** !* Procedure FirstMove * !* * !* Ausblenden des ersten Bewegungspunktes in Automatik. * !* * !* Date: Version: Programmer: Reason: * !* 25.11.01 1.0 M.Majewski created * !********************************************************** PROC FirstMove( \switch L |switch J, robtarget ToPoint, speeddata speed, zonedata zone, INOUT tooldata tool \INOUT wobjdata WObj)

!wenn die Betriebsart des Roboters nicht Automatik ist, !dann diese Position anfahren IF OpMode()<>OP_AUTO THEN IF Present(L) MoveL ToPoint,speed,zone,tool\WObj?WObj; IF NOT Present(L) OR Present(J) MoveJ ToPoint,speed,zone,tool\WObj?WObj; ENDIF BACKWARD IF Present(L) MoveL ToPoint,speed,zone,tool\WObj?WObj; IF NOT Present(L) OR Present(J) MoveJ ToPoint,speed,zone,tool\WObj?WObj; ENDPROC

!********************************************************** !* Function Center * !* * !* Der Text wird zentriert über das PG zurückgegeben * !* * !* Date: Version: Programmer: Reason: * !* 17.04.1998 1.0 B. Schmitt created * !********************************************************** FUNC string Center( string stCenter)

VAR num nBlank;

!Berechnen der erforderlichen Leerzeichen nBlank:=(40-StrLen(stCenter)) DIV 2; IF nBlank>0 THEN FOR i FROM 1 TO nBlank DO stCenter:=" "+stCenter; ENDFOR ENDIF RETURN stCenter; ENDFUNC

!********************************************************** !* Funktion WordWrap * !* * !* Zeilenumbruch am Ende einer Zeile. Der Umbruch * !* erfolgt vorzugsweise an einem Leerzeichen. * !* * !* In dem Eingangsstring wird der verbleibende Text * !* (>40 Zeichen) belassen * !* * !* Date: Version: Programmer: Reason: *

Page 64: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* 26.04.2000 1.0 B. Schmitt created * !********************************************************** FUNC string WordWrap( INOUT string Text)

VAR string stText; VAR num nBlank;

!Zuweisung der Anfangswerte stText:=Text; !Zeilenumbruch ausführen IF StrLen(stText)>40 THEN !Leerzeichen am Ende der Zeile suchen FOR i FROM 35 TO 40 DO IF StrMemb(stText,i," ") nBlank:=i; ENDFOR !Kein Leerzeichen vorhanden ! IF nBlank=0 nBlank:=40; !Verbleibenden Text umkopieren Text:=StrPart(stText,nBlank+1,StrLen(stText)-nBlank); !Zeile auf nBlank Zeichen begrenzen (max. 40) und zurückgeben RETURN StrPart(stText,1,nBlank); ELSE Text:=""; RETURN stText; ENDIF ERROR RAISE; ENDFUNC

!********************************************************** !* Prozedur ErrorLog * !* * !* Die übergebene Meldung wird in die System-Errorlog * !* geschrieben * !* * !* Date: Version: Programmer: Reason: * !* 13.07.2000 1.0 B. Schmitt created * !* 28.09.2001 2.0 B. Schmitt modified * !********************************************************** LOCAL PROC ErrorLog( string Header, string ReasonArr{*} \string Info)

VAR num nMsgLength; VAR string fmTemp{10}; VAR num nLines:=1; VAR num nMaxLength:=145; VAR string stTemp; VAR string stText; VAR string stInfo;

!Länge des Headers bestimmen nMsgLength:=StrLen(Header); !Zusatzmeldung formatieren IF Present(Info) THEN stInfo:=Trim(Info); !Zusatzmeldung auf 40 Zeichen beschränken IF StrLen(stInfo)>40 stInfo:=StrPart(stInfo,1,40); !Maximale Länge der Meldung bestimmen nMaxLength:=nMaxLength-StrLen(stInfo); ENDIF !Leerzeichen aus erster Meldungszeile entfernen stText:=Trim(ReasonArr{2}); !Störungstext formatieren FOR i FROM 3 TO Dim(ReasonArr,1) DO IF nMsgLength<nMaxLength THEN stTemp:=Trim(ReasonArr{i}); !Zeile ist zu lang IF StrLen(stText)+StrLen(stTemp)>79 THEN

Page 65: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

fmTemp{nLines}:=WordWrap(stText); stText:=Trim(stText+" "+stTemp); !Berechnen der Länge der kompletten Meldung für das Error logging Add nMsgLength,StrLen(fmTemp{nLines}); !Neue Zeile beginnen Incr nLines; ELSE !Nächste Zeile ohne Leerzeichen anhängen stText:=Trim(stText+" "+stTemp); !Wenn Zeilelänge größer als 40 Zeichen ist, dann umbrechen und speicher IF StrLen(stText)>=40 THEN fmTemp{nLines}:=WordWrap(stText); !Berechnen der Länge der kompletten Meldung für das Error logging Add nMsgLength,StrLen(fmTemp{nLines}); !Neue Zeile beginnen Incr nLines; ENDIF ENDIF ENDIF ENDFOR !Zeilenrest in Datenfeld aufnehmen IF StrLen(stText)>0 AND nMsgLength<nMaxLength THEN fmTemp{nLines}:=stText; !Berechnen der Länge der kompletten Meldung für das Error logging Add nMsgLength,StrLen(fmTemp{nLines}); ELSE Decr nLines; ENDIF !Länge der letzten Zeile kürzen, da nur 145 Zeichen max. erlaubt sind IF nMsgLength>nMaxLength fmTemp{nLines}:=StrPart(fmTemp{nLines},1,StrLen(fmTe IF Present(Info) THEN !Ausgabe in die System-Error-Log ErrWrite\W,Header,fmTemp{1}\RL2:=fmTemp{2}\RL3:=fmTemp{3}\RL4:=stInfo; ELSE !Ausgabe in die System-Error-Log ErrWrite\W,Header,fmTemp{1}\RL2:=fmTemp{2}\RL3:=fmTemp{3}\RL4:=fmTemp{4}; ENDIF ERROR RAISE; ENDPROC

!********************************************************** !* Funktion Trim * !* * !* Leerzeichen links und rechts eines Strings löschen * !* * !* Date: Version: Programmer: Reason: * !* 26.04.2000 1.0 B. Schmitt created * !********************************************************** LOCAL FUNC string Trim( string Text)

VAR string stText;

stText:=Text; !Prüfen ob ersten Zeichen ein Leerzeichen ist WHILE StrLen(stText)>0 AND StrMemb(stText,1," ") DO !Erstes Zeichen löschen stText:=StrPart(stText,2,StrLen(stText)-1); ENDWHILE !Prüfen ob letztes Zeichen ein Leerzeichen ist WHILE StrLen(stText)>0 AND StrMemb(stText,StrLen(stText)," ") DO !Letztes Zeichen löschen stText:=StrPart(stText,1,StrLen(stText)-1); ENDWHILE RETURN stText; ERROR RAISE; ENDFUNC

!**********************************************************

Page 66: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* Funktion RelTCP * !* * !* Diese Funktion veraendert einen TCP relativ zu einem * !* anderen TCP. * !* * !* INPUT : TCP, der veraendert werden soll * !* Verschiebung in X,Y,Z Richtung * !* Winkel fuer Rotation um X,Y,Z Achse * !* OUTPUT : veraenderter TCP * !* * !* Syntax : tool2:=RelTCP(tool1\Dx,\Dy,\Dz,\Rx,\Ry,\Rz); * !* Beispiel: TCP tGreifer1 um y-Achse 10 Grad drehen * !* tGreifer2:=RelTCP(tGreifer1\Ry:=10); * !* * !* Date: Version: Programmer: Reason: * !* 18.03.98 1.0 M.Majewski created * !* 30.10.00 2.0 B. Schmitt PoseMult * !********************************************************** FUNC tooldata RelTCP( INOUT tooldata tTCP \num Dx \num Dy \num Dz \num Rx \num Ry \num Rz)

VAR num nRotX; VAR num nRotY; VAR num nRotZ; VAR tooldata tRelTCP; VAR pose pseFrame:=[[0,0,0],[1,0,0,0]];

!Orginal TCP erhalten tRelTCP:=tTCP; !translatorische Anteile berechnen IF Present(Dx) pseFrame.trans.x:=Dx; IF Present(Dy) pseFrame.trans.y:=Dy; IF Present(Dz) pseFrame.trans.z:=Dz; !Rotationsoffset berechnen IF Present(Rx) nRotX:=Rx; IF Present(Ry) nRotY:=Ry; IF Present(Rz) nRotZ:=Rz; !Euler in Quaternion umwandeln pseFrame.rot:=OrientZYX(nRotZ,nRotY,nRotX); !Verschobenen Tool berechnen tRelTCP.tframe:=PoseMult(tRelTCP.tframe,pseFrame); !veraenderten TCP zurueckgeben RETURN tRelTCP; ENDFUNC

!********************************************************** !* Prozedur ProgStop * !* * !* Ereignisroutine um bei einem Programmstop die * !* ausgegebene Meldung nochmal anzuzeigen. * !* * !* Date: Version: Programmer: Reason: * !* 10.07.1998 1.0 B. Schmitt created * !********************************************************** PROC ProgStop() TPShow TP_PROGRAM; bNeuAnzeige:=TRUE; ENDPROC

!********************************************************** !* Procedure IRS_Logo * !* * !* Das Logo der Firma IRS wird auf dem PG ausgegeben. * !* Die Ausgabezeit wird mit dem Input Parameter * !* Counter festgelegt, ist dieser Parameter nicht ange- *

Page 67: MODULE Maschine 1 · !* 16.09.2002 1.0 O.Salo created *!* 28.05.2004 2.0 M.Majewski modify *!***** PROC haupt()!Hauptprogramm, Neustart von hier!Startwerte setzen!Stand: 29.05.2004

!* wählt dann wird die Standardausgabe auf 10 Sekunden * !* gesetzt. Ist der optionale Parameter noCountDown * !* angewählt wird nur das Logo angezeigt. * !* * !* Input Parameter: num Counter * !* * !* Optionale Parameter: switch noCountDown * !* * !* Date: Version: Programmer: Reason: * !* 07.10.2001 1.0 M.Majewski created * !********************************************************** PROC IRS_Logo( \switch noCountDown |num Counter)

VAR num nStart:=10;

IF Present(Counter) nStart:=Counter; IF Present(noCountDown) Clear nStart; FOR i FROM nStart TO 0 STEP -1 DO TPErase; TPWrite "\17\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13 TPWrite "\12 \1F \1F\1F\1F \1F\1F I R S \12"; TPWrite "\12 \1F \1F \1F \1F Industrie-Roboter- \12"; TPWrite "\12 \1F \1F\1F\1F \1F Service GmbH \12"; TPWrite "\12 \1F \1F \1F \1F 35325 Mücke \12"; TPWrite "\12 \1F \1F \1F \1F\1F Tel.06400-201851 \12"; TPWrite "\16\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13\13 IF Present(noCountDown) TPWrite " "; TPWrite " aktuelles Datum : "+CDate(); TPWrite " aktuelle Zeit : "+CTime(); IF NOT Present(noCountDown) THEN TPWrite " "; TPWrite " Countdown : = "+ValToStr(i)+" Sekunden"; WaitTime 1; ENDIF ENDFOR IF NOT Present(noCountDown) TPShow TP_LATEST; ENDPROC

!********************************************************** !* Hilfsroutinen zur Taktzeitmessung * !* * !* Date: Version: Programmer: Reason: * !* 07.10.2001 1.0 M.Majewski created * !********************************************************** ! PROC ZeitStart() !Start Zeitmesssung ClkReset cl_Zeit; ClkStart cl_Zeit; ENDPROC

PROC ZeitStop() !Stop Zeitmesssung ClkStop cl_Zeit; ENDPROC

PROC ZeitAusgabe() !Ausgabe der gemessenen Zeit TPWrite " Meßzeit (s) = "\Num:=ClkRead(cl_Zeit); ENDPROCENDMODULE