QUOTE
Klingt für mich nach PP der "eben erstmal so läuft".
Salü!
Damit bist du der Wahrheit wohl verdammt nahe!
Grundsätzlich ist ein NC-Programm im dich interessierenden Formenbaubereich nix anderes als eine Koordinatentabelle, eingerahmt und gelegentlich unterbrochen durch bestimmte Ereignisse. Das Ereignis am Programmkopf ist der Programmkopf und das am Ende ist das Programmende. Dazwischen gibt's weitere Ereignisse, wie z.B. das Einwechseln eines Werkzeuges, das Einschalten der Spindel, der Kühlung etc. All diese Ereignisse werden von den verschiedenen Steuerungen unterschiedlich gehandhabt und sie werden auch von der gleichen Steuerung unterschiedlich gehandhabt, je nachdem in welcher Maschine sie eingebaut ist. Maschinen mit Zweiarm-Werkzeugwechsler und fixen Magazinplätzen kennen und verwenden z.B. neben der aktuellen Werkzeugnummer noch die Nummer des nächsten Werkzeuges (TOOLN im nachfolgenden Beispiel). Die schreibt man bereits ins Programm unmittelbar nachdem das aktuelle Werkzeug eingewechselt wurde. Während dieses läuft, kann der Werkzeugwechsler dann schon mal das nachfolgende Werkzeug aus dem Magazin kramen und beim nächsten Wechsel bereit halten. So muß der PP letztlich jeder einzelnen Maschine auf den Leib geschneidert werden. Um dies zu vereinfachen gibt's i.d.R. irgend ein kleines Programm oder Skript oder sowas. Im Falle CAM-TOOL - und wahrscheinlich bei den meisten anderen auch - kann man die Steuerdatei des generalisierten PP (heißt bei uns mpf = machine parameter file) jedoch auch genau so gut am Editor reinklopfen/ editieren. Du kannst also bei jedem dieser Ereignisse ziemlich bis sehr genau das eingeben, was die Maschine wann und wie tun soll, indem du entweder ganze Verfahranweisungen hard-coded als fertiger NC-Satz da rein schreibst oder dir den NC-Satz aus Variablen zusammenbastelst, die der PP kennt oder aus einer Mischung davon. Probleme kann es geben, wenn feste Steuerungszyklen angesprochen und genau so mit Werten belegt werden sollen, wie es von Hand an der Steuerung möglich wäre. Jenseits von Bohr-, Reib- und Gewindeschneidzyklen wachsen die Bäume da nicht in den Himmel. Ist eben nix genormt. Falls du auf solche Dinge Wert legst, guck dir vorab an, was mit deinem Wunschsystem da so geht und wo die Grenzen liegen.
Zu all dem muß man jedoch auch sagen, daß das Schreiben eines Postprozessors trotz aller Erleichterungen immer noch kein Kindergeburtstag ist, schon gar nicht für einen Neuling am CAM-System oder der NC-Steuerung. Gelegentlich endet da auch mal die Inbetriebnahme einer neuen
Fräsmaschine mit einer defekten, weil aufgefahrenen Spindel. Wir übernehmen deshalb bei Neuinstallationen grundsätzlich das Schreiben dieses mpf-Files und zwar bei 3-Achs-Maschinen kostenlos und - soweit möglich - für alle im jeweiligen Betrieb vorhandenen Steuerungen. Real können wir dabei fast immer auf bei uns bereits vorhandene und bewährte Files zurückgreifen, die mit zwei, drei kleinen Änderungen dann beim Kunden passen. Es gibt aber auch Anbieter, die sich dafür fürstlich entlohnen lassen - für genau den gleichen Aufwand. Fünfachs-PPs kosten allerdings auch bei uns Geld, aber wir lassen die Kirche im Dorf und es ist auch ein entsprechender Aufwand damit verbunden.
Im nachfolgenden Beispiel sind alle Zeilen, die mit "#" beginnen Kommentare bzw. inaktiv.
Den ersten #FORMAT-Block überblätterst du mal am besten.
Das IJA im zweiten sagt aus, daß I- und J-Werte absolut ausgegeben werden sollen.
G63 E0.002 ist irgend eine Glättungstoleranz, auf die die Steuerung besteht.
#################################
# Output just before first G00 #
#################################
#INITAP
# (INITAP)
# $GI
G00X$IXY$IY
G00Z$IZ
= Fahr im Eilgang auf die XY-Position, dann auf die Z-Position.
Das steht hier auf ausdrücklichen Kundenwunsch! Normalerweise fahre ich immer zu erst in Z auf die Sicherheitshöhe, bevor ich mich in XY bewege. Hier gings jedoch um eine Maschine mit großem X-Verfahrweg und langem Tisch, auf dem zwischen Werkzeugwechsler und Zielposition in XY möglicherweise doch Schraubstöcke oder sonstwas auf dem Tisch aufgespannt sei könnten. Der PP war ein Frühwerk. Mittlerweile habe ich mich durchgesetzt und fahre nun vom Werkzeugwechsler im
Maschinenkoordinatensystem bis nahe an den Endschalter in Z - und dann den XY-Weg.
Gruß,
Clemens
CODE
#FORMAT
FIG
DECF
GZZ
G00F 12000.0
FOF
BOT
MC0
GFG
SFG
TFG
HFG
DFG
PFG 4
IJK
FMUL
SEQ 7 1 1 1
NB0
#FORMAT
IJA
# [ ferrari.mpf ]
# [ ]
# [ Comment ]
# [ ]
# [ ]
# [ ]
#################################
# Output at top of NCD #
#################################
#START
# (START)
%N0
G63 E0.002
# $ON($NCNAME)
# $COMM_F
# G00G40G49G80
# G91G28Z0.
# G28X0.Y0.
# T$T1
# M06
###################################
# (Used for multiple ATC, etc.) #
# Output at top of NCD of each CL #
###################################
#P-START
# (P-START_ATC)
####################################
# (Used for multiple ATC, etc.) #
# Output at top of 2nd CL or later #
# Omit when next tool is same #
####################################
#P-MID
# (P-MID_ATC)
# $COMM_F
# G00G40G49G80
# G91G28Z0.
# G28X0.Y0.
# M06
######################################################
# (Used for ATC, etc., no preparation for next tool) #
# Output when specifying tool exchange command #
######################################################
#TOOL
# (TOOL)
# T$T1
# M06
G45 T$T1
# $ON
################################################
# (Used for ATC, etc.) #
# Output when specifying next tool preparation #
################################################
#TOOLN
# (TOOLN)
# T$TN
#################################################
# Output when setting coordinates system and #
# output when specifying work coordinate system #
# (G92 -> Set current tool position to the #
# specified coordinates) #
#################################################
#G92
# (G92)
G92X$IXY$IYZ$IZ
#WORKC
# (WORKC)
G17G00G$WKX$IXY$IY
# G43Z$IZH$TH
###################################
# Output of spindle speed
command #
###################################
#ROTON
# (ROTON)
S$SPM03 PA
# G05P10000
# G391
#################################
# Output just before first G00 #
#################################
#INITAP
# (INITAP)
# $GI
G00X$IXY$IY
G00Z$IZ
#################################
# Output when starting cooling #
#################################
#COOLANTON
# (COOLANTON)
G99 M07
#AIRON
# (AIRON)
G99 M50
#MISTON
# (MISTON)
G99 M51
##################################
# Output just before first G01-3 #
##################################
#INITCUT
# (INITCUT)
##########################################################
# Output when starting diameter compensation #
# Output at transfer information after compensation line #
##########################################################
#COMPON
# (COMPON)
# $GH$XYZD$TD
##########################################################
# Output after diameter compensation #
# Output at transfer information after compensation line #
##########################################################
#COMPOFF
# (COMPOFF)
# $GH$XYZ
#################################
# Output when stopping cooling #
#################################
#COOLANTOFF
# (COOLANTOFF)
G99 M09
#AIROFF
# (AIROFF)
G99 M09
#MISTOFF
# (MISTOFF)
G99 M09
##################################
# Output of spindle stop command #
##################################
#ROTOFF
# (ROTOFF)
# G05P0
M05
###################################
# (Used for multiple ATC, etc.) #
# Output at end of NCD of each CL #
###################################
#P-END
# (P-END_ATC)
# $COMM_T
G47
#################################
# (Used for ATC, etc.) #
# Use for ATC that does not #
# output next tool but only #
# last tool #
#################################
#TOOLE
# (TOOLE)
# G00G40G49G80
# G91G28Z0.
# G28X0.Y0.
# T$TE
# M06
#################################
# Output at end of NCD #
#################################
#END
# (END)
G99PA
M1125
%N99999%
################################
#########################################
# Output when tool cutting life is over #
#########################################
#MDATA
# (MDATA)
$COMM_M
##################################
# Specify conversion table #
# Output S and F by 1 digit code #
# Max division number is 10 #
##################################
#STABLE
# 1000 1
# 2000 2
# 3000 3
#FTABLE
# 100 1
# 200 2
# 300 3
#########################################
# Output for each pre-hole info data #
# when dividing by [pre-hole division] #
# Adjust the number of division CL file #
# and the number of pre-hole info. #
#########################################
#HOLE1
# (HOLE1)
# G81X$CXY$CYZ-3.
#HOLE2
# (HOLE2)
# G83$XYZ