# Anlegen und Verwalten von Backup-Dateien

## Daten protokollieren

Im NC-Programm kann der Anwender mit #MSG SAVE […] Texte in eine Datei schreiben. Hierbei werden neue Daten an die Datei angehängt, wodurch die Dateigröße stetig ansteigt.

## Größe und Anzahl der Protokolldateien festlegen

Um die Größe und den Zugriff bei grösser werdenden Dateien zu kontrollieren, kann der Anwender die maximale Anzahl der Zeilen der Datei beschränken. Wird diese maximale Größe erreicht, so wird automatisch ein Backup der Datei angelegt und die ursprüngliche Datei gelöscht.

Für die Verfolgung des zeitlichen Verlaufs der Dateiänderung können mehrere Backups (Protokolldateien) gespeichert werden. Der Anwender kann dazu die maximale Anzahl der Backups definieren. Ist die maximale Anzahl der Backupdateien erreicht, so wird die älteste Backupdatei verworfen.

Die Größe und die Anzahl der Backupdateien wird mit dem Befehl #FILE NAME […] festgelegt und bezieht sich auf die Datei, in die mit #MSG SAVE geschrieben wird:

Syntax:
#FILE NAME [ BACKUP_LINES_MAX=.. BACKUP_COUNT_MAX=.. ]
BACKUP_LINES_MAX=.. | Anzahl der Zeilen in der Datei seit Steuerungshochlauf. Wird diese überschritten, so wird ein Backup angelegt. Dies gilt für die mit <Anzahl> zuletzt programmierten Dateien.
BACKUP_COUNT_MAX=.. | Maximale Anzahl der parallel gehaltenen Backups. Ist beim Anlegen eines neuen Backups die maximale Anzahl erreicht, so wird das älteste Backup überschrieben.

Abb.: Schema der Backupfunktion
Abb.: Anlegen der Backupdateien

## Aktivieren und Deaktivieren der Backupfunktion

Die Backupfunktion wird bei Angabe einer maximalen Zeilenanzahl > 0 und einer maximalen Dateianzahl > 0 aktiviert.

Die Deaktivierung erfolgt, wenn einer dieser Parameter mit 0 programmiert wird oder keiner dieser Parameter programmiert wird oder bei Programmende M30.

## Hinweis

Aktuell entspricht die maximale Zeilenanzahl der Anzahl der Schreibzugriffe per #MSG SAVE -Befehl. D.h. es wird nicht die tatsächliche Zahl der Zeilen ermittelt. Insbesondere, wenn eine mehrzeilige Message geschrieben wird, ergibt sich hier ein Unterschied.

Der Originalname der Backupdatei wird über #FILE NAME [MSG=<name>] angegeben. Der Name der Backups setzt sich aus diesem Originalnamen, der Zählnummer <nr> und der Dateierweiterung .bak zusammen.

Beispiel: | Test.log (Originaldatei)
| Test1.bak, Test2.bak, Test3.bak, usw.

## Verhalten bei Steuerungsneustart

Beim Start der Steuerung können Backupdateien bereits vorhanden sein. Beim ersten Anlegen eines neuen Backups erfolgt keine Prüfung, welches Backup das älteste ist. D.h. nach Steuerungsstart wird ein neues Backup immer ab 1 angefangen.

## Hinweis

Das Löschen eines Backups findet nur statt, wenn dies beim Anlegen eines neuen Backups erforderlich ist.

Beim Start der Steuerung, der Definition des Backupverhaltens über den NC-Befehl, im Fehlerfall oder bei NC-Reset wird kein Backup automatisch gelöscht!

Der Name der letzten Backupdatei sowie die aktuelle Zeile werden gespeichert. Somit kann bei erneuter Aktivierung der Backupfunktion immer auf dem aktuellen Stand aufgesetzt werden. Ein Löschen dieser Daten findet nur bei Steuerungsneustart statt. Alle anderen Werte für zuvor programmierte Dateinamen werden verworfen.