-

Data Logger-Konfiguration

Dieses Thema enthält die folgenden Abschnitte:

Der Data Logger ist eine Dienstkomponente der PLCnext Technology-Firmware. Er kann Daten aus jedem PLCnext IN- und OUT-Port sowie globalen IEC 61131-3-Variablen elementarer Datentypen aufzeichnen. Datenwerte werden aus dem GDS in eine Datensenke übertragen und dort aufgezeichnet und gespeichert. Die Speicherung der aufgezeichneten Daten erfolgt auf der Steuerung. Die Datenbank wird entweder auf die SD-Karte geschrieben oder nicht-remanent im RAM der Steuerung gehalten.

Der Data Logger startet und stoppt automatisch mit dem Starten und Stoppen der Firmware, d.h. der PLCnext Technology-Steuerung.

Das Data Logger Tool ist neben der LOGIKANALYSE eine weitere Möglichkeit zur Aufzeichnung von Daten aus dem laufenden Prozess. Der Unterschied ist, dass zur Verwendung der LOGIKANALYSE PLCnext Engineer verbunden und der Debug-Modus aktiviert sein muss. Der Data Logger führt die Datenaufzeichnung dagegen unabhängig von PLCnext Engineer aus und seine Konfiguration ist nicht volatil.

Sie können mehrere Data Logger-Sessions definieren, wobei jede Session durch einen eindeutigen Namen identifiziert wird.

Die Konfiguration des Data Loggers (bzw. der Sessions) erfolgt wahlweise

Hinweis
Änderungen an der Konfiguration des Data Loggers werden nach dem Neustart der Steuerung wirksam.

Weitere Infos
Weitere Informationen zum Data Logger und zu dessen Konfiguration über XML-Konfigurationsdateien finden Sie im PLCnext Technology-Anwenderhandbuch (Dokumentnummer 109324_de_00), Kapitel "DataLogger".

So konfigurieren Sie den Data Logger in PLCnext Engineer

Um Data Logger Sessions in PLCnext Engineer konfigurieren zu können, müssen folgende Bedingungen erfüllt sein:

Beispielabbildung...

Gehen Sie folgendermaßen vor:

  1. Doppelklicken Sie in der ANLAGE auf den 'PLCnext'-Knoten.
  2. Öffnen Sie den Editor 'Data Logger Sessions'.
  3. Um eine neue Session anzulegen, geben Sie einen neuen Sessionnamen ein (siehe unten stehende Beschreibung der Dialogfelder) und drücken Sie <Eingabe>.

    Die neue Session wird mit Vorgabewerten angelegt (siehe Tabelle unten).

  4. Konfigurieren Sie jede Aufzeichnungssession, indem Sie die Werte in der Tabellenzeile der Session definieren.
    Details zu den Parametern finden Sie im Abschnitt "Konfigurationseinstellungen für den Data Logger".
  5. Fügen Sie die aufzuzeichnenden Ports unterhalb der Session-Tabellenzeile ein, indem Sie in der Spalte 'Name' die gewünschten Elemente auswählen.

    Hinweis
    • Es können nur diejenigen Ports zu einer Session hinzugefügt werden, die im Projekt verwendet werden (d.h. instanziiert sind).
    • Ports lassen sich zu mehreren Sessions hinzufügen.

  6. 'Schreiben und Starten' Sie das Projekt, um die Data Logger-Konfiguration anzuwenden. Wählen Sie dazu im Cockpit oder im Kontextmenü der Steuerung in der ANLAGE den folgenden Befehl:

    Der Data Logger startet die konfigurierten Sessions automatisch nach dem Neustart der PLCnext Technology-Steuerung.

    Für jede definierte Aufzeichnungssession erzeugt PLCnext Engineer eine Konfigurationsdatei pcwe.<Sessionname>.dl.config.
    Auf der Steuerung werden die Konfigurationsdateien im Verzeichnis /opt/plcnext/projects/PCWE/Services/DataLogger/ abgelegt.

Weitere Infos
Die Schritte zur manuellen Konfiguration des Data Loggers mit Hilfe einer XML-Konfigurationsdatei sind im PLCnext Technology-Anwenderhandbuch beschrieben.

Konfigurationseinstellungen für den Data Logger

Für jede Data Logger-Session sind im Editor 'Data Logger Sessions' folgende Konfigurationsparameter zu definieren. Es darf kein Parameter undefiniert bleiben.

ParameterBedeutung
NameIdentifiziert die Data Logger-Session. Der Name muss innerhalb des Projekts eindeutig sein.
Der Name besteht aus normalen Buchstaben und den Zeichen "-", "." und "+". Andere Sonderzeichen sind nicht zulässig.
TypDefiniert den Namen der Datensenke, in der die aufgezeichneten Daten abgelegt werden.
Für jede konfigurierte Data Logger-Session wird eine Datensenke erzeugt.

