Automatische Zustellung im Programm
17.10.2025, 13:18 Uhr
Hallo Community,
ich hab folgendes Anliegen:
Ich verwende bei meinem Programm am Ende eine Entgratbürste, die ich alle 100 Teile in Z um -0,5 in der Länge per Hand runterkorrigiere.
Gibt es eine Möglichkeit diese Entgratbürste bei jedem Werkstück im Programm um 0,005mm in der Gesamtlänge kürzer korrigieren zu lassen und diese
dann nach Programmende dauerhaft zu übernehemen?
Ich habe bereits einen Toolcheck in der Maschine vorgegeben wenn das Werkzeug zu kurz werden sollte, startet das Programm nicht.
Für eure Hilfe wäre ich sehr dankbar LG.
ich hab folgendes Anliegen:
Ich verwende bei meinem Programm am Ende eine Entgratbürste, die ich alle 100 Teile in Z um -0,5 in der Länge per Hand runterkorrigiere.
Gibt es eine Möglichkeit diese Entgratbürste bei jedem Werkstück im Programm um 0,005mm in der Gesamtlänge kürzer korrigieren zu lassen und diese
dann nach Programmende dauerhaft zu übernehemen?
Ich habe bereits einen Toolcheck in der Maschine vorgegeben wenn das Werkzeug zu kurz werden sollte, startet das Programm nicht.
Für eure Hilfe wäre ich sehr dankbar LG.
17.10.2025, 15:59 Uhr
Ja das geht.
Je nach Maschine und Steuerung gibt es da verschiedene möglichkeiten
Je nach Maschine und Steuerung gibt es da verschiedene möglichkeiten
--------------------
mfg Peter
HAAS CompactMill 1
HAAS SuperMiniMill 2
HAAS ST10Y mit Stangenlader
HAAS CompactMill 1
HAAS SuperMiniMill 2
HAAS ST10Y mit Stangenlader
17.10.2025, 19:23 Uhr
19.10.2025, 15:31 Uhr
nach der bearbeitung die längenkorrektur überschreiben vielleicht?
$TC_DP3[WZ_NUMMER,WZ_SCHNEIDE] = $TC_DP3[WZ_NUMMER,WZ_SCHNEIDE]-0,005
WZ_NUMMER ist der Interne Siemensnummer gemeint, muss wahrscheinlich vorher noch mittels GETT ausgelesen werden
$TC_DP3[WZ_NUMMER,WZ_SCHNEIDE] = $TC_DP3[WZ_NUMMER,WZ_SCHNEIDE]-0,005
WZ_NUMMER ist der Interne Siemensnummer gemeint, muss wahrscheinlich vorher noch mittels GETT ausgelesen werden
19.10.2025, 19:31 Uhr
Das kann man so machen. Damit die Änderung wirksam wird, muss aber anschließend das Werkzeug neu angewählt werden.
19.10.2025, 20:04 Uhrnach der bearbeitung die längenkorrektur überschreiben vielleicht?
$TC_DP3[WZ_NUMMER,WZ_SCHNEIDE] = $TC_DP3[WZ_NUMMER,WZ_SCHNEIDE]-0,005
WZ_NUMMER ist der Interne Siemensnummer gemeint, muss wahrscheinlich vorher noch mittels GETT ausgelesen werden
$TC_DP3[WZ_NUMMER,WZ_SCHNEIDE] = $TC_DP3[WZ_NUMMER,WZ_SCHNEIDE]-0,005
WZ_NUMMER ist der Interne Siemensnummer gemeint, muss wahrscheinlich vorher noch mittels GETT ausgelesen werden
Das könnte eine Lösung sein, ich werde das morgen mal in der Maschine ausprobieren.
In SinuTrain hat es auf alle Fälle schon mal geklappt mit einem Testwerkzeug das ich T1 benannt habe.
($TC_DP3[1,1] = $TC_DP3[1,1]-0,005
Danke schon mal.
20.10.2025, 06:19 Uhr
Moin.
Das Thema gab es so ähnlich Hier auch schon mal.
Du kannst das auslesen der Internen Werkzeug und D-Nummer auch einfacher machen,
Das Werkzeug und die Schneide müssen aktiv sein.
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,005
Gruß
Tobi
Das Thema gab es so ähnlich Hier auch schon mal.
Du kannst das auslesen der Internen Werkzeug und D-Nummer auch einfacher machen,
Das Werkzeug und die Schneide müssen aktiv sein.
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,005
Gruß
Tobi
20.10.2025, 07:41 UhrDas Werkzeug und die Schneide müssen aktiv sein.
Das reicht - wie bereits weiter oben geschrieben - nicht aus. Damit die Änderung wirksam wird, muss das Werkzeug neu angewählt werden. Das ist ja auch kein Problem. Wenn das Werkzeug bereits aktiv ist, gibt es deshalb auch keinen Werkzeugwechsel.
20.10.2025, 08:35 UhrDas reicht - wie bereits weiter oben geschrieben - nicht aus. Damit die Änderung wirksam wird, muss das Werkzeug neu angewählt werden. Das ist ja auch kein Problem. Wenn das Werkzeug bereits aktiv ist, gibt es deshalb auch keinen Werkzeugwechsel.
Da hast du natürlich recht.
Mir ging es bei der Aussage eher darum das in dem $P_TOOL und $P_TOOLNO die Werte vom dem richtigen Werkzeug/Schneide liegen.
Ein Automatisches "nachstellen" der Werkzeug macht eigentlich auch nur Sinn nachdem das Werkzeug im Eingriff war.
Dann hat man ja auch erst den Verschleiß am Werkzeug.
Dann würde beim nächsten Zyklus das Werkzeug aufgerufen und die neuen Werte wären eh aktiv.
21.10.2025, 06:42 UhrMoin.
Das Thema gab es so ähnlich Hier auch schon mal.
Du kannst das auslesen der Internen Werkzeug und D-Nummer auch einfacher machen,
Das Werkzeug und die Schneide müssen aktiv sein.
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,005
Gruß
Tobi
Das Thema gab es so ähnlich Hier auch schon mal.
Du kannst das auslesen der Internen Werkzeug und D-Nummer auch einfacher machen,
Das Werkzeug und die Schneide müssen aktiv sein.
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,005
Gruß
Tobi
Habe das heute Probiert mit (Testwerkzeug "T10" --- $TC_DP3[10,1] = $TC_DP3[10,1]-0,001.
Leider hat die Steuerung mir ein anderes Werkzeug korrigiert und zwar beim ersten Mal um -0,01mm und danach um -0,001.
Hab einen Dauerlauf mit Loop programmiert um zu sehen was passiert.
Was hab ich übersehen?
Programm sah so aus:
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
($TC_DP3[10,1] = $TC_DP3[10,1]-0,001
G0 Z500
EndLoop
Der Beitrag wurde von Mane216 bearbeitet: 21.10.2025, 07:11 Uhr
21.10.2025, 06:43 UhrDas reicht - wie bereits weiter oben geschrieben - nicht aus. Damit die Änderung wirksam wird, muss das Werkzeug neu angewählt werden. Das ist ja auch kein Problem. Wenn das Werkzeug bereits aktiv ist, gibt es deshalb auch keinen Werkzeugwechsel.
Habe das heute Probiert mit (Testwerkzeug "T10" --- $TC_DP3[10,1] = $TC_DP3[10,1]-0,001.
Leider hat die Steuerung mir ein anderes Werkzeug korrigiert und zwar beim ersten Mal um -0,01mm und danach um -0,001.
Hab einen Dauerlauf mit Loop programmiert um zu sehen was passiert.
Was hab ich übersehen?
Programm sah so aus:
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
($TC_DP3[10,1] = $TC_DP3[10,1]-0,001
G0 Z500
EndLoop
Der Beitrag wurde von Mane216 bearbeitet: 21.10.2025, 06:44 Uhr
21.10.2025, 09:40 Uhr
Moderator-RuD-St...
Level 1 = Community-Lehrling

Gruppe: Mitglied
Mitglied seit: 10.07.2024
Beiträge: 17
Mitglied seit: 10.07.2024
Beiträge: 17
Habe das heute Probiert mit (Testwerkzeug "T10" --- $TC_DP3[10,1] = $TC_DP3[10,1]-0,001.
Leider hat die Steuerung mir ein anderes Werkzeug korrigiert und zwar beim ersten Mal um -0,01mm und danach um -0,001.
Hab einen Dauerlauf mit Loop programmiert um zu sehen was passiert.
Was hab ich übersehen?
Programm sah so aus:
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
($TC_DP3[10,1] = $TC_DP3[10,1]-0,001
G0 Z500
EndLoop
Leider hat die Steuerung mir ein anderes Werkzeug korrigiert und zwar beim ersten Mal um -0,01mm und danach um -0,001.
Hab einen Dauerlauf mit Loop programmiert um zu sehen was passiert.
Was hab ich übersehen?
Programm sah so aus:
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
($TC_DP3[10,1] = $TC_DP3[10,1]-0,001
G0 Z500
EndLoop
--------------------
Stefan Liehr
http://rud-steuerungstechnik.de/de/
http://rud-steuerungstechnik.de/de/
21.10.2025, 09:42 Uhr
Moderator-RuD-St...
Level 1 = Community-Lehrling

Gruppe: Mitglied
Mitglied seit: 10.07.2024
Beiträge: 17
Mitglied seit: 10.07.2024
Beiträge: 17
Hallo,
ich habe das mal so programmiert,
verhält sich wie es soll.
LOOP
T="ROUGHING_80A"
D1
R10=$P_TOOLNO
R11=$P_TOOL
R12=$TC_DP3[1,1]
Stopre
MSG("T-Nr = "<<R10<<" T-Name = "<<R11<<" Länge_X= "<<R12)
stopre
m0
stopre
$TC_DP3[1,1] = $TC_DP3[1,1]-0.005
D1
R12=$TC_DP3[1,1]
stopre
MSG("T-Nr = "<<R10<<" T-Name = "<<R11<<" Länge_X= "<<R12)
M0
ENDLOOP
m30
ich habe das mal so programmiert,
verhält sich wie es soll.
LOOP
T="ROUGHING_80A"
D1
R10=$P_TOOLNO
R11=$P_TOOL
R12=$TC_DP3[1,1]
Stopre
MSG("T-Nr = "<<R10<<" T-Name = "<<R11<<" Länge_X= "<<R12)
stopre
m0
stopre
$TC_DP3[1,1] = $TC_DP3[1,1]-0.005
D1
R12=$TC_DP3[1,1]
stopre
MSG("T-Nr = "<<R10<<" T-Name = "<<R11<<" Länge_X= "<<R12)
M0
ENDLOOP
m30
--------------------
Stefan Liehr
http://rud-steuerungstechnik.de/de/
http://rud-steuerungstechnik.de/de/
22.10.2025, 06:24 UhrHallo,
ich habe das mal so programmiert,
verhält sich wie es soll.
LOOP
T="ROUGHING_80A"
D1
R10=$P_TOOLNO
R11=$P_TOOL
R12=$TC_DP3[1,1]
Stopre
MSG("T-Nr = "<<R10<<" T-Name = "<<R11<<" Länge_X= "<<R12)
stopre
m0
stopre
$TC_DP3[1,1] = $TC_DP3[1,1]-0.005
D1
R12=$TC_DP3[1,1]
stopre
MSG("T-Nr = "<<R10<<" T-Name = "<<R11<<" Länge_X= "<<R12)
M0
ENDLOOP
m30
ich habe das mal so programmiert,
verhält sich wie es soll.
LOOP
T="ROUGHING_80A"
D1
R10=$P_TOOLNO
R11=$P_TOOL
R12=$TC_DP3[1,1]
Stopre
MSG("T-Nr = "<<R10<<" T-Name = "<<R11<<" Länge_X= "<<R12)
stopre
m0
stopre
$TC_DP3[1,1] = $TC_DP3[1,1]-0.005
D1
R12=$TC_DP3[1,1]
stopre
MSG("T-Nr = "<<R10<<" T-Name = "<<R11<<" Länge_X= "<<R12)
M0
ENDLOOP
m30
Danke für deine Antwort.
Sehe ich das richtig das du die R-Parameter nur für die Programierbaren Meldungen (MSG) angelegt hast?
Ich hab ein bestehendes Programm und möchte nur meine automatische Korrektur einbauen, ohne programierten Halt (M0 ) und ohne MSG-Meldungen.
LG
22.10.2025, 10:34 Uhr
Moderator-RuD-St...
Level 1 = Community-Lehrling

Gruppe: Mitglied
Mitglied seit: 10.07.2024
Beiträge: 17
Mitglied seit: 10.07.2024
Beiträge: 17
Hi
ich habe die R-Parameter angelegt, damit ich eine Kontrollstruktur hinein bekommen. Somit ist überprüfbar, wann sich die Steuerung, wie verhält. So kannst du prüfen, ob die Steuerung das macht was du erwartest. Danach kannst du die MSG geschichte wieder löschen.
Liebe Grüße
ich habe die R-Parameter angelegt, damit ich eine Kontrollstruktur hinein bekommen. Somit ist überprüfbar, wann sich die Steuerung, wie verhält. So kannst du prüfen, ob die Steuerung das macht was du erwartest. Danach kannst du die MSG geschichte wieder löschen.
Liebe Grüße
--------------------
Stefan Liehr
http://rud-steuerungstechnik.de/de/
http://rud-steuerungstechnik.de/de/
22.10.2025, 11:12 UhrHabe das heute Probiert mit (Testwerkzeug "T10" --- $TC_DP3[10,1] = $TC_DP3[10,1]-0,001.
Leider hat die Steuerung mir ein anderes Werkzeug korrigiert und zwar beim ersten Mal um -0,01mm und danach um -0,001.
Hab einen Dauerlauf mit Loop programmiert um zu sehen was passiert.
Was hab ich übersehen?
Programm sah so aus:
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
($TC_DP3[10,1] = $TC_DP3[10,1]-0,001
G0 Z500
EndLoop
Leider hat die Steuerung mir ein anderes Werkzeug korrigiert und zwar beim ersten Mal um -0,01mm und danach um -0,001.
Hab einen Dauerlauf mit Loop programmiert um zu sehen was passiert.
Was hab ich übersehen?
Programm sah so aus:
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
($TC_DP3[10,1] = $TC_DP3[10,1]-0,001
G0 Z500
EndLoop
Zur Erklärung.
Die Maschine hat alles richtig gemacht und hat wie von dir gewünscht das Werkzeug mit der internen Nummer 10 korrigiert.
Du Rufst die Werkzeug mit dem Namen auf. Also T10 ist der Name und keine Nummer.
Siemens hinterlegt zu diesem Namen eine interne Nummer.
Deswegen kannst du das Werkzeug T10 auch mehrmals anlegen (Schwesterwerkzeuge) aber alle haben intern eine eigene Nummer.
Man sollte nie bei so einer Berechnung wie du sie machen möchtest mit festen Nummern arbeiten.
Im Fall das du das Werkzeug T10 einmal löscht und später neu anlegst bekommt es eine andere interne Nummer und dein Befehl geht wieder auf irgendein Werkzeug.
Darum hatte ich es ja indirekt vorgeschlagen.
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,005
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,001
G0 Z500
EndLoop
Wenn dein Werkzeug aktiv ist steht im $P_TOOLNO die Interne Werkzeugnummer des aktiven Werkzeug. Und im $P_TOOL die aktive D-Nummer.
23.10.2025, 18:45 UhrZur Erklärung.
Die Maschine hat alles richtig gemacht und hat wie von dir gewünscht das Werkzeug mit der internen Nummer 10 korrigiert.
Du Rufst die Werkzeug mit dem Namen auf. Also T10 ist der Name und keine Nummer.
Siemens hinterlegt zu diesem Namen eine interne Nummer.
Deswegen kannst du das Werkzeug T10 auch mehrmals anlegen (Schwesterwerkzeuge) aber alle haben intern eine eigene Nummer.
Man sollte nie bei so einer Berechnung wie du sie machen möchtest mit festen Nummern arbeiten.
Im Fall das du das Werkzeug T10 einmal löscht und später neu anlegst bekommt es eine andere interne Nummer und dein Befehl geht wieder auf irgendein Werkzeug.
Darum hatte ich es ja indirekt vorgeschlagen.
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,005
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,001
G0 Z500
EndLoop
Wenn dein Werkzeug aktiv ist steht im $P_TOOLNO die Interne Werkzeugnummer des aktiven Werkzeug. Und im $P_TOOL die aktive D-Nummer.
Die Maschine hat alles richtig gemacht und hat wie von dir gewünscht das Werkzeug mit der internen Nummer 10 korrigiert.
Du Rufst die Werkzeug mit dem Namen auf. Also T10 ist der Name und keine Nummer.
Siemens hinterlegt zu diesem Namen eine interne Nummer.
Deswegen kannst du das Werkzeug T10 auch mehrmals anlegen (Schwesterwerkzeuge) aber alle haben intern eine eigene Nummer.
Man sollte nie bei so einer Berechnung wie du sie machen möchtest mit festen Nummern arbeiten.
Im Fall das du das Werkzeug T10 einmal löscht und später neu anlegst bekommt es eine andere interne Nummer und dein Befehl geht wieder auf irgendein Werkzeug.
Darum hatte ich es ja indirekt vorgeschlagen.
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,005
G54
Loop
WZW ("T10")
G0 X300 B0
G0 Z550
$TC_DP3[$P_TOOLNO,$P_TOOL] = $TC_DP3[$P_TOOLNO,$P_TOOL]-0,001
G0 Z500
EndLoop
Wenn dein Werkzeug aktiv ist steht im $P_TOOLNO die Interne Werkzeugnummer des aktiven Werkzeug. Und im $P_TOOL die aktive D-Nummer.
Vielen Dank für die Hilfe, ich werde es so ausprobieren.
Ich hab mit diesen Variablen noch kaum erfahrung.
LG
01.11.2025, 18:04 Uhr
leider bekomme ich die fehlermeldung: Das "$P_TOOLNO" nicht existiert, also als würde die Variable nichtssagend sein
03.11.2025, 13:48 Uhr
Mhh...
Die Variable sollte in der 840D auf jeden fall vorhanden sein...
Von wann ist die Maschine? Und welchen Softwarestand hat sie?
Die Variable sollte in der 840D auf jeden fall vorhanden sein...
Von wann ist die Maschine? Und welchen Softwarestand hat sie?
03.11.2025, 15:14 UhrMhh...
Die Variable sollte in der 840D auf jeden fall vorhanden sein...
Von wann ist die Maschine? Und welchen Softwarestand hat sie?
Die Variable sollte in der 840D auf jeden fall vorhanden sein...
Von wann ist die Maschine? Und welchen Softwarestand hat sie?
Puh beim Softwarestand bin ich überfragt. Wo kann ich den nachschauen? Baujahr ist 2022
Hier noch als Anhang die Fehlermeldung als Bild
Ich verstehe auch nicht warum das "P" in de Fehlermeldung fehlt ($P_TOOLNO")
Der Beitrag wurde von Mane216 bearbeitet: 03.11.2025, 15:22 Uhr
Angehängte Datei(en)
20251103_053951.jpg ( 363.16KB )
Anzahl der Downloads: 14
20251103_053951.jpg ( 363.16KB )
Anzahl der Downloads: 12
20251103_053951.jpg ( 363.16KB )
Anzahl der Downloads: 14
20251103_053951.jpg ( 363.16KB )
Anzahl der Downloads: 12
03.11.2025, 17:21 Uhr
Bei dem BJ. Ist die Variable definitiv vorhanden....
Hast du das Programm extern geschrieben?
Versuche die Variable zu löschen und neu zu schreiben. Evtl. sogar den ganzen Satz.
Schicke auch mal das Programm hier rein.
Hast du das Programm extern geschrieben?
Versuche die Variable zu löschen und neu zu schreiben. Evtl. sogar den ganzen Satz.
Schicke auch mal das Programm hier rein.
03.11.2025, 17:57 Uhr
Gibt es in deinem Programm vielleicht mehrere Stellen, an denen diese Variable verwendet wird, und du schaust dir nur die Stelle an, wo der Name richtig geschrieben ist?
Das ist nach meiner Erfahrung die einfachste Erklärung für einen solchen Fehler. Suche mal in deinem Editor nach dem falschen Variablenname.
Das ist nach meiner Erfahrung die einfachste Erklärung für einen solchen Fehler. Suche mal in deinem Editor nach dem falschen Variablenname.
04.11.2025, 15:01 Uhr
Habe heute die Zeile mit der Variable nochmal gelöscht und wieder 1:1 so hingeschrieben.
Jetzt funktioniert es einwandfrei.
Vielen Danke für die Hilfe
Jetzt funktioniert es einwandfrei.
Vielen Danke für die Hilfe
04.11.2025, 15:40 Uhr
Danke für die Rückmeldung. Es ist ja gut, dass es jetzt funktioniert, aber die Sache mit dem fehlenden Buchstaben ist doch schon recht mysteriös.
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder:



