TIA Wann ist der Bildaufbau wirklich beendet?

uweschwarz

Level-2
Beiträge
229
Reaktionspunkte
12
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ich arbeite mit TIA V17 und TIA WinCC Professionel auf einer CPU 1516.

Ich möchte die Bedienung eines Bildes erst zulassen, wenn das Bild aufgebaut ist und alle Variablen mit der Steuerung verbinden sind. Ich möchte einfach ein großes Rechteck solange anzeigen, bis das Bild wirklich "bedienbar" ist.

Mit Sichtbarkeit von "Bild aufgebaut" abhängig funktioniert es schon mal nicht, weil dabei ja nicht abgefragt wird, ob die dargestellten items bereits Verbindung zur Steuerung haben und ein Wert angezeigt wird.

Gibt es ein Bit, welches mir sagt: "Das Bild ist jetzt vollständig aufgebaut und alle Variablen haben eine Verbindung zur Steuerung." o.ä.?




1743167249882.png
 
Vielleicht in einem Skript.. oder du fragst ne Variable in der Steuerung ab welche mit dem Bildaufbau beschrieben wird und wartest dort auf true, o.ä.
 
Nein - so ein Ereignis gibt es nicht. Mir fällt da jetzt auch kein vernünftiger Trick dazu ein wie man das hinbasteln könnte ... Es ist ja nicht bestimmbar welche der Variablen des Bildes als Letzte aktualisiert wird ...
 
Hallo ich arbeite mit TIA V17 und TIA WinCC Professionel auf einer CPU 1516.

Ich möchte die Bedienung eines Bildes erst zulassen, wenn das Bild aufgebaut ist und alle Variablen mit der Steuerung verbinden sind. Ich möchte einfach ein großes Rechteck solange anzeigen, bis das Bild wirklich "bedienbar" ist.

Mit Sichtbarkeit von "Bild aufgebaut" abhängig funktioniert es schon mal nicht, weil dabei ja nicht abgefragt wird, ob die dargestellten items bereits Verbindung zur Steuerung haben und ein Wert angezeigt wird.

Gibt es ein Bit, welches mir sagt: "Das Bild ist jetzt vollständig aufgebaut und alle Variablen haben eine Verbindung zur Steuerung." o.ä.?
Was soll denn der Hintergrund der Geschichte sein? Normalerweise, wenn ein Bild/EA-Feld da ist, kannnst es auch bedienen. Das Bild baut eh keine Verbindung zur Steuerung auf sondern zeigt erstmal nur an, was im WinCC-Variablenhaushalt (SQL-Server auf dem PC) steht... U.U. sendet das Bild im Hintergrund jetzt an den SQL-Server, dass die Variable (zyklisch) aktualisiert werden soll... Also, wo ist Dein Problem und gibt es vielleicht eine andere "Lösung"?

Ich hatt mal so einen ähnlichen Fall, wo ein Script ein Bildfenster geöffnet hat und gleich in dem Bildfenster Eigenschaften ändern wollte, das lief beim Webnavigator garnicht, weil das Bildfenster ewig für den Aufbau gebraucht hat. Eine schöne Lösung gab es dafür aber auch nicht wirklich. Im Script hab ich in ner Schleife den Rückgabewert vom SETxxxxx ausgewertet. Aber Schleifen in Scripten oder Pause in Scripten ist perse großer Mist!!!

Mir fällt da jetzt auch kein vernünftiger Trick dazu ein wie man das hinbasteln könnte ...

Evtl. kannst Du irgendwo in dem Bild den Taktmerker der SPS (oder besser einen Watchdog-INT der SPS) an eine Eigenschaft hängen, damit "bei Änderung" ein Script triggern, welches im Bild ein verstecktes EA-Feld "hochzählt". Wenn der Wert in dem EA-Feld gößer 3 oder so, dann ist Bild vermutlich offen und Variablen mit SPS verbunden...

Aber wie gesagt, was Du da vorhast ist ziemlich unüblich und ich würde lieber nach der wirklichen Ursache deines "Problems" suchen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Falls im Bild nicht zu viele Variablen vorkommen wäre es auch möglich beim Aufbau das Rechteck erstmal anzuzeigen und dann ein Script zu starten.
Im Script jede zu lesende/schreibende Variable einmal in eine temporäre Variable schreiben, prüfen ob sie z.B. ungleich 0 ist, wieder zurücksetzen und dann die nächste lesen. Am Ende angekommen dann das rechteck ausblenden. Dadurch wäre zum Bildaufbau jedes Mal sichergestellt das zumindest beim Aufbau die Verbindung zu allen relevanten Variablen funktioniert hat. Was 2 Minuten später ist, ist dann wieder Glückssache.
Das Ganze müsste natürlich einen zeitgesteuerten Ausstieg haben damit das Script beendet werden kann wenn eine Variable nicht gelesen werden kann.
Falls es zu lange dauert pro Variable eine Zählervar hochzählen und im Rechteck n Ladebalken einfügen :D, vielleicht auch ein Abbruch-Button der das Script stoppt und das vorherige Bild aktiviert, also Ausstieg.


