Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

interne T-Nummer ausgeben

Beitrag 01.12.2016, 14:22 Uhr
jiorgos
jiorgos
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 22.03.2007
Beiträge: 5
Hallo,
ich möchte die interne T-Nummer auslesen und auf einen Parameter setzen.
Die interne T-Nummer wird i.d.R. von NCK vergeben und ist mir daher nicht bekannt.

Dazu habe ich folgendes geschrieben:
T1 D1
R101=$P_TOOLNO
R102=$P_TOOL
Hier wird dann im Parameter R101 die Interne Werkzeugnummer geschrieben und im Parameter R102 der Werkzeugspeicher. Bei dieser Vorgehensweise wird aber das Werkzeug vorher eingewechselt.

Ich möchte aber die Interne Werkzeugnummer auslesen ohne dabei das Werkzeug vorher in Arbeitsposition zu bringen. Gibt es da eine Möglichkeit?

Ich habe mir gedacht, dass ich die Interne Werkzeugnummer über den Werkzeugnamen erhalte.
Aber ich hab keine Ahnung mit welchem Befehl.
Hat irgendjemand eine Idee?

Was möchte ich damit erreichen?
Ich möchte alle Werkzeugdaten von allen Werkzeugen bei jedem Programmstart auslesen.
Dazu muss ich aber die Interne Werkzeugnummer wissen, ohne die Werkzeuge einzuschwenken.
z.B. mit R200=$TC_DP3[R101,R102] usw.

Bin für jede Hilfe Dankbar.
   
Beitrag 01.12.2016, 15:48 Uhr
tralano
tralano
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 03.04.2003
Beiträge: 117
Hallo jiorgos,
ich hatte vor kurzem sowas ähnliches geschrieben.
Vielleicht hilft dir das weiter. Es funktioniert allerdings nur mit der Siemens-Werkzeugverwaltung.
Interessant für Dich Zeile 136 bis Zeile 158

