_DataManager

VORSICHT: Ab Version 3.19 wird dieser Datenpunkttyp nicht mehr verwendet, wenn Sie ein SQLite-Projekt verwenden. Für RAIMA-Projekte wird der Datenpunkttyp weiterhin verwendet.

Der Data-Manager (DM) von WinCC OA verwaltet den Datenbestand, der dem Prozessleitsystem zur Verfügung steht. Dieser besteht aus Parametrierdaten sowie der Wertehistorie der Prozessvariablen. Die Wertehistorie wird in chronologisch geordneten Datensätzen abgelegt, was in automatisch vergebenen Verzeichnisnamen deutlich gemacht ist. Beim Übergang zwischen zwei Datensätzen muss gewährleistet sein, dass Daten je nach ihrer Quellzeit dem richtigen Verzeichnis zugewiesen werden.

Je nach Bedarf kann der Data-Manager auf verschiedene Weisen betrieben werden, die etwa höheren Datendurchsatz bei verminderter Datensicherheit ermöglichen oder auch anderen Systemprozessen Zugriff auf die Datenbank erlauben.

Der Knoten Backup, ist für ein Online-Backup der Datenbank erforderlich (siehe Bedienpanels Online-Backup). Details zum Knoten Backup erfahren Sie im Kapitel Parametrierung des Backup.

Datenpunktelement Typ Beschreibung
MultiUserMode.Set bool

Wenn auch andere Prozesse, wie Verdichtungen oder der ASCII-Manager, auf die Datenbank zugreifen sollen, muss der Data-Manager im Multi-User-Modus arbeiten. In dieser Betriebsart läuft der Data-Manager allerdings langsamer als im Single-User-Mode.

Schaltet den Data-Manager in den Multi-User-Modus. TRUE…Multi-User-Mode, FALSE…Single-User-Mode

MultiUserMode.Status bool Enthält die aktuelle Betriebsart des Data-Managers. TRUE…Multi-User-Mode, FALSE…Single-User-Mode
TransactionLogging.Set bool Da Daten nur blockweise in die Datenbank geschrieben werden, kann bei Systemabstürzen ein noch nicht gespeicherter Block verloren gehen und der Datenbestand dadurch beschädigt werden. Durch Transaction-Logging lässt sich eine dauerhafte Beeinträchtigung der Datenbank jedoch verhindern, da der Datenbestand beim nächsten Hochlauf wieder repariert wird. Eingeschaltetes Transaction-Logging hat freilich zur Folge, dass der Data-Manager langsamer arbeitet als ohne. Schaltet Transaction-Logging ein und aus. TRUE…Trans-action-Logging, FALSE…kein Transaction-Logging
TransactionLogging.Status bool Gibt an, ob Transaction-Logging eingeschaltet ist oder nicht. TRUE…Transaction-Logging, FALSE…kein Transaction-Logging
DataSetChange.Start bool

Dient dem Wechsel von Datensätzen der Wertehistorie. Ausgenommen sind jene Datensätze des Datenbestands von WinCC OA , mit Meldedaten. Löst einen Wechsel des Datensatzes aus. TRUE…Datensatzwechsel starten,

FALSE…ohne Funktion

DataSetChange.InProgress bool Gibt an, ob ein Datensatzwechsel läuft oder nicht. TRUE…Datensatzwechsel läuft, FALSE…Datensatzwechsel läuft nicht.
DataSetChange.SwitchTime time Dauer des Datensatzwechsels. Während des Wechsels sind sowohl der alte als auch der neue Datensatz geöffnet. Ankommende Daten werden je nach ihrer Quellzeit in den einen oder anderen Satz geschrieben
AncientDataSet.Written bool Dient der Verwaltung eines Datensatzes für Daten, die in den aktuellen Satz nicht aufgenommen werden können: Daten mögen etwa infolge von Übertragungsverzögerungen so spät eintreffen, dass ihre Quellzeit dem aktuellen Satz nicht mehr zugeordnet werden kann. Damit Daten nicht verloren gehen können, bleibt der Ancient-Datensatz immer geöffnet. Gibt an, ob der Ancient-Datensatz nicht leer ist. TRUE…Ancient-Datensatz nicht leer, FALSE…Ancient-Datensatz leer.
AncientDataSet.Clear bool Setzt das Bit "Written". TRUE…setzt "Written" auf TRUE, FALSE…ohne Funktion.
DataBase.Lock.Request unsigned

Dient der Kommunikation zwischen Data-Manager und Databackground-Manager. Dieser besorgt nicht-zeitkritische Aufgaben wie das Einfügen von Korrekturwerten in die Wertehistorie sowie das Löschen, Auslagern und Wiederherstellen von ganzen Dateisätzen wie von einzelnen Datenpunktelementen der Wertehistorie. Ein Verschicken von Werten der Elemente unter "DataBase" aus anderen Managern bleibt wirkungslos, sie sind also vom Benutzer nicht zu verwenden! Erlaubt dem Databackground-Manager, die Datenbank zu sperren.

Request…int (interner Code)

DataBase.Lock.Response unsigned

Erlaubt dem Databackground-Manager, die Datenbank zu sperren.

Response…int (interner Code)

DataBase.Unlock.Request unsigned

Gibt die Datenbank wieder frei.

Request…int (interner Code)

DataBase.Unlock.Response unsigned

Gibt die Datenbank wieder frei.

Response…int (interner Code)

DataBase.Reopen bool Damit kann die DB geschlossen und neu geöffnet werden (Letztwerte und Glättungen werden neu initialisiert)
DataBase.ArchiveRemoved dyn_dpid Die angegebenen DpIds werden geprüft, ob Letztwert und Korrekturwert im aktuellen Dateisatz sind und - falls nötig - korrigiert.
DataBase.UpdatingFirstValues bool Letztwerte werden neu initialisiert (+Glättungen)
DataBase.Check bool

Die <PROJ_PATH>/log/dbCheck.log-Datei enthält den Datenbank-Check. Der System Datenbank-Check wird nach einem Online-Backup ausgeführt, wenn das Datenpunktelement _DataManager(_2).DataBase.Check auf TRUE gesetzt wurde. Der Data Manager überprüft die Datenbank und schreibt das Ergebnis in die Datei <PROJ_PATH>/log/dbCheck.log.

Die Funktion readDbCheckLogFile() liest die <PROJ_PATH>/log/dbCheck.log-Datei und schreibt das Ergebnis auf die Elemente für jeden Datenbankteil.

"Konfigurationsdatenbank"

_DatabaseState(_2).ConfigurationDB.ErrorCount

_DatabaseState(_2).ConfigurationDB.RecordCount

"alliving Datenbank - anstehende Alarme"

_DatabaseState(_2).alliving.ErrorCount

_DatabaseState(_2).alliving.RecordCount

"aloverflow Datenbank - Alarmarchiv"

_DatabaseState(_2).aloverflow.ErrorCount

_DatabaseState(_2).aloverflow.RecordCount

"Letztwertdatenbank"

_DatabaseState(_2).lastval.ErrorCount

_DatabaseState(_2).lastval.RecordCount

"neuestes Alarmarchiv - al + Nummer"

_DatabaseState(_2).NewestAlertArchive.ErrorCount

_DatabaseState(_2).NewestAlertArchive.RecordCount

Parameter Beschreibung
ErrorCount

Gibt die Anzahl der Fehler im jeweiligen Datenbankteil wieder. Wenn der Wert > 0, wird ein Alarm erzeugt und eine Log-Meldung ausgegeben.

Beispiel:

WCCOAui (1), 2019.09.09 13:48:36.541, SYS, INFO, 54/_errors, Unerwarteter Zustand, Database E:\projects\etm\317_UTF8_at_us_ru\db\wincc_oa\lastval\ValHist has 245 errors

