LGF_DataLogC (FB / V1.0.0)

Übersicht

Autor: Siemens Industry Support

Kurzbeschreibung

Die Funktion LGF_DataLogC (C -> Compact) integriert alle Funktionen des Datenlog-Systems und kann als eigenständiger Datenlogger verwendet werden.

Baustein Schnittstelle

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
       
   

Input Parameter

BezeichnerDatentyp Default Wert Beschreibung
enableBool FALSE TRUE: Aktiviert die Funktionalität des FB
nameString 'DefaultDataLog' Name des Datenlogs, auch als Dateiname verwendet
triggerLogEntryBool FALSE Steigende Flanke löst einen Eintrag im Datenlog aus (nur wenn `parameter.isLoggingByInterval` := FALSE)
clearLogBool FALSE Steigende Flanke triggert das Löschen der Datenprotokolldatei
deleteLogBool FALSE Steigende Flanke löst Löschen der Datenprotokolldatei aus, falls vorhanden
parameterLGF_typeDataLogParameter --- Dieser UDT gehört zum Module `LGF_DataLogC` und listet alle möglichen Parameter zur Konfiguration des Verhaltens auf.

Output Parameter

BezeichnerDatentyp Beschreibung
validBool TRUE: Ausgabewerte am FB gültig
busyBool TRUE: FB ist aktive und neue Ausgabewerte können erwartet werden.
errorBool FALSE: Kein Fehler / TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten
statusWord 16#0000-16#7FFF: Status des FB / 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle)
writeEntryDoneBool TRUE: DataLog-Schreiben erfolgreich durchgeführt
clearLogDoneBool TRUE: DataLog löschen erfolgreich abgeschlossen
deleteLogDoneBool TRUE: DataLog löschen erfolgreich durchgeführt
lastEntryReachedBool TRUE: Letzter Eintrag des Datenprotokolls erreicht, wenn `enableRingBuffer` gesetzt ist, von Anfang an starten, sonst endet der Block hier
noOfEntriesUDInt Anzahl der Einträge im Datenprotokoll
diagnosticsLGF_typeDiagnostics Diagnosestruktur zur Speicherung und Übertragung von Diagnoseinformationen von Blöcken über die Schnittstelle.

In/Out Parameter

BezeichnerDatentyp Beschreibung
dataVariant Datenstruktur für die Protokollierung in der Datalog-Datei

Remanente Statische Parameter

BezeichnerDatentyp Retain Beschreibung
statNoOfEntriesUDIntAnzahl der Einträge im Datenprotokoll
statLlastEntryReachedBoolTRUE: Letzter Eintrag des Datenprotokolls erreicht, wenn `enableRingBuffer` gesetzt ist, Start von Anfang, sonst endet der Block hier

Status & Error Meldungen

Code / WertBezeichner / Beschreibung
16#0000STATUS_FINISHED_NO_ERROR
KEIN Fehler beim Aufruf aufgetreten / Aktive Bearbeitung
16#7000STATUS_NO_CALL
Kein Auftrag wird gerade bearbeitet
16#7001STATUS_FIRST_CALL
Erster Aufruf nach Eingang eines neuen Auftrags (steigende Flanke `enable`)
16#7002STATUS_SUBSEQUENT_CALL
Nachfolgender Aufruf bei aktiver Verarbeitung ohne weitere Angaben
16#7010STATUS_MAX_ENTRIES_REACHED
Maximum Anzahl der Einträge erreicht
16#8401ERR_WRONG_COMMAND_CALL_ORDER
Fehler: Falsche Befehlsaufrufreihenfolge - `deleteLog` oder `clearLog` muss beim Starten / Aktivieren des Bausteins FALSE sein
16#8600ERR_UNDEFINED_STATE
Fehler aufgrund eines undefinierten Zustands in der Zustandsmaschine
16#8601ERR_DATALOG_OPEN
Fehler: `DataLogOpen` führt zu einem Fehler, siehe `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen
16#8602ERR_DATALOG_CREATE
Fehler: `DataLogCreate` löst einen Fehler aus, bitte sehen Sie `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen
16#8603ERR_DATALOG_CLOSE
Fehler: `DataLogClose` löst einen Fehler aus, bitte sehen Sie `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen
16#8604ERR_DATALOG_WRITE
Fehler: `DataLogWrite` löst einen Fehler aus, bitte siehe `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen
16#8605ERR_DATALOG_CLEAR
Fehler: `DataLogClear` führt zu einem Fehler, siehe `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen
16#8605ERR_DATALOG_DELETE
Fehler: `DataLogDelete` löst einen Fehler aus, bitte sehen Sie `diagnostics.subFunctionStatus` in der Diagnosestruktur für weitere Informationen

Benutzer definierte Datentypen

LGF_typeDataLogParameter (UDT / V1.0.0)

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

LGF_typeDiagnostics (UDT / V1.0.0)

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

Funktionsbeschreibung

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.


Lies mich

Die Funktionsweise von Datalogs können sie dem Anwenderhandbuch entnehmen:


Achtung

Die folgenden Parameter sind nur beim Anlegen eines Datalogs wirksam:


Achtung
Beim Loggen von Daten per Intervall (isLoggingByInterval) treten Zeitliche varianzen auf, die durch eine schwankende Zyklus Zeit hervorgerufen werden.
Es empfiehlt sich daher die Funktion, neben dem Aufruf im zyklischen Programm, in einem Zeit Interrupt OB aufzurufen und in diesem den Trigger zum Schreiben zu setzen.

Achtung
Ein Datalog welches durch die Funktion gelöscht wird, ohne die Datei zu löschen, kann nicht wieder angelegt werden solange die Datei existiert, sie muss zuerst von Hand im System gelöscht werden.
Beachten Sie hierfür auch den Parameter parameter.deleteFile der bei einem löschbefehlt deleteLog auch die Datei neben den Daten ablöscht.

Änderungshistorie

Version & DatumÄnderungsbeschreibung
01.00.00Simatic Systems Support
19.02.2022First released version