CODE
%_N_ZEIGE_WKZ_MPF
;$PATH=/_N_WKS_DIR/_N_TOOLS_WPD
   N100; ***************************************************
   N101 DEF STRING[4] _PRAE
   N102 DEF STRING[5] _POST
   N103 DEF REAL _WKZLANG, _WKZRAD
   N104 DEF INT ERROR
   N105;SONDERZEICHEN DEFINIEREN
   N106 DEF CHAR HK=34;"
   N107 DEF CHAR SKL=60;<
   N108 DEF CHAR SKR=62;>
   N109;EINIGE PARAMETER VORBELEGEN
   N110 DEF INT _MAGNUM=1;MAGAZINNUMMER
   N111 DEF INT _MAXWKZ=0
   N112 DEF INT _COUNT=0
   N113 DEF INT _TNUMM=0
   N114 DEF STRING[20] _WKZNAME="?"
   N115 DEF STRING[20] _ZEILE0="R100=2;VERWEILZEIT"
   N116 DEF STRING[80] _ZEILE1=""
   N117 DEF STRING[80] _ZEILE2=""
   N118 DEF STRING[10] _ZEILE3="STOPRE"
   N119 DEF STRING[5]  _ZEILE4="/M0"
   N120 DEF STRING[12] _ZEILE5="G4 F=R100"
   N121 DEF STRING[20] FILENAME="_N_RUNME"
   N122;DATEI IM HAUPTPROGRAMM-ORDNER ANLEGEN
   N123 DEF STRING[80] Z_DIR
   N124 Z_DIR=<<$P_PATH[0]
   N125;TEXT VOR WKZ-NUMMER ZUSAMMENSETZEN -- T="
   N126 _PRAE="T="<<HK
   N127;TEXT NACH WKZ-NUMMER ZUSAMMENSETZEN -- " M6
   N128 _POST=HK<<" M6"
  
   N129 IF ISFILE(Z_DIR<<FILENAME);VORHANDENR DATEI LOESCHEN
   N130   DELETE(ERROR,Z_DIR<<FILENAME)
   N131 ENDIF
  
   N132 WRITE(ERROR,Z_DIR<<FILENAME,_ZEILE0);ERSTE ZEILE SCHREIBEN
   N133 REPEAT _SCHREIBSTART _SCHREIBEND;FEHLERPRUEFUNG
   N134; GESAMTANZAHL DER DEFINIERTEN MAGAZINPLAETZE IM MAGAZIN *1*
   N135 _MAXWKZ=$TC_MAP7[$P_MAG[_MAGNUM]]
  
   N136;DAS MAGAZIN NACH WERKZEUGEN ABSUCHEN
   N137 FOR _COUNT=1 TO _MAXWKZ
   N138;FUER WKZ IM MAGAZIN DIE INTERNE NUMMER LESEN
   N139   _TNUMM=$TC_MPP6[_MAGNUM,_COUNT]
   N140;WENN DIE NUMMER NICHT "0", DANN DIE WKZ-DATEN LESEN
   N141   IF _TNUMM <> 0
   N142     _WKZNAME=$TC_TP2[_TNUMM]
   N143     _WKZLANG=$TC_DP3[_TNUMM,1]
   N144     _WKZRAD=$TC_DP6[_TNUMM,1]
   N145     _ZEILE1=_PRAE<<_WKZNAME<<_POST
   N146     _ZEILE2="MSG("<<SKL<<SKL<<HK<<"WERKZEUG NUM.="<<_TNUMM<<" NAME="<<_WKZNAME<<" LAENGE="<<_WKZLANG<<" RADIUS="<<_WKZRAD<<HK<<")"
   N147     WRITE(ERROR,Z_DIR<<FILENAME,_ZEILE1);WERKZEUGWECHSEL SCHREIBEN
   N148     REPEAT _SCHREIBSTART _SCHREIBEND;FEHLERPRUEFUNG
   N149     WRITE(ERROR,Z_DIR<<FILENAME,_ZEILE2);WERKZEUGDATEN ALS MAESSAGE SCHREIBEN
   N150     REPEAT _SCHREIBSTART _SCHREIBEND;FEHLERPRUEFUNG
   N151     WRITE(ERROR,Z_DIR<<FILENAME,_ZEILE3);ZEILE 3 SCHREIBEN
   N152     REPEAT _SCHREIBSTART _SCHREIBEND;FEHLERPRUEFUNG
   N153     WRITE(ERROR,Z_DIR<<FILENAME,_ZEILE4);ZEILE 4 SCHREIBEN
   N154     REPEAT _SCHREIBSTART _SCHREIBEND;FEHLERPRUEFUNG
   N155     WRITE(ERROR,Z_DIR<<FILENAME,_ZEILE5);ZEILE 5 SCHREIBEN
   N156     REPEAT _SCHREIBSTART _SCHREIBEND;FEHLERPRUEFUNG
   N157   ENDIF
   N158 ENDFOR
   N159;DAS PROGRAMMENDE SCHREIBEN
   N160 WRITE(ERROR,Z_DIR<<FILENAME,"M30")
   N161 M30
  
   N162 _SCHREIBSTART:
   N163 IF ERROR <> 0
   N164   CASE ERROR OF 1 GOTOF _EINS 2 GOTOF _ZWEI 3 GOTOF _DREI 4 GOTOF _VIER 10 GOTOF _ZEHN 11 GOTOF _ELF 12 GOTOF _ZWOELF 13 GOTOF _DREIZ 20 GOTOF _ZWANZIG
   N165   _EINS:
   N166     MSG("Pfad nicht erlaubt")
   N167     GOTOF _FERTIG
   N168   _ZWEI:
   N169     MSG("Pfad nicht gefunden")
   N170     GOTOF _FERTIG
   N171   _DREI:
   N172     MSG("Datei nicht gefunden")
   N173     GOTOF _FERTIG
   N174   _VIER:
   N175     MSG("falscher Dateityp")
   N176     GOTOF _FERTIG
   N177   _ZEHN:
   N178     MSG("Datei ist voll")
   N179     GOTOF _FERTIG
   N180   _ELF:
   N181     MSG("Datei wird benutzt")
   N182     GOTOF _FERTIG
   N183   _ZWOELF:
   N184     MSG("keine Ressourcen frei")
   N185     GOTOF _FERTIG
   N186   _DREIZ:
   N187     MSG("keine Zugriffsrechte")
   N188     GOTOF _FERTIG
   N189   _ZWANZIG:
   N190     MSG("sonstiger Fehler")
   N191     GOTOF _FERTIG
   N192   _FERTIG:
   N193   STOPRE
   N194   M0
   N195   MSG()
   N196 ENDIF
   N197 _SCHREIBEND:
   N198 M30


