TIA Wincc Pro: Bildfenster aus Bildbaustein heraus aufrufen

JMy

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
unter WinCC V.13 SP1 Professional möchte ich aus einem Bildbaustein "Motor" das Detailbild dazu als Bildfenster aufrufen.
Dazu würde ich außen am Bildbaustein ein Click-Ereignis anlegen (geht es eventuell auch innerhalb des Bildbausteins? -> 1.).
Kann man in VB-Skripten den Namen eines SmartTags ermitteln? Dort steckt nämlich schon das Präfix für das Bildfenster drin, so muss ich es nicht jedesmal ändern, wenn ich viele Kopien davon benutze. Mit
"SmartTags("Motor_003").Value
bekomme ich nur den Wert der Variable, kommt man auch an den Namen? -> 2.
Ich möchte das Bildfenster rechts neben meinem Bildbaustein öffnen.
Mit:
SetPropertyByConstant "Bild", "Bildbaustein","Left",ScreenItems("Motor1").Left + 100
klappt es, aber ich will ja nicht bei jeder Kopie dran denken, den Namen des Screenitems zu ändern. Ein:
SetPropertyByConstant "Bild", "Bildbaustein","Left",ScreenItems(item).Left + 100
bringt aber Fehler? Was wäre möglich? -> 3.
Gibt es Lösungen für meine 3 Probleme?

Vielen Dank


Mit freundlichen Grüßen
JMy
 
Wenn ich dein obig geschriebenes richtig interpretiere dann hast du ein Skript das grundsätzlich funktioniert.
Du verwendest das Skript mehrmals und möchtest beim Kopieren des Skripts die verwendeten HMI-Variablen leichter wechseln können.
Einmal mit "Motor1" dann mit "Motor 2" usw....
Das "Motor1" bekommst du nirgends übergeben sondern musst es mindestens 1x im Skript eintragen...
Soweit korrekt?

Ich hab zwar kein TIA-Professional, sollte aber gleich wie bei WinCC-Scada sein. Definier dir deine HMI-Variablen als Konstante am Anfang vom Skript.
Code:
' WINCC:TAGNAME_SECTION_START
Const TagNameInAction = "TagName"
' WINCC:TAGNAME_SECTION_END

HMIRuntime.Tags(TagNameInAction).Write 1
SmartTags(TagNameInAction) = 1
Zum "Namen-Rücklesen"...
Wenn du den HMI-Variablennamen eh schon wo einträgst dann mach es mit obigem System wohl kaum einen Sinn diesen noch zurück zu lesen.

Bei WinCC-Scada muss man, wenn man SmartTags() für den Zugriff nimmt (welches eigentlich nur für Faceplates gedacht sind), diese "' WINCC:TAGNAME_SECTION_START"-Nomenklatur verwenden damit der Querverweis-Assistent den Zugriff erkennt (dann geht auch das Variablen-Suchen/Ersetzen).
Wenn man HMIRuntime.Tags nimmt kann man sich das sparen.

Ich weiß allerdings nicht ob das unter TIA noch Gültigkeit hat da dort wahrscheinlich das TIA-Interne Querverweissystem zum Einsatz kommt.
Kann man in TIA irgendwie beim Objekt (z.B.: Button), auf dem das Skript liegt, Rechtsklick-Suchen/Ersetzen machen?
Normalerweise müsstes du die Variablen so auch austauschen können auch wenn diese 10x im Skript vorkommen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ronin,
danke für Deine Hinweise. Hintergrund Meiner Frage ist, dass mein Tag "Motor_003_Status" heißt und ich aus dem Namen mittels Text-Stringfunktionen mein Bildfenster mit dem Präfix "Motor_003" ermitteln und aufrufen möchte. Jetzt ist beim Kopieren das Objekt anzuwählen und im Kontextmenü unter "Objetverweise ändern" aus "Motor_003_Status" "Motor_004_Status" machen. Um das Präfix im Skript anzupassen, muß ich dort nochmal in das Action-Skript hinein. Würde sich das Präfix aus dem Status "berechnen" lassen, ist alles mit einem Male geändert.
Ideen dazu?

JMy
 
TiA Bilde aufrufen

Hallo!hat jemand ein Beispiel ,wo ich aus dem SPS ein bit setze,dass in HMi ein Bild angezeigt wird?
Ich arbeite mit Tia V13:confused:
Mit freundlichem Grüß
 
Hallo blaududek123,
Dein Beitrag hat nicht sehr viel mit meiner Frage und dem Topic zu tun. Hier meine Empfehlung für Deinen Fall. Ich gehe davon aus, dass Du TIA V13 Professional nimmst:
Es gibt den Aufgabenplaner, wo Du eine Aufgabe hinzufügst, die eine Funktionsliste sein soll. Als Triggervariable (wann die Aufgabe ausgeführt werden soll), kannst Du Deine SPS-Variable nehmen. Dann brauchst Du nur noch bei Ereignis Deiner Aufgabe per Funktionsliste oder VB Deinen Fensteraufruf implementieren.
Gruß
JMy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Loesung

Hallo,
zur allgemeinen Info, hab mein Problem selber lösen können.
Das Ereignisscript am Bildbaustein ermittelt über:
Set locObj = Item
locObjName = locObj.ObjectName

den Objektnamen, von dem es aufgerufen wurde. Dann kann man mit
screenLeft = ScreenItems(locObjName).Left + 50
screenTop = ScreenItems(locObjName).Top

dessen relative Position im Bildfenster ermitteln und mit
SetPropertyByConstant "Bild", "Bildbaustein","Left",screenLeft
SetPropertyByConstant "Bild", "Bildbaustein","Top",screenTop + headerWindowHeight
die Position zum Aufruf verändern, ausserdem habe ich dann das Präfix, wenn ich das Objekt wie den neuen Präfix benenne und übergebe:
SetPropertyByConstant "Bild", "Bildbaustein", "TagPrefix", locObjName
Schade, dass hier so wenige versierte VB-Programmierer sich äußern. Ist das alles geheim? Hoffe auf mehr Miteinander.


Danke


JMy
 
Schade, dass hier so wenige versierte VB-Programmierer sich äußern. Ist das alles geheim? Hoffe auf mehr Miteinander.

Das liegt vermutlich daran, dass TIA WinCC Prof kaum jemand einsetzt. Für die großen Scada Anwendungen wird in der Regel WinCC v7 eingesetzt. Wenn ich ne kleine PC-Visu brauche, reicht auch TIA WinCC Advanced...

Ob sich die ganze Script Geschichte beim TIA WinCC Prof genauso verhält wie in WinCC v7 weiss ich nicht, deshalb hab ich hierzu auch keine Antwort gegeben...

Ausserdem sind die Scriptfragen nicht ganz trivial... Erstmal verstehen, was Du eigentlich machen willst und dann ne Lösung aus dem Hut zaubern ist nicht so ganz einfach...

Gruß.

PS: ausserdem verwende ich in WinCC v7 hauptsächlich C-Script...
 
Zurück
Oben