Verwaltung von Datenprotokolldateien
Der Funktionsbaustein LogRecord ermöglicht das Schreiben von Textzeichenfolgen in die Datenprotokolldatei. Dieser Funktionsbaustein speichert die Eingangszeichenfolge in einem internen Puffer. Wenn dieser Puffer zu 80 % ausgelastet ist, wird er in die Real-Datei in der Steuerung verschoben. Dieser Speichervorgang kann mit dem Funktionsbaustein Dump erzwungen werden.
Im Fall einer Unterbrechung der Spannungsversorgung gehen möglicherweise die im internen Puffer gespeicherten Daten verloren, oder die Zykluszeit bis zum Leeren des Puffers wird verlängert.
HINWEIS |
DATENVERLUST |
oDie Spannungsversorgung der Steuerung sollte nicht unterbrochen werden, bevor die im internen Puffer gespeicherten Daten in das aktuelle Dateisystem übertragen wurden. oWenn die aufgezeichneten Daten für Ihre Anwendung besonders wichtig sind, müssen Sie die interne Puffergröße mit dem Wert 1 konfigurieren. |
Die Nichtbeachtung dieser Anweisungen kann Sachschäden zur Folge haben. |
Hinzufügen eines Datensatzes mit dem Funktionsbaustein LogRecord
Mit diesem Funktionsbaustein kann eine UNICODE-Zeichenfolge in einem bestimmten Protokoll aufgezeichnet werden.
Eingangsparameter
Parameter |
Typ |
Kommentar |
---|---|---|
xExecute |
BOOL |
Die Funktion wird an der steigenden Flanke dieses Eingangs ausgeführt. HINWEIS: Wenn xExecute beim ersten Durchlauf einer Task in RUN nach einem Kalt- oder Warm-Reset auf TRUE gesetzt wird, wird die steigende Flanke nicht erkannt. |
wsRecord |
WSTRING |
Die benutzerdefinierte UNICODE-Textzeichenfolge wird in die Datenprotokolldatei geschrieben. HINWEIS: Der Typ WSTRING ist in der Bibliothek Standard64.lib verfügbar. Diese wird automatisch eingefügt, wenn der Anwendung der Datenprotokollmanager hinzugefügt wird. |
Ausgangsparameter
Parameter |
Typ |
Kommentar |
---|---|---|
xDone |
BOOL |
Dieser Ausgang wird auf TRUE gesetzt, wenn der Datensatz erfolgreich und ohne Fehlermeldungen im internen Puffer gespeichert wurde. |
xBusy |
BOOL |
Der Ausgang bleibt TRUE, solange LogRecord aktiv ist (d. h. bis die Übertragung in den Puffer abgeschlossen ist). |
xError |
BOOL |
Dieser Ausgang wird auf TRUE gesetzt, wenn ein Fehler auftritt (z. B. wenn der interne Puffer voll ist). |
eError |
Dieser Ausgang enthält den Fehlercode, wenn xError TRUE ist: oNO_ERROR oINIT_ERROR oDUMP_ERROR oBUFFER_FULL_ERROR oFILE_FULL_ERROR oDUMP_INCOMPLETED oINPUT_ERROR oFILE_OPEN_ERROR oFILE_SETPOINTER_ERROR oFILE_WRITE_ERROR oFILE_CLOSE_ERROR |
HINWEIS: Wenn der Datensatz die konfigurierte Länge überschreitet, wird er abgeschnitten.
Die Ausgänge xDone und xError bleiben TRUE, solange xExecute TRUE ist. Wenn xExecute auf FALSE gesetzt wird, bevor xDone oder xError auf TRUE gesetzt wird (xBusy ist weiterhin TRUE), wird eines von beiden Elementen auf TRUE gesetzt, wenn der Funktionsbaustein während eines Steuerungszyklus abgeschlossen wird, sodass die Anwendung Folgendes erkennt:
1 Ein Zyklus als Ex ist FALSE.
Der Funktionsbaustein LogRecord enthält eine Instanz, die jeder einzelnen konfigurierten Datenprotokolldatei entspricht.
HINWEIS: Deklarieren Sie keine Instanz des Funktionsbausteins explizit, da die Instanz automatisch deklariert wird. Wenn Sie eine Instanz des Funktionsbausteins explizit deklarieren, wird eine Meldung (2 time variable declaration) angezeigt und der Funktionsbaustein ist betriebsunfähig.
Fügen Sie Ihrer POU den Funktionsbaustein hinzu und geben Sie mit der Eingabehilfe die entsprechende Datenprotokolldatei-Instanz an (siehe Hinzufügen von LogRecord).
Forcieren eines Slaves mit der Dump-Methode
Mit der Dump-Methode (eine Methode kann als Unterfunktion eines Funktionsbausteins betrachtet werden, in diesem Fall LogRecord) können Sie die Anwendungsdaten forcieren, um die im internen Puffer gespeicherten Datensätze in die Real-Datei im Dateisystem der Steuerung zu verschieben:
Parameter
Eingang |
Typ |
Kommentar |
---|---|---|
xExecute |
BOOL |
Die Speicherfunktion wird an der steigenden Flanke dieses Eingangs ausgeführt. HINWEIS: Wenn xExecute beim ersten Taskzyklus der Steuerung auf 1 gesetzt ist, wird die steigende Flanke nicht erkannt. |
Ausgang |
Typ |
Kommentar |
---|---|---|
xDone |
BOOL |
Dieser Ausgang wird auf TRUE gesetzt, wenn die Datensätze erfolgreich und ohne Fehlermeldungen gespeichert wurden. |
xBusy |
BOOL |
Der Ausgang bleibt auf TRUE, solange Dump aktiv ist (d. h. bis die Datei vollständig geschrieben wurde). |
xError |
BOOL |
Dieser Ausgang wird auf TRUE gesetzt, wenn ein Fehler erkannt wird (beispielsweise wenn die Datenprotokolldatei voll ist). |
eError |
Dieser Ausgang enthält den Fehlercode, wenn xError TRUE ist: oNO_ERROR oINIT_ERROR oDUMP_ERROR oBUFFER_FULL_ERROR oFILE_FULL_ERROR oDUMP_INCOMPLETED oINPUT_ERROR oFILE_OPEN_ERROR oFILE_SETPOINTER_ERROR oFILE_WRITE_ERROR oFILE_CLOSE_ERROR |
Siehe Hinzufügen einer Dump-Methode für Informationen zur Implementierung der Dump-Methode.
Automatisches Speichern in der Datenprotokolldatei
Bei Verwendung des Funktionsbausteins LogRecord verschiebt das System die Daten des internen Puffers automatisch in die Datenprotokolldatei, wenn der Puffer zu 80 % ausgelastet ist. Mit dem Funktionsbaustein Dump können Sie diesen Vorgang forcieren, bevor eine 80%-ige Auslastung erreicht ist. Dieser 80%-Grenzwert wurde gewählt, damit der Schreibvorgang beginnen kann, bevor der Puffer voll ist und während ein neuer Datensatz hinzugefügt wird.
In der nachstehenden Tabelle ist die Anzahl der Datensätze aufgeführt, in der die Datei bei einer bestimmten Puffergröße gespeichert wird (80 % der Puffergröße wird auf die nächste Ganzzahl abgerundet):
Puffergröße |
80%-Grenzwert |
Kommentar |
---|---|---|
1 |
1 |
Die Speicherung in der Datenprotokolldatei wird aktiviert, sobald ein Datensatz hinzugefügt wird (es ist eine zusätzliche Position für einen neuen Datensatz verfügbar, der während der Speicherung eintrifft). |
2 |
1 |
Die Speicherung in der Datenprotokolldatei wird aktiviert, sobald der Puffer zu 80 % ausgelastet ist (es ist eine zusätzliche Position für einen neuen Datensatz verfügbar, der während der Speicherung eintrifft). |
3 |
2 |
|
4 |
3 |
|
5 |
4 |
Die Speicherung in der Datenprotokolldatei wird aktiviert, sobald der Puffer zu 80 % ausgelastet ist (es sind zusätzliche Positionen für neue Datensätze verfügbar, die während der Speicherung eintreffen). |
6 |
4 |
|
7 |
5 |
|
8 |
6 |
|
... |
|
Im Falle einer expliziten (Dump) oder automatischen Speicherung (80 %) wird die Datenprotokolldatei für den Fall eines externen Stromausfalls nach jedem Datensatz (oder jeder Datensatzgruppe) geschlossen.