Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Spindellaufzeiten protokollieren

Beitrag 25.01.2019, 11:09 Uhr
MM303
MM303
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 08.12.2018
Beiträge: 33
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
   
Beitrag 25.01.2019, 14:48 Uhr
Tobe87
Tobe87
Level 2 = Community-Facharbeiter
**
Gruppe: Mitglied
Mitglied seit: 14.12.2017
Beiträge: 87
QUOTE (MM303 @ 25.01.2019, 10: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

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
   
Beitrag 26.01.2019, 10:34 Uhr
MM303
MM303
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 08.12.2018
Beiträge: 33
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...?

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*
...
   
Beitrag 26.01.2019, 12:48 Uhr
MM303
MM303
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 08.12.2018
Beiträge: 33
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
   
Beitrag 27.01.2019, 19:02 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
Hey MM303

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


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


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





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 28.01.2019, 07:36 Uhr
MM303
MM303
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 08.12.2018
Beiträge: 33
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:
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*


Der Beitrag wurde von MM303 bearbeitet: 28.01.2019, 07:48 Uhr
   
Beitrag 28.01.2019, 09:13 Uhr
Hexogen
Hexogen
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 29.09.2004
Beiträge: 1.813
Ist bei Dir, LOCAL_DRIVE freigeschaltet ?

Alternativ mach erstmal write.

Da wir das Protikoll auf der NC geschrieben.


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


Anwendungen, Zyklen, CAD/CAM





-----------------------------------------------------------------------------------------------------------------------------
   
Beitrag 28.01.2019, 12:06 Uhr
MM303
MM303
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 08.12.2018
Beiträge: 33
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
   
Beitrag 31.01.2019, 07:52 Uhr
MM303
MM303
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 08.12.2018
Beiträge: 33
Niemand mehr eine Idee? coangry.gif
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: