Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Nullpunkt in R-Parameter ausgeben

Beitrag 18.08.2016, 14:19 Uhr
Andy24
Andy24
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 19.11.2009
Beiträge: 12
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??
   
Beitrag 18.08.2016, 14:25 Uhr
hoiich
hoiich
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 08.06.2015
Beiträge: 177
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
   
Beitrag 18.08.2016, 14:37 Uhr
Andy24
Andy24
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 19.11.2009
Beiträge: 12
QUOTE (hoiich @ 18.08.2016, 15: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?!


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.
   
Beitrag 18.08.2016, 16:44 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Hi

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 wink.gif


--------------------
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
   
Beitrag 18.08.2016, 17:11 Uhr
nbh
nbh
Level 3 = Community-Techniker
***
Gruppe: Mitglied
Mitglied seit: 01.07.2003
Beiträge: 258
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
   
Beitrag 18.08.2016, 17:38 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
QUOTE (nbh @ 18.08.2016, 18: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

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 wink.gif

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
   
Beitrag 18.08.2016, 18:42 Uhr
N0F3aR
N0F3aR
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 05.12.2011
Beiträge: 980
Hi,

Ich würde Andys vorschlagen verwenden nur noch mit einer kleinen änderung.

Sind die Rohre in Reihe oder im Raster Gespannt?

Lg
   
Beitrag 18.08.2016, 19:43 Uhr
Andy24
Andy24
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 19.11.2009
Beiträge: 12
QUOTE (N0F3aR @ 18.08.2016, 19: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


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
   
Beitrag 18.08.2016, 20:10 Uhr
Andy24
Andy24
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 19.11.2009
Beiträge: 12
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
   
Beitrag 18.08.2016, 20:35 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Hi

Komplett schräg !

Hast ne PM
QUOTE (Andy24 @ 18.08.2016, 21: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


--------------------
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
   
Beitrag 18.08.2016, 20:42 Uhr
Andy24
Andy24
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 19.11.2009
Beiträge: 12
QUOTE (Andy742000 @ 18.08.2016, 21:35 Uhr) *
Hi

Komplett schräg !

Hast ne PM


Der Beitrag wurde von Andy24 bearbeitet: 18.08.2016, 20:47 Uhr
   
Beitrag 18.08.2016, 23:08 Uhr
Guest_guest_*
Themenstarter
Gast


Ich halte das auch für ziemlich schräg. wink.gif

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
   
Beitrag 18.08.2016, 23:20 Uhr
N0F3aR
N0F3aR
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 05.12.2011
Beiträge: 980
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
   
Beitrag 19.08.2016, 18:20 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (N0F3aR @ 19.08.2016, 00:20 Uhr) *
Hallo,

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. wink.gif

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

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
   
Beitrag 19.08.2016, 18:34 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
QUOTE (guest @ 19.08.2016, 19:20 Uhr) *
Das habe ich absichtlich weggelassen, um es nicht zu unübersichtlich werden zu lassen. wink.gif


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 wink.gif

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 wink.gif


--------------------
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
   
Beitrag 19.08.2016, 21:49 Uhr
Guest_guest_*
Themenstarter
Gast


Damit es auch eine ausgefüllte Positionstabelle gibt. wink.gif
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)

Angehängte Datei  Hauptprogramm.mpf ( 1.87KB ) Anzahl der Downloads: 41
   
Beitrag 19.08.2016, 22:06 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
-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 ?


--------------------
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
   
Beitrag 19.08.2016, 22:15 Uhr
Guest_guest_*
Themenstarter
Gast


Theoretisch schon ... wink.gif
Warum sollte das nicht gehen sollen?

Der Beitrag wurde von guest bearbeitet: 19.08.2016, 22:24 Uhr
   
Beitrag 19.08.2016, 23:11 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Andy742000 @ 19.08.2016, 23: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 ?


Ich ahne deinen Gedanken... wink.gif

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. wink.gif

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
   
Beitrag 19.08.2016, 23:32 Uhr
Guest_guest_*
Themenstarter
Gast


So sollte es funktionieren:
Angehängte Datei  Hauptprogramm.mpf ( 2.12KB ) Anzahl der Downloads: 34
   
Beitrag 19.08.2016, 23:52 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
QUOTE (guest @ 20.08.2016, 00:32 Uhr) *
So sollte es funktionieren:
Angehängte Datei  Hauptprogramm.mpf ( 2.12KB ) Anzahl der Downloads: 34

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
   
Beitrag 19.08.2016, 23:58 Uhr
Guest_guest_*
Themenstarter
Gast


Was funktioniert denn nicht?
   
Beitrag 20.08.2016, 07:08 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
QUOTE (guest @ 20.08.2016, 00:58 Uhr) *
Was funktioniert denn nicht?

def real _cor[250,2)

Ich weiss nur ein kleiner Schreibfehler thumbs-up.gif
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 wink.gif 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 wink.gif

Vom Programmlauf absolut TOP dein NC- CODE , aber ich würde sagen einen Tick übers Ziel hinausgeschossen spitze.gif

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
   
Beitrag 20.08.2016, 09:12 Uhr
Guest_guest_*
Themenstarter
Gast


Hallo Andy742000,

Tschuldjung für den Deckfuhler in der DEF-Zeile. wink.gif

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. wink.gif

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
Das funktioniert natürlich nur bei einem symetrischen Positionsmuster.
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.... wink.gif

Der Beitrag wurde von guest bearbeitet: 20.08.2016, 09:18 Uhr
   
Beitrag 21.08.2016, 09:53 Uhr
Andy742000
Andy742000
Level 7 = Community-Professor
*******
Gruppe: Banned
Mitglied seit: 15.09.2012
Beiträge: 3.725
Hallo guest

Ich hatte ja auch geschrieben , dass du das nicht wissen konntest weil mir die Informtionen zu geflogen sind wink.gif

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
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: