Siemens
Digital Industries, Motion Control, Machine Tool Systems
8840
Follower:innenMessergebnisse protokollieren
16.08.2018, 17:09 Uhr
Hallo zusammen,
Habe vor Messergebnisse zu protokollieren.
Ganz einfache Sachen, z.B. Welches Messergebnis hat die Einlegekontrolle in den letzten 10 Runden gemessen, um z.B. einen Trend zu erkennen.
Mache ich momentan ganz billig über R-Parameter.
_________________________
R10=0,15
R11=0,13
R12=0,21
.
.
.
_________________________
Damit ich immer die aktuellsten 10 Messungen habe nutze ich:
R20=R19
R19=R18
.
.
.
R11=R10
R10=_OVR[4]
_________________________
Ich weiß, dass das eher Pfusch ist.
Funktioniert aber, so kann ich mit einem Blick in die R-Parameter Tabelle sehen ob die letzten Teile ordentlich eingelegt wurden.
_________________________
Ich nutzte auch ein Temperatur Kompensationsprogramm.
Dieses Programm schreibt eine Protokoll Datei, mit der ich die letzten Messergebnisse der Wärmekompensation auswerten kann.
Dieses Programm wurde nicht von mir geschrieben, ich würde aber gerne die Protokollierungs-Funktion auch für andere Dinge nutzen.
Hier der Ausschnitt des Programmes der die Protokollierung macht:
_________________________
;Messung Protokollieren
PROC MESSUNG_PROT(REAL _VARI_PROT_01, _VARI_PROT_02, …) SAVE
DEF REAL _VARI_PROT_11, _VARI_PROT_12, …
;*** Ergebniss protokollieren ***
ROUND_X=TRUNC($P_UBFR[X,TR]*1000)/1000
ROUND_Y=TRUNC($P_UBFR[Y,TR]*1000)/1000
ROUND_Z=TRUNC($P_UBFR[Z,TR]*1000)/1000
FIELD=TSA+1
IF ST_DOCUCOUNT[TSA]<100
WRITE(ERROR[1],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF","DATE:" <<$A_DAY<<"."<<$A_MONTH<<".0"<<$A_YEAR<<" TIME:"<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<" X:"<<ROUND_X<<" Y:"<<ROUND_Y<<" Z:"<<ROUND_Z)
ST_DOCUCOUNT[TSA]=ST_DOCUCOUNT[TSA]+1
ELSE ; Neue Protokolldatei anlegen
DELETE(ERROR[2],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_OLD_PROT_"<<FIELD<<"_MPF")
STOPRE
FOR ZAEHLER=1 TO 100
READ(ERROR[3],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF",ZAEHLER,1,RESULT)
WRITE(ERROR[4],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_OLD_PROT_"<<FIELD<<"_MPF",<<RESULT[0])
RESULT[0]=""
ENDFOR
DELETE(ERROR[5],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF")
ST_DOCUCOUNT[TSA]=1
WRITE(ERROR[1],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF","DATE:" <<$A_DAY<<"."<<$A_MONTH<<".0"<<$A_YEAR<<" TIME:"<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<" X:"<<ROUND_X<<" Y:"<<ROUND_Y<<" Z:"<<ROUND_Z)
ENDIF
_________________________
Kann mir jemand den Aufbau erklären.
Ich habe das Programm grob verstanden
-die Parameter des Programmes werden definiert
-die Ergebnisse „$P_UBFR[X,TR]“ werden gerundet
-Messergebnisse werden mit Datum und Uhrzeit ins „ACT“-Protokoll geschrieben
außer wenn mehr als 100 Messergebnisse in „ACT“-Protokoll stehen,
dann wird ein neues „ACT“-Protokoll angelegt, dass „OLD“-Protokoll gelöscht
und das volle „ACT“-Protokoll ins „OLD“-Protokoll umbenannt
wo ich mir schwer tue ist die WRITE/READ/DELETE-Zeilen zu entschlüsseln
_________________________
Nutzt jemand solche Protokolle und wäre gewillt einem unterwürfigen Lehrling Erleuchtung zu gewähren?
Gruß Alexander
PS: Steuerungen 840D powerline mit PCU50, 840D sl mit PCU50 und 840D sl mit TCU
Habe vor Messergebnisse zu protokollieren.
Ganz einfache Sachen, z.B. Welches Messergebnis hat die Einlegekontrolle in den letzten 10 Runden gemessen, um z.B. einen Trend zu erkennen.
Mache ich momentan ganz billig über R-Parameter.
_________________________
R10=0,15
R11=0,13
R12=0,21
.
.
.
_________________________
Damit ich immer die aktuellsten 10 Messungen habe nutze ich:
R20=R19
R19=R18
.
.
.
R11=R10
R10=_OVR[4]
_________________________
Ich weiß, dass das eher Pfusch ist.
Funktioniert aber, so kann ich mit einem Blick in die R-Parameter Tabelle sehen ob die letzten Teile ordentlich eingelegt wurden.
_________________________
Ich nutzte auch ein Temperatur Kompensationsprogramm.
Dieses Programm schreibt eine Protokoll Datei, mit der ich die letzten Messergebnisse der Wärmekompensation auswerten kann.
Dieses Programm wurde nicht von mir geschrieben, ich würde aber gerne die Protokollierungs-Funktion auch für andere Dinge nutzen.
Hier der Ausschnitt des Programmes der die Protokollierung macht:
_________________________
;Messung Protokollieren
PROC MESSUNG_PROT(REAL _VARI_PROT_01, _VARI_PROT_02, …) SAVE
DEF REAL _VARI_PROT_11, _VARI_PROT_12, …
;*** Ergebniss protokollieren ***
ROUND_X=TRUNC($P_UBFR[X,TR]*1000)/1000
ROUND_Y=TRUNC($P_UBFR[Y,TR]*1000)/1000
ROUND_Z=TRUNC($P_UBFR[Z,TR]*1000)/1000
FIELD=TSA+1
IF ST_DOCUCOUNT[TSA]<100
WRITE(ERROR[1],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF","DATE:" <<$A_DAY<<"."<<$A_MONTH<<".0"<<$A_YEAR<<" TIME:"<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<" X:"<<ROUND_X<<" Y:"<<ROUND_Y<<" Z:"<<ROUND_Z)
ST_DOCUCOUNT[TSA]=ST_DOCUCOUNT[TSA]+1
ELSE ; Neue Protokolldatei anlegen
DELETE(ERROR[2],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_OLD_PROT_"<<FIELD<<"_MPF")
STOPRE
FOR ZAEHLER=1 TO 100
READ(ERROR[3],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF",ZAEHLER,1,RESULT)
WRITE(ERROR[4],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_OLD_PROT_"<<FIELD<<"_MPF",<<RESULT[0])
RESULT[0]=""
ENDFOR
DELETE(ERROR[5],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF")
ST_DOCUCOUNT[TSA]=1
WRITE(ERROR[1],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF","DATE:" <<$A_DAY<<"."<<$A_MONTH<<".0"<<$A_YEAR<<" TIME:"<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<" X:"<<ROUND_X<<" Y:"<<ROUND_Y<<" Z:"<<ROUND_Z)
ENDIF
_________________________
Kann mir jemand den Aufbau erklären.
Ich habe das Programm grob verstanden
-die Parameter des Programmes werden definiert
-die Ergebnisse „$P_UBFR[X,TR]“ werden gerundet
-Messergebnisse werden mit Datum und Uhrzeit ins „ACT“-Protokoll geschrieben
außer wenn mehr als 100 Messergebnisse in „ACT“-Protokoll stehen,
dann wird ein neues „ACT“-Protokoll angelegt, dass „OLD“-Protokoll gelöscht
und das volle „ACT“-Protokoll ins „OLD“-Protokoll umbenannt
wo ich mir schwer tue ist die WRITE/READ/DELETE-Zeilen zu entschlüsseln
_________________________
Nutzt jemand solche Protokolle und wäre gewillt einem unterwürfigen Lehrling Erleuchtung zu gewähren?
Gruß Alexander
PS: Steuerungen 840D powerline mit PCU50, 840D sl mit PCU50 und 840D sl mit TCU
16.08.2018, 18:34 Uhr
wo ich mir schwer tue ist die WRITE/READ/DELETE-Zeilen zu entschlüsseln
Am einfachsten ist es, wenn du dir Beschreibung der drei Befehle in der Siemens-Doku (Arbeitsvorbereitung) anschaust. Das sind ein paar (wenige Seiten), die ich hier nicht wiederholen kann.
Vielleicht hier nur soviel:
Nehmen wir als Beispiel die Zeile
DELETE(ERROR[2],"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_OLD_PROT_"<<FIELD<<"_MPF")
ERROR[2] ist eine INT-Variable, in der nach dem Aufruf ein Fehlercode steht, falls irgendwas nicht richtig funktioniert hat. Die Bedeutung der Fehlernummern findet man in der Doku.
Der ganze Rest ist ein einziger weiter Aufrufparameters vom Typ String der aus drei Teilen zusammengebaut wird:
1. "/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_OLD_PROT_" ; der String, der zwischen " und " steht, d.h. der Pfadname des Files
2. FIELD ; eine Variable, die in einen String umgewandelt wird und an den ersten String angehängt wird (mit dem Verkettungsoperator <<). Das ist wohl der eigentliche Filename.
3. "_MPF" ; Am Ende (wieder mit dem Verkettungsoperator << wird der String "_MPF" angehängt.
Wenn in FIELD z.B. der String "MEIN_FILE" steht, sieht der komplette zweite Aufrufparameter so aus:
"/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_OLD_PROT_MEIN_FILE_MPF"
Ganz entprechend funktionert das auch bei READ und WRITE.
16.08.2018, 18:52 Uhr
Hey ...
erstmals verstehe ich nicht warum man mittels trunc "rundet" es ist kein runden sondern nur ein abschneiden
Write befehl lässt einen string in eine datei schreiben.
WRITE(error,file,string)
in deinem falle:
WRITE(
error: ERROR[1], <<< hier wird der Fehlercode, wie CNCFr schrieb, abgelegt
file: "/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF", <<< das färe deine Datei, wobei FIELD eine Variable ist, hier steht die Tischseite drin, Ist ne CHIRON W ? mit zwei Tischseiten und der Auszug ist aus der Strategieprotokollierung? Kommt mir bekannt vor.
string: "DATE:" <<$A_DAY<<"."<<$A_MONTH<<".0"<<$A_YEAR<<" TIME:"<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<" X:"<<ROUND_X<<" Y:"<<ROUND_Y<<" Z:"<<ROUND_Z <<< das ist der Inhalt, der in die Datei geschrieben wird.
)
Der Befehl DELETE, löscht eine Datei im NC Speicher.
Der Befehl READ liest eine Zeile eines Programms die du auswerten kannst. Hier wird der Inhalt, Zeile für Zeile in OLD umgeschrieben. Sprich read danach direkt write.
Du hast dir ein recht Komplexes Beispiel ausgesucht
erstmals verstehe ich nicht warum man mittels trunc "rundet" es ist kein runden sondern nur ein abschneiden
Write befehl lässt einen string in eine datei schreiben.
WRITE(error,file,string)
in deinem falle:
WRITE(
error: ERROR[1], <<< hier wird der Fehlercode, wie CNCFr schrieb, abgelegt
file: "/_N_WKS_DIR/_N_STRAT_PROTOCOL_WPD/_N_ACT_PROT_"<<FIELD<<"_MPF", <<< das färe deine Datei, wobei FIELD eine Variable ist, hier steht die Tischseite drin, Ist ne CHIRON W ? mit zwei Tischseiten und der Auszug ist aus der Strategieprotokollierung? Kommt mir bekannt vor.
string: "DATE:" <<$A_DAY<<"."<<$A_MONTH<<".0"<<$A_YEAR<<" TIME:"<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND<<" X:"<<ROUND_X<<" Y:"<<ROUND_Y<<" Z:"<<ROUND_Z <<< das ist der Inhalt, der in die Datei geschrieben wird.
)
Der Befehl DELETE, löscht eine Datei im NC Speicher.
Der Befehl READ liest eine Zeile eines Programms die du auswerten kannst. Hier wird der Inhalt, Zeile für Zeile in OLD umgeschrieben. Sprich read danach direkt write.
Du hast dir ein recht Komplexes Beispiel ausgesucht
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
17.08.2018, 11:53 Uhr
für die Tipps,
ich werde in der nächsten Woche mal mein Glück versuchen.
Warum hier der Befehl zum Schneiden und nicht der Befehl zum Runden steht kann ich nicht sagen, runden wäre hier denke ich Sinnvoller
Ja ist aus der Strategieprotokollierung, in der <<FIELD<<-Variable wird das aktive Arbeitsfeld eingetragen. Wir haben 4St FZ08W, 1St.FZ15W und 1St. FZ15L
ich werde in der nächsten Woche mal mein Glück versuchen.
erstmals verstehe ich nicht warum man mittels trunc "rundet" es ist kein runden sondern nur ein abschneiden smile.gif
Warum hier der Befehl zum Schneiden und nicht der Befehl zum Runden steht kann ich nicht sagen, runden wäre hier denke ich Sinnvoller
... Auszug ist aus der Strategieprotokollierung? Kommt mir bekannt vor. ...
Ja ist aus der Strategieprotokollierung, in der <<FIELD<<-Variable wird das aktive Arbeitsfeld eingetragen. Wir haben 4St FZ08W, 1St.FZ15W und 1St. FZ15L
17.08.2018, 12:01 Uhr
Wenn Du Protokollierungen machen willst, solltest erstmal wissen, dass jede WRITE befehl Zeit kostet.
Die Zweite Frage, was willst Protokollieren.
Dritte Frage, wie soll es aussehen, zwecks weiterer Verarbeitung, wie für auswerten der Daten in Excel.
Vierte Frage, wie Flexibel soll es sein.
Je nachdem kannst Dir dann einen Zyklus basteln.
Ist einmalig etwas Aufwand, aber mit der Zeit rentabel.
Vor allem wenn es ein Multifunktionales tool wird
Die Zweite Frage, was willst Protokollieren.
Dritte Frage, wie soll es aussehen, zwecks weiterer Verarbeitung, wie für auswerten der Daten in Excel.
Vierte Frage, wie Flexibel soll es sein.
Je nachdem kannst Dir dann einen Zyklus basteln.
Ist einmalig etwas Aufwand, aber mit der Zeit rentabel.
Vor allem wenn es ein Multifunktionales tool wird
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: