R&D Steuerungstechnik

Automatische Zustellung im Programm

Beitrag 17.10.2025, 13:18 Uhr
Mane216
Level 1 = Community-Lehrling
*
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.
   
Beitrag 17.10.2025, 15:59 Uhr
LucyLou
Level 5 = Community-Ingenieur
*****
Ja das geht.



Je nach Maschine und Steuerung gibt es da verschiedene möglichkeiten


--------------------
mfg Peter

HAAS CompactMill 1
HAAS SuperMiniMill 2
HAAS ST10Y mit Stangenlader
   
Beitrag 17.10.2025, 19:23 Uhr
Mane216
Level 1 = Community-Lehrling
*
ZITAT(LucyLou @ 17.10.2025, 14:59 Uhr) *
Ja das geht.



Je nach Maschine und Steuerung gibt es da verschiedene möglichkeiten



Ich habe eine Siemens 840d Steuerung und die Maschine ist eine Pittler

Der Beitrag wurde von Mane216 bearbeitet: 17.10.2025, 19:24 Uhr
   
Beitrag 19.10.2025, 15:31 Uhr
Verti
Level 1 = Community-Lehrling
*
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
   
Beitrag 19.10.2025, 19:31 Uhr
CNCFr
Level 7 = Community-Professor
*******
Das kann man so machen. Damit die Änderung wirksam wird, muss aber anschließend das Werkzeug neu angewählt werden.
   
Beitrag 19.10.2025, 20:04 Uhr
Mane216
Level 1 = Community-Lehrling
*
ZITAT(Verti @ 19.10.2025, 14: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


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.
   
Beitrag 20.10.2025, 06:19 Uhr
Tobe87
Level 3 = Community-Techniker
***
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
   
Beitrag 20.10.2025, 07:41 Uhr
CNCFr
Level 7 = Community-Professor
*******
ZITAT(Tobe87 @ 20.10.2025, 07:19 Uhr) *
Das 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.
   
Beitrag 20.10.2025, 08:35 Uhr
Tobe87
Level 3 = Community-Techniker
***
ZITAT(CNCFr @ 20.10.2025, 08:41 Uhr) *
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.


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.
   
Beitrag 21.10.2025, 06:42 Uhr
Mane216
Level 1 = Community-Lehrling
*
ZITAT(Tobe87 @ 20.10.2025, 05: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


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
   
Beitrag 21.10.2025, 06:43 Uhr
Mane216
Level 1 = Community-Lehrling
*
ZITAT(CNCFr @ 20.10.2025, 06:41 Uhr) *
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.


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
   
Beitrag 21.10.2025, 09:40 Uhr
Moderator-RuD-St...
Level 1 = Community-Lehrling
*
ZITAT(Mane216 @ 21.10.2025, 06:43 Uhr) *
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



--------------------
   
Beitrag 21.10.2025, 09:42 Uhr
Moderator-RuD-St...
Level 1 = Community-Lehrling
*
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


--------------------
   
Beitrag 22.10.2025, 06:24 Uhr
Mane216
Level 1 = Community-Lehrling
*
ZITAT(Moderator-RuD-Steuerungstechnik @ 21.10.2025, 08:42 Uhr) *
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


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
   
Beitrag 22.10.2025, 10:34 Uhr
Moderator-RuD-St...
Level 1 = Community-Lehrling
*
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


--------------------
   
Beitrag 22.10.2025, 11:12 Uhr
Tobe87
Level 3 = Community-Techniker
***
ZITAT(Mane216 @ 21.10.2025, 07:42 Uhr) *
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


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.

   
Beitrag 23.10.2025, 18:45 Uhr
Mane216
Level 1 = Community-Lehrling
*
ZITAT(Tobe87 @ 22.10.2025, 10:12 Uhr) *
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.


Vielen Dank für die Hilfe, ich werde es so ausprobieren.
Ich hab mit diesen Variablen noch kaum erfahrung.
LG
   
Beitrag 01.11.2025, 18:04 Uhr
Mane216
Level 1 = Community-Lehrling
*
leider bekomme ich die fehlermeldung: Das "$P_TOOLNO" nicht existiert, also als würde die Variable nichtssagend sein
   
Beitrag 03.11.2025, 13:48 Uhr
Tobe87
Level 3 = Community-Techniker
***
Mhh...
Die Variable sollte in der 840D auf jeden fall vorhanden sein...
Von wann ist die Maschine? Und welchen Softwarestand hat sie?
   
Beitrag 03.11.2025, 15:14 Uhr
Mane216
Level 1 = Community-Lehrling
*
ZITAT(Tobe87 @ 03.11.2025, 12:48 Uhr) *
Mhh...
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)
Angehängte Datei  20251103_053951.jpg ( 363.16KB ) Anzahl der Downloads: 14
Angehängte Datei  20251103_053951.jpg ( 363.16KB ) Anzahl der Downloads: 12
 
   
Beitrag 03.11.2025, 17:21 Uhr
Tobe87
Level 3 = Community-Techniker
***
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.
   
Beitrag 03.11.2025, 17:57 Uhr
CNCFr
Level 7 = Community-Professor
*******
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.
   
Beitrag 04.11.2025, 15:01 Uhr
Mane216
Level 1 = Community-Lehrling
*
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
   
Beitrag 04.11.2025, 15:40 Uhr
CNCFr
Level 7 = Community-Professor
*******
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: