TIA Probleme F(x) - Kurvenanzeige

Lagermeister

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

ich verfolge schon seit Jahren all eure Beiträge, welche mir schon sehr oft geholfen haben, jedoch stehe ich aktuell vor einer Aufgabe, zu der ich im Internet nichts bzw. nicht das Richtige finden konnte.

S7 1515
TP900 Comfort

Ich möchte am Panel ein Kraft/Wege-Verlauf eines Einpressvorgangs anzeigen. Ich habe jeweils für Kraft als auch Weg ein Array mit 200 Werten angelegt und an das HMI übergeben. Per Skript lege ich die 200 Werte der beiden Arrays in ein Umlaufarchiv als CSV-Datei auf eine SD-Karte ab. Von dort werden die Werte dann in die F(x) - Kurvenanzeige geladen. Funktioniert soweit auch einwandfrei, jetzt zu meinem Problem. Die Anlage soll eine Taktzeit von ca. einer Sekunde bekommen. Das Öffnen der CSV als auch das Umlegen der Archivvariablen auf die Kurvenanzeige dauert mit ca. 1-2 Sekunden einfach zu lange. Gibt es eine Möglichkeit die Arrays nicht ablegen zu müssen bzw. direkt mit ihnen zu arbeiten? Da mir der Siemens Support auch nicht weiterhelfen konnte, wäre ich sehr dankbar über eure Hilfe.

Gruß Andreas
 
Hallo Andreas,

ich kann im Moment nur aus dem Kopf arbeiten (Corona Kurzarbeit), deshalb bin ich nicht sicher ob das auch bei F(x) Kurven funktioniert:

Schau Die mal Bitgetriggerte Kurven / Kurvenanforderung / Kurvenübertragungsbereich 1/2 an.

Evtl. funktioniert das aus bei F(x), dann brauchst Du keine csv Dateien und bist schneller.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Peter,

vorab schon einmal vielen Dank für deine Hilfe. Ich weiß leider auch nicht wie lange es bei uns noch geht. Hoffentlich zieht es sich nicht so lange hin.

Die von dir beschriebenen Daten gibt es meines Wissens leider nur bei normalen Kurvenanzeigen. An den Einsatz einer normalen Kurvenanzeige habe ich auch schon gedacht, jedoch bringe ich dort die von der Kraft abhängigen Weg-Werte nicht auf die X-Achse. Bei der F(x) Kurvenanzeige kann ich als Datenquelle leider nur Archivvariablen oder Variablen jeweils als X und Y Wert anzeigen lassen. Bei den Archivvariablen wird direkt auf die abgelegten X und Y Werte zugegriffen, ohne Zeitversatz, sobald ich das Archiv wieder freigebe. Stelle ich als Datenquelle eine Variable ein, so kann diese minimal im 100ms Takt aktualisiert werden, da dauern 200 Werte eine Ewigkeit. Ich hab dir einen kleinen Screenshot-Auszug hinzugefügt, da sieht man ein wenig besser was ich meine.

Ich hab im Internet einen Skriptauszug gefunden, welcher die Daten direkt in die F(x)-Kurvenanzeige schreibt, jedoch verstehe ich noch nicht ganz, ob dieser Fall für mich umsetzbar ist bzw. wie ich die Datenquelle in der Anzeige projektieren muss.

Dim lngIndex

Dim dblAxisX(100)

Dim dblAxisY(100)

Dim objTrendControl

Dim objTrend

Set objTrendControl = ScreenItems("Control1")

Set objTrend = objTrendControl.GetTrend("Trend 1")

For lngIndex = 0 To 100

dblAxisX(lngIndex) = CDbl(lngIndex * 0.8)

dblAxisY(lngIndex) = CDbl(lngIndex)

Next

objTrend.InsertData dblAxisX, dblAxisY

Vielen Dank für die Hilfe!

Aktuelle Einstellung.jpgEinstellung Variable.jpgArchiv.jpg
 