Das Programm ackert alle Magazinplätze durch und schreibt ein Programm welches für jedes existierende Werkzeug einen Werkzeugwechsel und eine Message mit den Werkzeugdaten enthält.
z.B::
%_N_RUNME_MPF
;$PATH=/_N_WKS_DIR/_N_TOOLS_WPD
R100=2 ;VERWEILZEIT
T="1" M6
MSG(<<"WERKZEUG NUM.=1 NAME=1 LAENGE=127.015 RADIUS=2.987")
STOPRE
/M0
G4 F=R100
T="2" M6
MSG(<<"WERKZEUG NUM.=70 NAME=2 LAENGE=86.276 RADIUS=2")
STOPRE
/M0
G4 F=R100

..... usw.
Gruß
Arnold

Der Beitrag wurde von tralano bearbeitet: 01.12.2016, 15:53 Uhr
   
Beitrag 01.12.2016, 18:45 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (jiorgos @ 01.12.2016, 15:22 Uhr) *
Hallo,
ich möchte die interne T-Nummer auslesen und auf einen Parameter setzen.
Die interne T-Nummer wird i.d.R. von NCK vergeben und ist mir daher nicht bekannt.

Dazu habe ich folgendes geschrieben:
T1 D1
R101=$P_TOOLNO
R102=$P_TOOL
Hier wird dann im Parameter R101 die Interne Werkzeugnummer geschrieben und im Parameter R102 der Werkzeugspeicher. Bei dieser Vorgehensweise wird aber das Werkzeug vorher eingewechselt.

Ich möchte aber die Interne Werkzeugnummer auslesen ohne dabei das Werkzeug vorher in Arbeitsposition zu bringen. Gibt es da eine Möglichkeit?

Ich habe mir gedacht, dass ich die Interne Werkzeugnummer über den Werkzeugnamen erhalte.
Aber ich hab keine Ahnung mit welchem Befehl.
Hat irgendjemand eine Idee?

Was möchte ich damit erreichen?
Ich möchte alle Werkzeugdaten von allen Werkzeugen bei jedem Programmstart auslesen.
Dazu muss ich aber die Interne Werkzeugnummer wissen, ohne die Werkzeuge einzuschwenken.
z.B. mit R200=$TC_DP3[R101,R102] usw.

Bin für jede Hilfe Dankbar.


die interne nummer dient nur der identifikations willen.
daher ist es ein einfacher zähler.
wenn du alle daten lesen willst dann zähle einfach von 1 auf hoch.
aber was willst genau damit erreichen? ausser jetzt nc zu verlangsamen.?


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 02.12.2016, 08:06 Uhr
jiorgos
jiorgos
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 22.03.2007
Beiträge: 5
QUOTE (Hexogen @ 01.12.2016, 18:45 Uhr) *
dann zähle einfach von 1 auf hoch.


Das ist eben nicht so. Interne Nummern sind zwar nur einmal vergeben, aber wild durcheinander.

QUOTE (Hexogen @ 01.12.2016, 18:45 Uhr) *
aber was willst genau damit erreichen? ausser jetzt nc zu verlangsamen.?


Ich will einen Abgleich starten, Sollwerte, tatsächlich eingegebene Werte. Da sind mir die paar Millisekunden egal.

QUOTE (tralano @ 01.12.2016, 15:48 Uhr) *
ich hatte vor kurzem sowas ähnliches geschrieben.
Vielleicht hilft dir das weiter. Es funktioniert allerdings nur mit der Siemens-Werkzeugverwaltung.
Interessant für Dich Zeile 136 bis Zeile 158


Hallo Arnold,
werde ich ausprobieren, ich sag dir dann ob es geklappt hat. Danke
   
Beitrag 02.12.2016, 12:25 Uhr
Guest_guest_*
Themenstarter
Gast


