Kann man mit VB die Eigenschaften eines Objektes auslesen?

sunny79

Level-1
Beiträge
30
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich versuche mich gerade bei WinCC mit VB auseinanderzusetzen.
Dabei hab ich ein Objekt bei dem die Eigenschaften z.B. mit einem DynamikDialog oder einem Skript dynamisiert sind.
Hab ich eine Möglichkeit diese Informationen auszulesen um sie dann abzuändern?

Vielen Dank im Voraus
 
Grundsätzlich kannst du in WinCC alles mit C oder VB dynamisieren. Sprich auch irgendlwelche Attribute ändern. Gibt es was spezielles? Einfacher finde ich es in C. Gibt glaub ich auch mehr möglichkeiten als in VB. Kann mich aber auch täuschen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe z.B. ein Anwenderobjekt. Um dort die Parametrierung zu ändern
kann man das natürlich über umverdrahten machen.
Nun habe ich einen neuen Menüpunkt mit VB im Graphics Designer eingefügt. Wenn man dort dann draufdrückt, möchte ich genau die Sachen
verändern, die beim Umverdrahten auch geändert werden.
Da ich dazu nichts gefunden habe.
Wäre eine andere Möglichkeit alle Eigenschaften und Ergeignisse eines Anwenderobjektes auslesen und diese dann zu verändern.
Dazu habe ich leider auch nichts gefunden.
 
Ich habe z.B. ein Anwenderobjekt. Um dort die Parametrierung zu ändern
kann man das natürlich über umverdrahten machen.
Nun habe ich einen neuen Menüpunkt mit VB im Graphics Designer eingefügt. Wenn man dort dann draufdrückt, möchte ich genau die Sachen
verändern, die beim Umverdrahten auch geändert werden.
Da ich dazu nichts gefunden habe.
Wäre eine andere Möglichkeit alle Eigenschaften und Ergeignisse eines Anwenderobjektes auslesen und diese dann zu verändern.
Dazu habe ich leider auch nichts gefunden.

hallo sunny79,

ob umverdrahten mit VBA geht, weiss ich nicht. Was aber auf alle Fälle funzt ist, per Script die Eigenschaften zu belegen. Haben wir auch schon gemacht. Gibt hierfür glaube ich auch in der Hilfe zu WinCC ein Beispiel. C wird nicht gehen, da C nur während der Runtime aktiv ist. Du benötigst daher VBA im Graphics Designer.

Gruß Schumi91
 
Hallo Schumi91,

ich habe leider kein Beispiel gefunden, bei dem man mit VBA eine Eigenschaft die z.B. einen DynamicDialog hat oder ein C-Skript besitzt auszulesen.
Kannst du mir bitte das Beispiel mal geben?
Das wäre super.

Gruß sunny79
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nur zum Verständnis. Du willst deine Anwenderobjekte geändert haben, auch schon im Grafik Designer?
Wenn nicht : ->
Eine Möglichkeit wäre noch, für die jeweiligen Anwenderobjekte eine Ini-Datei anlegst. Dort hinterlegst du deine verschiedenen Daten. Bei Bildaufruf in WinCC wird diese Ini Datei ausgelesen und das Anwenderobjekt mit den Daten beschrieben die in dieser Datei stehen.

Diese Ini Datei könntest du dann ja auch z.b. in der Runtime Konfigurieren.
 
Nur zum Verständnis. Du willst deine Anwenderobjekte geändert haben, auch schon im Grafik Designer?
Wenn nicht : ->
Eine Möglichkeit wäre noch, für die jeweiligen Anwenderobjekte eine Ini-Datei anlegst. Dort hinterlegst du deine verschiedenen Daten. Bei Bildaufruf in WinCC wird diese Ini Datei ausgelesen und das Anwenderobjekt mit den Daten beschrieben die in dieser Datei stehen.

Diese Ini Datei könntest du dann ja auch z.b. in der Runtime Konfigurieren.


Also das erste ist genau das was ich möchte.
Es geht nur um die Projektierung im Graphic Designer
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Schumi91,

ich habe leider kein Beispiel gefunden, bei dem man mit VBA eine Eigenschaft die z.B. einen DynamicDialog hat oder ein C-Skript besitzt auszulesen.
Kannst du mir bitte das Beispiel mal geben?
Das wäre super.

Gruß sunny79