Willst du tatsächlich eine kompletten f(x) Kurvenanzeige jeden sekunde aktualisieren ? Da hast man ja kein Zeit was zu sehen wenn es jede Sekunde erneut werden.

Oder meinst du, das nur den letzte Wert soll jeden Sekunde auf den Kurvenanzeige hinzugefügt werden ? Also einen Aufzeichnung in real-Zeit ?
 
Hallo Andreas,

  • muss das Archiv im csv Format sein? (Wandlungsaufwand (Zeit) zu csv)
    evtl. 2. Archiv anlegen
  • Wenn das script für siemens panel ist, wird es wahrscheinlich funktionieren.
  • im schlimmsten Fall:
    2 normalen Kurven genau übereinander positionieren (mit Wechselpuffer Kurvenanforderung)
    1 * Zeit / Kraft
    1* Zeit / Weg



 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Jesper und Peter,

Zu Jesper:
Normalerweise verwenden wir bei Kraft/Wege-Messungen die Kraftmessdose als auch das Auswertegerät mit Display vom Hersteller selbst, dort wird nach Ende der Messung sofort der Trend angezeigt, wenn auch nur sehr kurz. Unser neuer Kunde möchte dieses Auswertegerät mit Display jedoch nicht. Er möchte alles per Profinet eingebunden haben und an unserem HMI anzeigen. Eine Real-Time Aufzeichnung würde mir auch schon weiterhelfen, jedoch habe ich da Probleme den aktuellen Weg auf die X-Achse zu bringen und wie ich gesehen habe kann nur alle 100ms in die F(x)-Kurvenanzeige geschrieben werden.

Zu Peter:
Dein Vorschlag mit den zwei Archiven hat keine erhebliche Verbesserung gebracht.
Kannst du mir bitte deine Variation mit den zwei normalen Kurven nochmals genauer erklären?

Was auch etwas komisch ist, dass ich nach jedem neuen Laden des Archives in die F(x)-Kurvenanzeige das Bild neu aktivieren muss.

Vielen Dank für die Hilfe!

Gruß
Andreas
 
Ich denke es geht einfach nicht.
Mit die komplette Kurvenaufzeichnung über Archivdaten und VBS wird es nie "schnell" sein.
Schade das Siemens etwas so einfaches wie ein X/Y Kurvenaufzeichnung so schlecht gelöst hat.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Peter und Jesper,

vorab schon einmal vielen Dank für die Hilfe.

Zu Peter:

Es sollen in der Kurvenanzeige gewisse Fenster eingetragen werden, welche ein Gutteil oder Schlechtteil selektieren, daher kann ich deine Lösung leider nicht verwenden.

Zu Jesper:

Da bin ich voll bei dir! Es wäre ja nicht so als ob es WinCC erst seit gestern gibt.

Zwei letzte Frage habe ich noch, ich hatte in einem der obrigen Beiträge mal einen Skriptauszug geschickt, in welchem über Gettrend auf die F(x)-Kurvenanzeige zugegriffen wird und per Insertdata die Arrays in die Kurvenanzeige geladen wird. Ich denke jedoch das diese Version nur in WinCC Professional funktioniert, kann das sein?

Dim lngIndex

Dim dblAxisX(100)

Dim dblAxisY(100)

Dim objTrendControl

Dim objTrend

Set objTrendControl = ScreenItems("Control1")

Set objTrend = objTrendControl.GetTrend("Trend 1")

For lngIndex = 0 To 100

dblAxisX(lngIndex) = CDbl(lngIndex * 0.:cool:

dblAxisY(lngIndex) = CDbl(lngIndex)

Next

objTrend.InsertData dblAxisX, dblAxisY

Und meine zweite Frage wäre noch, warum ich nach jedem Laden der Archivvariablen in die F(x)-Kurvenanzeige das Bild neu aktivieren muss, gibt es keinen Skriptbefehl, welcher den Trend aktualisiert?

Vielen Dank!

Gruß
Andreas
 
Zurück
Oben