WinCC Langzeitarchivierung mehrerer Archive

Sralli

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Community,

ich stehe zur Zeit vor dem Problem, dass ich für einen Kunden eine Langzeitarchivierung auf einem TP1200 Comfort mit Wincc Advanced einrichten soll.
Für die Langzeitarchivierung sollen nun zwei Archive genutzt werden, um einen längeren Zeitraum aufzeichnen zu können. Insgesamt handelt es sich dabei um 16 Variablen ( Verteilt auf zwei Archive), welche dynamisch über eine Dropdown-Liste für jede Variable mit verschiedenen Variablen beschaltet werden soll. Dabei bin ich nun auf zwei Probleme gestoßen. Vielleicht könntet ihr mir dabei helfen, da ich im Bereich VB-Skripte selbst noch wenig Erfahrung habe.

Problem 1:
Für die Umsetzung der dynamischen Auswahl, welche Variable in das Archiv geschrieben werden soll, fertige ich ein FB an der je nach übergebener Nummer der Textliste die dementsprechende Variable in ein Dummie legt. Dieser wird vom Archiv aufgezeichnet "bei Auforderung". Die Aufforderung wird durch ein einstellbaren Takt ausgelöst.
Nun bleibt das Problem, dass ich zur Zeit den Wert der Variable aus der Textliste mit speichere um den Namen der ausgewählten Variable nicht zu verlieren. Gibt es dort eine Möglichkeit dies eleganter zu lösen, da es für Bediener aufwendig ist die Variable in einem Trend darzustellen und wieder in ein E/A Feld zu schreiben, um sich in einer Legende den Wert anschließend anzuzeigen.

Problem 2:
Für die Langzeitarchivierung habe ich mich an das Handbuch von Siemens gehalten. Für ein einziges Archiv funktioniert dies auch. Wird allerdings nun ein zweites Langzeitarchiv projektiert gibt es Probleme mit der Archivierung, wenn beide Archive zeitgleich voll werden. Dabei wird nur die Ereignisliste eines Archives ausgelöst und das benötigte Triggerbit zum speichern des zweiten Archiv wird nicht ausgelöst, da das die Ereignisliste des zweiten Archives nicht bearbeitet wird. Nun hängt sich das zweite Archiv auf und löst weder Systemmeldung noch ein Skript aus, wodurch das zweite Archiv nicht weiter beschrieben oder gespeichert wird.


Ich hoffe ihr habt vielleicht Lösungsmöglichkeiten oder Ansätze die ich verfolge könnte.


Mfg
Sralli
 
Hallo Sralli.

Grundsätzliche Verständnisfrage:
Problem 1:
Für die Umsetzung der dynamischen Auswahl, welche Variable in das Archiv geschrieben werden soll, ...
Bei deinem Lösungsansatz wird also immer nur EINE Variable pro Archiv/Trend archiviert, richtig?


Gruß, Fred
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tut mir Leid das habe ich nicht korrekt beschrieben.
Das Ziel ist es in einem Archiv 8 Variablen zu archivieren, die je nach Wunsch beschaltet werden können.
Also zwei Archive mit jeweils 8 variablen, damit diese in einem Diagramm angezeigt werden können.
Wie ich mit Hilfe der Siemenslösung zwei verschiedene Archive wiederherstellen kann ist noch offen, aber dafür muss ich erstmal zwei Stück ohne Probleme archivieren können.

Gruß Sralli
 
Dieser wird vom Archiv aufgezeichnet "bei Auforderung". Die Aufforderung wird durch ein einstellbaren Takt ausgelöst.
Du meinst "Auf Anforderung"? Woher weißt du, wann die Variable aktualisiert wurde? In welchem Takt wird archiviert?

Nun bleibt das Problem, dass ich zur Zeit den Wert der Variable aus der Textliste mit speichere um den Namen der ausgewählten Variable nicht zu verlieren.
Du speicherst nur den numerischen Index-Wert aus der Textliste oder den/einen Variablenname?

"Langzeitarchiv" auf TP1200 Comfort: Wo liegen die Archive? Wie machst du regelmäßige Backups der Archive?
 
Ja genau "Auf Aufforderung". Auf einem Parameterbild kann man für jede Variable eine Aktualisierungszeit einstellen(Kleinste Zeit:1 Sekunde). Diese wird in der PLC eingelesen und mit Hilfe eines Counters ein Togglebit getriggert, welches dann die Variable archiviert.

Ich archiviere den numerischen Indexwert der Textliste. Der Wert wird "Auf Änderung" in das selbe Archiv geschrieben, wie der dazugehörige Prozesswert. Nun kann in einem wiederhergestelltem Trend der Wert ausgelesen und in eine Legende eingetragen werden, damit der wiederhergestellte Prozesswert zuordnungsbar ist. Den Variablennamen habe ich Anfangs in ein String geschrieben um diesen im Archiv abzulegen. Dies lässt allerdings das Archiv nicht zu, weshalb ich den Indexwert speichere.

Die Archive werden auf einer SD-Card gespeichert. Sobald ein Archiv voll ist wird dies in einen Separaten Dateipfad auf der SD-Card geschrieben.
Hierbei habe ich mich an folgende Siemensanleitung gehalten:
Langzeitarchivierung Siemens

Das daraus entstandene Problem ist, wie oben beschrieben. Sobald beide Archive gleichzeitig voll werden wird nur das Ereignis eines Archivs aufgerufen und das andere nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Problem wird sein, dass beim Siemensvorschlag Systemfunktionen und -Meldungen verwendet werden, die ALLE Archive betreffen. Dabei gehen u.U. Archiv-Statusinformationen verloren und das Archivieren wird grundsätzlich kurz unterbrochen.

Vorschlag:
Der Siemens-Weg fußt auf Systemfunktionen, die sich gegenseitig aufrufen (ereignisgesteuert), der ganze Ablauf ist aber ziemlich verteilt. Wenn du die ganze Logik in EIN Skript packen würdest und z.B. Wartezeiten statt Systemmeldungen zur Weiterschaltung der Prozedurschrittkette implementierst, dann solltest du zum Ziel kommen.
Ist zwar nicht unbedingt performance-optimal, aber m.M.n. die einzige Möglichkeit, so etwas wie eine "geschlossene" Prozedur für jedes einzelne Archiv umzusetzen.
 
Zurück
Oben