Im Tabellenblatt <datalog> werden die Variablen und Eigenschaften für die Datenaufzeichnung definiert. Die Definition besteht aus dem Header und der Variablen-Liste.
Der Header besteht aus einem Satz Parametern. Der Header beginnt mit der ersten Zeile die mit # beginnt und endet mit der ersten Zeile die nicht mehr mit # beginnt.
Tag
|
Wert
|
M/O
|
Default
|
Beschreibung
|
#Size
|
Dezimal
|
O
|
4
|
Maximale Grösse der Logdatei in Kb.
Wird die Dateigrösse überschritten, so wird der älteste Wert in der Logdatei überschrieben. (Ringbuffer)
|
#File
|
String
|
O
|
<definition>.log
<definition>.idx
|
Name der Log- und Indexdatei (enthält die aktuelle Position in der Datei -> Ringbuffer)
Wenn die Option Type=<type> definiert ist und dieser Parameter leer ist, wird type als Name verwendet:
<type>.log
<type>.idx
|
#Separator
|
|
O
|
<TAB>
|
Spaltenseperator, ein Zeichen
|
#dt
|
Dezimal
|
O
|
0
|
Zeitintervall für Logeintrag in [s], wenn > 0. Alternativ kann die Datenaufzeichnung auch über die Control-Variable von der Steuerung initiiert werden.
|
#Header
|
String
|
O
|
|
Header in Logdatei
|
#TimeFormat
|
<format>
|
O
|
%10lu
|
Es kann ein spezielles Format für den Zeitstempel in der ersten Spalte definiert werden.
|
#Control
|
Variable
|
O
|
|
Control-Variable vom Typ DWORD.
Wenn diese Variable definiert wird, muss das Logging via Trigger-Bit (siehe unten) aktiviert werden. Wenn die Variable nicht projektiert wird ist das Logging immer aktiv.
Der Variablename kann Group-Platzhalter enthalten, diese werden durch die Parameter aus VarValue ersetzt.
|
#TimeStamp
|
Variable
|
O
|
|
Variable für den Zeitstempel (erste Spalte). Muss vom Typ DWORD sein.
Wird diese Variable nicht projektiert, wird die Systemzeit von Epam geloggt.
Der Variablename kann Group-Platzhalter enthalten, diese werden durch die Parameter aus VarValue ersetzt.
|
#BusyCursor
|
{on¦off}
|
O
|
off
|
Während export/save wird der BusyCursor (Sanduhr) angezeigt.
|
#Export
|
<format>
|
O
|
|
Automatischer Export wenn <format> angegeben wird. Wobei als <format> die gleichen Regeln wie beim #variable für Typ DT gelten. Aus dem <format> mit der aktuellen Zeit ergibt sich der Namen für die Exportdatei.
Jedesmal wenn ein Logeintrag geschrieben wird, wird der Formatstring anhand der aktuellen Zeit aufgelöst. Wenn sich der resulterende Text bzw. Dateiname ändert wird das Datalogfile unter dem neuen Namen exportiert.
Ein Export pro Tag:
log1-%[yy-mm-dd]DT.csv ➞ log1-12-03-09.csv
Damit kann man automatische Exports definieren für: stündlich, 12-stündlich, täglich, wöchentlich, monatlich, jährlich.
Der Dateiname kann ein absoluter Pfad sein. Sonst erfolgt der Export in den PATH_DAT.
Wenn die Definition für mehrere #Datalog Objekte verwendet wird, bzw. der Parameter #File leer bleibt, kann der Type über den Platzhalter <type> in den Dateinamen integriert werden.
Beispiel:
<type>-%[yy-mm-dd]DT.csv ➞ log1-12-03-09.csv
|
#AutoExport
|
{on¦off}
|
O
|
on
|
Der automatische Export ( siehe #Export) kann ausgeschaltet werden. Wird typischerweise benötigt, wenn der Export via Control-Variable getriggert wird.
|
#LogFileFormat
|
{ascii¦utf16¦binary}
|
O
|
ascii
|
Fileformat:
• | ascii: ...es können keine WSTRING geloggt werden, das Logfile wird dafür kleiner. |
• | utf16: ...es können auch WSTRING's geloggt werden. (noch nicht implementiert) |
• | binary: ...es kann weder STRING noch WSTRING geloggt werden. Es wird keine *.idx Datei erstellt. #seperator ist nicht relevant. |
|
Variable
Die zu loggenden Variablen werden im Anschluss zu den Headerparametern angegeben.
Format ist optional, wenn nicht angegeben wird das Default-Format verwendet.
Die Variablenamen können Group-Platzhalter enthalten, diese werden durch die Parameter aus VarValue ersetzt.
Beispiel:
VarValue
|
Drive1
|
Varible
|
/PlcH/Plc1/{%1}.w1
|
→
|
/PlcH/Plc1/Drive1.w1
|
Das Format ist optional, wenn nicht projektiert wird das default Format verwendet.
Control-Variable
Bit
|
Wert
|
Bedeutung
|
Beschreibung
|
0
|
16#0000001
|
Trigger
|
Steuerung fordert EPAM durch Setzen des Ctrl-Bits „Trigger“ auf, mit dem Aufzeichnen der Datalog-Einträge zu beginnen (#dt gesetzt bzw. > 0) bzw. nur einen Datalog-Eintrag aufzuzeichnen ( #dt nicht gesetzt bzw. 0). In letzterem Fall setzt RTS das Trigger-Bit zur Bestätigung, dass der Datalog-Eintrag aufgezeichnet wurde, zurück.
|
1
|
16#0000002
|
Export
|
Steuerung fordert EPAM durch Setzen des Ctrl-Bits „Export“ auf, die Datalog-Datei ins EPAM-Dataverzeichnis (PATH_DAT) zu exportieren. Der Dateinamen der Exportierten Datei wird über das#Export Format bestimmt. EPAM setzt das Bit zurück.
|
2
|
16#0000004
|
Reset
|
Steuerung fordert EPAM durch Setzen des Ctrl-Bits „Reset“ auf, die Datalog-Datei zu löschen. EPAM setzt das Bit zurück.
|
3
|
16#0000008
|
Save
|
Steuerung fordert EPAM durch Setzen des Ctrl-Bits „Save“ auf, die Datalog-Datei ins EPAM-Dataverzeichnis zu speichern (PATH_DAT). EPAM setzt das Bit zurück.
|
4
|
16#0000010
|
HMI-Reset
|
EPAM teilt der Steuerung durch Setzen des Ctrl-Bits „HMI-Reset“ mit, dass die Datalog-Datei im EPAM-Logverzeichnis (Ramdrive EPAM) mit der Button-Aktion Datalog:[<name>].delete gelöscht wurde. Das Rücksetzen des Ctrl-Bits „HMI-Reset“ muss durch die Steuerung erfolgen.
|
5
|
16#0000020
|
HMI-Save
|
EPAM teilt der Steuerung durch Setzen des Ctrl-Bits „HMI-Save“ mit, dass die Datalog-Datei ins EPAM-Dataverzeichnis (PATH_DAT) mit der Button-Aktion Datalog:[<name>].save gespeichert wurde. Das Rücksetzen des Ctrl-Bits „HMI-Save“ muss durch die Steuerung erfolgen.
|
6
|
16#0000040
|
HMI-Export
|
EPAM teilt der Steuerung durch Setzen des Ctrl-Bits „HMI-Export“ mit, dass die Datalog-Datei mit der Button-Aktion Datalog:[<name>].export exportiert wurden. Das Rücksetzen des Ctrl-Bits „HMI-Export“ muss durch die Steuerung erfolgen.
|
Triggern der Logfunktion
• | Durch Setzen des Ctrl-Bits „Trigger“ in der Steuerung wird der Datalog-Vorgang gestartet. Daten werden zyklisch alle x Sekunden gespeichert. |
• | Durch Rücksetzen des Ctrl-Bits „Trigger“ in der Steuerung wird der Datalog-Vorgang gestoppt.
|
2. | #dt nicht gesetzt, bzw. 0: |
• | Durch Setzen des Ctrl-Bits „Trigger“ in der Steuerung wird ein Datalog-Eintrag gespeichert. |
• | Wurde der Datalog-Eintrag geschrieben, wird anschliessend das Ctrl-Bit "Trigger“ durch EPAM zurückgesetzt. |
Wichtig
Alle Zeilen einer Datalog-Datei müssen gleich lang sein! Max. Länge des Datentyps bei Variablen-Format beachten!
Beispiel
Header
|
Value
|
Comment
|
|
#size
|
200
|
Size of Logfile in KB
|
|
#file
|
datalog1.csv
|
Logfile name
|
|
#seperator
|
;
|
Separator between columns
|
|
#dt
|
1
|
Log intervall in [s]
|
|
#timeformat
|
%lu
|
time format
|
|
#control
|
/PLCH/PLC1/GlobalDatalog.DataLog1.Ctrl
|
Control variable DWORD
|
|
#timestamp
|
/PLCH/PLC1/GlobalDatalog.DataLog1.Timestamp
|
Time variable DWORD
|
|
Variable
|
VarType
|
Format
|
Comment
|
/PLCH/PLC1/GlobalDatalog.DataLog1.BoolDecimal
|
BOOL
|
%1u
|
BOOL-Variable (Dezimale Darstellung ohne Vorzeichen)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.BoolHex
|
BOOL
|
%1u
|
BOOL-Variable (Hexadezimale Darstellung)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.ByteDecimal
|
BYTE
|
%3u
|
BYTE-Variable (Dezimale Darstellung ohne Vorzeichen)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.ByteHex
|
BYTE
|
%2x
|
BYTE-Variable (Hexadezimale Darstellung)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.WordDecimal
|
WORD
|
%6hu
|
WORD-Variable (Dezimale Darstellung ohne Vorzeichen)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.WordHex
|
WORD
|
%4hx
|
WORD-Variable (Hexadezimale Darstellung)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.DwordDecimal
|
DWORD
|
%8lu
|
DWORD-Variable (Dezimale Darstellung ohne Vorzeichen)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.DwordHex
|
DWORD
|
%8lx
|
DWORD-Variable (Hexadezimale Darstellung)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.SintDecimal
|
SINT
|
%4d
|
SINT-Variable (Dezimale Darstellung)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.IntDecimal
|
INT
|
%6d
|
INT-Variable (Dezimale Darstellung)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.DintDecimal
|
DINT
|
%12ld
|
DINT-Variable (Dezimale Darstellung)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.UsintDecimal
|
USINT
|
%3u
|
USINT-Variable (Dezimale Darstellung ohne Vorzeichen)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.UintDecimal
|
UINT
|
%5hu
|
UINT-Variable (Dezimale Darstellung ohne Vorzeichen)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.UdintDecimal
|
UDINT
|
%12lu
|
UDINT-Variable (Dezimale Darstellung ohne Vorzeichen)
|
/PLCH/PLC1/GlobalDatalog.DataLog1.RealDecimal
|
REAL
|
%20.4f
|
REAL-Variable (Gleitkomma Darstellung)
|
|