TIA WinCC V14SP1 Advanced. Kann ein F(x) Kurvenanzeige nicht erstellen.

Beiträge
8.337
Reaktionspunkte
1.902
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.

Ich will ein F(x) Kurvenanzeige einrichten.
Ich will einfach ein Anzahl Punkte innerhalb von ein X/Y-Diagram anzeigen. Die Werte kommen aus der SPS.
Leider kann ich die dazu benötigte Variabeln nicht auswählen.
TIA meldet nur "The specified value is invalid" - kryptisch.
Was mache ich falsch ?

Unten den Dialog in TIA, und die Variabeln.
TIA_fxtrend_trenddatasource.png
TIA_fxtrend_tags.png

Ich habe versucht ob es macht ein Unterschied mit symbolisch vs. absolut Adressierung und mit optimiert vs. nicht optimierte DB.
Aber es macht kein Unterschied.
 
Mit Hilfe von Siemens Support weis ich jetzt wie das F(x) Kurvenanzeige wirklich funktioniert.

Wie ich es eigentlich erwartet habe, das man auf einmal die in den SPS gespeicherte Daten in ein Kurvendiagramm anziegen kann, geht nicht.
Das F(x) Kurvendiagramm ist Zeit-bassiert, deswegen funktioniert es in einer von diese 2 Weisen:
1. Ein Variabel-paar (für die X und Y Koordinaten) wird zyklisch abgefragt, und die Koordinaten wird über die Zeit in das Diagramm aufgezeichnet, bis den angelegte Datenmenge gefüllt ist. Wenn den angelegte Datenmenge gefüllt ist, wird den älteste Punkt in F(x) Kurvenanzeige gelöscht.
2. Die Daten werden in ein Variabel-Archiv abgespeichert. Das F(x) Kurvendiagramm holt die Daten von das Archiv.

Wenn die Daten nicht über die Zeit generiert werden, z.B. wenn es sind gemessene Werte von irgendein Prozess, und man will das die Werte auf einmal von den SPS gelesen und in Diagramm dargestellt werden, dann hat Siemens diese Krücke erfunden:
X/Y-Daten in SPS-Variabeln --> X/Y-Daten in HMI-Variabeln --> Auf Ereigniss (Seitenwechsel oder Tastendruck) per VBS Daten von die HMI-Variabeln in Archiv schreiben --> F(X) kurvenanzeige holt die Daten von Archiv und zeigen sie in das Diagramm.
Umständlich, aber es funktioniert tatsächlich.

Ich habe ein vereinfachte Beispielprojekt erstellt, bassiert auf Siemens etwas mehr aufwendiger Besipielprojekt:
Erstellen einer f(x)-Kurvenanzeige für Comfort Panels und WinCC Runtime Advanced.
Wenn jemand davon interessiert sind, dann einfach hier fragen.

Dies bedeutet auch das jetzt habe ich einen Ersatz für den Activex CsxGraph von Chestysoft.

edit: Ach ja, den obengenannte Verfahren kostet bei WinCC RT Advanced ein Logging Lizenz, wenn man nicht schon ein Lizenz dafür hat.
Ein Vorteil ist, das den Verfahren funktioniert auch mit Comfort Panels.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ähmm...

Ich bin auch grad auf die selbe Weise wie Jesper auf die Nase gefallen.
Ich wollte eigentlich nur mit einen Satz x/y-Werte plotten, dachte ich muss die f(x)-Anzeige einfach mit 2 Arrayvariablen versorgen...

Nein, man muss tatsächlich den Limbo mit dem selbst-erstellten Archiv-File programmieren...
Das kann doch nicht ernsthaft die Lösung sein, oder?
Wer hat sich das denn ausgedacht? :confused:
 
Zuletzt bearbeitet:
Nein, man muss tatsächlich den Limbo mit dem selbst-erstellten Archiv-File programmieren...
Das kann doch nicht ernsthaft die Lösung sein, oder?
Da muss die eierlegende WollMilchSau Federn lassen, die sie nicht hat?

Habe ich das ...
... X/Y-Daten in SPS-Variabeln --> X/Y-Daten in HMI-Variabeln --> Auf Ereigniss (Seitenwechsel oder Tastendruck) per VBS Daten von die HMI-Variabeln in Archiv schreiben --> F(X) kurvenanzeige holt die Daten von Archiv und zeigen sie in das Diagramm. ...
... richtig verstanden, dass man selbst dafür sorgen muss, die Daten von der SPS ins HMI zu schaufeln? Verbirgt sich hinter dem Begriff "Archiv" etwas, das nicht direkt von der SPS beschreibbar ist? Und das HMI bietet eine Funktion an, die nicht ein wie auch immer geartetes "Archiv" in der SPS anzapfen kann?
Hmmm. Mit 'ner WF470 hätten wir das vor 25 Jahren schon hingekriegt - notfalls ein Bisschen "grob-pixelig" mit selbstgestrickten SchachBrettChracters.
 