Hallo sunny79,
suche mal in der WinCC Hilfe nach "Objekte mit bearbeiten". Da sind 2 Beispiele aufgeführt. Wenn Du da nicht findest, was Du exakt benötigst, schreibe hier was Du brauchst. Ich schaue dann mal in der ODK nach. Da sind sehr viele VBA Beispiel Scripte enthalten.

Gruß Schumi91
 
Hallo Schumi91,

ich habe in den Beispielen leider nicht das gefunden, was ich gesucht habe. Wenn du mir ein Beispiel zukommen lassen könntest, wäre das sehr nett.
Ich suche eine Möglichkeit, wie ich eine dynamische Eigenschaft wie z. B. einen Tooltiptext, der mit einem C-Script dynamisiert ist, auslesen kann.

Bisher habe ich ausschließlich Beispiele gefunden, wie man Eigenschaften setzen kann, nicht aber auslesen....

Vielen Dank schon mal für deine Mühe.

Gruß
Sunny79
 
Hallo Schumi91,

ich habe in den Beispielen leider nicht das gefunden, was ich gesucht habe. Wenn du mir ein Beispiel zukommen lassen könntest, wäre das sehr nett.
Ich suche eine Möglichkeit, wie ich eine dynamische Eigenschaft wie z. B. einen Tooltiptext, der mit einem C-Script dynamisiert ist, auslesen kann.

Bisher habe ich ausschließlich Beispiele gefunden, wie man Eigenschaften setzen kann, nicht aber auslesen....

Vielen Dank schon mal für deine Mühe.

Gruß
Sunny79

Hallo Sunny79,
stimmt, alle Beispiele die ich kenne, schreiben auch nur Eigenschaften. Ich habs noch nicht probiert, aber kannst Du die Eigenschaft anstatt zu schreiben, nicht einfach auslesen? Ich habe aber Dein Problem noch nicht verstanden. Wenn die Eigenschaft per C-Script dynamisiert ist, müsstest Du ja im Graphics Designer das C-Script auslsen wollen. Ist es das was Du willst?
Ich hänge mal ein Beispiel an, ist aber auch nur ein setzen der Eigenschaft. Wir benutzen das VBA intensiv, um Bilder per Scripte zu erzeugen. Das Auslesen einer Eigenschaft haben wir noch nie benötigt. Ich glaube, dass ich Dir dann in diesem Falle nicht helfen kann.

Gruß Schumi91

Sub RectangleConfiguration()
'VBA745
Dim objRectangle As HMIRectangle
Set objRectangle = ActiveDocument.HMIObjects.AddHMIObject("Rectangle1", "HMIRectangle")
With objRectangle
.ToolTipText = "This is a rectangle"
End With
End Sub
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Sunny79,
stimmt, alle Beispiele die ich kenne, schreiben auch nur Eigenschaften. Ich habs noch nicht probiert, aber kannst Du die Eigenschaft anstatt zu schreiben, nicht einfach auslesen? Ich habe aber Dein Problem noch nicht verstanden. Wenn die Eigenschaft per C-Script dynamisiert ist, müsstest Du ja im Graphics Designer das C-Script auslsen wollen. Ist es das was Du willst?
Ich hänge mal ein Beispiel an, ist aber auch nur ein setzen der Eigenschaft. Wir benutzen das VBA intensiv, um Bilder per Scripte zu erzeugen. Das Auslesen einer Eigenschaft haben wir noch nie benötigt. Ich glaube, dass ich Dir dann in diesem Falle nicht helfen kann.

Gruß Schumi91

Sub RectangleConfiguration()
'VBA745
Dim objRectangle As HMIRectangle
Set objRectangle = ActiveDocument.HMIObjects.AddHMIObject("Rectangle1", "HMIRectangle")
With objRectangle
.ToolTipText = "This is a rectangle"
End With
End Sub

Hallo,
Ja genau das wollte ich.
Hab auch noch rumprobiert, aber es scheint wirklich so zu sein das mein
dynamisierte Eigenschaften nicht auslesen kann.
Trotzdem danke, das du dir noch soviel Mühe gegeben hast
Gruß Sunny79
 
Hallo,

für alle die es interessiert. Es funktioniert doch. :-D
Hier ein kleines Bsp.:

Dim c As HMIScriptInfo
Dim obj As HMIObject
Set obj = ActiveDocument.HMIObjects("myCircle1")
For i = 1 To obj.Properties.Count
If obj.Properties(i).DynamicStateType = hmiDynamicStateTypeScript Then
Set c = obj.Properties(i).Dynamic
MsgBox (c.SourceCode)
Set c = Nothing
End If
Next

Gruß sunny79
 
Zurück
Oben