-> Hier kostenlos registrieren
Hallo,
wie kann ich von der HMI aus, auf ein Array zugreifen was in der SPS liegt?
Ich habe in der SPS-Einheit einen eigenen UDT Datentyp erzeugt und in einem Datenbaustein liegt dann ein Array, welches 50 Elemente von diesem UDT-Typ enthält. Nun möchte ich in meinem HMI Gerät eine Variable erzeugen, die auf das Array aus dem Datenbaustein referenziert.
Ich habe bereits zwei Strings-Arrays in dem Datenbaustein, die ich erfolgreich hinzufügen konnte. Diese konnte ich einfach per Drag and Drop vom Datenbaustein hinzufügen. Wenn ich das mit dem neuen Array mache werden mir automatisch 50 neue Variablen generiert, welche dann auf den UDT-Datentyp verweisen. Das sieht dann wie folgt aus:
.... "DB140 Datenbank".array[0] ...
.... "DB140 Datenbank".array[1] ...
.... "DB140 Datenbank".array[2] ...
... und so weiter (siehe Bild)...
Das würde prinzipiell auch funktionieren, ist aber für die Ansicht aller Variablen nicht schön. Gibt es vielleicht einen Weg das nur das Array angelegt wird und ich anschließend via VBS Code und dem Befehl " HMIRuntime.Tags("array[0]"] " auf jedes Element einzeln zugreifen kann (bzw. in der Variablenansicht das Array ausgeklappt werden kann)?
Warum mache ich das?
Momentan habe ich viele einzelne interne Variablen als Arrays angelegt innerhalb der HMI, diese beinhalten Daten, bei dem aber alle unterschiedlich sind. Also ein Array hat Int, eins hat DInt, eins hat wieder Real, usw. Diese ganzen einzelnen Arrays finde ich ebenfalls nicht schön und am Ende gehören diese Daten auch alle zusammen daher die Konstruktion des UDTs bzw. Verwendung von Struct. Nur geht das ja nur in der SPS und daher muss ich die Daten wieder zur HMI bekommen, weil diese dort visualisiert dargestellt werden sollen...
Ich arbeite mit TIA Portal v17 und WinCC Professional (noch nicht sehr lange..)
Grüße
wie kann ich von der HMI aus, auf ein Array zugreifen was in der SPS liegt?
Ich habe in der SPS-Einheit einen eigenen UDT Datentyp erzeugt und in einem Datenbaustein liegt dann ein Array, welches 50 Elemente von diesem UDT-Typ enthält. Nun möchte ich in meinem HMI Gerät eine Variable erzeugen, die auf das Array aus dem Datenbaustein referenziert.
Ich habe bereits zwei Strings-Arrays in dem Datenbaustein, die ich erfolgreich hinzufügen konnte. Diese konnte ich einfach per Drag and Drop vom Datenbaustein hinzufügen. Wenn ich das mit dem neuen Array mache werden mir automatisch 50 neue Variablen generiert, welche dann auf den UDT-Datentyp verweisen. Das sieht dann wie folgt aus:
.... "DB140 Datenbank".array[0] ...
.... "DB140 Datenbank".array[1] ...
.... "DB140 Datenbank".array[2] ...
... und so weiter (siehe Bild)...
Das würde prinzipiell auch funktionieren, ist aber für die Ansicht aller Variablen nicht schön. Gibt es vielleicht einen Weg das nur das Array angelegt wird und ich anschließend via VBS Code und dem Befehl " HMIRuntime.Tags("array[0]"] " auf jedes Element einzeln zugreifen kann (bzw. in der Variablenansicht das Array ausgeklappt werden kann)?
Warum mache ich das?
Momentan habe ich viele einzelne interne Variablen als Arrays angelegt innerhalb der HMI, diese beinhalten Daten, bei dem aber alle unterschiedlich sind. Also ein Array hat Int, eins hat DInt, eins hat wieder Real, usw. Diese ganzen einzelnen Arrays finde ich ebenfalls nicht schön und am Ende gehören diese Daten auch alle zusammen daher die Konstruktion des UDTs bzw. Verwendung von Struct. Nur geht das ja nur in der SPS und daher muss ich die Daten wieder zur HMI bekommen, weil diese dort visualisiert dargestellt werden sollen...
Ich arbeite mit TIA Portal v17 und WinCC Professional (noch nicht sehr lange..)
Grüße