Mögliche Werte:
  • Datenbank: Die Datensenke ist eine SQLite-Datenbank, die zuerst im Steuerungs-RAM publiziert und dann (gemäß dem Wert des Parameters 'Schreibintervall', s.u.) auf die SD-Karte geschrieben wird.
    So wird eine remanente Log-Datei erzeugt, deren Name vom Sessionname abgeleitet ist. Auf der SD-Karte wird die Datenbank im folgenden Pfad abgelegt:
    /opt/plcnext/logs/datalogger/<LogSessionName>.db.
    Sie können mit Hilfe geeigneter Tools (z.B. WinSCP oder ftp-Tools) auf die Log-Datei zugreifen.
  • TSDB: Die Datensenke ist eine Zeitreihen-Datenbank (Time Series Database, TSDB) auf der Steuerung. In der Zeitreihen-Datenbank werden die Datenwerte der selektierten Ports und Variablen gesammelt und gespeichert.

    In der HMI-Applikation lässt sich das 'Diagramm'-Objekt mit einer TSDB-Data Logger Session verbinden. Basierend auf den in der Data Logger Session aufgezeichneten Werten können Sie in Ihrer HMI-Applikation ein Trend-Diagramm erzeugen und so die Entwicklung der in der Datenbank gespeicherten Datenwerte visualisieren und überwachen.

    Weitere Infos
    Weitere Informationen finden Sie im Thema "'Diagramm'-Objekt".

  • Volatil: Die Datensenke ist nicht-remanent. Sie wird im Steuerungs-RAM publiziert. Die aufgezeichneten Datensätze werden nicht auf die SD-Karte übertragen und beim Ausschalten der Steuerung gelöscht.

    Der Zugriff auf die volatile Datensenke im Steuerungs-RAM ist über PLCnext-Firmware-Funktionen und Remote Service Calls (RSC) möglich. Das RSC Interface ermöglicht die Kommunikation mit PLCnext Core-Komponenten. Über den ServiceManager, der als RSC API fungiert, können Dienste angefordert werden, beispielsweise zum Lesen von Daten aus dem GDS.

    Weitere Informationen finden Sie im PLCnext Technology-Anwenderhandbuch.

Vorgabewert: Datenbank
Abtastintervall (ms)Definiert das Intervall, in dem der Data Logger Werte erfasst. Der Wert 0 bedeutet, die Task-Zykluszeit wird als Intervallzeit verwendet.

Der Wert muss in folgendem Bereich liegen (geben Sie den Wert mit der entsprechenden Einheit ein, z.B. 10ns):
ns: 0 bis 9223372036854775807
µs: 0 bis 9223372036854775807
ms: 0 bis 9223372036854775
s: 0 bis 9223372036854
m: 0 bis 153722867280
h: 0 bis 2562047788

Vorgabewert: 100ms
Publish-Intervall [ms]Definiert das Intervall, in dem Daten aus dem Datenpuffer in die Datensenke geschrieben werden. Beachten Sie, dass das Publishing nicht in Echtzeit erfolgt. Weitere Informationen finden Sie in der nächsten Tabellenzeile.

Der Wert muss in folgendem Bereich liegen (geben Sie den Wert mit der entsprechenden Einheit ein, z.B. 10ns):
ns: 1000 bis 9223372036854775807
µs: 1 bis 9223372036854775807
ms: 1 bis 9223372036854775
s: 1 bis 9223372036854
m: 1 bis 153722867280
h: 1 bis 2562047788

Vorgabewert: 200ms
Pufferkapazität (Zyklen)Bestimmt die Größe des Datenpuffers (Einheit: Anzahl der Zyklen), in dem aufgezeichnete Werte zwischengespeichert werden, bevor sie in die spezifizierte Datensenke geschrieben werden.
Wertebereich: 0 bis 65535
Vorgabewert: 10

