[Bildbausteine] Skripte, wie funktioniert das?

rostiger Nagel

Forums-Knochenbrecher
Teammitglied
Beiträge
16.377
Reaktionspunkte
5.989
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
hat sich hier schon jemand mal mit den Bildbausteinen und deren Scriptfunktionalität beschäftigt.
Ich möchte mir mit einen Bildbaustein ein "Radio Button" erstellen und diesen innerhalb des BB
über ein Script Dynamisieren. Irgendwie bekomme ich das Script aber nicht gestartet (glaube ich).
Hätte da jemand ein paar Brauchbare Tip's für mich?

vielen Dank im Voraus
Helmut

PS. Plattform ist WinCCflexibel 2008 SP2
 
Eine kleinen Schritt bin ich weiter, ich kann jetzt ein Script starten, aber
nicht auf der Weise wie ich möchte. Ich möchte das Script im BB bei Wert-
änderung einer Variabeln durchführen. Wenn ich die Variabel außerhalb des
BB trigger, geht es nicht. Wird Sie innerhalb des BB, zb durch Tastendruck
geändert läuft das Script ab. Besteht eine Möglichkeit das Script durch ein
Ereignis von außen des BB zu starten?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Helmut,
du mußt den BB erstmal autark betrachten. Das Script kann also nur durch eine Variable des BB's selbst getriggert werden.
Du kannst hier aber Property-Variablen anlegen, die du dann bei Verwendung des BB's mit den "wirklichen" Flex-Variablen beschaltest. Diese Property-Variable kannst du dann natürlich auf Wertänderung überprüfen und damit dann das Script starten ...

Gruß
Larry
 
Hallo Larry,
eigentlich habe ich es so gemacht wie du es beschrieben hast, aber das
Script wurde bei Wertänderung nicht gestartet.

gruß helmut
 
Du hast die Variable des BB, die du unter "meine Eigenschaften" angelegt hast auch für extern (mit dem Blitz) freigeschaltet ?
Wenn du den BB auf einer Seite verwendest dann erhälst du dort unter der "Dynamischen Schnittstelle" in der Rubrik "meine Eigenschaften" die Listboxen angeboten in denen du dann deine Flex-Variablen eintreagen kannst ?
 
:confused: ... kannst du mal einen Screenshot von der Konfiguration des BB mit der Ansicht der "Eigenschaften" und aufgeklappten Menue's machen ?

Wird die Variable, den sonst weiterhin (für Animation) verwendet oder nur im Script ? Falls du sie nicht für irgendeine Animation im BB verwendest könnte es sein, dass sie gar nicht aktualisiert wird.
 
Screenshot mache ich morgen, bin schon zuhause. Aber die Anbindung ist das script,
wo dann je nach inhalt der Variabeln im Script eine interne BB Variabel auf einen bestimmten
Wert für eine Animation gestellt wird.
 
Zuletzt bearbeitet:
Baue mal die Triggervariabel in ein E/A-Feld im Bild (nicht in den BB) ein.

Alternativ kannst du die Triggervariabel auch auf Zyklische Aktualisierung stellen, bei "Aktualisierung bei Verwendung" funktioniert es nicht.

Ich hatte das Problem auch schon einmal. Dachte das Problem gibt es schon nicht mehr.
 
Also dazu muß ich sagen, dass den BB von mir, den ich hierfür jetzt mal Referenz genommen habe, die fragliche Variable auch anzeigt. Sie wird allerdings nirgends direkt auf einer Anzeige verwendet und steht auch auf "zyklisch bei Verwendung".

Also nochmal ... Helmut, wie verwendest du die Variable sonst noch ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also nochmal:
Ich habe eine Eigenschaft angelegt "Trigger", hier den "Blitz" scharf geschaltet
und da ein Ereigniss bei Wertänderung das Script angebunden.
Im Script selber Stelle ich eine lokale BB Variabel, in abhängigkeit von der
Eigenschaft "Trigger".
An der Schnittstelle des BB habe ich dann an der Eigenschaft "Trigger" eine
Variabel angelegt, die dann über eine Button auf der Oberfläche invertiere.