RecordCount

Gibt die maximale Recordanzahl im jeweiligen Datenbankteil wieder. Wenn der Wert > 15.000.000, wird eine Warnung erzeugt und eine Log-Meldung ausgegeben.

Wenn der Wert > 16.777.000, wird ein Alarm erzeugt und eine Log-Meldung ausgegeben.

Beispiel:

WCCOAui (1), 2019.09.09 13:48:36.526, SYS, INFO, 54/_errors, Unerwarteter Zustand, Maxmimum record count almost reached for the database E:\projects\etm\317_UTF8_at_us_ru\db\wincc_oa\lastval\ValHist - current record count: 16612456

Liefert die Prüfung keine Fehler, werden Log-Meldungen ausgegeben:

Beispiel:

WCCOActrl (1), 2019.09.09 13:54:08.275, SYS, INFO, 0, , Database E:\projects\etm\317_UTF8_at_us_ru\db\wincc_oa\ConfHist has no errors

AlertDataSetChange.Start bool Dient dem Wechsel von Datensätzen, die Meldedaten enthalten: Das sind die Daten zu folgenden Attributen der Config "_aler_hdl": _last_of_all, _oldest_ack, _single_ack, _comment, _abbr, _last, _obsolete, _partner, _partn_idx, _prior, _ackable, _ack_type, _ack_user, _ack_time, _ack_state, _direction, _visible, _archive, _inact_ack, _value, _dest. Löst einen Wechsel des Datensatzes aus. true…Datensatzwechsel starten, false…ohne Funktion
AlertDataSetChange.InProgress bool Gibt an, ob ein Datensatz-Wechsel läuft oder nicht. true…Datensatz-Wechsel läuft, false…Datensatz-Wechsel läuft nicht
AlertDaraSetChange.SwitchTime time Dauer des Datensatz-Wechsels. Während des Wechsels sind sowohl der alte als auch der neue Meldedatensatz geöffnet. Ankommende Daten werden je nach ihrer Quellzeit in den einen oder anderen Satz geschrieben.
BgToFgCommunication.RequestLastValues dyn_dpid Dient der Kommunikation zwischen Data-Manager und Databackground-Manager. Das Element ist wie die ihm untergeordneten Elemente vom Benutzer nicht zu verwenden!
BgToFgCommunicationCleanupOverflowDb bool Dient der Kommunikation zwischen Data-Manager und Databackground-Manager.
IdHistory.MinCount int Um den Zugriff auf Daten der Wertehistorie zu beschleunigen, wird jede Wertänderung eines Datenpunktattributes in einer Liste vermerkt. Die Listenänderungen werden jeweils nach einer einstellbaren Zeit aus dem Arbeitsspeicher in die Datenbank übernommen, sofern in dieser Zeit eine festlegbare Anzahl von Änderungen geschehen sind. Die Änderungsliste ist wie gesagt dazu da, um historische Daten im Datenbestand von WinCC OA (etwa mit Hilfe der Control-Funktion dpGetPeriod()) rascher auffinden zu können. Sofern ein Projekt nur wenige hundert Datenpunktelemente umfasst, kann aber auf die Liste verzichtet werden, da sie in diesem Fall zu keiner Leistungssteigerung führt. Die Listenabfrage wird ausgeschaltet, indem die Werte der Elemente "MinCount" und "TimeDiff" (s.u.) null gesetzt werden. MinCount enthält die Anzahl von Attributänderungen, die im eingestellten Zeitintervall erfolgen müssen, damit sie an seinem Ende in die Änderungsliste in der Datenbank übernommen werden. Default-Wert: 5
IdHistory.TimeDiff time Enthält die Zeit zwischen zwei Durchgängen zur Speicherung der Änderungsliste, sofern in diesem Intervall eine minimale Zahl von Attributänderungen stattgefunden haben. Umso größer die Zeiträume sind, über die historische Daten allein abgefragt werden, umso größer kann auch das eingestellte Intervall sein. (Werden nur Abfragen über viele Stunden benötigt, so kann auch das Intervall in der Größenordnung einer Stunde sein.) Default-Wert: zehn Minuten
AlertIdHistory.MinCount int Um den Zugriff auf Daten der Meldehistorie zu beschleunigen, wird jede Wertänderung eines Meldebehandlungsattributes in einer Liste vermerkt. Für diese Liste und das Element "AlertIdHistory" gilt im übrigen sinngemäß, was oben für das Element "IdHistory" bemerkt wurde. vgl. "MinCount" oben unter "IdHistory"
AlertIdHistory.TimeDiff time vgl. "MinCount" oben unter "IdHistory"
DiskSpaceCheck.DiskStatus string Dient der Überprüfung des freien Platzes auf der Harddisk. Dieser freie Bereich wird über einen internen Datenpunkt übermittelt. In Kombination mit Control-Skripts ist es möglich, die Archivierung von bestimmten Datenpunkten ab- und anzuschalten. Weiters kann Datenkompression durchgeführt, Daten auf externe Speichermedien übertragen oder andere Mitteln zur Vermeidung einer vollen Fest-platte angewendet werden. Zusätzlich gibt es noch einen "Notfall-Modus" der den Fall einer vollen Harddisk verhindern soll.
DiskSpaceCheck.EmergencyStopWrite.Command bool Notfall-Modus wenn der Datenträger voll wird. Ermöglicht den Emergencymodus manuell zu steuern. TRUE…Starte Emergencymodus, FALSE…Ende Emergencymodus
DiskSpaceCheck.EmergencyStopWrite.DiskFull bool Zeigt an, ob es einen Datenspeicher mit freiem Speicherplatz unterhalb des Emergency Limit gibt. read-only" TRUE…wenn obige Bedingung erfüllt, sonst FALSE.
DiskSpaceCheck.EmergencyStopWrite.LowMemory bool Zeigt die freien virtuellen Speicher unterhalb des Emergencylimit an. TRUE, wenn Bedingung erfüllte, sonst FALSE.
DiskSpaceCheck.EmergencyStopWrite.Status Write Zeigt Emergency Status des Data-Managers. read-only" TRUE…Emergencymodus, sonst FALSE.
Redundancy.AbortReplica string
Redundancy.ExitReplica string
UseValueArchive bool