Aber generell sollte das eigentlich nicht nötig sein die Bedienung zu verhindern, denn die Verbindung WinCC<>CPU sollte eigentlich so schnell aufgebaut sein das der Bediener kaum eine Chance hat irgendwas vorher zu klicken.
 
Ich möchte die Bedienung eines Bildes erst zulassen, wenn das Bild aufgebaut ist und alle Variablen mit der Steuerung verbinden sind.
Das wirst du höchstwahrscheinlich nicht verhindern können. Ich kenne in vielen Firmen "Stamm"-Bediener der Visus, die bedienen (klicken) schon, bevor das Bild bzw. die Bedienelemente überhaupt sichtbar sind. :cool:

Auch die Eigenschaft "Bedienbarkeit" aller Objekte aufwändig dynamisieren und erst nach Bild-aufgebaut freigeben wird deinen Wunsch nicht voll erfüllen, weil man einfach nicht sicher feststellen kann, wann alle Variablen einmal aktualisiert wurden. Die Variablen-Verbindung kann auch später wegfallen während ein Bild angezeigt ist. "Bild aufgebaut" ist also sowieso nicht der richtige Trigger für Erkennung "Variablen wurden aktualisiert".

Gibt es einen bestimmten Grund für deinen Wunsch? Bedienfehler, Schäden in der Anlage oder im Produkt, oder...? Oder willst du nur die Bediener gängeln/zähmen? ;)

Vielleicht reicht es einfach, bei Bildaufbau für 3 Sekunden einen Text einzublenden "Bild wird aufgebaut ... Bitte noch nicht bedienen ...". Zumindest ist das sehr einfach zu realisieren.
 
Gibt es einen bestimmten Grund für deinen Wunsch? Bedienfehler, Schäden in der Anlage oder im Produkt, oder...? Oder willst du nur die Bediener gängeln/zähmen? ;)
Es läuft eher auf "die Akzeptanz der Visu bei den Bedienern erhöhen" hinaus. Die Bediener sind Experimentalphysiker. Die klicken gnadenlos auf alles, was aussieht, als ließe sich das klicken ... wundern sich dann: Äh, passiert ja gar nix. (weil, die auf dem Bild angezeigten Symbole noch nicht vollständig verbunden sind).
Wenn die Variablen dann alle verbunden sind, werden die gepufferten Klickbefehle dann sehr schnell nacheinander ausgeführt. Das führt zu wilden Bildwechseln u.ä. --> Scheiß Visu
Insofern finde ich den Vorschlag
nach 3s die Bedienbarkeit
freizuschalten sehr zielführend. So werde ich es versuchen. Das wird vermutlich trotzdem einige nicht davon abhalten wild herumzuklicken, aber ich habe wenigsten mein möglichstes versucht :)
 
Es läuft eher auf "die Akzeptanz der Visu bei den Bedienern erhöhen" hinaus. Die Bediener sind Experimentalphysiker. Die klicken gnadenlos auf alles, was aussieht, als ließe sich das klicken ... wundern sich dann: Äh, passiert ja gar nix. (weil, die auf dem Bild angezeigten Symbole noch nicht vollständig verbunden sind).
Wenn die Variablen dann alle verbunden sind, werden die gepufferten Klickbefehle dann sehr schnell nacheinander ausgeführt. Das führt zu wilden Bildwechseln u.ä. --> Scheiß Visu
Insofern finde ich den Vorschlag

freizuschalten sehr zielführend. So werde ich es versuchen. Das wird vermutlich trotzdem einige nicht davon abhalten wild herumzuklicken, aber ich habe wenigsten mein möglichstes versucht :)
Du kannst ja auch Buttons ausblenden/einblenden und auch für die Bedienbarkeit die Schrift anders wählen.. oder Farbe von Buttons.. oder ...
 
@uweschwarz : es stellt sich für mich aber immer noch die Frage warum bei dir der reale Bildaufbau so lange dauert. Hast du sehr viele Variablen auf dem Bild mit sehr kurzer Aktualisierungszeit ?
Bei mir lag es an vielen Mutliplex-Variablen mit Grenzwertprüfungen.
 
es stellt sich für mich aber immer noch die Frage warum bei dir der reale Bildaufbau so lange dauert. Hast du sehr viele Variablen auf dem Bild mit sehr kurzer Aktualisierungszeit ?
Ich habe auf dem Prozessbild mit den meisten Symbolen 93 Symbole mit je einem Statuswort. Die Aktualisierungszeit ist auf Bildzyklus = 2s eingestellt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe auf dem Prozessbild mit den meisten Symbolen 93 Symbole mit je einem Statuswort. Die Aktualisierungszeit ist auf Bildzyklus = 2s eingestellt.
... und die kommen im Wesentlichen aus einem DB - oder aus ganz vielen verschiedenen ?
Was sind denn das für Symbole ? Komplexe Bildbausteine ?
 

Anhänge

Gut ... das wäre dann also die Antwort warum es so lange dauert, das Bild zu aktualisieren. Sehr viele Variablen aus vielen unterschiedlichen Quellen - die Bildbausteine sind natürlich auch nicht zu unterschätzen.
Hast du bei den Variablen noch Möglichkeiten, dass die aus nur wenigen unterschiedlichen Quellen kommen und im Speicher relativ nah zusammen liegen ?
 
Zurück
Oben