Jetzt habe ich innerhalb des BB eine Taste angelegt, wo ich die Propertie "Trigger"
invertiere, damit wird dann das Script ausgeführt.

Die variabel wird zZ nur zum Aufruf des Script und im Script selber genutzt.

Die variabel die ich angebunden habe ist auf Verwendung gestellt nicht auf zyklisch
fortlaufend. Eine weitere Frage dazu wäre, wenn ich eine interne nehmen würde
( was ich eigentlich möchte ), geht das auch nicht?
 
Zuletzt bearbeitet:
Man liest und beantwortet manchmal, was man so möchte ... ;)
Wird die Variable, den sonst weiterhin (für Animation) verwendet oder nur im Script ? Falls du sie nicht für irgendeine Animation im BB verwendest könnte es sein, dass sie gar nicht aktualisiert wird.

Mein "Nochmal" bezog sich auf die Animation ... und das hast du immer noch nicht beabtwortet. Ich könnte mir vorstellen, dass bei einem BB der Querschluß von der Scriptverwendung zum Aktualisieren NICHT gemacht wird.

Wenn das Folgende allerdings die Antwort war dann würde ich vorschlagen entweder das mit der Aktualisierung (zyklisch fortlaufend) oder das mit der Animation mal zu versuchen.
Die variabel wird zZ nur zum Aufruf des Script und im Script selber genutzt.

Ob eine BB-interne Variable auch ein Script (bei Wertänderung) aufrufen kann habe ich noch nicht ausprobiert. Ich könnte mir gut vorstellen, dass hier auch wieder die "Loop-Breaker"-Philosophie zieht - weiß es aber nicht. Aber das kannst du doch leicht ausprobieren ... Allerdings ... wie bekommst du dann das Ergebnis deines BB's wieder nach "draussen" ?
 
Zuletzt bearbeitet:
Mein "Nochmal" bezog sich auf die Animation ... und das hast du immer noch nicht beabtwortet. Ich könnte mir vorstellen, dass bei einem BB der Querschluß von der Scriptverwendung zum Aktualisieren NICHT gemacht wird.

Wenn das Folgende allerdings die Antwort war dann würde ich vorschlagen entweder das mit der Aktualisierung (zyklisch fortlaufend) oder das mit der Animation mal zu versuchen.

Larry ich habe doch schon zweimal geantwortet ;)
Die Anbindung ist das Script, sonst nichts. Aber ich werde die zwei Varianten
Morgen mal versuchen, Änderung der Aktualisierung oder Anbindung an etwas
anderen wie nur das Script.

Ob eine BB-interne Variable auch ein Script (bei Wertänderung) aufrufen kann habe ich noch nicht ausprobiert. Ich könnte mir gut vorstellen, dass hier auch wieder die "Loop-Breaker"-Philosophie zieht - weiß es aber nicht. Aber das kannst du doch leicht ausprobieren ... Allerdings ... wie bekommst du dann das Ergebnis deines BB's wieder nach "draussen" ?

Neh es soll keine Scriptinterne Variabel sein, auf die der BB reagieren soll. Es
soll eine Globale interne Variabel allgemein von flex sein, die dann über die
Schnittstelle das Script aufruft.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So nach einigen Rumgefummel, habe ich es doch hinbekommen und sieht
als Beispiel wie folgt aus:

RadioButton.JPG

Die Bildbausteine sind aber sehr.....sehr schlecht in der Hilfe Dokumentiert,
das meiste bekommt mann nur durch "try and Error" heraus.
Mit den script Aufruf, habe ich jetzt so gelöst das ich eine Globale Bool
Variabel mit Steuerungsanbindung habe, die ich bei Ereignisse im BB in-
vertiere, das Script wird bei Wertänderung diese Variabel aufgerufen.

