Externe Werkzeugverwaltung (C10)

1.1Einleitung PAGEREF _Toc307406960 \h 2

1.2Werkzeugdaten 3

1.2.1 Zugriff auf Werkzeugdaten im NC-Programm (V.G.WZ..) 3

1.3Sichern von Werkzeugstandgrössen 3

1.3.1 ADS-Zugriff auf Werkzeugstandgrössen 3

1.4Sichern von Werkzeugdaten 3

1.5Parameter 3

1.5.1 Übersicht 3

1.5.2 Beschreibung Kanalparameter 3

1.6ADS-Kommunikation mit externer Werkzeugverwaltung (PLC) 3

1.6.1 Werkzeugdaten (D bzw. #TOOL DATA) 3

1.6.2 Werkzeugwechsel (T bzw. #TOOL PREP) 3

1.6.2.1 Initialisierung 3

1.6.2.2 Information an PLC 3

1.6.3 Werkzeugstandgrössen 3

Mehr:

button Einleitung

button Werkzeugdaten

button Sichern von Werkzeugstandgrössen

button Sichern von Werkzeugdaten

button Parameter

button ADS-Kommunikation mit externer Werkzeugverwaltung (PLC)


Einleitung

Aufgabe

Bei der Bearbeitung eines Werkstücks werden verschiedene Werkzeuge eingesetzt. Die Werkzeugdaten (Geometrie, Dynamik, Standzeiten, etc.) werden in einer Datenbank gehalten und werden bei Bedarf, d.h. vor der Verwendung im NC-Programm, angefordert.

Da die PLC meist auch den Werkzeugwechsel koordiniert und durchführt, können auch die von der CNC benötigten Daten der Werkzeuge über die PLC verwaltet werden. Die CNC verwendet hier den Begriff der externen Werkzeugverwaltung (WZV).

Die Existenz einer WZV muss der CNC über den Kanalparameter P-CHAN-00016 angezeigt werden.

Werden Werkzeugdaten in der CNC benötigt bzw. sollen Standzeiten oder Änderungen von Werkzeugparametern bereitgestellt werden, findet ein Datenaustausch zwischen CNC und PLC statt.

Dieser Datenaustausch zwischen CNC und PLC wird über ADS (siehe Kapitel 1.6) durchgeführt.

Kommunikation | Die Kommunikation zwischen CNC und PLC erfolgt in der asynchronen Task der CNC.
PLC -> CNC | Insbesondere werden zur CNC die vollständigen Werkzeugdaten einschließlich zusätzlicher Werkzeugparameter übertragen.
CNC -> PLC | Umgekehrt werden zur PLC bei jeder Anforderung neuer Werkzeugdaten (D-Befehl) die zusätzlichen Werkzeugparameter sowie andere Informationen des zuletzt aktiven Werkzeuges zurückübertragen. Durch diese zusätzlichen Werkzeugparameter können somit Daten aus dem NC-Programm an die externe Werkzeugverwaltung übertragen und dort gespeichert werden.


Werkzeugdaten

Standard-programmierung | Standardmäßig werden Werkzeuge im NC-Programm durch einteilige Nummern identifiziert. Entsprechend der DIN 66025 wird diese numerische ID mit dem D-Befehl zum Einrechnen neuer Daten (rechnerischer Werkzeugwechsel) programmiert. In Verbindung mit dem T-Befehl legt die ID das nächste Werkzeug fest, das physikalisch eingewechselt werden soll.
Externe Werkzeugverwaltung | Zum Einrechnen neuer Werkzeugdaten sind diese mit dem D-Befehl über eine zusätzliche Schnittstelle von einer vom Anwender bereitgestellten ggf. dezentral integrierten (externen) Werkzeugverwaltung, z.B. in der PLC, anzuforden. Die WZV besitzt spezielle, herstellerspezifische Algorithmen, um aus der Werkzeug-ID das einzuwechselnde Werkzeug zu bestimmen.
Werkzeugwechsel | Die T-Nummer dient in erster Linie als Techno-Information, d.h. sie gelangt über den NC-Kanal auf die Schnittstelle zur PLC. Der T-Befehl selbst initiert keinen Werkzeugwechsel. Nach DIN 66025 wird das physikalische Einsetzen des neuen Werkzeuges in die Arbeitsspindel mit der Maschinenfunktion M06 getriggert. Die getrennte Angabe der beiden Befehle T mit Werkzeugnummer und M06 kann dazu genutzt werden, nach dem T-Befehl vorbereitende Maßnahmen z.B. im Werkzeugmagazin zu ergreifen (P-CHAN-00087), bevor das Werkzeug mit M06 tatsächlich physikalisch in die Arbeitsspindel eingesetzt wird.
T mit D | Bei entsprechender kanalspezifischer Parametrierung (P-CHAN-00014) wird beim T-Befehl implizit auch die Ausführung des D-Befehls ausgelöst.
Einfluß auf NC-Programmablauf | Bei der Kommunikation mit der WZV kann es aufgrund von Wartezeiten beim T-Befehl zu einer verzögerten Abarbeitung von vorhergehenden Bewegungssätzen kommen. Dies kann durch Setzen des Kanalparameters P-CHAN-00106 vermieden werden.
Werkzeugidentifika-tion (TOOL-ID) | Im NC-Programm wird jedes Werkzeug über eine eindeutige Nummer identifiziert. In der WZV identifizieren sich Werkzeugdaten über eine dreiteilige Nummer, die im folgenden Tool-ID genannt wird. Diese wird in der PLC über folgende Struktur CNC_TOOL_ID angegeben:
Struktur NC_TOOL_ID in PLC | basic : DINT; sister : DINT; variant : DINT; sister_valid : BOOL; variant_valid : BOOL; Die Grund-WZ-Nummer (basic) beschreibt den Werkzeugtyp und die Schwester-WZ-Nummer (sister) definiert ein Werkzeugexemplar diesen Typs. Die Abwandlungsnummer (variant) hat rein datentechnische Bedeutung. Für ein Werkzeug können damit unterschiedliche Datensätze verwendet werden. Tool-ID = Grund-WZ-Nr. + Schwester-WZ-Nr. + Abwandlungsnummer
T-Befehl D-Befehl | Die mathematischen Ausdrücke bei Angabe des T- und D-Befehls sind stets als Grund-WZ-Nummer (basic) zu interpretieren. Damit bleibt der WZV der gleiche Freiheitsgrad wie bisher für die Auswahl des Werkzeugdatensatzes erhalten. T <basic> bzw. D<basic>

#TOOL PREP

#TOOL DATA

Es ist zu berücksichtigen, daß mit der übermittelten Werkzeug-ID nur der Werkzeugtyp festliegt und im Werkzeugmagazin evtl. mehrere Werkzeuge gleichen Typs (Schwester-WZ) einsatzbereit sind. Es lassen sich also im NC-Programm über den T-/bzw. D-Befehl die Werkzeugexemplare evtl. nicht eindeutig identifizieren.

Aus diesem Grund kann die Tool-ID alternativ über Klartextbefehle programmiert werden. Der vorbereitende Technologiebefehl für den physikalischen Werkzeugwechsel mit #TOOL PREP entspricht dabei dem T-Befehl, die Anforderung neuer Werkzeugdaten mit #TOOL DATA dem D-Befehl.

Ankündigung des Werkzeugwechsels (T):

#TOOL PREP [ <basic> [,<sister> [,<variant> ] ] ]

Anfordern neuer Werkzeugdaten (D):

#TOOL DATA [ <basic> [,<sister> [,<variant> ] ] ]

Zwingend ist die Angabe der Grund-WZ-Nummer (basic). Darüber hinaus können sister für die Schwester-WZ-Nummer und variant für die Abwandlung optional programmiert werden. Falls sister oder variant nicht programmiert sind (Komma folgt auf Komma oder Klammerzu folgt auf Komma), so wird dafür Null eingesetzt.

Werkzeug-beschreibung

Auszug aus Struktur CNC_TOOL_DESC
in PLC

Für die CNC wird ein Werkzeug über die Datenstruktur CNC_TOOL_DESC beschrieben:

tool_id : CNC_TOOL_ID;

laenge : DINT;

radius : DINT;

ax_versatz : ARRAY [1..32] OF DINT;

kopf_versatz : ARRAY [1..28] OF DINT;

mass_einheit : UINT;

typ : UINT;

srk_lage : UINT;

kin_id : UINT;

log_ax_nr_spdl : UINT;

tool_fixed : BOOL;

valid : BOOL;

res : ARRAY [1..4] OF BYTE;

param : ARRAY [1..60] OF LREAL;

vb_min : LREAL;

vb_max : LREAL;

a_max : LREAL;

Die vollständige Beschreibung der einzelnen Daten ist in [TOOL] zu finden.

Ein Werkzeug kann über weitere Daten beschrieben werden, welche jedoch bei Anfordern der Werkzeuggeometrie von der CNC nicht benötigt werden und zusätzlich nur in der PLC gehalten werden.

Mehr:

button Zugriff auf Werkzeugdaten im NC-Programm (V.G.WZ..)


Zugriff auf Werkzeugdaten im NC-Programm (V.G.WZ..)

V.G.WZ[j]...

Die V.G.WZ[j]-Variablen ermöglichen den L esezugriff auf die Daten eines beliebigen Werkzeuges in der externen Werkzeugverwaltung (transparenter Zugriff, j entspricht dabei der Werkzeugnummer).

V.G.WZ[j].R | Radius des Werkzeuges | L
V.G.WZ[j].L | Länge des Werkzeuges | L
V.G.WZ[j].P[i] | Parameter des Werkzeuges | L
V.G.WZ[j].V[i] | Achsversätze des Werkzeuges | L
V.G.WZ[j].ME | Maßeinheit der Werkzeugdaten | L
V.G.WZ[j].OK | Gültig-Kennung des Werkzeuges | L
V.G.WZ[j].SPDL_AX_NR | Logische Achsnummer der zugeordneten Spindel | L
V.G.WZ[j].KIN_PARAM[i] | Kinematikparameter des Werkzeuges | L
V.G.WZ[j].KIN_ID | Kinematik-ID des Werkzeuges | L
V.G.WZ[j].TYPE | Werkzeugtyp | L
V.G.WZ[j].SRK_ID | Schneidenlage bei einem Drehwerkzeug | L
V.G. WZ[j].S_MIN_SPEED | Minimale Drehgeschwindigkeit (WZ-Dynamikdaten) | L
V.G. WZ[j].S_MAX_SPEED | Maximale Drehgeschwindigkeit (WZ-Dynamikdaten) | L
V.G.WZ[j].S_MAX_ACC | Maximale Beschleunigung (WZ-Dynamikdaten) | L
V.G. WZ[j].SISTER_VALID | Gültigkennung des Schwesterwerkzeuges (TOOL-ID) | L
V.G.WZ[j].SISTER | Nummer des gültigen Schwesterwerkzeuges | L
V.G. WZ[j].VARIANT_VALID | Gültigkennung des Variantwerkzeuges (TOOL-ID) | L
V.G.WZ[j].VARIANT | Nummer des gültigen Variantwerkzeuges | L

V.G.WZ_AKT...

Die WZ_AKT-Variablen sowie T_AKT und D_AKT ermöglichen den Zugriff auf Daten des aktuell angewählten Werkzeuges.

V.G.T_AKT | Nummer des angewählten Werkzeuges | L
V.G.D_AKT | Nummer des angewählten Werkzeugdatensatzes | L

Ein S chreibzugriff bewirkt die temporäre Änderung der Daten des Werkzeuges, solange dieses angewählt ist. Die geänderten Daten sind mit der Anwahl eines neuen Werkzeuges (Dxx) oder bei Werkzeugabwahl (D0) verloren!

Ausnahme:

Bei einer externen Werkzeugverwaltung werden die s.g. zusätzlichen Werkzeugparameter (V.G.WZ_AKT.P[i]) mit der Anwahl eines neuen Werkzeuges oder bei Werkzeugabwahl übernommen und gesichert.

V.G.WZ_AKT.R | Radius des angewählten Werkzeuges | L/S
V.G.WZ_AKT.L | Länge des angewählten Werkzeuges | L/S
V.G.WZ_AKT.P[i] | Parameter des angewählten Werkzeuges | L/S
V.G.WZ_AKT.V[i] | Achsversatz des angewählten Werkzeuges | L/S
V.G.WZ_AKT.ME | Maßeinheit des angewählten Werkzeuges | L
V.G.WZ_AKT.OK | Gültig-Kennung des angewählten Werkzeuges | L
V.G.WZ_AKT.SPDL_AX_NR | Logische Achsnummer der zugeordneten Spindel | L
V.G.WZ_AKT.KIN_PARAM[i] | Kinematikparameter des angewählten Werkzeuges Hinweis zum Schreibzugriff: Wert muß in internen Einheiten programmiert sein! | L/S
V.G.WZ_AKT.KIN_ID | Kinematik-ID des angewählten Werkzeuges | L
V.G.WZ_AKT.TYPE | Werkzeugtyp des angewählten Werkzeuges | L
V.G.WZ_AKT.SRK_ID | Schneidenlage des angewählten Drehwerkzeuges | L
V.G.WZ_AKT.S_MIN_SPEED | Minimale Drehgeschwindigkeit (WZ-Dynamikdaten) | L
V.G.WZ_AKT.S_MAX_SPEED | Maximale Drehgeschwindigkeit (WZ-Dynamikdaten) | L
V.G.WZ_AKT.S_MAX_ACC | Maximale Beschleunigung (WZ-Dynamikdaten) | L
V.G.WZ_AKT.SISTER_VALID | Gültigkennung des Schwesterwerkzeuges (TOOL-ID) | L
V.G.WZ_AKT.SISTER | Nummer des gültigen Schwesterwerkzeuges | L
V.G.WZ_AKT.VARIANT_VALID | Gültigkennung des Variantwerkzeuges (TOOL-ID) | L
V.G.WZ_AKT.VARIANT | Nummer des gültigen Variantwerkzeuges | L
V.G.WZ_AKT.WEAR_RADIUS | Radiusverschleiß bei Radiuskompensation (OTC) | L
V.G.WZ_AKT.WEAR[i] | Verschleiß in Achse <i> bei Längenkompensation (OTC) | L
V.G.WZ_AKT.WEAR_CONST | Verschleißkonstante (OTC) | L/R

Alternativ zu V.G.WZ_AKT.P[i] kann mit der folgenden Variable ebenfalls auf die zusätzlichen Werkzeugparameter zugegriffen werden. Sie ist nur bei einer externen Werkzeugverwaltung verfügbar:

V.G.WZ_INFO[i]

Parameter des angewählten Werkzeugese

L

 | Programmierbeispiel
NC-Programm mit Werkzeuganforderung | Im folgenden Beispiel werden verschiedene Werkzeuge von der CNC eingewechselt und die Daten von der externen Werkzeugverwaltung angefordert. Die Anforderung beinhaltet immer die Werkzeugparameter des zuletzt aktiven Werkzeuges zur Rückübertragung aktualisierter Werte an die PLC. %ext_wzv.nc N10 X0 Y0 G91 G01 F1000 N20 T0 D0 (Rückmelden letzte Parameter von T<?>&D<?>) (mit Anforderung D0) N30 T1 D1 (Rückmelden letzte Parameter von T0&D0) (mit Anforderung D1) N32 V.G.WZ_AKT.P[0] = 123 N40 T2 N50 T3 N60 T4 N70 D2 (Rückmelden letzte Parameter von T1&D1) (mit Anforderung D2) N080 V.G.WZ_AKT.P[0] = 1 N090 V.G.WZ_AKT.P[1] = 2 N100 V.G.WZ_AKT.P[2] = 3 M30


Sichern von Werkzeugstandgrössen

Standzeit / Standweg

Bei der Standgrößenerfassung werden die Eingriffszeit (Standzeit) und der im Eingriff zurückgelegte Weg (Standweg) eines Werkzeuges berechnet.

Hierbei wird nur das Verfahren von Bewegungssätzen berücksichtigt. Das Positionieren im Eilgang wirkt sich auf die Standgrößen nicht aus.

Die Daten Werkzeug-ID, Eingriffszeit und Eingriffsweg werden nach dem Auswechseln des Werkzeuges vom Interpolator angezeigt.

Die Standzeit wird in [ms], der Standweg in [mm] erfasst.

Zeitpunkt der
Speicherung

Bei jedem mit dem T-Befehl angekündigten Werkzeugwechsel werden bei gesetztem P-CHAN-00076 automatisch die komplette Werkzeug-ID, die Standzeit und der Standweg vom Interpolator an die WZV geschickt und dort gespeichert. Anschließend werden alle Größen abgenullt und mit der Standgrößenerfassung für das neu eingewechselte Werkzeug wird begonnen.

Gewichtung

Die Gewichtung der Standgrößen kann über das NC-Programm verändert werden. Der veränderbare Faktor dient zur Anpassung der Standgrößenerfassung an den Werkzeugeinsatz.

Gewichtungsfaktoren

Für die Programmierung der Gewichtungsfaktoren der Standzeit und des Standweges dienen die folgenden zwei Decodervariablen (Zugriff nicht synchron zur Echtzeit):

Gewichtung der Standzeit:

V.TLM.TIME_FACT

Gewichtung des Standweges:

V.TLM.DIST_FACT

Die Variablen sind schreib- und lesbar. Bei Programmstart sind beide Faktoren 100%. Beide Variablen dürfen in einem NC-Satz beschrieben werden.

Beispiel:

Ist ein Werkzeug immer im Eingriff, so sollte mit Faktor 100% gewichtet werden. Findet aber nur auf der Hälfte des Verfahrweges ein Materialabtrag statt, so kann mit einem Gewichtungsfaktor von 0,5 gerechnet werden.

Der Defaultwert der Gewichtungsfaktoren für Standzeit und Standweg beträgt 1,0.

Bedingungen für die Erfassung :

q Eilgangsätze werden bei der Standgrößenerfassung nicht berücksichtigt.

q Beträgt der Vorschub Null, so ruht auch die Standgrößenerfassung.

q Es werden alle Bewegungsarten mit Ausnahme der Eilganginterpolation für die Standgrößenerfassung erfaßt. Z.B. werden G01, G02, G03, Splineinterpolation und G63 einbezogen.

q Die Gewichtungsfaktoren gehen in die Berechnung ein.

q Bei an der Bewegung beteiligten Achsen wird nicht zwischen Haupt- und Mitschleppachsen unterschieden. Es wird immer der Bahnvorschub für die Wegaddition genommen. Im Fall von allein im Satz programmierten Mitschleppachsen wird der zurückgelegte Weg der Mitschleppachse zum Standweg addiert. Falls dies nicht erwünscht ist, kann der Programmierer durch die Vorgabe der Gewichtungsfaktoren V.TLM.TIME_FACT/DIST_FACT = 0 korrigierend eingreifen.

q Nicht berücksichtigt werden aktive Master-Slave-Anordnungen.

q Bei einem Reset oder Programmabbruch werden ebenfalls die zuletzt aktuellen Werte in die Datenbasis der WZV aufgenommen.

q Wird nur eingewechselt, d.h. bisher war kein Werkzeug in der Arbeitsspindel und die aktuelle T-Nummer gleich Null, so werden keine Daten verschickt.

Mehr:

button ADS-Zugriff auf Werkzeugstandgrössen


ADS-Zugriff auf Werkzeugstandgrössen

Standzeit / Standweg

Neben der Möglichkeit die Standgrössen über einen NC-Befehl an die Werkzeugverwaltung zu senden, können die Standgrössen über ADS auch online ausgelesen werden.

Die Faktoren für die Standgrössengewichtung (vgl. V.TLM.DIST_FACT, V.TLM.TIME_FACT können hierbei auch verändert werden.

Beispiel

Anzeige der Standgrössen im ADS-Browser

Aktuelle Standzeit des Werkzeugs
Beschreibung | Element gibt die Standzeit des aktuell aktiven Werkzeugs an.
Typ | REAL64
Wertebereich | Sekunden, [s]
HMI Elemente | Tool life : time
Zugriff | Read
PortADS | 0x551, Task GEO
IndexGroupADS | 0x000213<ii> mit <ii> = Kanal)
IndexOffsetADS | 0x1C

Aktueller Standweg des Werkzeugs
Beschreibung | Element gibt die Standweg des aktuell aktiven Werkzeugs an.
Typ | REAL64
Wertebereich | Millimeter, [mm]
HMI Elemente | Tool life : distance
Zugriff | Read
PortADS | 0x551, Task GEO
IndexGroupADS | 0x000213<ii> mit <ii> = Kanal)
IndexOffsetADS | 0x1D


Sichern von Werkzeugdaten

Werkzeugparameter

Im NC-Programm besteht die Möglichkeit, für das aktuelle Werkzeug bestimmte Informationen bleibend zu modifizieren, d.h. diese über die Werkzeugabwahl hinaus zu sichern.

Dies erfolgt mit Hilfe der s.g. zusätzlichen Werkzeugparameter (V.G.WZ_AKT.P[i]). Hier können z.B. Verschleißdaten des aktuell aktiven Werkzeuges zur Programmlaufzeit abgelegt werden. Diese werden dann mit der Anwahl eines neuen Werkzeugdatensatzes (Dxx) oder bei Werkzeugabwahl (D0) an die externe Werkzeugverwaltung zurückgeschrieben und dort entsprechend weiterverarbeitet bzw. gespeichert.

Wird ein aktives Werkzeug bis zum Programmende nicht abgewählt, so besteht bei entsprechender kanalspezifischer Parametrierung (P-CHAN-00103) die Möglichkeit, beim nächsten Programmstart implizit die Daten dieses zuletzt genutzten Werkzeuges an die externe Werkzeugverwaltung zurückzuschreiben.

T/D Nummer

Zusätzlich wird bei der Anwahl eines Werkzeugdatensatzes die T-Nummer und die D-Nummer des zuletzt genutzten Werkzeuges an die externe Werkzeugverwaltung zurückübertragen.

 | Programmierbeispiel
NC-Programm mit Werkzeuganforderung | Im folgenden Beispiel werden verschiedene Werkzeugdaten (Standgrössen, Werkzeugparameter) von der CNC beschrieben und an die externe Werkzeugverwaltung zurückgesendet. %ext_wzv.nc N10 X0 Y0 G91 G01 F1000 (Verschleiss eintragen für T1/D1) V.G.WZ_AKT.P[0] = 123 V.G.WZ_AKT.P[1] = 234 N40 T22 D22 N31 T2 (-> T2-Info) N32 D2 (-> dann D2-Anforderung) N33 D3 T3 (-> erst D3-Anforderung dann T3-Info) N35 X11 N40 #TOOL DATA [4, 1] (D-Geometrie in erweiterter Syntax) (anfordern) N50 #TOOL PREP [4] (T in erweiterter Syntax anfordern) N55 X22 (Nutzen applikationsspezifischer Werkzeugparameter) G90 XV.G.WZ[3].P[0] G91 N130 X100 N140 X200 N150 T22 N160 D33 N170 X-100 N180 D0 (Abwahl der Werkzeuggeometrie) M30


Parameter

Parametrierung

Der Benutzer kann durch Einstellungen in der Kanalparameterliste [CHAN] die Kommunikation zwischen CNC und externer Werkzeugverwaltung konfigurieren.

Die Parameter werden kanalspezifisch eingestellt. Sollen die Einstellungen sämtliche Kanäle betreffen, können die Einstellungen in der Defaultliste vorgenommen werden.

Mehr:

button Übersicht

button Beschreibung Kanalparameter


Übersicht

ID | Parameter | Beschreibung
P-CHAN-00014 | einrechnen_mit_t | Implizites Ausführen des D-Befehls bei T-Programmierung.
P-CHAN-00016 | ext_wzv_vorhanden | Externe Werkzeugverwaltung im System vorhanden.
P-CHAN-00076 | tool_life_to_wzv | Standgrößen eines Werkzeuges zur Werkzeugverwaltung senden.
P-CHAN-00087 | t_info_to_wzv | Vorbereitung eines Werkzeugwechsels im Magazin.
P-CHAN-00103 | d_clear_to_wzv | Werkzeugdaten bei Programmstart sichern.
P-CHAN-00106 | t_with_implicit_flush | Freigabe von Bewegungssätzen bei T-Anwahl .


Beschreibung Kanalparameter

P-CHAN-00014 | Implizites Ausführen des D-Befehls bei T-Programmierung.
Parameter | einrechnen_mit_t
Beschreibung | Für die Werkzeugnummer "T" wird implizit bei der Programmierung des T-Befehls der D-Befehl mit derselben Nummer durchgeführt.
Datentyp | BOOLEAN
Datenbereich | [0; 1]
Standardwert | 0
Anmerkungen | Ist P-CHAN-00014 auf TRUE gesetzt, so entspricht z.B. die Programmierung von "T80" dem Programmierbefehl "T80 D80".

P-CHAN-00016 | Externe Werkzeugverwaltung im System vorhanden.
Parameter | ext_wzv_vorhanden
Beschreibung | Wenn im System eine externe Werkzeugverwaltung vorhanden ist, ist dieses Flag auf 1 zu setzen.
Datentyp | BOOLEAN
Datenbereich | [0; 1]
Standardwert | 0
Anmerkungen | -

P-CHAN-00076 | Standgrößen eines Werkzeuges zur Werkzeugverwaltung senden.
Parameter | tool_life_to_wzv
Beschreibung | Bei TwinCAT-Steuerungen werden bei aktivierter externer Werkzeugverwaltung standardmäßig nur die Werkzeugdaten von der externen Werkzeugverwaltung angefordert. Um die im NC-Kern ermittelten Standgrößen eines Werkzeuges zur Werkzeugverwaltung zu schicken, ist zusätzlich der Parameter P-CHAN-00076 mit TRUE zu belegen.
Datentyp | BOOLEAN
Datenbereich | [0; 1]
Standardwert | 0
Anmerkungen | Dieser Parameter wird nur in TwinCAT-Systemen verwendet. Das Flag wird nur dann ausgewertet, wenn eine externe Werkzeugverwaltung (P-CHAN-00016) vorhanden ist.

P-CHAN-00087 | Vorbereitung eines Werkzeugwechsels im Magazin.
Parameter | t_info_to_wzv
Beschreibung | Die Programmierung des T-Befehls generiert eine Meldung an die externe Werkzeugverwaltung zur Vorbereitung eines Werkzeugwechsels im Magazin (z.B. Werkzeug reinigen, Wechselposition anfahren).
Datentyp | BOOLEAN
Datenbereich | [0; 1]
Standardwert | 0
Anmerkungen | Das Flag wird nur dann ausgewertet, wenn eine externe Werkzeugverwaltung (P-CHAN-00016) vorhanden ist.

P-CHAN-00103

Werkzeugdaten bei Programmstart sichern.

Parameter

d_clear_to_wzv

Beschreibung

Im NC-Programm können Werkzeugdaten des aktuellen Werkzeuges (z.B. Verschleißparameter) über Variablenzugriff (V.G.WZ_AKT.[i]...) modifiziert werden.

Zur Sicherung werden diese Daten jeweils mit der Anwahl eines neuen Werkzeuges an die externe Werkzeugverwaltung zurückgeschrieben. Wurde in einem vorhergehenden NC-Programm ein Werkzeug programmiert, so wird bei einem Programmneustart implizit ein D0 (Werkzeugabwahl) angefordert. Bei dieser Anforderung werden gleichzeitig die Daten des letzten genutzten Werkzeuges an die Werkzeugverwaltung zurückübertragen. Somit ist sichergestellt, das keine eventuell modifizierten Werkzeugdaten verloren gehen.

Dieses implizite Anfordern eines D0 beim Programmstart kann über den Parameter P-CHAN-00103 geschaltet werden.

Datentyp

BOOLEAN

Datenbereich

[0; 1]

Standardwert

0

Anmerkungen

Bei Reset wird kein implizites D0 angefordert, d.h. die Daten des letzten genutzten Werkzeuges werden erst beim nächsten Programmstart gesichert.

Das Flag wird nur dann ausgewertet, wenn eine externe Werkzeugverwaltung (P-CHAN-00016) vorhanden ist.

P-CHAN-00106 | Freigabe von Bewegungssätzen bei T-Anwahl .
Parameter | t_with_implicit_flush
Beschreibung | Beim T-Wort kann es während der Kommunikation mit einer externen Werkzeugverwaltung aus Synchronisationsgründen zu Wartezeiten bei der Abbarbeitung kommen. Dies führt aufgrund der Bufferwirkung des NC-Kanals dazu, dass eine bestimmte Anzahl bewegungsrelevanter NC-Sätze, die vor dem T-Wort programmiert sind, zurückgehalten werden. Durch Setzen des Flags P-CHAN-00106 wird erzwungen, dass alle Bewegungssätze bis zum T-Wort ausgeführt werden. Es handelt sich hierbei um ein durch das T-Wort implizit ausgelöstes "#FLUSH CONTINUE" (vgl. [PROG]).
Datentyp | BOOLEAN
Datenbereich | [0; 1]
Standardwert | 0
Anmerkungen | Das Flag wird nur dann ausgewertet, wenn eine externe Werkzeugverwaltung (P-CHAN-00016) vorhanden ist.


ADS-Kommunikation mit externer Werkzeugverwaltung (PLC)

Identifikation des CNC-Kanals

Jeder Anfrage enthält eine eindeutige Auftragsnummer (invoke id, ADSRDWRTIND.INVOKEID, 32 Bit). Bei einer mehrkanaligen CNC wird in den ersten 24 Bit die Kanalnummer [1; max ] kodiert, von welchem CNC-Kanal die Anfrage initiiert wurde. Die Auftragsnummer muss bei der Antwort wieder zurückgegeben werden.

Mehr:

button Werkzeugdaten (D bzw. #TOOL DATA)

button Werkzeugwechsel (T bzw. #TOOL PREP)

button Werkzeugstandgrössen


Werkzeugdaten (D bzw. #TOOL DATA)

Werkzeugeometrie

Bei jedem D<i> bzw. #TOOL DATA fordert die CNC während der NC-Programmdekodierung die Daten des Werkzeuges an.

Bei der Anforderung des neuen Werkzeuges werden die D-Nummer, T-Nummer und die frei verwendbaren P-Parameter des aktuell einge-wechselten Werkzeuges mitgeliefert. Hierdurch kann die PLC erkennen, welches Werkzeug ausgewechselt werden soll. Über die P-Parameter kann z.B. im NC-Programm der Verschleiß eingetragen und im Werkzeugwechsel an die PLC zurückgemeldet werden.

Bei der Anfrage der CNC an die PLC werden folgende Daten (CNC_TOOL_REQUEST_IN) übertragen :

id : CNC_TOOL_ID; (tool id of requested tool)

act_t_nr : DINT; (actual t number in nc kernel)

act_d_nr : CNC_TOOL_ID; (actual tool id in nc kernel)

param : ARRAY[1..60] OF LREAL;

log_ax_nr_tool_length : UINT; (spindle axis for tool length compensation)

Die PLC liefert den kompletten Werkzeugdatensatz (CNC_TOOL_DESC) zurück.

Abbildung 1-1: Anfordern der Werkzeugdaten von der PLC

 | Programmierbeispiel
Werkzeugmanager im PLC-Programm Werkzeugdaten | RInd : ADSRDWRTIND; RRes : ADSRDWRTRES; Rind; IF RInd.VALID THEN (* initialize response *) RRes.NETID := ''; RRes.PORT := RInd.PORT; RRes.INVOKEID := RInd.INVOKEID; (* sender channel nr is coded in the invoke id *) cnc_channel_nr := RInd.INVOKEID; cnc_channel_nr := cnc_channel_nr AND 16#00FFFFFF; (* CNC fordert Werkzeuggeometriedaten aufgrund D<i> an *) IF RInd.IDXGRP = ADS_IGRP_TOOL_DESC_READ THEN (* Tool data request from CNC *) pToolReq := RInd.DATAADDR; BasicToolId := pToolReq^.id.basic; SpiindleID := pToolReq^.log_ax_nr_tool_length; IF BasicToolId <= MAX_TOOLS THEN (* transmit tool data in the response *) RRes.LEN := SIZEOF(tool[1].cnc.tool_desc); RRes.DATAADDR := ADR(tool[BasicToolId].cnc.tool_desc); RRes.RESULT := ADS_RDWRT_IND_NO_ERROR; ELSE (* Tool not present *) RRes.LEN := 0; RRes.DATAADDR := 0; RRes.RESULT := WZV_TOOL_ID_BASIC_INVALID; END_IF

Programmierbeispiel

%main

N10 X1200

N11 S2[D1] (Werkzeug D1 für Spindel S2 anfordern

N20 S2[D2 REV=1 M4] (Werkzeug D2 für Spindel S2 anfordern

N30 D3 S100 M3 (Werkzeug D3 für Spindel S anfordern

N40 X0

N480 M30


Werkzeugwechsel (T bzw. #TOOL PREP)

Mehr:

button Initialisierung

button Information an PLC


Initialisierung

Datenformat

Beim Neustart der Steuerung befindet sich oft schon ein reales Werkzeug in der Spindel. Die PLC hat die Möglichkeit dieses Werkzeug der CNC direkt mitzuteilen.

actual_tool : DINT;

PLC Beispiel

bWrite: BOOL := FALSE;

ToolWrite : ADSWRITE;

ToolNr : DINT := 4711;

IF bWrite = TRUE THEN

bWrite := FALSE;

ToolWrite(Write := FALSE);

ToolWrite.NETID := '';

ToolWrite.PORT := ADS_PORT_TASK_SDA;

ToolWrite.IDXGRP := ADS_IGRP_DECODER_OF_CHANNEL + 1;

ToolWrite.IDXOFFS := ADS_IOFFS_ACTUAL_T_NUMBER;

ToolWrite.SrcAddr := ADR(ToolNr);

ToolWrite.LEN := SIZEOF(ToolNr);

ToolWrite(Write := TRUE);

END_IF

ToolWrite();


Information an PLC

Werkzeugwechsel

Bei jedem programmierten T<i> bzw. #TOOL PREP teilt die CNC während der NC-Programmdekodierung die Werkzeugnummer an die PLC mit, sofern dies in der Kanalparameterliste eingeschaltet ist (P-CHAN-00087).

Diese Vorabinformation kann von der externen Werkzeugverwaltung genutzt werden, um einen Werkzeugwechsel zeiteffizient vorzubereiten (Reinigen des Werkzeuges, Drehen des Tellerwechslers, etc.).

Bei der Anfrage der CNC an die PLC werden folgende Daten (CNC_TOOL_ID) übertragen, wobei die T-Nummer im Element basic eingetragen ist :

basic : DINT;

sister : DINT;

variant : DINT;

sister_valid : BOOL;

variant_valid : BOOL;

Die PLC quittiert den Empfang durch Zurücksenden der identischen Nachricht.

Abbildung 1-2: Information der PLC über anstehenden Werkzeugwechsel

 | Programmierbeispiel
Werkzeugmanager im PLC-Programm Werkzeuginfo | ... (* CNC teil den Werkzeugwechsel T<i> (während Programm- dekodierung) mit *) ELSIF RInd.IDXGRP = ADS_IGRP_TOOL_INFO_WRITE THEN (* CNC writes tool life data *) pTid := RInd.DATAADDR; BasicToolId := pTid^.basic; IF BasicToolId <= MAX_TOOLS THEN (* save actual requested tool T<nr> *) (* Tool id in valid range *) RRes.LEN := SIZEOF(pTid^); RRes.DATAADDR := pTid; RRes.RESULT := ADS_RDWRT_IND_NO_ERROR; ELSE (* no data transmitted in the reposnse *) RRes.LEN := 0; RRes.DATAADDR := 0; RRes.RESULT := WZV_TOOL_ID_BASIC_INVALID; END_IF ELSE


Werkzeugstandgrössen

Standzeit,
Standweg

Bei jedem programmierten T<i> bzw. #TOOL PREP werden bei gesetztem P-CHAN-00076 automatisch die komplette Werkzeug-ID, die Standzeit und der Standweg von der CNC an die PLC geschickt und dort gespeichert.

Folgende Daten werden von der CNC an die PLC übertragen:

CNC_TOOL_DATA_IN (Tool life data sent from CNC)

tool_id : CNC_TOOL_ID; (Tool id from CNC)

time_used : LREAL; (Usage time of tool in seconds)

dist_used : LREAL; (Usage distance in mm)

Abbildung 1-3: Übermittlung der Standgrößen an PLC

Programmierbeispiel

Werkzeugmanager im PLC-Programm

Werkzeuginfo

...

(* CNC aktualisiert die Werkzeugstanddaten nach Anwahl

eines anderen Werkzeugs T<i> *)

ELSIF RInd.IDXGRP = ADS_IGRP_TOOL_LIFE_DATA_WRITE THEN

(* CNC writes tool life data *)

pToolLife := RInd.DATAADDR;

BasicToolId := pToolLife^.tool_id.basic;

(* no data transmitted in the reposnse *)

RRes.LEN := 0;

RRes.DATAADDR := 0;

IF BasicToolId <= MAX_TOOLS THEN

(* actualize tooll life data *)

tool[BasicToolId].cnc.tool_life.dist_used := tool[BasicToolId].cnc.tool_life.dist_used

+ pToolLife^.dist_used;

tool[BasicToolId].cnc.tool_life.time_used := tool[BasicToolId].cnc.tool_life.time_used

+ pToolLife^.time_used;

(* Tool id in valid range *)

RRes.RESULT := ADS_RDWRT_IND_NO_ERROR;

ELSE

RRes.RESULT := WZV_TOOL_ID_BASIC_INVALID;

END_IF