Zeigt an ob History DB-Archivierung verwendet wird.

True (Default): History DB wird verwendet.

UseRDBArchive bool

Zeigt an ob RDB-Archivierung verwendet wird.

True (Default): RDB wird verwendet.

UseNextGenArch bool

Zeigt an ob NGA-Archivierung verwendet wird.

True (Default): NGA wird verwendet.

Backup.Command (siehe auch Parametrierung des Backups) int Steuert das Backup
Backup.Status int Status des laufenden bzw. vergangenen Backups
Backup.Timeout int Maximale Zeit, die das Backup dauern darf.
Backup.MemoryKBLimit. int Mindestgröße freien virtuellen Speichers
Backup.MaxBufferedMessages int Max. Anzahl gepufferter Messages
Backup.InputFile.Command string Kommando für WCCOAtoolMedia, immer "backup"
Backup.InputFile.Device string Zielgerät / -verzeichnis
Backup.InputFile.Type string Typ des Backupziels, etwa "FILE", "DAT", ...
Backup.InputFile.Compression bool Wird derzeit ignoriert, immer auf 0 setzen
Backup.InputFile.StartTime time Wählt die Archive aus, die gesichert werden sollen
Backup.UnsavedValArchs bool Mit True werden die nicht ausgelagerten Archivsätze gesichert
Backup.OutpuFile.MasterError int Enthält "0", wenn das Backup erfolgreich war oder einen Fehlercode
Backup.OutoputFile.FileError string Enthält Files mit Fehlercode, bei denen ein Fehler aufgetreten ist