Linie mit VBScript verändern

McLac

Level-1
Beiträge
12
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Ich möchte auf einem MP 277 IWLAN einige Linien darstellen, die
sich abhängig von Variablen verändern.

Leider habe ich festgestellt, dass man die Höhe und die Breite einer
Linie nicht verändern kann. (Nur read-access aber nicht write-access)

Stimmt das, oder mache ich vielleicht einen Fehler? Denn bei Rechtecken funktioniert das ja wunderbar.

Mein Skript sieht so aus:

Dim objLinie
Set obLinie = HmiRuntime.Screens("Screen_1").ScreenItems("Linie_1")

objLinie.Width = SmartTags("Breite")
objLinie.Height = SmartTags("Hoehe")

Wie gesagt, wenn ich das mit einem Rechteck mache funktioniert es.
Die Position der Linie verändern funktioniert auch, mit objLinie.Top und objLinie.Left.

Kann mir jemand weiterhelfen, oder mir vielleicht einen anderen Lösungsweg vorschlagen?

Gruss

McLac
 
Leider habe ich festgestellt, dass man die Höhe und die Breite einer
Linie nicht verändern kann. (Nur read-access aber nicht write-access)

Stimmt das, oder mache ich vielleicht einen Fehler? Denn bei Rechtecken funktioniert das ja wunderbar.

Das stimmt leider, auf die Höhe (Height) und auf die Breite (Width) einer Linie (Line) kann in WinCC flexible nur lesend zugegriffen werden.

Siehe dazu auch die als Anhang beigefügte Liste von Objekten in WinCC flexible mit den Eigenschaften (Attribute) der Objekte sowie der Zugriffart auf die Eigenschaften.

Kann mir jemand weiterhelfen, oder mir vielleicht einen anderen Lösungsweg vorschlagen?

Du könnest statt einer Linie ein Rechteck verwenden. Eine Linie ist ja eigentlich nichts anderes als ein schmales Rechteck.

Gruß Kai
 

Anhänge

  • Object_Attributes_d.pdf
    28,1 KB · Aufrufe: 28
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok danke,
aber wie funktioniert das mit dem Rechteck?
Kann ich dieses auch schräg in der Ebene anordnen?

Ich möchte in meinem Fall eine Linie beliebig in Lage und Länge verändern.
Beim Rechteck kann ich doch nur die Grösse und die Position verändern?

Momentan ist das Skript so geschrieben, dass die Linie aus vielen einzelnen Kreisen erzeugt wird und bei einer Änderung jeweils jeder Kreis neu positioniert wird um die Linie zu bilden.

Diese Methode funktioniert zwar, ist aber auf dem Mobile Panel saumässig langsam => unbrauchbar.
Leuchtet mir irgendwie auch ein, da mehrere hundert Objekte neu positioniert werden müssen.
 
Hallo zusammen

Ich möchte auf einem MP 277 IWLAN einige Linien darstellen, die
sich abhängig von Variablen verändern.

Leider habe ich festgestellt, dass man die Höhe und die Breite einer
Linie nicht verändern kann. (Nur read-access aber nicht write-access)

Stimmt das, oder mache ich vielleicht einen Fehler? Denn bei Rechtecken funktioniert das ja wunderbar.

Mein Skript sieht so aus:

Dim objLinie
Set obLinie = HmiRuntime.Screens("Screen_1").ScreenItems("Linie_1")

objLinie.Width = SmartTags("Breite")
objLinie.Height = SmartTags("Hoehe")

Wie gesagt, wenn ich das mit einem Rechteck mache funktioniert es.
Die Position der Linie verändern funktioniert auch, mit objLinie.Top und objLinie.Left.

Kann mir jemand weiterhelfen, oder mir vielleicht einen anderen Lösungsweg vorschlagen?

Gruss

McLac

Mit dem Problem hab ich mich auch schon rumgeärgert.
Da es bei mir nicht so viele Werte waren, habe ich mir die Linien mit einem Grafikprogramm "gemalt" und als Grafiken gespeichert.
Diese einzelnen Grafiken habe ich dann mit einer Graifkliste umgeschalten.

Gruß
Dieter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Dieter

Genau an diese Lösung habe ich auch schon gedacht.
Nur wenn ich bei meinem Problem die Grafiken in einer einigermassen
guten Auflösung bzw. nahe dem aktuellen Wert haben will, dann werden
es schnell 5000 Grafiken :-(

Nun ja, so wie es aussieht ist WinCC flexible einfach nicht gut geeignet
für Visualisierungen...
 
Zurück
Oben