WinCC flex 2008 RT Array archivieren + Kurvenanzeige

Sarek

Level-2
Beiträge
312
Reaktionspunkte
51
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe folgendes vor und weiß nicht ob dies überhaupt realisierbar ist.

System mit bis zu 8 Einzelmessgeräten mit jeweils einer S7-300 mit ETH.

1 übergeordneter PC als "Datensammler" mit WinCC flex 2008 SP2 RT
=> Archivierung auf HDD (ein Archiv je Messgerät)

Was schon funktioniert:
Sobald das Einzelmessgerät ein Teil geprüft hat wird ein "Bit" getoggelt und
das PC-System archiviert auf Anforderung verschiedene Variablen z.B. Prüfergebnis ...

Was jetzt noch schön wäre:
jede Messung besteht aus 200 Realwerten die in einem Array der SPS abgelegt werden. Über eine Kurvenanzeige kann ich bereits mit Kurventyp "Puffer bitgetriggert" und Verweis auf das Array die letzte Messung als Kurve darstellen und Anzeigen.
Ich möchte aber nun für jedes geprüfte Teil die Messwerte archivieren und später über eine mitarchivierte Teilenummer die Kurven für bereits geprüfte Teile anzeigen lassen.

Hab jetzt mehrere Probleme:
Wie kann man ein Array archivieren? Bei Array-Variablen ist die Archivierung "ausgegraut"
Wie könnte man falls die Archivierung möglich ist sich die Daten zurückholen und am PC in einer Kurvenanzeige darstellen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Sarek,
was davon geht und was du definitiv machen kannst ist via Script deine Messwerte (auch das Kurvenarray) abspeichern. Auch das Zurückladen von abgespeicherten Werten ist auf diesem Wege kein Problem. Was ich noch nicht probiert habe (weil es noch nie ein Thema war) ist die zurückgeladenen Werte wieder in die Kurven-Anzeige zu bringen. Es kann sein, dass Flex sich dagegen streubt. Dieses problem könntest du allerdings mit den von Jesper genannten ActiveX umgehen, da dieses die Werte als Werte sieht und unabhängig von irgendwelchen Tigger-Ereignissen behandelt.

Gruß
Larry
 
Es wäre interessant zu wissen ob eine bitgetriggerte und gepufferte Kurvendisplay funktioniert mit eine interne Array Tag.
Wenn ja, dann geht es auch ohne die ActiveX.
Der Handhabung von WinCC Flex eigene Kurvenanzeige ist etwas einfacher als der ActiveX.
Wenn nein, dann sollte es auch gehen. Nur braucht man dann eine Zwisschenpuffer in der SPS wozu man die gespicherte Datenwerte zurücktransferiert.
 
Es wäre interessant zu wissen ob eine bitgetriggerte und gepufferte Kurvendisplay funktioniert mit eine interne Array Tag.
Wenn ja, dann geht es auch ohne die ActiveX.
Der Handhabung von WinCC Flex eigene Kurvenanzeige ist etwas einfacher als der ActiveX.
Wenn nein, dann sollte es auch gehen. Nur braucht man dann eine Zwisschenpuffer in der SPS wozu man die gespicherte Datenwerte zurücktransferiert.

also Kurven bitgetriggert mit internen Array funktioniert leider ncht.
Bleibt also der Umweg die Daten wieder auf die SPS zu schreiben und
dann für die Kurve zurückholen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Sarek,
was davon geht und was du definitiv machen kannst ist via Script deine Messwerte (auch das Kurvenarray) abspeichern. Auch das Zurückladen von abgespeicherten Werten ist auf diesem Wege kein Problem. Was ich noch nicht probiert habe (weil es noch nie ein Thema war) ist die zurückgeladenen Werte wieder in die Kurven-Anzeige zu bringen. Es kann sein, dass Flex sich dagegen streubt. Dieses problem könntest du allerdings mit den von Jesper genannten ActiveX umgehen, da dieses die Werte als Werte sieht und unabhängig von irgendwelchen Tigger-Ereignissen behandelt.

Gruß
Larry

Wie sind am besten die Daten abzuspeichern wenn ich ein Kurvenpaket (Array) aus dem "Archiv", adressiert über eine fortlaufende Nummer zurückspeichern will?
Die Datenmenge ist ja auch nicht unerheblich, bei einem halben kB pro Messung kommen da schnell "zig" MB zusammen.
Also werde ich eine Datenbank brauchen?!?
 
Ich mache derartige Datensicherungen grundsätzlich nicht mit WinCCFlex, sondern sichere die Daten über einen OPC-Server mit einem externen Programm (Delphi oder C#) in eine Datenbank. Damit kann man dann machen was der Kunde so wünscht, Archivierung, Trendanzeige etc. WinCCFlex und das integrierte VBA halte ich nach wie vor für instabil und betrachte es als Risiko. Die Visu nutze ich ausschließlich zur Anzeige der Anlagenzustände und zur Bedienung der Anlage, genau dazu und nur dazu taugt es auch wirklich, alles Andere ist eine Behelfskrücke, die sicherlich auch von finanziellen Überlegungen immer weiter angetrieben wird.
 
Hallo Sarek,
also erstmal hat Ralle natürlich vollkommen Recht - auch ich hatte bei solchem Unterfangen schon große Probleme mit der Konsistenz der Daten - soll heißen : es werden natürlich Daten abgespeichert, aber ob die immer alle zusammengehören ... ?!? Es hat aber funktioniert - ich würde aber bei einer Wiederholung zu einem PC-Programm (in meinem Fall wäre VB2010 der Weg) tendieren, da ich dort die Möglichkeit habe, einen Datenblock als Einheit zu lesen und mein Programm erst fortzusetzen, wenn ich die Einheit sicher habe. Bei mir war es dann auch zusätzlich nicht nur eine f(t) sondern eine f(x) - also etwas, dass aus 2 Kurven zusammengesetzt wird.

Mit Flex würde ich nicht in eine Datenbank schreiben - hier wäre aus meiner Sicht immer Geschwindigkeit gefragt und die kriegst du am ehesten mit dem "guten alten" CSV-Format.
In einem Script kannst du die Array-Elemente indexieren und dann einzeln abspeichern. Das Array würde ich komplett in eine Zeile schreiben und die nächste Kurve dann in die nächste Zeile - also Append.

Das das Ganze in dieser Ausführung enorm Speicher braucht ist fraglos - das gilt aber genauso für eine Datenbank - die würde im Verhältnis möglicherweise so noch mehr Platz brauchen. Du würdest nur beim Re-Visualisieren schneller an die Daten kommen.

Brauchst du konkrete Hilfe für die Erstellung eines solchen Scriptes ?

Gruß
Larry
 
Zurück
Oben