Das Script direkt aufrufen, z.b. bei Wertänderung des Eingabefeldes
funktioniert nicht. Eine Globale interne HMI Variabel zu nutzen funktioniert
nicht.

Vorsicht ist auch geboten wenn etwas am BB geändert wird, z.b. die Schnittstelle
nach außen. Am besten ist es den BB aus der oberfläche zu löschen und
dann eben wieder neu reinzuziehen.
Das gleiche gilt auch mal eben per "drag and drop" zu kopieren, haut auch
nicht hin, besser neu aus der Biblothek ziehen.

Eigentlich sind die BB eine super sache, vom Gedanken her, aber das ganze
ist von Siemens, mal wieder schlecht und Lieblos ausgeführt.
 
Also sind die Probleme immer noch die selben, entspricht ja eigentlich dem was ich geschrieben habe.
Das mit dem Kopieren funktioniert manchmal, manchmal auch wieder nicht.
Hat dann den Effekt, dass einige BBs funktionieren, andere wieder nicht.
Hatte damals ein Projekt mit Förderketten, Weichen und Stoppern. Alles als BB realisiert. Kamen dann Riesenprobleme mit der Anzahl der laufenden Scripte auf dem Panel.
Problem war, dass nicht nur die Scripte bearbeitet werden, die auf dem Bild sichtbar sind, sondern immer alle Scripte im Hintergrunde bearbeitet werden, und dafür gibt es Grenzen.
Musste extra ein größeres Panel verbaut werden.
Ich gebe dir Recht die Idee mit den BB ist gut, aber äußerst schlecht realisiert.
 
hi
ja das sind die probleme die es schon immer bei den bb gibt. das mit dem aufruf bei aenderung geht schon allerdings muss die variable im bb verwendet werden ...und scripte zaehlen da leider nicht. ich verbinde das tag einfach mit einen ea feld und verstecke es im bb...das geht bei mir immer.

und das mit dem kopieren geht aber mittlerweile ganz gut da es die funktion "instanz aktualisieren" gibt...danach sollte es gehen

klingt zwar komisch ist aber so :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Helmut,
Mit den script Aufruf, habe ich jetzt so gelöst das ich eine Globale Bool
Variabel mit Steuerungsanbindung habe, die ich bei Ereignisse im BB in-
vertiere, das Script wird bei Wertänderung diese Variabel aufgerufen.
Mich würde es hier einmal interessieren, warum es bei diesem Objekt sinnvoll sein könnte, ohne eine Steuerungs-Variable zu arbeiten.
Außerdem ... wieso muß das Script unbedingt an der "Wert-Änderung" hängen ? Du mußt da doch Schaltflächen (ggf. unsichtbare) drin haben, die etwas machen. Warum rufen die dann nicht das Script auf ?

Das Script direkt aufrufen, z.b. bei Wertänderung des Eingabefeldes
funktioniert nicht. Eine Globale interne HMI Variabel zu nutzen funktioniert
nicht.
Das sollte doch auch allgemein bekannt sein (die Loop-Breaker-Geschichte). Ich miente da aber auch etwas anderes ... du kannst ja auch noch BB-Variablen (nicht Script-Variablen) erzeugen. Da vermute ich das mit dem Loop-Breaker nur - weiß es aber nicht ...

Gruß
Larry
 
Hallo Larry,
alleine der Tastendruck reicht mir nicht aus, ich verabeite im Script, wie
die Dartstellung sein soll, dieses muss dann natürlich erfolgen, bevor der
Bediener eine Taste getätigt hat. Jetzt habe ich eine Globale Variabel, die
schon einmal beim Bildaufschlag Triggern kann.

Mit dem Loopbreacker war mir bekannt, es hätte ja sein können das es bei
BB anders gehandhabt wird.

gruß Helmut
 
Zurück
Oben