Hintergrund: In jedem Zyklus werden alle aufgezeichneten Daten temporär in diesem Ringpuffer zwischengespeichert. Die Kapazität des Ringpuffers bestimmt die maximale Anzahl an Taskzyklen, die aufgezeichnet werden können, bevor die Daten aus dem Puffer in die Datensenke übertragen werden müssen. Der Transfer vom Puffer in die Datensenke wird Publishing genannt.
RolloverDefiniert die Handhabung der Dateien der Datensenke.

  •  aktiviert: Sobald die maximale Dateigröße erreicht ist, wird die Datei geschlossen und mit einer Indexnummer (beginnend bei 0) umbenannt (z.B. <LogSessionName>.db0, <LogSessionName>.db1, usw.). Dann wird eine neue Datei erstellt. Jede Datei mit einem Index ist geschlossen und kann zu Auswertungszwecken kopiert werden. Die aktuellen Daten werden immer in der Datenbank der jeweiligen Session protokolliert.
  •  nicht aktiviert: Wenn die maximale Dateigröße erreicht ist, wird ein konfigurierbarer Anteil der alten Aufzeichnungen gelöscht, bevor die Aufzeichnung fortgesetzt wird. Der Anteil an zu löschenden Daten wird über den Parameter 'Löschverhältnis (%)' festgelegt (siehe unten).
Vorgabewert: nicht aktiviert
SchreibintervallGibt an, wie viele Datensätze in die Datensenke publiziert werden, bevor diese Werte in die Datei auf der SD-Karte geschrieben werden.

Der Parameter ist nur relevant, wenn für 'Typ' der Wert 'Datenbank' eingestellt ist. Vor dem Schließen der Datenbank oder dem Herunterfahren der Steuerung werden alle noch nicht übertragenen aufgezeichneten Werte auf die SD-Karte geschrieben.

Hinweis
Um die Anzahl der Schreibzugriffe auf die SD-Karte so niedrig wie möglich zu halten, ist der Standardwert 1000.
Je niedriger der Schreibintervall-Wert, desto höher ist die Frequenz der Schreibzugriffe auf die SD-Karte. Eine hohe Anzahl an Schreiboperationen kann Performance-Probleme verursachen. Möglicherweise können die Daten nicht mit der erforderlichen Geschwindigkeit auf die SD-Karte geschrieben werden. Dies kann zum Verlust von aufgezeichneten Daten führen.
Sollte ein notwendiges kurzes Schreibintervall zu Performance-Problemen führen, kann es hilfreich sein, die nicht-remanente Datensenke zu nutzen, indem 'Typ = Volatil' gesetzt wird.

Hinweis
Beachten Sie hierzu den Abschnitt "Auswertung der Datenbank auf Datenkonsistenz" unter dieser Tabelle.

Maximale DateigrößeDefiniert die maximale Speichergröße der Protokolldateien in Bytes.
Wertebereich: 16384 bis 150000000 Bytes
Vorgabewert: 5000000

Hinweis
Bei Überschreitung des Wertebereiches wird keine Protokolldatei erzeugt.

Maximale DateianzahlDefiniert die maximale Anzahl an Rolling-Dateien. Der Wert ist nur relevant, wenn das Kontrollkästchen 'Rollover' aktiviert ist.

Wenn die maximale Anzahl an Dateien erreicht ist, wird die älteste Datei gelöscht. Der Dateiindex der geschlossenen Dateien wird weiter gezählt.

Mögliche Werte:
Wertebereich: -1 bis 4294967295
Vorgabewert: -1.

  • 0: Das Verhalten entspricht dem deaktivierten Rollover (Kontrollkästchen nicht markiert).
  • 1: Rollover ist aktiviert. Wenn die maximale Dateigröße erreicht ist, wird ein konfigurierbarer Anteil ('Löschverhältnis') der ältesten Dateien in der Datenbank gelöscht.
  • Ganzzahliger Wert > 1: Anzahl der Rollover-Dateien.
  • Negativer ganzzahliger Wert: Die Begrenzung der Dateianzahl ist deaktiviert. Die Protokollierung wird solange fortgesetzt, bis der Speicher voll ist.

Änderungen speichernDefiniert den Aufzeichnungsmodus.
  •  aktiviert = Aufzeichnung bei Änderung: Der Data Logger zeichnet nur Daten auf, die sich ändern. Bleibt ein Wert konstant, wird NULL in die Datenbank geschrieben.
  •  nicht aktiviert = Endlosmodus: Werte werden kontinuierlich im definierten Intervall aufgezeichnet, unabhängig davon, ob sie sich ändern oder nicht.
Vorgabewert: nicht aktiviert
Löschverhältnis (%)Definiert den prozentualen Anteil der maximalen Speichergröße, der zur Aufzeichnung neuer Daten gelöscht wird, bevor neue Daten in die Datenbank geschrieben werden. Die alten Daten werden gelöscht, sobald der über den Parameter 'Maximale Dateigröße' definierte Wert erreicht ist, sofern das Kontrollkästchen 'Rollover' nicht aktiviert ist.
Wertebereich: 1 bis 100 (ganzzahliger Wert)
Vorgabewert: 30
ZeitstempelformatMögliche Werte:
  • ISO 8601
  • RAW = 64-Bit-Integerwert