Was genau für einen Abgleich willst du starten?
Welche Werkzeuge willst du überprüfen? Alle angelegten (im Magazin + im Werkzeugschrank)?
Welche Daten willst du abgleichen? Wie willst du das machen? Wozu das Ganze?
Wie willst du die Sollwerte eingeben? CSV? R-Parameter?
Wie soll die Zuordnung der Daten an das TOOL geschehen?

Eine fertige Lösung ist zu komplex für das Forum.
Wenn du an einer fertigen Lösung interessiert bist, bitte eine PN an mich, mit exakter Beschreibung ("Lastenheft") der Aufgabe.
Angebot kommt so schnell wie möglich.
   
Beitrag 02.12.2016, 17:14 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (guest @ 02.12.2016, 13:25 Uhr) *
... Wozu das Ganze?


genau ... das blick ich jetzt immer noch nicht.

Einen abgleich würde ich direkt vor dem Ablauf machen.
Sprich Werkzeug wird eingewechselt und vor dem ersten Span prüft man die Daten.
Die Sollwerte müssen ja auch irgend wo her kommen.


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 02.12.2016, 17:16 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (jiorgos @ 02.12.2016, 09:06 Uhr) *
Das ist eben nicht so. Interne Nummern sind zwar nur einmal vergeben, aber wild durcheinander.


ja sobald du ein Werkzeug in Schrank gepackt hast ist diese wieder frei.
Aber wird von der NC nicht wieder verwendet.
Die addiert einfach nur hoch.
Du kannst sie auch manuell zuweisen, mit ein paar tricks.


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 02.12.2016, 19:58 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Hexogen @ 02.12.2016, 17:16 Uhr) *
ja sobald du ein Werkzeug in Schrank gepackt hast ist diese wieder frei.
Aber wird von der NC nicht wieder verwendet.
Die addiert einfach nur hoch.
Du kannst sie auch manuell zuweisen, mit ein paar tricks.


Die T-Nummer bleibt auch im Werkzeugschrank erhalten, weil alle anderen TOOL-Daten daran hängen.
Die T-Nummer kann erst wieder neu vergeben werden, wenn das Tool vollständig gelöscht ist. Ein neues Werkzeug wird immer mit der geringsten, verfügbaren T-Nummer angelegt.
   
Beitrag 02.12.2016, 21:29 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (guest @ 02.12.2016, 20:58 Uhr) *
Die T-Nummer bleibt auch im Werkzeugschrank erhalten, weil alle anderen TOOL-Daten daran hängen.
Die T-Nummer kann erst wieder neu vergeben werden, wenn das Tool vollständig gelöscht ist. Ein neues Werkzeug wird immer mit der geringsten, verfügbaren T-Nummer angelegt.


interessant war es, das ich so wieder t nummern neu sortieren konnte auf der advanced.
ausgelagert wieder eingelagert waren die auf der eben dieser niedrigsten t nummer.
würde mich grad auch interessieren was da genau schief ging


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 02.12.2016, 22:57 Uhr
Guest_guest_*
Themenstarter
Gast


QUOTE (Hexogen @ 02.12.2016, 21:29 Uhr) *
interessant war es, das ich so wieder t nummern neu sortieren konnte auf der advanced.
ausgelagert wieder eingelagert waren die auf der eben dieser niedrigsten t nummer.
würde mich grad auch interessieren was da genau schief ging


Bitte bei aktiver Werkzeugverwaltung, nicht Tool-Nummer und Tool-Name verwechseln ... wink.gif
Die T-Nummer ist eine Indexnummer, die nur einmal im System vorkommen darf.
Das Magazinplatz-Datum $TC_MPP6[Magazinnummer,Platznummer] enthält genau diese T-Nummer.
T="1" ist ein möglicher Name (String), der dieser T-Nummer zugeordnet ist. ($TC_TP2[T-Nummer]) Hier sollten eigentlich "sprechende Namen" wie z.B. "SPIBO_8" verwendet werden.
   