Habe ich das richtig verstanden,...
(1)...dass man selbst dafür sorgen muss, die Daten von der SPS ins HMI zu schaufeln? ....
(2)...Verbirgt sich hinter dem Begriff "Archiv" etwas, das nicht direkt von der SPS beschreibbar ist? ...
(3)...Und das HMI bietet eine Funktion an, die nicht ein wie auch immer geartetes "Archiv" in der SPS anzapfen kann?...
Ja, ja und ja. Das angesprochene Archiv ist ein gewöhnliches Variablen-Archiv wie es das Panel auch für die Trends generiert. Im einfachsten Fall eine csv auf dem Panel.

(1) - Arrayvariablen von der SPS sind als normale Tags in der HMI angelegt.
(2) - Die f(x)-Anzeige ist im Archiv-Modus und zeigt die Werte ihres zugewiesenen csv-Archivs an.
(3) - Damit man das Archiv von extern bearbeiten kann muss erst mal das Logging global gestoppt werden - keine Trends werden mehr aufgezeichnet.
(4) - Mittels vbs-Skript wird im Panel-Speicher eine neue csv mit passender Struktur erstellt - alle Variablenwerte werden Zeile für Zeile rein-geprinted.
(5) - Logging wird wieder freigeschaltet - Die f(x)-Anzeige aktualisiert die Ansicht mir der "untergejubelten" Archiv-Datei.

Das ist im Endeffekt der Inhalt des von Jesper verlinkten Beispiels und anscheinend die eine Möglichkeit wie man mit WinCC-Advanced-Boardmitteln eine Gruppe von Wertepaaren auf einen nicht zeitbasierten Graphen plotten kann. Oder gibt's da noch anderer Wege?

Wofür ist ein f(x)-Kurvenobjekt gut wenn man es nicht frei mit Werten versorgen kann? Ich hätte einfach nur gerne ne Sollwert-Kurve mit 10 Paaren dargestellt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Besten Dank, lieber RONIN!

Das ist für mich wahrlich kein "normaler Tag", weil Du einem HMI-Laien in nicht alltäglicher Ausführlichkeit und Verständlichkeit die f(x)-Tücken dargestellt hast!
Eine unverschämte Frage habe ich aber noch: was ist ein "normaler Tag" im Sinne von ...
... (1) - Arrayvariablen von der SPS sind als normale Tags in der HMI angelegt. ...
...?

Die f(x)-Variante kann vermutlich mehrere Punkte - ich meine mit verschiedenen y-Werten zum selben x-Wert - darstellen und die f(t)-Variante nicht?
Sonst könnte man vielleicht auch die f(t)-Version überlisten, in der SPS vorliegende DatenPaare darzustellen? Oder sind die minimalen zeitlichen Abstände so gross, dass man freiwillig diesen Weg nicht einschlagen würde? Dem HMI muss man ja nicht unter die Nase binden, dass die angeblichen Zeit-Werte in Wirklichkeit x-Werte sind.

Gruss, Heinileini
 
Die f(x)-Variante kann vermutlich mehrere Punkte - ich meine mit verschiedenen y-Werten zum selben x-Wert - darstellen und die f(t)-Variante nicht?
Man kann mit die f(x)-Kurvendiagram dies machen was nicht geht mit die "normalen" f(t)-Kurvendiagramme:
Ort-Kurven, also wo die Kurven frei innerhalb von die X ynd Y-Achsen liegt (wie ein Wurm).
Streu-Diagramme, also wo es keine fest verbundene linien gibt zwischen die einzelne Punkte.

Sonst könnte man vielleicht auch die f(t)-Version überlisten, in der SPS vorliegende DatenPaare darzustellen?
Näh, kann man nicht. Die Daten werden immer verteilt einer nach der andere auf der X-Achse und mit denselben Abstand. Egal ob der X-Achse den Zeit darstellt oder nicht.
 
Bei WinCC-Flex habe ich früher per Skript X/Y-Koordinaten für Kreis-Objekte berechnet, welche ich dann, per Animation, in ein selbst gezeichnetes Koordinatensystem verschoben habe...

Jetzt dachte ich mir dass ich sowas in der modernen TIA-Welt ohne zwei Seiten Skript machen kann...
Ich dachte eigentlich dass das neue f(x)-Control genau für die Anwendung da wäre.

KurveTrockengut.png
 
Hallo,

stehe vor dem Problem einen Temperaturverlauf grafisch darzustellen (Zeit / Temperatur für die X/Y - Achsen) - natürlich mit WinCC Unified.

Hat das jemand schon einmal gemacht. Oder vielleicht in Flex wo man dann denn Code in JavaScript umsetzen kann.

Vielen Dank für die Mühe
 
Leute, wenn Eure Frage nichts mit dem Thema eines Threads zu tun hat, dann müsst Ihr auch keine alten Threads fleddern, sondern macht bitte ein neues Thema auf.
Temperaturverlauf darstellen hat nichts mit F(x) Kurvenanzeige zu tun
WinCC Unified hat nichts mit WinCC Comfort/Advanced zu tun
WinCC flexible kann kein JavaScript
 
Zurück
Oben