WinCCflex Bildbaustein Skript Trigger

IoT

Level-1
Beiträge
22
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
ich habe mir ein Bildbaustein inkl. Skript in WinCCflexible 2008 SP3 erstellt. Ausgeführt wird dieses bei einer Werteänderung einer externen Variable. Hierbei handelt es sich um ein Bool welches ich durch ein Taktmerker-Bit in 1s Takt toggeln lasse.

Habe ca. 8 Bilder mit jeweils 30 Bildbaustein-Instanzen. Es läuft auch alles. Meine Frage ist jedoch, werden bei jedem Bit-Toggle alle Bildbausteine bearbeitet oder nur die jeweils sichtbaren? Und wenn alle, welche Möglichkeiten hätte man um dies zu verhindern (aus Perfomancegründen)? Danke

Gruß Egon
 
Hallo,
es hängt m.E. von der Aktualisierung deiner Trigger-Variablen ab.
Steht sie auf "zyklisch bei Verwendung" dann würde das Script nur von den sichtbaren BB's aufgerufen (wenn überhaupt, weil manchmal wird der Trigger Wert-Änderung auch gar nicht in einen BB weitergereicht).
Steht sie auf "zyklisch fortlaufend" dann würde die Scripte bei jeder Wertänderung des jeweiligen Triggers aufgerufen.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Larry,
ich habe deine Idee ausprobiert, konnte jedoch keine Veränderung feststellen. Vielleicht noch ein paar mehr Eckdaten:

- WinCCflexible PC Runtime
- ca. 1000 Variablen (Int) (Zyklische fortlaufend 1s)
- Skript Trigger (Zyklisch fortlaufend bzw. bei verwendung 100ms)
- ca. 30 Bildbausteine pro Bild, insgesamt 160 Instanzen auf 8 Bildern

Ich übergebe dem Bildbaustein lediglich ein Toggle-Bit als Skript Trigger sowie eine Integervariable. Der Integerwert wird im Sktript zum String. Mit ein bisschen Präfix bzw. Suffix bastel ich mir 5 neue Variablennamen. Diese Variablen lese ich ich anschließend ein und verwende jeweils Informationen im Bildbaustein. Damit das richtig Funktioniert musste ich die Variablen alle auf zyklisch fortlaufend stellen, da sie ja nicht "richtig" verwendet werden sondern nur ausgelesen werden.
Wie gesagt, das ganze Läuft auch, nur sehr schleppend bei den vielen zyklisch zu aktualisierenden Variablen. Nichtmal die Triggervariable wird in 100ms richtig aktualisiert. Bin ich da wirklich schon an der Leistungsgrenze?

Als Hardware habe ich hier eine 318-2 mit einem cp 343-1.

Achja, vielleicht noch als Anhang mein BB Skript:

Dim Var_Name_String

If((SmartTags("Properties\Stellplatznummer")>0) And (SmartTags("Properties\Stellplatznummer")<=99)) Then
'Status
'Variable in String konvertieren
Var_Name_String=CStr(SmartTags("Properties\Stellplatznummer")*100)
'Variablenname zusammenbauen
Var_Name_String="02_Anlagenvisu_P01\" & "P01.Datenplatz_" & Var_Name_String & ".Status"
SmartTags("01_Status")=SmartTags(Var_Name_String)

'Stellplatznummer
'Variable in String konvertieren
Var_Name_String=CStr(SmartTags("Properties\Stellplatznummer")*100)
'Variablenname zusammenbauen
Var_Name_String="02_Anlagenvisu_P01\" & "P01.Datenplatz_" & Var_Name_String & ".Header.SP"
SmartTags("02_Stellplatznummer")=SmartTags(Var_Name_String)

'Datenplatznummer
'Variable in String konvertieren
Var_Name_String=CStr(SmartTags("Properties\Stellplatznummer")*100)
'Variablenname zusammenbauen
Var_Name_String="02_Anlagenvisu_P01\" & "P01.Datenplatz_" & Var_Name_String & ".Header.DP"
SmartTags("03_Datenplatznummer")=SmartTags(Var_Name_String)

'Index
'Variable in String konvertieren
Var_Name_String=CStr(SmartTags("Properties\Stellplatznummer")*100)
'Variablenname zusammenbauen
Var_Name_String="02_Anlagenvisu_P01\" & "P01.Datenplatz_" & Var_Name_String & ".Data.QZI.LHM_Index"
SmartTags("04_Index")=SmartTags(Var_Name_String)

'Ziel
'Variable in String konvertieren
Var_Name_String=CStr(SmartTags("Properties\Stellplatznummer")*100)
'Variablenname zusammenbauen
Var_Name_String="02_Anlagenvisu_P01\" & "P01.Datenplatz_" & Var_Name_String & ".Data.QZI.Ziel"
SmartTags("05_Ziel")=SmartTags(Var_Name_String)
End If

Danke und Gruß
Egon
 
Zurück
Oben