Beitrag 06.12.2016, 13:42 Uhr
jiorgos
jiorgos
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 22.03.2007
Beiträge: 5
QUOTE (Hexogen @ 02.12.2016, 17:14 Uhr) *
Einen abgleich würde ich direkt vor dem Ablauf machen.
Sprich Werkzeug wird eingewechselt und vor dem ersten Span prüft man die Daten.
Die Sollwerte müssen ja auch irgend wo her kommen.


Wird der Abgleich der Soll-Ist Werte erst nach dem einwechseln gemacht, führt das vielleicht dazu, das die Maschine, bei fehlerhaft eingegebenen Maßen stehen bleibt, nachdem schon 20 oder 25 Werkzeuge durchgelaufen sind, dann wäre das Werkstück nicht fertig bearbeitet. Ein Satzvorlauf bei dieser Maschine ist etwas kompliziert. Somit muss der Abgleich aller Werkzeuge schon beim Start erfolgen.

Ich habe jetzt eine Lösung gefunden mit der ich leben kann und die mein Problem löst.

Mit der GETT-Funktion, kann ich die Interne T-Nr. auslesen. z.B. R-Parameter=GETT(”WZ”,DUPLO_NR)
Da diese Nummer beim Neustart der Maschine eine andere sein kann, muss ich diese jedes Mal auslesen.

Danke euch allen für die Unterstützung.

Der Beitrag wurde von jiorgos bearbeitet: 06.12.2016, 13:43 Uhr
   
Beitrag 06.12.2016, 15:03 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (guest @ 02.12.2016, 23:57 Uhr) *
Bitte bei aktiver Werkzeugverwaltung, nicht Tool-Nummer und Tool-Name verwechseln ... wink.gif


Genau die Nummer meine ich wink.gif
Die interne Nummer wurde beim auslagern in schrank freigegeben.
sprich interne Nummer 1 ausgelagert.
interne Nummer 177 ausgelagert.
Nummer 177 wieder eingelagert aus schrank wurde die interne Nummer 1 zugewiesen.


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 06.12.2016, 15:04 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (jiorgos @ 06.12.2016, 14:42 Uhr) *
Wird der Abgleich der Soll-Ist Werte erst nach dem einwechseln gemacht, führt das vielleicht dazu, das die Maschine, bei fehlerhaft eingegebenen Maßen stehen bleibt, nachdem schon 20 oder 25 Werkzeuge durchgelaufen sind, dann wäre das Werkstück nicht fertig bearbeitet. Ein Satzvorlauf bei dieser Maschine ist etwas kompliziert. Somit muss der Abgleich aller Werkzeuge schon beim Start erfolgen.


Blöde Idee.

Angenommen einer ändert die Werte, aus irgend einem Grund?

Warum funktioniert Satzvorlauf nicht?

Was machst Du wenn ein Werkzeug bricht? Teil wegwerfen? oder wie steigst Du ins Programm ein?

Der Beitrag wurde von Hexogen bearbeitet: 06.12.2016, 15:07 Uhr


--------------------
Schaut doch mal rein:
Mein Youtube Kanal


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 07.12.2016, 08:09 Uhr
jiorgos
jiorgos
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 22.03.2007
Beiträge: 5
QUOTE (Hexogen @ 06.12.2016, 15:04 Uhr) *
Angenommen einer ändert die Werte, aus irgend einem Grund?


Nach dem Werkzeugwechsel ist der Soll -Ist Abgleich schon drin, das war ja nicht das Problem.

QUOTE (Hexogen @ 06.12.2016, 15:04 Uhr) *
Warum funktioniert Satzvorlauf nicht?


Ich sagte nicht, dass der Satzvorlauf nicht funktioniert. Ich sagte: „Ein Satzvorlauf bei dieser Maschine ist etwas kompliziert.“

QUOTE (Hexogen @ 06.12.2016, 15:04 Uhr) *
Was machst Du wenn ein Werkzeug bricht? Teil wegwerfen? oder wie steigst Du ins Programm ein?


Wenn ein Werkzeug bricht, Nacharbeit. Aber nicht mit Satzvorlauf, dann mit MDI-Makros im jeweiligen Kanal.

Aber wie gesagt habe ich jetzt eine Lösung.
Danke

Der Beitrag wurde von jiorgos bearbeitet: 07.12.2016, 08:10 Uhr
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: