Data Logger-Konfiguration
Dieses Thema enthält die folgenden Abschnitte:
- So konfigurieren Sie den Data Logger in PLCnext Engineer
- Konfigurationseinstellungen für den Data Logger
- Auswertung der Datenbank auf Datenkonsistenz
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- durch den 'Data Logger Sessions'-Editor in PLCnext Engineer, oder
- manuell mit Hilfe von XML-Konfigurationsdateien.
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:- Die Steuerung darf verbunden sein oder nicht.
- Die Steuerung darf nicht laufen. (Während das Applikationsprogramm ausgeführt wird, kann der Editor 'Data Logger Sessions' nicht bearbeitet werden.
Gehen Sie folgendermaßen vor:
- Doppelklicken Sie in der ANLAGE auf den 'PLCnext'-Knoten.
- Öffnen Sie den Editor 'Data Logger Sessions'.
- 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).
- 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". - 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.
- '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.
Parameter | Bedeutung | ||
---|---|---|---|
Name | Identifiziert 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. |
||
Typ | Definiert 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:
|
||
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 2562047788Vorgabewert: 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 2562047788Vorgabewert: 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: 10Hintergrund: 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. |
||
Rollover | Definiert die Handhabung der Dateien der Datensenke.
|
||
Schreibintervall | Gibt 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.
|
||
Maximale Dateigröße | Definiert die maximale Speichergröße der Protokolldateien in Bytes. Wertebereich: 16384 bis 150000000 Bytes Vorgabewert: 5000000
|
||
Maximale Dateianzahl | Definiert 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.
|
||
Änderungen speichern | Definiert den Aufzeichnungsmodus.
|
||
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 |
||
Zeitstempelformat | Mögliche Werte:
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). |
||
Triggerbedingung | Definiert, ob die Werte im Kontext eines ausgewählten Task abgetastet werden oder nicht. | ||
Task-Kontext | Das 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-Zyklen | Das 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-Zyklen | Das 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. | ||
Operation | Das 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:- ConsistentDataSeries = 0 zeigt an, dass bei der Aufzeichnung der vorhergehenden Datenreihe eine Lücke besteht. Die erste Datenreihe hat immer den Wert 0, da keine vorhergehende Reihe als Referenz vorhanden ist.
- ConsistentDataSeries = 1 zeigt an, dass die Aufzeichnung im Verhältnis zur vorhergehenden Datenreihe lückenlos ist. Die Datenreihe ist konsistent zur vorgehenden Reihe.