Siemens
Digital Industries, Motion Control, Machine Tool Systems
8844
Follower:innenSpindellaufzeiten protokollieren
25.01.2019, 11:09 Uhr
Hallo,
gibt es eine Möglichkeit die Spindellaufzeit pro Werkstück zu protokollieren und als Datei abzulegen...?
Der Idealfall wäre eine Datei mit:
Filename: Monat.Jahr_Spindelzeit.csv
Datum, Uhrzeit; Teilname, Spindelzeit
gibt es eine Möglichkeit die Spindellaufzeit pro Werkstück zu protokollieren und als Datei abzulegen...?
Der Idealfall wäre eine Datei mit:
Filename: Monat.Jahr_Spindelzeit.csv
Datum, Uhrzeit; Teilname, Spindelzeit
25.01.2019, 14:48 Uhr
Hallo,
gibt es eine Möglichkeit die Spindellaufzeit pro Werkstück zu protokollieren und als Datei abzulegen...?
Der Idealfall wäre eine Datei mit:
Filename: Monat.Jahr_Spindelzeit.csv
Datum, Uhrzeit; Teilname, Spindelzeit
gibt es eine Möglichkeit die Spindellaufzeit pro Werkstück zu protokollieren und als Datei abzulegen...?
Der Idealfall wäre eine Datei mit:
Filename: Monat.Jahr_Spindelzeit.csv
Datum, Uhrzeit; Teilname, Spindelzeit
Hi
ja da gibt es wie fast immer viele Wege um das zu machen.
Mein Vorschlag würde so aussehen.
;=================================================================
DEF INT ERROR
DEF REAL ZEIT
DEF STRING[20] Teilname
Teilname="Der Name vom Teil"
;Vor Spindel Start
$AC_TIMER[1]=0 ;Timer starten
;Programmablauf
ZEIT=$AC_TIMER[1] ;Zeit sichern
$AC_TIMER[1]=-1 ;Timer stopen
Man kann den Timer auch mit einer Synchronaktion steuern.
WRITE(ERROR,""<<$A_MONTH<<".20"<<$A_YEAR<<"_Spindelzeit.SPF",""<<$A_DAY<<"."<<$A_MONTH<<".20"<<$A_YEAR<<" "<<$A_HOUR<<":"<<$A_Minute<<":"<<$A_Second<<" "<<Teilname<<" Spindelzeit = "<<ZEIT<<" sec" );
M30
;=================================================================
So sollte es etwa gehen.
Nach meinem Wissen gehen aber nur Endungen .SPF und .MPF
Ist alles auch schön in der Doku "Arbeitsvorbereitung" beschrieben.
Gruß Tobi
26.01.2019, 10:34 Uhr
Hallo,
na das sieht ja gleich mal einfach aus und ist genau was ich gesucht habe...allerdings meckert die Simulation gleich bei der ersten Zeile rum.
(Unerlaubte DEF- oder PORC-Anweisung im Teileprogramm)
Ich habe zum Test ein kurzes ST-Programm erstellt und die Zeitmessung dazwischen gepackt. Ich fürchte sooo gehts nicht. Könnte ich noch ein paar Hinweise bekommen wie man solchen Scripte im Programm (ShopTurn & DIN-ISO-Code) unterbringt...?
na das sieht ja gleich mal einfach aus und ist genau was ich gesucht habe...allerdings meckert die Simulation gleich bei der ersten Zeile rum.
(Unerlaubte DEF- oder PORC-Anweisung im Teileprogramm)
Ich habe zum Test ein kurzes ST-Programm erstellt und die Zeitmessung dazwischen gepackt. Ich fürchte sooo gehts nicht. Könnte ich noch ein paar Hinweise bekommen wie man solchen Scripte im Programm (ShopTurn & DIN-ISO-Code) unterbringt...?
CODE
N10 F_HEAD(1456472063,30.8,0,,-500,5,5,5,-150,160,500,1,2000,,71,1,35807,,-100,49,20,6,6,20,38.73,20,1,100,,,,,,,,,,,,,,,,,,,,,,,780,0,0,0,0,0,0,,,,,,);*RO*
N20 DEF INT ERROR
N30 DEF REAL ZEIT
N40 DEF STRING[20] Teilname
N50 Teilname="Endstueck"
;Vor Spindelstart Timer starten
N60 $AC_TIMER[1]=0
(SHOPTURNPROGRAMM)
;Zeit sichern
N160 ZEIT=$AC_TIMER[1]
;Timer stopen
N170 $AC_TIMER[1]=-1
N180 WRITE(ERROR,""<<$A_MONTH<<".20"<<$A_YEAR<<"_Spindelzeit.SPF",""<<$A_DAY<<"."<<$A_MONTH<<".20"<<$A_YEAR<<" "<<$A_HOUR<<":"<<$A_Minute<<":"<<$A_Second<<" "<<Teilname<<" Spindelzeit = "<<ZEIT<<" sec" );
N190 IF ERROR
N200 MSG ("Fehler bei WRITE-Befehl:" << ERROR)
N210 M0
N220 ENDIF
M30;#SM;*RO*
...
N20 DEF INT ERROR
N30 DEF REAL ZEIT
N40 DEF STRING[20] Teilname
N50 Teilname="Endstueck"
;Vor Spindelstart Timer starten
N60 $AC_TIMER[1]=0
(SHOPTURNPROGRAMM)
;Zeit sichern
N160 ZEIT=$AC_TIMER[1]
;Timer stopen
N170 $AC_TIMER[1]=-1
N180 WRITE(ERROR,""<<$A_MONTH<<".20"<<$A_YEAR<<"_Spindelzeit.SPF",""<<$A_DAY<<"."<<$A_MONTH<<".20"<<$A_YEAR<<" "<<$A_HOUR<<":"<<$A_Minute<<":"<<$A_Second<<" "<<Teilname<<" Spindelzeit = "<<ZEIT<<" sec" );
N190 IF ERROR
N200 MSG ("Fehler bei WRITE-Befehl:" << ERROR)
N210 M0
N220 ENDIF
M30;#SM;*RO*
...
26.01.2019, 12:48 Uhr
ich bin ein Stück weiter. Allerdings hänge ich jetzt am WRITE fest.
Code editire ich mit vi im Terminal.
Ich dachte eigentlich ein chmod 777 ordner sollte reichen um als 'jeder darein schreiben zu dürfen.
Gebe ich vor dem Dateinamen keinen Pfad an, so erscheint eine Fehler/Warnmeldung?
'WRITE schreibt in temporären Speicherbereich /_N_EXT_DIR'
Dort ist dann aber nichts zu finden.
Gebe ich einen Pfad an, egal wo, kommt
'Fehler bei WRITE-Befehl:1'
Schutzstufe 4 oder 6 - beide das gleich Ergebnis
Was mache ich noch falsch? Oder geht das etwa nicht aus der Simulation herraus???
Der Beitrag wurde von MM303 bearbeitet: 26.01.2019, 12:49 Uhr
Code editire ich mit vi im Terminal.
Ich dachte eigentlich ein chmod 777 ordner sollte reichen um als 'jeder darein schreiben zu dürfen.
Gebe ich vor dem Dateinamen keinen Pfad an, so erscheint eine Fehler/Warnmeldung?
'WRITE schreibt in temporären Speicherbereich /_N_EXT_DIR'
Dort ist dann aber nichts zu finden.
Gebe ich einen Pfad an, egal wo, kommt
'Fehler bei WRITE-Befehl:1'
Schutzstufe 4 oder 6 - beide das gleich Ergebnis
Was mache ich noch falsch? Oder geht das etwa nicht aus der Simulation herraus???
Der Beitrag wurde von MM303 bearbeitet: 26.01.2019, 12:49 Uhr
27.01.2019, 19:02 Uhr
Hey MM303
erstmal zu deinem PROC Problem.
Jede DEF Anweisung sollt immer am Anfang vom Programm stehen.
Statt:
Da hier F_HEAD ein Unterprogramm aufruft, solltest es so schreiben:
So nun zum WRITE Problem.
wenn Du es extern in eine CSV Datei speichern willst, musst diese "meinde datei.csv" per EXTOPEN aufrufen.
Anschließend WRITE Befehl und die Datei wieder mit EXTCLOSE schließen.
Dein Write kann auch so nicht funktionieren.
WRITE(VAR INT error, CHAR[160] filename, CHAR[200] STRING)
Anleitung vom Write:
https://support.industry.siemens.com/cs/mdm...75&lc=de-DE
Funktion mit EXTOPEN
https://support.industry.siemens.com/cs/mdm...75&lc=de-DE
erstmal zu deinem PROC Problem.
Jede DEF Anweisung sollt immer am Anfang vom Programm stehen.
Statt:
CODE
N10 F_HEAD(1456472063,30.8,0,,-500,5,5,5,-150,160,500,1,2000,,71,1,35807,,-100,49,20,6,6,20,38.73,20,1,100,,,,,,,,,,,,,,,,,,,,,,,780,0,0,0,0,0,0,,,,,,);*RO*
N20 DEF INT ERROR
N30 DEF REAL ZEIT
N40 DEF STRING[20] Teilname
N50 Teilname="Endstueck"
;Vor Spindelstart Timer starten
N60 $AC_TIMER[1]=0
N20 DEF INT ERROR
N30 DEF REAL ZEIT
N40 DEF STRING[20] Teilname
N50 Teilname="Endstueck"
;Vor Spindelstart Timer starten
N60 $AC_TIMER[1]=0
Da hier F_HEAD ein Unterprogramm aufruft, solltest es so schreiben:
CODE
N10
N20 DEF INT ERROR
N30 DEF REAL ZEIT
N40 DEF STRING[20] Teilname
N50 Teilname="Endstueck"
F_HEAD(1456472063,30.8,0,,-500,5,5,5,-150,160,500,1,2000,,71,1,35807,,-100,49,20,6,6,20,38.73,20,1,100,,,,,,,,,,,,,,,,,,,,,,,780,0,0,0,0,0,0,,,,,,);*RO*
;Vor Spindelstart Timer starten
N60 $AC_TIMER[1]=0
N20 DEF INT ERROR
N30 DEF REAL ZEIT
N40 DEF STRING[20] Teilname
N50 Teilname="Endstueck"
F_HEAD(1456472063,30.8,0,,-500,5,5,5,-150,160,500,1,2000,,71,1,35807,,-100,49,20,6,6,20,38.73,20,1,100,,,,,,,,,,,,,,,,,,,,,,,780,0,0,0,0,0,0,,,,,,);*RO*
;Vor Spindelstart Timer starten
N60 $AC_TIMER[1]=0
So nun zum WRITE Problem.
wenn Du es extern in eine CSV Datei speichern willst, musst diese "meinde datei.csv" per EXTOPEN aufrufen.
Anschließend WRITE Befehl und die Datei wieder mit EXTCLOSE schließen.
Dein Write kann auch so nicht funktionieren.
CODE
N180 WRITE(ERROR,[u][b]""<<$A_MONTH<<".20"<<$A_YEAR<<"_Spindelzeit.SPF"[/b][/u],""<<$A_DAY<<"."<<$A_MONTH<<".20"<<$A_YEAR<<" "<<$A_HOUR<<":"<<$A_Minute<<":"<<$A_Second<<" "<<Teilname<<" Spindelzeit = "<<ZEIT<<" sec" );
WRITE(VAR INT error, CHAR[160] filename, CHAR[200] STRING)
Anleitung vom Write:
https://support.industry.siemens.com/cs/mdm...75&lc=de-DE
Funktion mit EXTOPEN
https://support.industry.siemens.com/cs/mdm...75&lc=de-DE
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
28.01.2019, 07:36 Uhr
Moin,
ja das mit EXTOPEN habe ich auch gefunden. Allerdings schein ich zu blöd zu sein. Egal wohin ich schreiben will, es ist nicht erlaubt.
Dabei spielt es keine Rolle ob ich einen absoluten Pfad angebe, oder gar keinen Pfad, oder LOCAL_DRIVE oder sonstwas - Fehler)
Mein aktueller Versuch wird mit Fehler 16 bei EXTOPEN quittiert:
Der Beitrag wurde von MM303 bearbeitet: 28.01.2019, 07:48 Uhr
ja das mit EXTOPEN habe ich auch gefunden. Allerdings schein ich zu blöd zu sein. Egal wohin ich schreiben will, es ist nicht erlaubt.
Dabei spielt es keine Rolle ob ich einen absoluten Pfad angebe, oder gar keinen Pfad, oder LOCAL_DRIVE oder sonstwas - Fehler)
Mein aktueller Versuch wird mit Fehler 16 bei EXTOPEN quittiert:
CODE
N10 DEF INT ERROR
N20 DEF REAL ZEIT
N30 DEF STRING[20] Teilname
N40 Teilname="Endstueck"
N50 F_HEAD(349175807,50.7,0,,-500,5,5,24.5,-150,150,500,1,2000,,71,1,35807,,-80,49,20,6,6,20,38.73,20,1,100,,,,,,,,,,,,,,,,,,,,,,,780,0,0,0,0,0,0,,,,,,);*RO*
N60 EXTOPEN(ERROR,"LOCAL_DRIVE/my_file.txt","SYN","SHARED")
N70 IF ERROR
N80 MSG ("Fehler bei EXTOPEN:" << ERROR)
N90 M0
N100 ENDIF
N110 WRITE(ERROR,"LOCAL_DRIVE/my_file.txt","TestText")
N120 IF ERROR
N130 MSG ("Fehler bei WRITE:" <<ERROR)
N140 M0
N150 ENDIF
N160 EXTCLOSE(ERROR,"LOCAL_DRIVE")
N170 IF ERROR
N180 MSG ("Fehler bei EXTCLOSE:" <<ERROR)
N190 M0
N200 ENDIF
F_END(0,1,0);*RO*
M30;#SM;*RO*
N20 DEF REAL ZEIT
N30 DEF STRING[20] Teilname
N40 Teilname="Endstueck"
N50 F_HEAD(349175807,50.7,0,,-500,5,5,24.5,-150,150,500,1,2000,,71,1,35807,,-80,49,20,6,6,20,38.73,20,1,100,,,,,,,,,,,,,,,,,,,,,,,780,0,0,0,0,0,0,,,,,,);*RO*
N60 EXTOPEN(ERROR,"LOCAL_DRIVE/my_file.txt","SYN","SHARED")
N70 IF ERROR
N80 MSG ("Fehler bei EXTOPEN:" << ERROR)
N90 M0
N100 ENDIF
N110 WRITE(ERROR,"LOCAL_DRIVE/my_file.txt","TestText")
N120 IF ERROR
N130 MSG ("Fehler bei WRITE:" <<ERROR)
N140 M0
N150 ENDIF
N160 EXTCLOSE(ERROR,"LOCAL_DRIVE")
N170 IF ERROR
N180 MSG ("Fehler bei EXTCLOSE:" <<ERROR)
N190 M0
N200 ENDIF
F_END(0,1,0);*RO*
M30;#SM;*RO*
Der Beitrag wurde von MM303 bearbeitet: 28.01.2019, 07:48 Uhr
28.01.2019, 09:13 Uhr
Ist bei Dir, LOCAL_DRIVE freigeschaltet ?
Alternativ mach erstmal write.
Da wir das Protikoll auf der NC geschrieben.
Alternativ mach erstmal write.
Da wir das Protikoll auf der NC geschrieben.
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
28.01.2019, 12:06 Uhr
LOCAL_DRIVE ist angeblich nicht aktiviert, allerdings wird unter Lizenzen 'Zusätzlicher HMI-Anwenderspeicher' als aktiviert angezeigt.
Bei WRITE ohne Pfadangabe wird versucht in _N_EXT_DIR zu schreiben was auch nicht geht - Kommt eine rote Fehlermeldung
Der Beitrag wurde von MM303 bearbeitet: 28.01.2019, 12:08 Uhr
Bei WRITE ohne Pfadangabe wird versucht in _N_EXT_DIR zu schreiben was auch nicht geht - Kommt eine rote Fehlermeldung
Der Beitrag wurde von MM303 bearbeitet: 28.01.2019, 12:08 Uhr
31.01.2019, 07:52 Uhr
Niemand mehr eine Idee?
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: