Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Werkzeugwechsel Protokollieren

Beitrag 09.01.2018, 16:03 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Hallo Community,
Ist es vielleicht möglich bei einer Siemens 840d sl Steuerung mit einer art Unterprogramm die Werkzeugwechsel mit Werkzeugname, Uhrzeit und Datum zu Protokollieren? Sprich die folgende Informationen in eine seperate Werkstückdatei zu schreiben?
Ich hab ein Programm mit 5 Werkzeugen (Werkzeugname T1, T2, T3, T4, T11 die jeweils eine Standzeit von 10 Teilen hat.
Ist so etwas überhaupt machbar?
   
Beitrag 09.01.2018, 17:57 Uhr
N0F3aR
N0F3aR
Level 6 = Community-Doktor
******
Gruppe: Mitglied
Mitglied seit: 05.12.2011
Beiträge: 980
Hallo,

Standzeit geht bei der Siemens in der Werkzeug Verwaltung.

Lg
   
Beitrag 10.01.2018, 09:29 Uhr
platsch
platsch
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 01.11.2017
Beiträge: 308
QUOTE (Bronko69 @ 09.01.2018, 15:03 Uhr) *
Hallo Community,
Ist es vielleicht möglich bei einer Siemens 840d sl Steuerung mit einer art Unterprogramm die Werkzeugwechsel mit Werkzeugname, Uhrzeit und Datum zu Protokollieren? Sprich die folgende Informationen in eine seperate Werkstückdatei zu schreiben?
Ich hab ein Programm mit 5 Werkzeugen (Werkzeugname T1, T2, T3, T4, T11 die jeweils eine Standzeit von 10 Teilen hat.
Ist so etwas überhaupt machbar?

Natürlich ist das machbar.
Für "Umme" wird Dir das aber niemand machen. wink.gif
   
Beitrag 10.01.2018, 15:49 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Ist mir bewusst, nichts ist umsonst wink.gif
Erhoffte mir nur ein paar Tipps oder Lösungsansätze. Leider hab ich nicht das Wissen weil ich selber nicht programmiere sondern nur mit vorgeschriebenen Programme arbeite. Ich poste mal wie ich es mir gedacht habe. Bitte habt nachsicht mit mir.
Aber wenigstens weis ich nun das es machbar ist und bin auch schon etwas weiter, glaube ich zumindest xD
Aus der Bedienungsanleitung Werkzeugverwaltung hab ich folgende befehle gefunden mit den ich Arbeiten wollte.

Laut Bedienungsanleitung bedeutet:
$TC_MOP4 ----> Reststückzahl
$TC_MOP13 ---> Stückzahl Sollwert.

Meine Idee:
T1
M6
T2
IF $TC_MOP13 == $TC_MOP4 ;;; Abfrage Soll und Rest
R500=1
ENDIF

IF $TC_MOP13>$TC_MOP4 ;;; Abfrage Soll und Rest
R500=0
ENDIF


bei R500: zeigt es mir die Interne T-Nummer des aktiven WKZ an.
Ich dachte so in etwa:
Eine Abfrage wenn beim aktuellen Werkzeug (R500) R499 gleich 1 ist, schreib mir Datum Werkzeug und Werkzeugname in eine seperate .spf Datei.


Irgendwie kann die Steuerung mit $TC_MOP13 und $TC_MOP4 nichts anfangen. Weis jemand vielleicht noch eine alternative, einen oder einen Tip? Ich wäre sehr dankbar dafür.
   
Beitrag 11.01.2018, 15:39 Uhr
platsch
platsch
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 01.11.2017
Beiträge: 308
Um die Werkzeug-Überwachungsdaten abfragen zu können, müssen auch die Tool- und Schneiden-Nummer des betreffenden Werkzeugs angegeben werden.

Frage 1: Welche Steuerungsversion (SW) hast Du?
Frage 2: Warum willst Du den Stückzahl-Sollwert $TC_MOP13[t,d] protokollieren?
Frage 3: Was willst Du tatsächlich protokollieren?
Frage 4: Besitzt die Steuerung eine aktive Werkzeugverwaltung?
Frage 5: Wenn Du eine Werkzeugverwaltung hast, Warum verwendest Du nicht "Sprechende Werkzeugnamen" wie sie beim Anlegen des Werkzeugs vorgeschlagen werden?
   
Beitrag 11.01.2018, 17:15 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
QUOTE (platsch @ 11.01.2018, 16:39 Uhr) *
Frage 5: Wenn Du eine Werkzeugverwaltung hast, Warum verwendest Du nicht "Sprechende Werkzeugnamen" wie sie beim Anlegen des Werkzeugs vorgeschlagen werden?


Hat ja mit dem Protokollieren nichts zutun.
Der Name ist nicht ausschlaggebend, sondern die Interne Nummer.

@TE

Protokollieren kannst alles, dazu gibt es einen "WRITE" befehl.
Beschreiben ist es in der Arbeitsvorbereitung unter 1.18 Datei schreiben (WRITE)

CODE
DEF INT <Fehler>
...
WRITE(<Fehler>,"<Dateiname>"/"<ExtG>","<Satz/Daten>")


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 11.01.2018, 17:43 Uhr
platsch
platsch
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 01.11.2017
Beiträge: 308
QUOTE (Hexogen @ 11.01.2018, 16:15 Uhr) *
Hat ja mit dem Protokollieren nichts zutun.
Der Name ist nicht ausschlaggebend, sondern die Interne Nummer.
...


... und genau da, bin ich etwas ins Stutzen gekommen:
QUOTE
...
Ist es vielleicht möglich bei einer Siemens 840d sl Steuerung mit einer art Unterprogramm die Werkzeugwechsel mit Werkzeugname, Uhrzeit und Datum zu Protokollieren? Sprich die folgende Informationen in eine seperate Werkstückdatei zu schreiben?
Ich hab ein Programm mit 5 Werkzeugen (Werkzeugname T1, T2, T3, T4, T11 die jeweils eine Standzeit von 10 Teilen hat.
Ist so etwas überhaupt machbar?
   
Beitrag 12.01.2018, 06:14 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
QUOTE (platsch @ 11.01.2018, 15:39 Uhr) *
Um die Werkzeug-Überwachungsdaten abfragen zu können, müssen auch die Tool- und Schneiden-Nummer des betreffenden Werkzeugs angegeben werden.

Frage 1: Welche Steuerungsversion (SW) hast Du?
Frage 2: Warum willst Du den Stückzahl-Sollwert $TC_MOP13[t,d] protokollieren?
Frage 3: Was willst Du tatsächlich protokollieren?
Frage 4: Besitzt die Steuerung eine aktive Werkzeugverwaltung?
Frage 5: Wenn Du eine Werkzeugverwaltung hast, Warum verwendest Du nicht "Sprechende Werkzeugnamen" wie sie beim Anlegen des Werkzeugs vorgeschlagen werden?


Hallo Platsch
zu Frage 1: Siemens 840d sl Version: V04.05 + SP2
zu Frage 2: Ich möchte nicht $TC_MOP protokollieren sondern nur die neu eingewechselten Werkzeuge. Ich dachte mir das ich damit eventuell
Arbeiten kann, da ich im Moment nicht weis wie die Maschine erkennt das ein neues Werkzeug eingewechselt wurde. Wollte eine
eine Soll und IST Abfrage machen.
zu Frage 3: DATUM>>UHRZEIT>>Interne T-Nummer des neu eingewechselten Werkzeuges
zu Frage 4: Ja
zu Frage 5: Die Werkzeugnamen sind vorgegeben.

:-)
   
Beitrag 12.01.2018, 06:55 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
Wie gesagt ...

WRITE befehl.

du kannst dir das datum so bilden / uhrzeit so bilden

Daten in Variable:
variable = "Datum:"<<$A_DAY<<$A_MONTH<<$A_YEAR<<" Uhrzeit:" <<$A_HOUR<<":"<<$A_MINUTE

wobei "<<" ein verketten ist.

WRITE(<Fehler>,"<Dateiname>"/"<ExtG>","<Satz/Daten>")

wobei dann "<Satz/Daten>" deine Variable entspricht.


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 12.01.2018, 09:58 Uhr
platsch
platsch
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 01.11.2017
Beiträge: 308
Ich denke, daß es relativ wenig praktikabel ist die interne Tool-Nummer, ohne Bezug zum Werkzeugbezeichner, zu protokollieren.
Wenn du also wissen willst, wann welches Werkzeug in die Spindel eingewechselt wurde, solltest Du die Protokollierung direkt nach M6 starten.
Dazu muß auch keinerlei Berechnung angestellt werden. Alle benötigten Daten kannst du auch direkt im WRITE-Befehl abrufen.
WRITE hat genau 3 Argumente: WRITE(fehlervariable, Protokolldatei, String)
1. Die Integer-Variable "error" existiert bereits. Soll der Fehler-Status von WRITE z.B. mit "Fehler" ausgewertet werden, muß "Fehler" am Programmanfang definiert werden. (def int Fehler)
2. Soll das Protokoll im Aufruf-Verzeichnis erstellt und gesucht werden, reicht der Dateiname z.B. "PROTFILE".
3. Der "Protokolltext" für die zu schreibende Zeile ist ein String und das dritte Argument von WRITE.
Einzelne Strings müssen dafür mit "<<" verkettet werden.
Hier wird die interne T-Nummer ausgegeben, die jedoch nichts mit dem in der Werkzeugliste angezeigten Werkzeugnamen zu tun hat:
CODE
....
M6
WRITE(error,PROTFILE,$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<"  Werkzeug: T"<<$P_TOOLNO<<" D"<<$P_TOOL)


Sinnvoller ist also die Ausgabe des "Werkzeugbezeichners" dieses Werkzeugs ($TC_TP2), wie er auch in der Werkzeugliste angezeigt wird:
CODE
....
M6
WRITE(error,PROTFILE,$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<"  Werkzeug: T"<<$TC_TP2[$P_TOOLNO]<<" D"<<$P_TOOL)


Der Beitrag wurde von platsch bearbeitet: 12.01.2018, 10:02 Uhr
   
Beitrag 12.01.2018, 16:11 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Ja Cool, vielen Dank Platsch!!! Das werde ich morgen früh gleich mal ausprobieren. Eigentlich habe ich etwas anderes vor, hab mich aber auch sehr falsch ausgedrückt..... Kann aber damit schon sehr viel anfangen:)
Wie kann man folgendes Abfragen.

Wir fertigen mit Standzeitüberwachung in Stück.
Das Werkzeug ist abgelaufen (Standzeit abgelaufen)und wird nun durch ein Neues Werkzeug ersetzt. Es sollten wenn möglichst nur die Werkzeuge Protokollliert werden die vom Bediener gewechselt wurden.
   
Beitrag 13.01.2018, 10:39 Uhr
platsch
platsch
Level 4 = Community-Meister
****
Gruppe: Mitglied
Mitglied seit: 01.11.2017
Beiträge: 308
Aha, Du willst also nur protokollieren, wann welches Werkzeug erneuert wurde?
Ich gehe mal davon aus, daß keine Schwester-Werkzeuge eingesetzt werden.
Dann ist tatsächlich auch der Vergleich von Soll- und Ist-Stückzahl in der WV angebracht. Voraussetzung wäre allerdings, daß der Bediener beim Erneuern der Werkzeuge auch immer den jeweiligen Zähler zurücksetzt und das Werkzeug entsperrt, was ja ohnehin zum Weiterarbeiten nötig wäre.
Ich würde diese 3 Zeilen aber schon in ein UP mit dem Namen "PROTOKOLL" auslagern und im HP nach jedem Werkzeugwechsel aufrufen, da es ja bereits schon 10 mal im HP aufgerufen werden muß:

CODE
if $TC_MOP13[$P_TOOLNO,$P_TOOL]==$TC_MOP4[$P_TOOLNO,$P_TOOL]
  WRITE(error,PROTFILE,$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<"  Werkzeug: T"<<$TC_TP2[$P_TOOLNO]<<" D"<<$P_TOOL)
endif
ret


CODE
...
M6
PROTOKOLL
...
   
Beitrag 13.01.2018, 20:52 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Ich weis gar nicht was ich sagen soll:) vielen lieben dank. Ich werde es am Dienstag gleich ausprobieren:) Ich halt dich auf dem laufenden Platsch! Danke
   
Beitrag 16.01.2018, 09:38 Uhr
Bronko69
Bronko69
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 14.05.2010
Beiträge: 26
Hat super funktioniert :-) Vielen dank
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: