Die Funktion LGF_DataLogC (C -> Compact) integriert alle Funktionen des Datenlog-Systems und kann als eigenständiger Datenlogger verwendet werden.
LGF_DataLogC (FB) | ||||||||
---|---|---|---|---|---|---|---|---|
Bool | enable | valid | Bool | |||||
String | name | busy | Bool | |||||
Bool | triggerLogEntry | error | Bool | |||||
Bool | clearLog | status | Word | |||||
Bool | deleteLog | writeEntryDone | Bool | |||||
LGF_typeDataLogParameter | parameter | clearLogDone | Bool | |||||
deleteLogDone | Bool | |||||||
lastEntryReached | Bool | |||||||
noOfEntries | UDInt | |||||||
diagnostics | LGF_typeDiagnostics | |||||||
Variant | data | Variant | ||||||
Bezeichner | Datentyp | Default Wert | Beschreibung |
---|---|---|---|
enable | Bool | FALSE | TRUE: Aktiviert die Funktionalität des FB |
name | String | 'DefaultDataLog' | Name des Datenlogs, auch als Dateiname verwendet |
triggerLogEntry | Bool | FALSE | Steigende Flanke löst einen Eintrag im Datenlog aus (nur wenn `parameter.isLoggingByInterval` := FALSE) |
clearLog | Bool | FALSE | Steigende Flanke triggert das Löschen der Datenprotokolldatei |
deleteLog | Bool | FALSE | Steigende Flanke löst Löschen der Datenprotokolldatei aus, falls vorhanden |
parameter | LGF_typeDataLogParameter | --- | Dieser UDT gehört zum Module `LGF_DataLogC` und listet alle möglichen Parameter zur Konfiguration des Verhaltens auf. |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
valid | Bool | TRUE: Ausgabewerte am FB gültig |
busy | Bool | TRUE: FB ist aktive und neue Ausgabewerte können erwartet werden. |
error | Bool | FALSE: Kein Fehler / TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten |
status | Word | 16#0000-16#7FFF: Status des FB / 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle) |
writeEntryDone | Bool | TRUE: DataLog-Schreiben erfolgreich durchgeführt |
clearLogDone | Bool | TRUE: DataLog löschen erfolgreich abgeschlossen |
deleteLogDone | Bool | TRUE: DataLog löschen erfolgreich durchgeführt |
lastEntryReached | Bool | TRUE: Letzter Eintrag des Datenprotokolls erreicht, wenn `enableRingBuffer` gesetzt ist, von Anfang an starten, sonst endet der Block hier |
noOfEntries | UDInt | Anzahl der Einträge im Datenprotokoll |
diagnostics | LGF_typeDiagnostics | Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle. |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
data | Variant | Datenstruktur für die Protokollierung in der Datalog-Datei |
Bezeichner | Datentyp | Retain | Beschreibung |
---|---|---|---|
statNoOfEntries | UDInt | ✓ | Anzahl der Einträge im Datenprotokoll |
statLlastEntryReached | Bool | ✓ | TRUE: Letzter Eintrag des Datenprotokolls erreicht, wenn `enableRingBuffer` gesetzt ist, Start von Anfang, sonst endet der Block hier |
Code / Wert | Bezeichner / Beschreibung |
---|---|
16#0000 | STATUS_FINISHED_NO_ERROR KEIN Fehler beim Aufruf aufgetreten / Aktive Bearbeitung |
16#7000 | STATUS_NO_CALL Kein Auftrag wird gerade bearbeitet |
16#7001 | STATUS_FIRST_CALL Erster Aufruf nach Eingang eines neuen Auftrags (steigende Flanke `enable`) |
16#7002 | STATUS_SUBSEQUENT_CALL Nachfolgender Aufruf bei aktiver Verarbeitung ohne weitere Angaben |
16#7010 | STATUS_MAX_ENTRIES_REACHED Maximum Anzahl der Einträge erreicht |
16#8401 | ERR_WRONG_COMMAND_CALL_ORDER Fehler: Falsche Befehlsaufrufreihenfolge - `deleteLog` oder `clearLog` muss beim Starten / Aktivieren des Bausteins FALSE sein |
16#8600 | ERR_UNDEFINED_STATE Fehler aufgrund eines undefinierten Zustands in der Zustandsmaschine |
16#8601 | ERR_DATALOG_OPEN Fehler: `DataLogOpen` führt zu einem Fehler, siehe `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen |
16#8602 | ERR_DATALOG_CREATE Fehler: `DataLogCreate` löst einen Fehler aus, bitte sehen Sie `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen |
16#8603 | ERR_DATALOG_CLOSE Fehler: `DataLogClose` löst einen Fehler aus, bitte sehen Sie `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen |
16#8604 | ERR_DATALOG_WRITE Fehler: `DataLogWrite` löst einen Fehler aus, bitte siehe `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen |
16#8605 | ERR_DATALOG_CLEAR Fehler: `DataLogClear` führt zu einem Fehler, siehe `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen |
16#8605 | ERR_DATALOG_DELETE Fehler: `DataLogDelete` löst einen Fehler aus, bitte sehen Sie `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen |
Dieser UDT gehört zum Module LGF_DataLogC
und listet alle möglichen Parameter zur Konfiguration des Verhaltens auf.
Bezeichner | Datentyp | Default Wert | Beschreibung |
---|---|---|---|
header | String | '' | Überschrift des Datenprotokolls, String aller Datenfelder, getrennt durch einen Komma: "field1,field2,field3,..." |
maxNumberOfEntries | UDInt | 1000 | Maximale Anzahl von Einträgen im Datenprotokoll |
timestampFormat | USInt | 0 | Zeitstempelformat - siehe Handbuch unter "DataLogCreate" für den verwendeten SPS-Typ (S7-1200 oder S7-1500) |
clearOnOpen | Bool | FALSE | Löschen des Datenprotokolls beim Öffnen des Datenprotokolls während der Aktivierung der Sperre |
deleteFile | Bool | FALSE | Beim Löschen des Datenprotokolls auch die Datenprotokolldatei löschen |
enableRingBuffer | Bool | FALSE | TRUE: Überschreibe alte Werte und beginne von vorne, wenn das Datenprotokoll seine maximalen Einträge erreicht FALSE: Stoppe die Aufzeichnung, wenn `maxNumberOfEntries` Einträge erreicht |
loggingByInterval | Bool | FALSE | TRUE: Loggen bei Intervall Zeitparameter FALSE: loggen bei "triggerEntry" |
loggingInterval | Time | T#1M | Zeit für automatisches Logging-Intervall |
Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle.
Bezeichner | Datentyp | Default Wert | Beschreibung |
---|---|---|---|
status | Word | 16#0000 | Status des Bausteins oder Fehleridentifikation beim Auftreten des Fehlers |
subfunctionStatus | Word | 16#0000 | Status oder Rückgabewert von aufgerufenen FB's, FC's und Systembausteinen |
stateNumber | DInt | 0 | Zustand in der Zustandsmaschine des Blocks, in dem der Fehler aufgetreten ist |
Die Funktion LGF_DataLogC
kombiniert die Systemfunktionen zum Erzeugen und Schreiben von Datalogs in einem Baustein.
Der Ablauf sieht vor, dass ein bestehendes Datalog anhand des Namens (name
) geöffnet wird, wurde es zuvor nicht angelegt wird dieses erkannt und die Funktion legt das Datalog an.
Anschließend wird je nach Parametrierung der Datenhaushalt an data
in einem einstellbaren Interval geschrieben oder aber nur auf Anforderung an triggerLogEntry
.
Die Funktionsweise von Datalogs können sie dem Anwenderhandbuch entnehmen:
DataLogCreate
DataLogOpen
DataLogClose
DataLogWrite
DataLogClear
DataLogDelete
Die folgenden Parameter sind nur beim Anlegen eines Datalogs wirksam:
parameter.header
parameter.maxNumberOfEntries
parameter.timestampFormat
(S7-1200 und die S7-1500 unterstützen verschiedenen Formate, siehe dazu im Handbuch DataLogCreate
)isLoggingByInterval
) treten Zeitliche varianzen auf, die durch eine schwankende Zyklus Zeit hervorgerufen werden.parameter.deleteFile
der bei einem löschbefehlt deleteLog
auch die Datei neben den Daten ablöscht.Version & Datum | Änderungsbeschreibung | |
---|---|---|
01.00.00 | Simatic Systems Support | |
19.02.2022 | First released version |