TIA Bildbaustein Flackert

Speedevil

Level-2
Beiträge
58
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

Tia V17 RT & 1500er mit Tia V20 projektiert.

Bildbaustein 2 mal aufgerufen und "übereinander" gelegt ist, wird per Variable "Sichtbar" geschalten per Animation. Und Farblich der Hintergrund per Animation Visualisiert.

Der Baustein enthält 10 Real Werte als Ea Felder. Diese dann per UDT aus der PLC eingelesen. Funktioniert auch wunderbar, allerdings flackern die Bildbausteine sporadisch auf oder die Farbanimation wechselt. (nicht gewollt aus der PLC). Ich vermute die aktualisierung oder Konsistenz der Daten etc. Wo könnte ich hier ansetzen? Die Aktualisierungszeit der Variablen habe ich schon runtergenommen, dann flackert es nur schneller :-)..

Jemand eine Lösung?

Danke !
 
:unsure:

Hast Du mal probiert, die nicht nur unsichtbar zu schalten sondern auch die Bedienbarkeit zu deakivieren?
"Nur" unsichtbare Elemente sind ja trotzdem noch aktiv und z.B. per TAB-Reihenfolge zu erreichen.
Vlt. "drängeln" sie sich ja durch ihre Aktivität ab und zu wieder in den Vordergrund.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie werden die Variablen für den Farbumschlag (z.B) geschrieben?
Das HMI greift sich die SPS-Variablen mitten im SPS-Zyklus, vollkommen beliebig.
Wenn du im Programm folgendes machst:

wenn #X = 1 dann #Farbe := Gelb
...
wenn #Y = 2 dann #Farbe := Rot
...
wenn #Z = 3 dann #Farbe := Blau

und alle 3 Bedingungen erfüllt sind, dann wird die Variable Farbe hintereinander Gelb, Rot, Blau und Blau "gewinnt", bleibt also erhalten, bis der Code wieder durchlaufen wird. Ist noch Code dazwischen und die SPS nicht sonderlich schnell, dann "flackert" die Anzeige auf dem HMI, weil das HMI die Variable auch mal zwischen den obigen Code-Zeilen einliest.

Um das zu Umgehen sollte die Variable Farbe SPS-intern sein und erst am Ende des Code in die HMI-Variable geschrieben werden. Dann flackert nichts.
 
Danke euch 2, das werde ich mal Probieren. @Ralle ja so ist es ...
IF (#AktiverPrüfpunkt - 1) >= 0 THEN
#AktiverPrüfpunktVisu := #AktiverPrüfpunkt-1;
END_IF;
//Punkt Erfolgreich
#IstDaten[#AktiverPrüfpunktVisu].StatusPrüfung := 2;
// Punkt Aktiv
#IstDaten[#AktiverPrüfpunkt].StatusPrüfung := 1;
// Tot Zeit Aktiv
IF "0100 SK DrosselKurve_IDB".RegelungTotzeitAktiv[#AktiverPrüfpunkt] THEN
#IstDaten[#AktiverPrüfpunkt].StatusPrüfung := 4;
END_IF;


Du meinst, dann hier alles Auf z.B Temp Variablen schreiben und erst am ende auf die "StatusPrüfung" Schreiben?
 
Du musst dafür Sorgen das deine HMI Variable im Zyklus nur einmal geschrieben wird:

//Punkt Erfolgreich
tmpStatusPruefung:= 2;
// Punkt Aktiv
tmpStatusPruefung:= 1;
// Tot Zeit Aktiv
IF "0100 SK DrosselKurve_IDB".RegelungTotzeitAktiv[#AktiverPrüfpunkt] THEN
tmpStatusPruefung := 4;
END_IF;
#IstDaten[#AktiverPrüfpunkt].StatusPrüfung := tmpStatusPruefung;
 
Zurück
Oben