WinCC Loop durch alle Bildelemente in C Script

Das ist mit den beigestellten Standardfunktionen soweit ich weiß auch nicht möglich. Über die ODK-Schnittstelle (d.h. die ODK Funktionen sind ja immer da, sind nur nicht dokumentiert) gibt es Funktionen aus denen das prinzipiell in C möglich ist. Allerdings muss der Funktion ein Callback mitgegeben werden über welche dann die Ergebnis-Objekte mitgeteilt werden. Ich weiß nicht ob C Interpreter das unterstützt, ich vermute aber nicht oder nicht so einfach. Ggf. müsste man die Funktion in eine selbstgeschriebene dll auslagern, deren Funktion man dann im C-Skript aufruft.

Alternativ-Lösung:
Bei Bildaufbau oder Projektstart ein VBS-Skript auslösen, welche die Bildelemente ausliest und in eine Textdatei schreibt, und den Inhalt dann im C-Skript verarbeiten.
 
In VBS kannst du dir z.B. wie folgt alle Objekte in einem Bild mit Namen und Objekttyp auflisten:

Code:
Dim objScreen
Dim lngIndex
Dim strName
Dim strType

Set objScreen = HMIRuntime.Screens("DeinBildname")
objScreen.Activate()

For lngIndex = 1 To objScreen.ScreenItems.Count
    strName = objScreen.ScreenItems(lngIndex).ObjectName
    strType = objScreen.ScreenItems(lngIndex).Type
    HMIRuntime.Trace "Objekt[" & lngIndex & "]: " & strName & " - " & strType & vbNewLine
Next

Dann erhältst du eine Ausgabe wie:
Objekt[1]: EA-Feld1 - HMIIOField
für ein Element.
 
Kann ich dann auf diese Art und Weise Objekte in einem Bild mit einer For Schleife bearbeiten?
Ich stehe nämlich im Moment vor so einem Problem. Ich würde gerne die Eigenschaften von 10 identische Objekte mit einer For Schleife verändern.
 
Zurück
Oben