Vorgabewert: RAW

Jeder aufgezeichnete Port-/Variablenwert wird mit einem Zeitstempel in der Datenbank gespeichert. Jedes Element desselben Task besitzt denselben Zeitstempel.
Der Zeitstempel wird innerhalb des Taskzyklus erzeugt, basierend auf der Systemzeit der Steuerung. Er wird am Beginn des Task (Task Executing Event) gesetzt und entspricht exakt der Taskzykluszeit. Folglich ist der Zeitstempelwert des folgenden Taskzyklus um eine Zyklusdauer höher.
Die Zeitauflösung hat eine Genauigkeit von 100 ns.

Ungeachtet vom eingestellten Format basieren alle Zeitstempel auf der UTC-Zeitzone. Die Implementierung und interne Repräsentation entspricht der .NET DateTime-Klasse (siehe Dokumentation der DateTime Struct auf https://docs.microsoft.com).
TriggerbedingungDefiniert, ob die Werte im Kontext eines ausgewählten Task abgetastet werden oder nicht.
  •  Aktiviert = Werte werden im Kontext des ausgewählten Task abgetastet.
  •  Deaktiviert = Werte werden in definierten Intervallen abgetastet (siehe Parameter 'Abtastintervall').
Task-KontextDas Feld ist nur aktiv, wenn das Kontrollkästchen 'Triggerbedingung' markiert ist.

Wählen Sie aus der Dropdownliste den Task, in dem das Abtasten der Werte erfolgen soll. Die Dropdownliste enthält alle verfügbaren Tasktypen.
Der Task bestimmt die Aktualisierungsrate für die Werteaufzeichnung. Die Werte der Subscriptionliste werden jeweils nach dem Zyklus des gewählten Task gelesen. Die Eigenschaften des eingestellten Task beeinflussen die Data Logger Session, da die Subscription-Rate von der Zykluszeit des Synchronisierungstask abhängt. Falls Sie einen 'Idle'-Task ausgewählt haben, sind die visualisierten Werte möglicherweise nicht exakt, da die Zykluszeit des 'Idle'-Task variieren kann (abhängig von den anderen Anwendertasks auf der Steuerung). Ein 'Event Task' wird unter Umständen nicht zyklisch ausgeführt, je nach definiertem Event.
Vor-ZyklenDas Feld ist nur aktiv, wenn das Kontrollkästchen 'Triggerbedingung' markiert ist.

Gibt die Anzahl der Abtastzyklen an, die vor dem Triggerereignis aufgezeichnet werden (voreingestellter Wert = 10 ms). Sobald das Triggerereignis auftritt, werden die während der "Vor-Triggerzyklen" aufgezeichneten Daten gespeichert.
Nach-ZyklenDas Feld ist nur aktiv, wenn das Kontrollkästchen 'Triggerbedingung' markiert ist.

Gibt die Anzahl der Abtastzyklen an, die nach dem Triggerereignis aufgezeichnet werden (voreingestellter Wert = 10 ms). Nachdem das Triggerereignis auftrat, wird die Datenaufzeichnung für die Anzahl der hier definierten "Nach-Triggerzyklen" fortgesetzt. Wenn diese Anzahl erreicht ist, wird die Session automatisch gestoppt.
Operand 1
und
Operand 2
Das Feld ist nur aktiv, wenn das Kontrollkästchen 'Triggerbedingung' markiert ist.

Variable oder Port, die bzw. der als Triggerbedingung verwendet wird.

Je nach gewählter Operation müssen ein oder zwei Operanden definiert werden.

Öffnen Sie die Dropdownliste und wählen Sie einen Operanden aus (die Dropdownliste enthält nur Datenelemente mit passendem Datentyp, gemäß der ausgewählten 'Operation' an). Um eine Konstante als Operanden zu verwenden, geben Sie einen numerischen oder Booleschen Wert (FALSE oder TRUE) ein.
OperationDas Feld ist nur aktiv, wenn das Kontrollkästchen 'Triggerbedingung' markiert ist.

Wählen Sie eine 'Operation' aus der Dropdownliste.
Je nach gewählter Operation müssen ein oder zwei 'Operanden' definiert werden.

Auswertung der Datenbank auf Datenkonsistenz

Sie können die Konsistenz der aufgezeichneten Daten überwachen, indem Sie das Datenbank-Flag ConsistentDataSeries auswerten.

Hintergrund: Unvollständige Datenaufzeichnungen (z.B. wegen Performance-Problemen oder eines Speicherüberlaufs) werden in der Datenbankspalte ConsistentDataSeries angezeigt: