DMG MORI
Global One - Integration. Innovation. Quality.
Automatisches Werkzeuge vermessen, DMU75 monoBlock
26.01.2026, 10:58 Uhr
Hallo Community
Ich arbeite an einer DMU75 monoblock 2nd. mit einer Siemens 840d (V4.95+SP02+HF02) mit BLUM-Laser (LC50 DIGILOG) und bin dabei mir eine Automation zum vermessen der Werkzeuge zu bauen. Ein Messprogramm welches alle benötigten Daten aus den Geometrieparametern des sich in der Spindel befindlichen Werkzeuges ausliest, anhand des Werkzeugtypes den richtigen Messzyklus auswählt, alle Daten an den Zyklus übergibt und das Werkzeug vermisst habe ich schon geschrieben und dieses funktioniert soweit auch sehr gut. Als nächsten Schritt wollte ich mir ein Programm ertsellen in dem die Magazinplätze ausgelesen werden und dann das Werkzeug welches sich auf Magazinplatz von X bis Y befindet in die Spindel geholt wird. Ich kann auch die T-Nummern, den Werkzeugnahmen etc. auslesen nur kann ich an meiner Maschine leider keinen Werkzeugaufruf über T-Nummern machen. Jetzt war meine Überlegung über einen/mehrere WRITE-Befehle eine .mpf Datei zu erzeugen in der dann der Werkzeugaufruf und im anschluss der Aufruf meines schon vorhandenen Messprogrammes steht. Ich hänge gerade dabei ein Anführungszeichen " in einem String zu schreiben um diesen dann in die Datei zu schreiben. Hoffe mir kann hier jemand wieterhelfen da meine versuche alle in einem Syntaxfehler endeten.
Die fertige Datei sollte so aussehen:
<String mit Werkzeugnahmen (T="Werkzeugname")>
M6
D1 ; wir arbeiten nur mit einer Schneide
CALL Messprogramm
Ich arbeite an einer DMU75 monoblock 2nd. mit einer Siemens 840d (V4.95+SP02+HF02) mit BLUM-Laser (LC50 DIGILOG) und bin dabei mir eine Automation zum vermessen der Werkzeuge zu bauen. Ein Messprogramm welches alle benötigten Daten aus den Geometrieparametern des sich in der Spindel befindlichen Werkzeuges ausliest, anhand des Werkzeugtypes den richtigen Messzyklus auswählt, alle Daten an den Zyklus übergibt und das Werkzeug vermisst habe ich schon geschrieben und dieses funktioniert soweit auch sehr gut. Als nächsten Schritt wollte ich mir ein Programm ertsellen in dem die Magazinplätze ausgelesen werden und dann das Werkzeug welches sich auf Magazinplatz von X bis Y befindet in die Spindel geholt wird. Ich kann auch die T-Nummern, den Werkzeugnahmen etc. auslesen nur kann ich an meiner Maschine leider keinen Werkzeugaufruf über T-Nummern machen. Jetzt war meine Überlegung über einen/mehrere WRITE-Befehle eine .mpf Datei zu erzeugen in der dann der Werkzeugaufruf und im anschluss der Aufruf meines schon vorhandenen Messprogrammes steht. Ich hänge gerade dabei ein Anführungszeichen " in einem String zu schreiben um diesen dann in die Datei zu schreiben. Hoffe mir kann hier jemand wieterhelfen da meine versuche alle in einem Syntaxfehler endeten.
Die fertige Datei sollte so aussehen:
<String mit Werkzeugnahmen (T="Werkzeugname")>
M6
D1 ; wir arbeiten nur mit einer Schneide
CALL Messprogramm
26.01.2026, 12:02 Uhr
Moin,
bisher hatte ich nur einmal den Fall das ich das machen musste.
Es geht bestimmt auch eleganter aber es Funktioniert.
Ich bin den Weg über einen ASCII-Zeichen gegangen.
Für deinen Fall
DEF STRING[32] DEIN_STRING
DEF CHAR DEIN_CHAR=34
DEIN_STRING="T="<< DEIN_CHAR << "Werkzeugname" << DEIN_CHAR
Gruß
Tobi
bisher hatte ich nur einmal den Fall das ich das machen musste.
Es geht bestimmt auch eleganter aber es Funktioniert.
Ich bin den Weg über einen ASCII-Zeichen gegangen.
Für deinen Fall
DEF STRING[32] DEIN_STRING
DEF CHAR DEIN_CHAR=34
DEIN_STRING="T="<< DEIN_CHAR << "Werkzeugname" << DEIN_CHAR
Gruß
Tobi
26.01.2026, 13:15 Uhr
In Programmiersprachen wird das meistens so gelöst, dass man vor das Anführungszeichen, das in dem String erscheinen soll, einen Backslash (sog. Escape-Zeichen) setzt.
Also in deinem Beispiel so:
"T=\"Werkzeugname\"" ==> sollte den String T="Werkzeugname" erzeugen.
Ob das bei der 840D auch so funktioniert, kann ich nicht sagen. Aber einen Versuch ist es wert.
Also in deinem Beispiel so:
"T=\"Werkzeugname\"" ==> sollte den String T="Werkzeugname" erzeugen.
Ob das bei der 840D auch so funktioniert, kann ich nicht sagen. Aber einen Versuch ist es wert.
26.01.2026, 13:52 UhrIn Programmiersprachen wird das meistens so gelöst, dass man vor das Anführungszeichen, das in dem String erscheinen soll, einen Backslash (sog. Escape-Zeichen) setzt.
Also in deinem Beispiel so:
"T=\"Werkzeugname\"" ==> sollte den String T="Werkzeugname" erzeugen.
Ob das bei der 840D auch so funktioniert, kann ich nicht sagen. Aber einen Versuch ist es wert.
Also in deinem Beispiel so:
"T=\"Werkzeugname\"" ==> sollte den String T="Werkzeugname" erzeugen.
Ob das bei der 840D auch so funktioniert, kann ich nicht sagen. Aber einen Versuch ist es wert.
Das war damals auch mein erster Versuch.
Ich war aber nicht in der Lage das auf der 840D umzusetzen.
Evtl. hat es an mir gelegen, ich bin mal gespannt ob da noch jemand was zu sagen kann.
Gruß
Tobi
26.01.2026, 13:55 UhrMoin,
bisher hatte ich nur einmal den Fall das ich das machen musste.
Es geht bestimmt auch eleganter aber es Funktioniert.
Ich bin den Weg über einen ASCII-Zeichen gegangen.
Für deinen Fall
DEF STRING[32] DEIN_STRING
DEF CHAR DEIN_CHAR=34
DEIN_STRING="T="<< DEIN_CHAR << "Werkzeugname" << DEIN_CHAR
Gruß
Tobi
bisher hatte ich nur einmal den Fall das ich das machen musste.
Es geht bestimmt auch eleganter aber es Funktioniert.
Ich bin den Weg über einen ASCII-Zeichen gegangen.
Für deinen Fall
DEF STRING[32] DEIN_STRING
DEF CHAR DEIN_CHAR=34
DEIN_STRING="T="<< DEIN_CHAR << "Werkzeugname" << DEIN_CHAR
Gruß
Tobi
Das hat super funktioniert Dankeschön
26.01.2026, 13:58 UhrDas war damals auch mein erster Versuch.
Ich war aber nicht in der Lage das auf der 840D umzusetzen.
Evtl. hat es an mir gelegen, ich bin mal gespannt ob da noch jemand was zu sagen kann.
Gruß
Tobi
Ich war aber nicht in der Lage das auf der 840D umzusetzen.
Evtl. hat es an mir gelegen, ich bin mal gespannt ob da noch jemand was zu sagen kann.
Gruß
Tobi
Hierbei bekomme ich leider einen Syntaxfehler.... habe auch schon versucht es über "" anstelle von \" zu lösen klappt aber leider auch nicht.
Trotzdem Danke für die schnelle Antwort
26.01.2026, 14:37 Uhr1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder:



