Siemens
Digital Industries, Motion Control, Machine Tool Systems
8837
Follower:innenNullpunkt in R-Parameter ausgeben
18.08.2016, 14:19 Uhr
Hallo zusammen,
Ich habe eine Sinumerik 840Di und möchte 234 Rohre bearbeiten.
Die Rohre sind alle in einer Vorrichtung gespannt.
Da die Vorrichtung aber ein bisschen Spiel hat möchte ich jedes Rohr mit unserem Renishaw messtaster automatisch einmessen.
Problem ist jetzt natürlich das ich 234 Rohre habe aber nur 99 Nullpunkte.
Ich könnte jetzt die ersten 99 Rohre einmessen, bearbeiten und dann die nächsten.
Ich frage mich aber ob es nicht möglich ist den gemessenen Nullpunkt in die R-Parameter zu schreiben z.B. R1=X1, R2=Y1, R3=Z1, R4=X2.......
Dann könnte ich nach dem einmessen einfach die Nullpunktbeschreibung vor jedem unterprogrammaufruf mit dem jeweilligen R-Parameter versehen und somit 234 Nullpunkt herstellen.
Kennt da jemand einen Befehl bzw. hat da jemand eine andere Idee??
Ich habe eine Sinumerik 840Di und möchte 234 Rohre bearbeiten.
Die Rohre sind alle in einer Vorrichtung gespannt.
Da die Vorrichtung aber ein bisschen Spiel hat möchte ich jedes Rohr mit unserem Renishaw messtaster automatisch einmessen.
Problem ist jetzt natürlich das ich 234 Rohre habe aber nur 99 Nullpunkte.
Ich könnte jetzt die ersten 99 Rohre einmessen, bearbeiten und dann die nächsten.
Ich frage mich aber ob es nicht möglich ist den gemessenen Nullpunkt in die R-Parameter zu schreiben z.B. R1=X1, R2=Y1, R3=Z1, R4=X2.......
Dann könnte ich nach dem einmessen einfach die Nullpunktbeschreibung vor jedem unterprogrammaufruf mit dem jeweilligen R-Parameter versehen und somit 234 Nullpunkt herstellen.
Kennt da jemand einen Befehl bzw. hat da jemand eine andere Idee??
18.08.2016, 14:25 Uhr
Ist es nicht möglich jeweils direct vor der Bearbeitung den NP aufnehmen?
Natürlich nur sofern du für den Taster kein Antastprg. schreiben kannst?!
Der Beitrag wurde von hoiich bearbeitet: 18.08.2016, 14:25 Uhr
Natürlich nur sofern du für den Taster kein Antastprg. schreiben kannst?!
Der Beitrag wurde von hoiich bearbeitet: 18.08.2016, 14:25 Uhr
18.08.2016, 14:37 Uhr
Ist es nicht möglich jeweils direct vor der Bearbeitung den NP aufnehmen?
Natürlich nur sofern du für den Taster kein Antastprg. schreiben kannst?!
Natürlich nur sofern du für den Taster kein Antastprg. schreiben kannst?!
könnte man machen, das problem ist aber das das Unterprogramm nur 15 sekunden läuft und der WKZ wechsel jedes mal würde die Zeit sehr in die Länge ziehen.
18.08.2016, 16:44 Uhr
Hi
Nutze du Variablen bzw Felder und $P_UIFR
mit
DEF REAL _NULLPU["Anzahl der zu speichernden NP'e","Anzahl der Achsen"]
DEF INT _ZAEHLER
; Meßtaster einwechseln
FOR _ZAEHLER = 0 TO "ANZAHL der STANGEN" -1
MESSZYKLUS; ( in einen X beliebigen NP )
_NULLPU[_ZAEHLER,0] = $P_UIFR["NP- Nummer",X,TR] + $P_UIFR["NP- Nummer",X,FI]
_NULLPU[_ZAEHLER,1] = $P_UIFR["NP- Nummer",Y,TR] + $P_UIFR["NP- Nummer",Y,FI]
_NULLPU[_ZAEHLER,2] = $P_UIFR["NP- Nummer",Z,TR] + $P_UIFR["NP- Nummer",Z,FI]
;STANGENWECHSEL oder was auch immer
ENDFOR
; Bearbeitungsteil
FOR _ZAEHLER = 0 TO "ANZAHL der STANGEN" -1
$P_UIFR[1,X,TR] =_NULLPU[_ZAEHLER,0]
$P_UIFR[1,Y,TR] =_NULLPU[_ZAEHLER,0]
$P_UIFR[1,Z,TR] =_NULLPU[_ZAEHLER,0]
STOPRE
G54
UNTERPROGRAMM ( Bearbeitung)
ENDFOR
M30
Kannst du stricken wie du willst, mit R Parametern lass es einfach
Nutze du Variablen bzw Felder und $P_UIFR
mit
CODE
DEF REAL _NULLPU["Anzahl der zu speichernden NP'e","Anzahl der Achsen"]
DEF INT _ZAEHLER
; Meßtaster einwechseln
FOR _ZAEHLER = 0 TO "ANZAHL der STANGEN" -1
MESSZYKLUS; ( in einen X beliebigen NP )
_NULLPU[_ZAEHLER,0] = $P_UIFR["NP- Nummer",X,TR] + $P_UIFR["NP- Nummer",X,FI]
_NULLPU[_ZAEHLER,1] = $P_UIFR["NP- Nummer",Y,TR] + $P_UIFR["NP- Nummer",Y,FI]
_NULLPU[_ZAEHLER,2] = $P_UIFR["NP- Nummer",Z,TR] + $P_UIFR["NP- Nummer",Z,FI]
;STANGENWECHSEL oder was auch immer
ENDFOR
; Bearbeitungsteil
FOR _ZAEHLER = 0 TO "ANZAHL der STANGEN" -1
$P_UIFR[1,X,TR] =_NULLPU[_ZAEHLER,0]
$P_UIFR[1,Y,TR] =_NULLPU[_ZAEHLER,0]
$P_UIFR[1,Z,TR] =_NULLPU[_ZAEHLER,0]
STOPRE
G54
UNTERPROGRAMM ( Bearbeitung)
ENDFOR
M30
Kannst du stricken wie du willst, mit R Parametern lass es einfach
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
18.08.2016, 17:11 Uhr
Servus,
je nach Tastzyklus sind die Ergebnisparameter etwas anderst, muss mal im Handbuch Mess Zyklen blättern...
Bei Bohrungen zb:
R61=_OVR[17] ;Differenz in X-Achse
R62=_OVR[18] ;Differenz in Y-Achse
Gruß nbh
je nach Tastzyklus sind die Ergebnisparameter etwas anderst, muss mal im Handbuch Mess Zyklen blättern...
Bei Bohrungen zb:
R61=_OVR[17] ;Differenz in X-Achse
R62=_OVR[18] ;Differenz in Y-Achse
Gruß nbh
18.08.2016, 17:38 Uhr
Servus,
je nach Tastzyklus sind die Ergebnisparameter etwas anderst, muss mal im Handbuch Mess Zyklen blättern...
Bei Bohrungen zb:
R61=_OVR[17] ;Differenz in X-Achse
R62=_OVR[18] ;Differenz in Y-Achse
Gruß nbh
je nach Tastzyklus sind die Ergebnisparameter etwas anderst, muss mal im Handbuch Mess Zyklen blättern...
Bei Bohrungen zb:
R61=_OVR[17] ;Differenz in X-Achse
R62=_OVR[18] ;Differenz in Y-Achse
Gruß nbh
Wieviele Zeilen willst du verwenden, um fortlaufend R1 bis R(Anzahlstangen mal Anzahl Achsen) beschreiben willst ???
3*234 = 702 Parameter !!!
Ich hoffe mal die Maschine hat auch so viele frei zur Verfügung stehenden R- Parameter
Ob du direkt in einen NP miest, oder _OVR auswertest ist wurscht !
Der Beitrag wurde von Andy742000 bearbeitet: 18.08.2016, 17:43 Uhr
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
18.08.2016, 18:42 Uhr
Hi,
Ich würde Andys vorschlagen verwenden nur noch mit einer kleinen änderung.
Sind die Rohre in Reihe oder im Raster Gespannt?
Lg
Ich würde Andys vorschlagen verwenden nur noch mit einer kleinen änderung.
Sind die Rohre in Reihe oder im Raster Gespannt?
Lg
18.08.2016, 19:43 Uhr
Hi,
Ich würde Andys vorschlagen verwenden nur noch mit einer kleinen änderung.
Sind die Rohre in Reihe oder im Raster Gespannt?
Lg
Ich würde Andys vorschlagen verwenden nur noch mit einer kleinen änderung.
Sind die Rohre in Reihe oder im Raster Gespannt?
Lg
Im raster also 13 Stück neben einander und 18 iuntereinander.
Ich werde das jetzt mal Versuchen.
Vielen Dank schon mal
Der Beitrag wurde von Andy24 bearbeitet: 18.08.2016, 19:52 Uhr
18.08.2016, 20:10 Uhr
Also müsste das so funktionieren?
Mir ist eingefallen das ich doppelt so viele Nullpunkte brauche da ich die Rohre von beiden Seiten bearbeiten muss und Cycle 800 in dem Fall ein bisschen schwierig wird. Der Z-Nullpunkt fällt weg da ich den nicht verändern darf damit die Länge des Rohres nach her gleichbleibend richtig ist.
;G54= 0 GRAD OBEN LINKS 1 REIHE
$P_UIFR[1]=CTRANS(X,-307.029,Y,926.406,Z,137.620,B,0)
G54
DEF REAL _NULLPU["468","2"]
DEF INT _ZAEHLER
T="MT"
M6
M14
T="0025"
G54
G0 X0 Y0
Z-10
FOR _ZAEHLER = 0 TO "468" -1
MESSZYKLUS;
;NCG#M_CYC_77_79_BOWE_ST#MZ77_A_S.COM#NC0#2#*NCG;*RO*;*HD*
;##############54##2##1##3##1##################################30#35#40#45#165#3
0#35#40#45########2#2#2#2#2#2#2#2#2#2#2#2#2#2#2#2##"B"#3#977#-18.075#-18.075#45#90#1#####1###1########1000#0#1#0#0#0#0#1#0#0#1#0#0#0#0#0#0#0#0#1#0#0#0
#0#1#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0##1##"4-Punkt"#"S"###################"AV5"#54####0#9#1########1#0#0#0#0#0#0#0#0#"Verschleiss"###*NCG;*RO*;*HD*
_MVAR=101 _SETVAL=32 _PRNUM=1 _KNUM=1 _FA=3 _TSA=0.5 _VMS=0 _NMSP=1
CYCLE977
;#END#*NCG;*RO*;*HD*
G0 Z10
_NULLPU[_ZAEHLER,0] = $P_UIFR["54",X,TR] + $P_UIFR["54",X,FI]
_NULLPU[_ZAEHLER,1] = $P_UIFR["54",Y,TR] + $P_UIFR["54",Y,FI]
;STANGENWECHSEL
ATRANS X=(45)
G0 X0 Y0
Z-10
MESSZYKLUS;
;NCG#M_CYC_77_79_BOWE_ST#MZ77_A_S.COM#NC0#2#*NCG;*RO*;*HD*
;##############54##2##1##3##1##################################30#35#40#45#165#3
0#35#40#45########2#2#2#2#2#2#2#2#2#2#2#2#2#2#2#2##"B"#3#977#-18.075#-18.075#45#90#1#####1###1########1000#0#1#0#0#0#0#1#0#0#1#0#0#0#0#0#0#0#0#1#0#0#0
#0#1#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0##1##"4-Punkt"#"S"###################"AV5"#54####0#9#1########1#0#0#0#0#0#0#0#0#"Verschleiss"###*NCG;*RO*;*HD*
_MVAR=101 _SETVAL=32 _PRNUM=1 _KNUM=1 _FA=3 _TSA=0.5 _VMS=0 _NMSP=1
CYCLE977
;#END#*NCG;*RO*;*HD*
G0 Z10
_NULLPU[_ZAEHLER,2] = $P_UIFR["54",X,TR] + $P_UIFR["54",X,FI]
_NULLPU[_ZAEHLER,3] = $P_UIFR["54",Y,TR] + $P_UIFR["54",Y,FI]
;STANGENWECHSEL
ENDFOR
; Bearbeitungsteil
FOR _ZAEHLER = 0 TO "468" -1
$P_UIFR[1,X,TR] =_NULLPU[_ZAEHLER,0]
$P_UIFR[1,Y,TR] =_NULLPU[_ZAEHLER,1]
STOPRE
G54
L1
ENDFOR
Der Beitrag wurde von Andy24 bearbeitet: 18.08.2016, 20:23 Uhr
Mir ist eingefallen das ich doppelt so viele Nullpunkte brauche da ich die Rohre von beiden Seiten bearbeiten muss und Cycle 800 in dem Fall ein bisschen schwierig wird. Der Z-Nullpunkt fällt weg da ich den nicht verändern darf damit die Länge des Rohres nach her gleichbleibend richtig ist.
;G54= 0 GRAD OBEN LINKS 1 REIHE
$P_UIFR[1]=CTRANS(X,-307.029,Y,926.406,Z,137.620,B,0)
G54
DEF REAL _NULLPU["468","2"]
DEF INT _ZAEHLER
T="MT"
M6
M14
T="0025"
G54
G0 X0 Y0
Z-10
FOR _ZAEHLER = 0 TO "468" -1
MESSZYKLUS;
;NCG#M_CYC_77_79_BOWE_ST#MZ77_A_S.COM#NC0#2#*NCG;*RO*;*HD*
;##############54##2##1##3##1##################################30#35#40#45#165#3
0#35#40#45########2#2#2#2#2#2#2#2#2#2#2#2#2#2#2#2##"B"#3#977#-18.075#-18.075#45#90#1#####1###1########1000#0#1#0#0#0#0#1#0#0#1#0#0#0#0#0#0#0#0#1#0#0#0
#0#1#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0##1##"4-Punkt"#"S"###################"AV5"#54####0#9#1########1#0#0#0#0#0#0#0#0#"Verschleiss"###*NCG;*RO*;*HD*
_MVAR=101 _SETVAL=32 _PRNUM=1 _KNUM=1 _FA=3 _TSA=0.5 _VMS=0 _NMSP=1
CYCLE977
;#END#*NCG;*RO*;*HD*
G0 Z10
_NULLPU[_ZAEHLER,0] = $P_UIFR["54",X,TR] + $P_UIFR["54",X,FI]
_NULLPU[_ZAEHLER,1] = $P_UIFR["54",Y,TR] + $P_UIFR["54",Y,FI]
;STANGENWECHSEL
ATRANS X=(45)
G0 X0 Y0
Z-10
MESSZYKLUS;
;NCG#M_CYC_77_79_BOWE_ST#MZ77_A_S.COM#NC0#2#*NCG;*RO*;*HD*
;##############54##2##1##3##1##################################30#35#40#45#165#3
0#35#40#45########2#2#2#2#2#2#2#2#2#2#2#2#2#2#2#2##"B"#3#977#-18.075#-18.075#45#90#1#####1###1########1000#0#1#0#0#0#0#1#0#0#1#0#0#0#0#0#0#0#0#1#0#0#0
#0#1#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0##1##"4-Punkt"#"S"###################"AV5"#54####0#9#1########1#0#0#0#0#0#0#0#0#"Verschleiss"###*NCG;*RO*;*HD*
_MVAR=101 _SETVAL=32 _PRNUM=1 _KNUM=1 _FA=3 _TSA=0.5 _VMS=0 _NMSP=1
CYCLE977
;#END#*NCG;*RO*;*HD*
G0 Z10
_NULLPU[_ZAEHLER,2] = $P_UIFR["54",X,TR] + $P_UIFR["54",X,FI]
_NULLPU[_ZAEHLER,3] = $P_UIFR["54",Y,TR] + $P_UIFR["54",Y,FI]
;STANGENWECHSEL
ENDFOR
; Bearbeitungsteil
FOR _ZAEHLER = 0 TO "468" -1
$P_UIFR[1,X,TR] =_NULLPU[_ZAEHLER,0]
$P_UIFR[1,Y,TR] =_NULLPU[_ZAEHLER,1]
STOPRE
G54
L1
ENDFOR
Der Beitrag wurde von Andy24 bearbeitet: 18.08.2016, 20:23 Uhr
18.08.2016, 20:35 Uhr
Hi
Komplett schräg !
Hast ne PM
Komplett schräg !
Hast ne PM
Also müsste das so funktionieren?
Mir ist eingefallen das ich doppelt so viele Nullpunkte brauche da ich die Rohre von beiden Seiten bearbeiten muss und Cycle 800 in dem Fall ein bisschen schwierig wird. Der Z-Nullpunkt fällt weg da ich den nicht verändern darf damit die Länge des Rohres nach her gleichbleibend richtig ist.
;G54= 0 GRAD OBEN LINKS 1 REIHE
$P_UIFR[1]=CTRANS(X,-307.029,Y,926.406,Z,137.620,B,0)
G54
DEF REAL _NULLPU["468","2"]
DEF INT _ZAEHLER
T="MT"
M6
M14
T="0025"
G54
G0 X0 Y0
Z-10
FOR _ZAEHLER = 0 TO "468" -1
MESSZYKLUS;
;NCG#M_CYC_77_79_BOWE_ST#MZ77_A_S.COM#NC0#2#*NCG;*RO*;*HD*
;##############54##2##1##3##1##################################30#35#40#45#165#3
0#35#40#45########2#2#2#2#2#2#2#2#2#2#2#2#2#2#2#2##"B"#3#977#-18.075#-18.075#45#90#1#####1###1########1000#0#1#0#0#0#0#1#0#0#1#0#0#0#0#0#0#0#0#1#0#0#0
#0#1#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0##1##"4-Punkt"#"S"###################"AV5"#54####0#9#1########1#0#0#0#0#0#0#0#0#"Verschleiss"###*NCG;*RO*;*HD*
_MVAR=101 _SETVAL=32 _PRNUM=1 _KNUM=1 _FA=3 _TSA=0.5 _VMS=0 _NMSP=1
CYCLE977
;#END#*NCG;*RO*;*HD*
G0 Z10
_NULLPU[_ZAEHLER,0] = $P_UIFR["54",X,TR] + $P_UIFR["54",X,FI]
_NULLPU[_ZAEHLER,1] = $P_UIFR["54",Y,TR] + $P_UIFR["54",Y,FI]
;STANGENWECHSEL
ATRANS X=(45)
G0 X0 Y0
Z-10
MESSZYKLUS;
;NCG#M_CYC_77_79_BOWE_ST#MZ77_A_S.COM#NC0#2#*NCG;*RO*;*HD*
;##############54##2##1##3##1##################################30#35#40#45#165#3
0#35#40#45########2#2#2#2#2#2#2#2#2#2#2#2#2#2#2#2##"B"#3#977#-18.075#-18.075#45#90#1#####1###1########1000#0#1#0#0#0#0#1#0#0#1#0#0#0#0#0#0#0#0#1#0#0#0
#0#1#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0##1##"4-Punkt"#"S"###################"AV5"#54####0#9#1########1#0#0#0#0#0#0#0#0#"Verschleiss"###*NCG;*RO*;*HD*
_MVAR=101 _SETVAL=32 _PRNUM=1 _KNUM=1 _FA=3 _TSA=0.5 _VMS=0 _NMSP=1
CYCLE977
;#END#*NCG;*RO*;*HD*
G0 Z10
_NULLPU[_ZAEHLER,2] = $P_UIFR["54",X,TR] + $P_UIFR["54",X,FI]
_NULLPU[_ZAEHLER,3] = $P_UIFR["54",Y,TR] + $P_UIFR["54",Y,FI]
;STANGENWECHSEL
ENDFOR
; Bearbeitungsteil
FOR _ZAEHLER = 0 TO "468" -1
$P_UIFR[1,X,TR] =_NULLPU[_ZAEHLER,0]
$P_UIFR[1,Y,TR] =_NULLPU[_ZAEHLER,1]
STOPRE
G54
L1
ENDFOR
Mir ist eingefallen das ich doppelt so viele Nullpunkte brauche da ich die Rohre von beiden Seiten bearbeiten muss und Cycle 800 in dem Fall ein bisschen schwierig wird. Der Z-Nullpunkt fällt weg da ich den nicht verändern darf damit die Länge des Rohres nach her gleichbleibend richtig ist.
;G54= 0 GRAD OBEN LINKS 1 REIHE
$P_UIFR[1]=CTRANS(X,-307.029,Y,926.406,Z,137.620,B,0)
G54
DEF REAL _NULLPU["468","2"]
DEF INT _ZAEHLER
T="MT"
M6
M14
T="0025"
G54
G0 X0 Y0
Z-10
FOR _ZAEHLER = 0 TO "468" -1
MESSZYKLUS;
;NCG#M_CYC_77_79_BOWE_ST#MZ77_A_S.COM#NC0#2#*NCG;*RO*;*HD*
;##############54##2##1##3##1##################################30#35#40#45#165#3
0#35#40#45########2#2#2#2#2#2#2#2#2#2#2#2#2#2#2#2##"B"#3#977#-18.075#-18.075#45#90#1#####1###1########1000#0#1#0#0#0#0#1#0#0#1#0#0#0#0#0#0#0#0#1#0#0#0
#0#1#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0##1##"4-Punkt"#"S"###################"AV5"#54####0#9#1########1#0#0#0#0#0#0#0#0#"Verschleiss"###*NCG;*RO*;*HD*
_MVAR=101 _SETVAL=32 _PRNUM=1 _KNUM=1 _FA=3 _TSA=0.5 _VMS=0 _NMSP=1
CYCLE977
;#END#*NCG;*RO*;*HD*
G0 Z10
_NULLPU[_ZAEHLER,0] = $P_UIFR["54",X,TR] + $P_UIFR["54",X,FI]
_NULLPU[_ZAEHLER,1] = $P_UIFR["54",Y,TR] + $P_UIFR["54",Y,FI]
;STANGENWECHSEL
ATRANS X=(45)
G0 X0 Y0
Z-10
MESSZYKLUS;
;NCG#M_CYC_77_79_BOWE_ST#MZ77_A_S.COM#NC0#2#*NCG;*RO*;*HD*
;##############54##2##1##3##1##################################30#35#40#45#165#3
0#35#40#45########2#2#2#2#2#2#2#2#2#2#2#2#2#2#2#2##"B"#3#977#-18.075#-18.075#45#90#1#####1###1########1000#0#1#0#0#0#0#1#0#0#1#0#0#0#0#0#0#0#0#1#0#0#0
#0#1#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0##1##"4-Punkt"#"S"###################"AV5"#54####0#9#1########1#0#0#0#0#0#0#0#0#"Verschleiss"###*NCG;*RO*;*HD*
_MVAR=101 _SETVAL=32 _PRNUM=1 _KNUM=1 _FA=3 _TSA=0.5 _VMS=0 _NMSP=1
CYCLE977
;#END#*NCG;*RO*;*HD*
G0 Z10
_NULLPU[_ZAEHLER,2] = $P_UIFR["54",X,TR] + $P_UIFR["54",X,FI]
_NULLPU[_ZAEHLER,3] = $P_UIFR["54",Y,TR] + $P_UIFR["54",Y,FI]
;STANGENWECHSEL
ENDFOR
; Bearbeitungsteil
FOR _ZAEHLER = 0 TO "468" -1
$P_UIFR[1,X,TR] =_NULLPU[_ZAEHLER,0]
$P_UIFR[1,Y,TR] =_NULLPU[_ZAEHLER,1]
STOPRE
G54
L1
ENDFOR
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
18.08.2016, 20:42 Uhr
18.08.2016, 23:08 Uhr
Guest_guest_*
Themenstarter
Gast
Ich halte das auch für ziemlich schräg.
R-Parameter fallen also aus, weil zumindest im Standard nur R0-R99 zur Verfügung stehen. Das wären gerade 33 Punkte.
Eine elegante und dazu übersichtliche Lösung wären Feldvariable vom Typ Real.
Einmal brauchst du eine Feld-Variable für die Sollposition in den 3 Geometrie-Achsen (XYZ).
Wie die auch automatisch (parametriert) zu befüllen sind, kannst du im Programmierhandbuch Arbeitsvorbereitung nachlesen)
def real _pos[236,3]
eine Feld-Variable für die abweichenden Meßwerte je Position.
def real _cor[236,3]
und natürlich einen Zähler:
def int _zaehler
und einen Sicherheitsabstand als Offset in Z
def real _sa=5
R-Parameter fallen also aus, weil zumindest im Standard nur R0-R99 zur Verfügung stehen. Das wären gerade 33 Punkte.
Eine elegante und dazu übersichtliche Lösung wären Feldvariable vom Typ Real.
Einmal brauchst du eine Feld-Variable für die Sollposition in den 3 Geometrie-Achsen (XYZ).
Wie die auch automatisch (parametriert) zu befüllen sind, kannst du im Programmierhandbuch Arbeitsvorbereitung nachlesen)
def real _pos[236,3]
eine Feld-Variable für die abweichenden Meßwerte je Position.
def real _cor[236,3]
und natürlich einen Zähler:
def int _zaehler
und einen Sicherheitsabstand als Offset in Z
def real _sa=5
CODE
def real _pos[236,3], _cor[236,3]
def int _zaehler
def real _sa=5
T="TASTER" D1
M6
SPOS=0
Messen:
G0 X=_pos[_zaehler,0] Y=_pos[_zaehler,1] Z=_pos[_zaehler,2]+_sa
MESSZYKLUS(,,,,,);Messergebnis als Abweichung von der Startposition in <messvariable_...>
;Schreiben der Abweichung in _cor
_cor[_zaehler,0]=<messvariable_X>
_cor[_zaehler,1]=<messvariable_Y>
_cor[_zaehler,2]=<messvariable_Z>
;hochzählen
_zaehler=_zaehler+1
if _zaehler<235 gotob Messen
_zaehler=0 ,Zähler zurücksetzen
T="WERKZEUG" D1
M6
G97 S3000
G94 F500
M3
Bearbeitung:
G0 X=_pos[_zaehler,0]+_cor[_zaehler,0] Y=_pos[_zaehler,1]+_cor[_zaehler,1] Z=_pos[_zaehler,2]+_cor[_zaehler,2]+_sa
UNTERPROGRAMM;inkremental programmiert
G0 Z=_pos[_zaehler,2]+_cor[_zaehler,2]+_sa
;hochzählen
_zaehler=_zaehler+1
if _zaehler<235 gotob Bearbeitung
G0 Z500 M5
M30
def int _zaehler
def real _sa=5
T="TASTER" D1
M6
SPOS=0
Messen:
G0 X=_pos[_zaehler,0] Y=_pos[_zaehler,1] Z=_pos[_zaehler,2]+_sa
MESSZYKLUS(,,,,,);Messergebnis als Abweichung von der Startposition in <messvariable_...>
;Schreiben der Abweichung in _cor
_cor[_zaehler,0]=<messvariable_X>
_cor[_zaehler,1]=<messvariable_Y>
_cor[_zaehler,2]=<messvariable_Z>
;hochzählen
_zaehler=_zaehler+1
if _zaehler<235 gotob Messen
_zaehler=0 ,Zähler zurücksetzen
T="WERKZEUG" D1
M6
G97 S3000
G94 F500
M3
Bearbeitung:
G0 X=_pos[_zaehler,0]+_cor[_zaehler,0] Y=_pos[_zaehler,1]+_cor[_zaehler,1] Z=_pos[_zaehler,2]+_cor[_zaehler,2]+_sa
UNTERPROGRAMM;inkremental programmiert
G0 Z=_pos[_zaehler,2]+_cor[_zaehler,2]+_sa
;hochzählen
_zaehler=_zaehler+1
if _zaehler<235 gotob Bearbeitung
G0 Z500 M5
M30
18.08.2016, 23:20 Uhr
Hallo,
Es fehlt das belegen der Werte sonst weiß der Taster ja garnicht wo er hinfahren soll.
Also noch eine Schleife vor dem Wzg Aufruf wo alle xx Np beschrieben werden. Habe eine Vorlage auf der Arbeit geschrieben da gibt man nur das Raster an und den Abstand Rest macht die Maschine.
Und ich würde das alles in einer For Schleife machen dann kann man auch auf die Schnelle mal 10 Teile weniger machen.
Lg
Der Beitrag wurde von N0F3aR bearbeitet: 18.08.2016, 23:22 Uhr
Es fehlt das belegen der Werte sonst weiß der Taster ja garnicht wo er hinfahren soll.
Also noch eine Schleife vor dem Wzg Aufruf wo alle xx Np beschrieben werden. Habe eine Vorlage auf der Arbeit geschrieben da gibt man nur das Raster an und den Abstand Rest macht die Maschine.
Und ich würde das alles in einer For Schleife machen dann kann man auch auf die Schnelle mal 10 Teile weniger machen.
Lg
Der Beitrag wurde von N0F3aR bearbeitet: 18.08.2016, 23:22 Uhr
19.08.2016, 18:20 Uhr
Guest_guest_*
Themenstarter
Gast
Hallo,
Es fehlt das belegen der Werte sonst weiß der Taster ja garnicht wo er hinfahren soll.
Es fehlt das belegen der Werte sonst weiß der Taster ja garnicht wo er hinfahren soll.
Das habe ich absichtlich weggelassen, um es nicht zu unübersichtlich werden zu lassen.
QUOTE
Also noch eine Schleife vor dem Wzg Aufruf wo alle xx Np beschrieben werden. Habe eine Vorlage auf der Arbeit geschrieben da gibt man nur das Raster an und den Abstand Rest macht die Maschine.
Und ich würde das alles in einer For Schleife machen dann kann man auch auf die Schnelle mal 10 Teile weniger machen.
Lg
Und ich würde das alles in einer For Schleife machen dann kann man auch auf die Schnelle mal 10 Teile weniger machen.
Lg
Mit einer FOR-Schleife bekommst du keinen Einstieg nach einem Programm-Abbruch. Jedenfalls ist es schwierig für "Ungeübte".
In diesem Fall sind alle Variablen Programm-Variable. Mit GUD's ist das viel einfacher zu handhaben, aber wohl zu viel für den Anfang.
Der Beitrag wurde von guest bearbeitet: 19.08.2016, 18:22 Uhr
19.08.2016, 18:34 Uhr
Das habe ich absichtlich weggelassen, um es nicht zu unübersichtlich werden zu lassen.
Mit einer FOR-Schleife bekommst du keinen Einstieg nach einem Programm-Abbruch. Jedenfalls ist es schwierig für "Ungeübte".
In diesem Fall sind alle Variablen Programm-Variable. Mit GUD's ist das viel einfacher zu handhaben, aber wohl zu viel für den Anfang.
Mit einer FOR-Schleife bekommst du keinen Einstieg nach einem Programm-Abbruch. Jedenfalls ist es schwierig für "Ungeübte".
In diesem Fall sind alle Variablen Programm-Variable. Mit GUD's ist das viel einfacher zu handhaben, aber wohl zu viel für den Anfang.
Stimmt ! Aber auch da kann man umgehen.
Klar ist die Verwendung von GUD's da hilfreicher, wenn man ständig mit Abbrüchen zu rechnen hat, da kommt man schneller wieder rein, oder man nimmt die ohnehin vorhanden R- Parameter
Aber warum soll man einen ohnehin Leihen mit der Definition von GUD's belasten ?
Viele Nutzen heute CAM und verlassen sich auf den PP !
Hier haben wir Handprogrammierer den Vorteil, dass wir auch die Tricks und Kniffe der Steuerung zu unserem Vorteil nutzen können.
Aber das soll kein Grund für Streitigkeiten werden
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
19.08.2016, 21:49 Uhr
Guest_guest_*
Themenstarter
Gast
Damit es auch eine ausgefüllte Positionstabelle gibt.
Nach Programmabbruch bleibt die aktuelle Position in R0 erhalten.
Allerdings müssen die Positionen ab hier neu vermessen werden. (In GUD's abgelegt, wäre das nicht nötig)
Hauptprogramm.mpf ( 1.87KB ) Anzahl der Downloads: 41
Nach Programmabbruch bleibt die aktuelle Position in R0 erhalten.
Allerdings müssen die Positionen ab hier neu vermessen werden. (In GUD's abgelegt, wäre das nicht nötig)
Hauptprogramm.mpf ( 1.87KB ) Anzahl der Downloads: 41
19.08.2016, 22:06 Uhr
-guest
würde das auch mit CYC800 klappen ?
Vorne ist OK und nun mit Verdrehung mit CYC800 ?
Knapp über 200 Nester und dann von "hinten" ran ?
würde das auch mit CYC800 klappen ?
Vorne ist OK und nun mit Verdrehung mit CYC800 ?
Knapp über 200 Nester und dann von "hinten" ran ?
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
19.08.2016, 22:15 Uhr
Guest_guest_*
Themenstarter
Gast
Theoretisch schon ...
Warum sollte das nicht gehen sollen?
Der Beitrag wurde von guest bearbeitet: 19.08.2016, 22:24 Uhr
Warum sollte das nicht gehen sollen?
Der Beitrag wurde von guest bearbeitet: 19.08.2016, 22:24 Uhr
19.08.2016, 23:11 Uhr
Guest_guest_*
Themenstarter
Gast
-guest
würde das auch mit CYC800 klappen ?
Vorne ist OK und nun mit Verdrehung mit CYC800 ?
Knapp über 200 Nester und dann von "hinten" ran ?
würde das auch mit CYC800 klappen ?
Vorne ist OK und nun mit Verdrehung mit CYC800 ?
Knapp über 200 Nester und dann von "hinten" ran ?
Ich ahne deinen Gedanken...
Aber dein Gedanke beruht auf dem Ansatz, Nullpunktverschiebungen zu erzeugen ?
In meinem Beispiel existiert nur ein Nullpunkt (ich sehe gerade, den habe ich gar nicht aufgerufen)
Der Nullpunkt ist hier "links unten".
Wenn also die Positionen auf der Vorderseite abgearbeitet sind, einfach mit CYCLE800 das Koordinatensystem auf die andere Seite Drehen, Verschieben und anschließend Einfahren. (Nullpunkt "links unten). Dann alle Zähler auf "0" und einfach einen Rücksprung auf "Messen". Hier werden ja Positionen im WKS berechnet und angefahren. Also alles ganz easy.
Würden die Meßwerte in Frames gespeichert, wäre das etwas komplizierter, aber auch möglich. (sofern der Speicher ausreicht)
Der Beitrag wurde von guest bearbeitet: 19.08.2016, 23:14 Uhr
19.08.2016, 23:32 Uhr
Guest_guest_*
Themenstarter
Gast
19.08.2016, 23:52 Uhr
ich sag "sächsisch" nö
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
19.08.2016, 23:58 Uhr
Guest_guest_*
Themenstarter
Gast
Was funktioniert denn nicht?
20.08.2016, 07:08 Uhr
Was funktioniert denn nicht?
def real _cor[250,2)
Ich weiss nur ein kleiner Schreibfehler
Und die Stangen liegen nicht in einem festen Raster, da gibts noch variierende Zwischenelemente...
Und ich sage es mal so ... im Falle einer Abbruchsituation, wie der "Knöppeldrücker" rennt gegen den NOTAUS, oder die Stromrechnung wurde nicht bezahlt und es kam zur Zwangsabschaltung nützt es wenige, wenn in den GLOBAL gehaltenen Variablen, wie R - Parameter, die Maschine noch weiß beim Neustart , dass Sie bis Teil 112 schon gemessen hatte....
Wenn durch Neustart oder RESET die Programm - Variablen gelöscht sind bzw erst wieder beschrieben werden müssen..
Da gehts zwar bei Teil 113 weiter, aber 112 Teile könnten Schrott sein, weil die Korrekturwert 1 bis 112 in allen Achsen = 0 angeben...
Das ganze sieht natürlich anders aus, wenn die Korrekturwerte in Globalen Variablen erhalten bleiben würden
Vom Programmlauf absolut TOP dein NC- CODE , aber ich würde sagen einen Tick übers Ziel hinausgeschossen
Das es sich um eine 4 Achs Horizontal Maschine mit B - Achse handelt, konntest du nicht wissen ( A / C Ache )
Nebenbei bemerkt, 2xx mal CYC800 aufrufen, ist aus der Sicht des "Geizhalses für Zeit" Irrsinn. Jeder weiss CYC800 ist sehr rechenintensiv, und kostet wertvolle Sekunden. Warum den nicht, wenn die Positions- und Korrekturwerte bekannt sind, die Rückseite über die angedachte Werkstücklänge und den Drehwinkel via SIN und COS berechnen und in einem weiterem Teil des Feldes speichern ? Hier meine ich 0-2 für 0 Grad und 3-5 für z.B. 180 Grad. Das kann unmittelbar nach bekannt sein des Korrekturwertes berechnet und gespeichert werden ....
Das spart einiges an Laufzeit
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
20.08.2016, 09:12 Uhr
Guest_guest_*
Themenstarter
Gast
Hallo Andy742000,
Tschuldjung für den Deckfuhler in der DEF-Zeile.
Die Positionen lassen sich auch, je nach Anordnung mit REP bestimmen. je unregelmäßiger die Positionen, umso aufwändiger.
Von ener unregelmäßigen Anordnung habe ich aber bisher nichts gelesen.
Es muß nicht 200+ mal geschwenkt werden.
CYCLE800 wird nur einmal zum Schwenken auf die Rückseite verwendet, nachdem die Vorderseite komplett bearbeitet ist.
Am Programmende noch einmal für die Grundstellung! Weniger geht halt nicht.
Btw: Wenn du die Positionen der Rückseite aus Position und Meßabweichung der Vorderseite berechnen willst, kannst du dir auch das Messen auf der Rückseite sparen. (mit der Gefahr, daß die Position nicht stimmt) Deshalb ja das Messen.
Im Programm ist folgender Ablauf:
Einzelne Positionen könnte man auch, ähnlich den Sinumerik-Positionsmustern in einem symetrischen Raster ausblenden, bzw. überspringen.
PS: wenn du noch andere Stolpersteine und Informationen zu Besonderheiten kennst, heraus damit. Sonst motzt du doch auch immer, wenn wichtige Infos zurückgehalten werden....
Der Beitrag wurde von guest bearbeitet: 20.08.2016, 09:18 Uhr
Tschuldjung für den Deckfuhler in der DEF-Zeile.
Die Positionen lassen sich auch, je nach Anordnung mit REP bestimmen. je unregelmäßiger die Positionen, umso aufwändiger.
Von ener unregelmäßigen Anordnung habe ich aber bisher nichts gelesen.
Es muß nicht 200+ mal geschwenkt werden.
CYCLE800 wird nur einmal zum Schwenken auf die Rückseite verwendet, nachdem die Vorderseite komplett bearbeitet ist.
Am Programmende noch einmal für die Grundstellung! Weniger geht halt nicht.
Btw: Wenn du die Positionen der Rückseite aus Position und Meßabweichung der Vorderseite berechnen willst, kannst du dir auch das Messen auf der Rückseite sparen. (mit der Gefahr, daß die Position nicht stimmt) Deshalb ja das Messen.
Im Programm ist folgender Ablauf:
- Sollpositionen nach symetrischem Raster berechnen und Ablegen in _pos[..,...].
- Messen der berechneten Positionen und Ablegen der Abweichung in _cor[..,..]
- Bearbeiten der korrigierten Positionen.
- Schwenken auf die Rückseite.
- Messen der berechneten Positionen und Ablegen der Abweichung in _cor[..,..]
- Bearbeiten der korrigierten Positionen.
- Schwenken in Grundstellung
Einzelne Positionen könnte man auch, ähnlich den Sinumerik-Positionsmustern in einem symetrischen Raster ausblenden, bzw. überspringen.
PS: wenn du noch andere Stolpersteine und Informationen zu Besonderheiten kennst, heraus damit. Sonst motzt du doch auch immer, wenn wichtige Infos zurückgehalten werden....
Der Beitrag wurde von guest bearbeitet: 20.08.2016, 09:18 Uhr
21.08.2016, 09:53 Uhr
Hallo guest
Ich hatte ja auch geschrieben , dass du das nicht wissen konntest weil mir die Informtionen zu geflogen sind
Es ist ne 4 Achsmaschine ind das ganze ist ein Turmspannsystem, wo die Rohre drinne stecken, so was man vorne und hinten rankommt.
Ich würde eine Position , gleich deiner Vorgehensweise als Ausgangsnullpunkt für alles definieren. Dann die XY Positionen der Rohrpositionen theoretisch berechnen. Mit diesen Werten würde ich dann jede Position anfahren und messen, sowohl den Versatz XY und Z. Die Gesamtwerkstücklänge ist ja auch bekannt, und so kann man nebenbei auch noch die rückseitige Position einfach via SIN und COS berechnen, ohne dass man hinten auch noch Tasten müsste. Nebenbei kann man anhand der aller Z Werte noch den minimalen Z Sicherheitsabstand berechnen, falls die Teile doch sehr unterschiedlich aus der Vorrichtung ( Spannsystem ) herausragen.
Ob man dann die Berbeitungspositionen 0 und 180 mit jeweils einem NP anfährt, oder das ganze mit TRANS macht, aber alle Programmteile absolut programmiert bleiben können, oder wie du es vorgeschlagen hast, ist für das Ausführungsergebnis egal.
So wie ich Andy24 verstanden hatte, muss er mit mehreren Werkzeugen sowohl vorne wie auch hinten ran, also müsste auch mehrmals geschwenkt werden... Da es ja aus der guten alten Zeit noch den L999 gab, ist es ein leichtes die Verdrehung um ""XXX" Grad in Korrektur XYZ in einem zusätzlichen Feld der Positionsliste zu speichern.
Damit kann sowie die Anfahrt vorne wie auch hinten mit G0 G55 X0 Y0 Z=Sicherheitsbstand B0 anzufahren. Setzt aber vorraus, dass man im NP auch den Drehwinkel für die Rückseitenbearbeitung ablegt.
Meine Grundkritik bezog sich ausschließlich auf den Zusammenhang Programmabbruch und Speicherung der Bearbeitungsposition, wenn die Versatzwerte nicht in globalen Variablen gehalten werden und der STEP- Zähler über einen R Parameter erfolgt. Da bin ich wieder bei der Ausgangssituation ... Bearbeitung ohne Korrekturmessung. Wirst du sicherlich einsehen, dass das keine gute Lösung ist ?
Ich hatte ja auch geschrieben , dass du das nicht wissen konntest weil mir die Informtionen zu geflogen sind
Es ist ne 4 Achsmaschine ind das ganze ist ein Turmspannsystem, wo die Rohre drinne stecken, so was man vorne und hinten rankommt.
Ich würde eine Position , gleich deiner Vorgehensweise als Ausgangsnullpunkt für alles definieren. Dann die XY Positionen der Rohrpositionen theoretisch berechnen. Mit diesen Werten würde ich dann jede Position anfahren und messen, sowohl den Versatz XY und Z. Die Gesamtwerkstücklänge ist ja auch bekannt, und so kann man nebenbei auch noch die rückseitige Position einfach via SIN und COS berechnen, ohne dass man hinten auch noch Tasten müsste. Nebenbei kann man anhand der aller Z Werte noch den minimalen Z Sicherheitsabstand berechnen, falls die Teile doch sehr unterschiedlich aus der Vorrichtung ( Spannsystem ) herausragen.
Ob man dann die Berbeitungspositionen 0 und 180 mit jeweils einem NP anfährt, oder das ganze mit TRANS macht, aber alle Programmteile absolut programmiert bleiben können, oder wie du es vorgeschlagen hast, ist für das Ausführungsergebnis egal.
So wie ich Andy24 verstanden hatte, muss er mit mehreren Werkzeugen sowohl vorne wie auch hinten ran, also müsste auch mehrmals geschwenkt werden... Da es ja aus der guten alten Zeit noch den L999 gab, ist es ein leichtes die Verdrehung um ""XXX" Grad in Korrektur XYZ in einem zusätzlichen Feld der Positionsliste zu speichern.
Damit kann sowie die Anfahrt vorne wie auch hinten mit G0 G55 X0 Y0 Z=Sicherheitsbstand B0 anzufahren. Setzt aber vorraus, dass man im NP auch den Drehwinkel für die Rückseitenbearbeitung ablegt.
Meine Grundkritik bezog sich ausschließlich auf den Zusammenhang Programmabbruch und Speicherung der Bearbeitungsposition, wenn die Versatzwerte nicht in globalen Variablen gehalten werden und der STEP- Zähler über einen R Parameter erfolgt. Da bin ich wieder bei der Ausgangssituation ... Bearbeitung ohne Korrekturmessung. Wirst du sicherlich einsehen, dass das keine gute Lösung ist ?
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: