WinCC Variable aus Array von Struct lesen/schreiben

SPS-Fee

Level-1
Beiträge
81
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Bevor ich nach Stunden der Suche am Rad drehe, hier mein Problem:

Ich möchte NUR eine Variable (egal bool, int, string) im HMI anzeigen lassen.

Für die Daten habe ich einen PLC-Datentyp mit dem Namen "Farbe" erstellt.
Er besteht aus einem Struct mit dem Namen "Sorte".
Die Struktur ist:

Name -> String
Rot -> Int
Gelb -> Int
Blau -> Int
Rühren -> bool

Dann hab ich einen globalen DB (Name: "Mischungen"), in dem sich ein Array befindet:
Color -> Array[1..6] of "Farbe"

Im Prog (egal ob FB oder im OB1) kann ich selbstverständlich alle einzelnen Variablen ansprechen, wie z.B.:
"Mischungen".Color[2].Sorte.Rot := 125;

Ich habe "Mischungen" in die HMI-Standardvariablentabelle gezogen und sehe dort 6 Zeilen:

Mischungen_Color(1) bis Mischungen_Color(6). Diese kann ich erweitern und sehe da jeweils die Sorten und je: Name, Rot, Gelb, Blau und Rühren, also soweit ok.

Bei Datentyp steht 6x "Farbe" bei Verbindung steht 6x <interne Variable> und bei PLC-Variable die 6 Zeilen von der Vorzeile (hier, klar, mit eckigen Klammern).
Allerdings sind die Felder Datentyp, Verbindung und PLC-Variable rot (rosa) hinterlegt.


Wie gesagt, nun möchte ich im HMI in einem erstellten Bild mit einem E/A-Feld einfach nur z.B. den Wert der Variablen "Blau" im Array[1], also:
"Mischungen".Color[1].Sorte.Blau anzeigen lassen.
Doch das klappt mit allen Variablen im Prog, aber nicht mit meinem PLC-Datentyp/Array.
Ich kann zwar die betreffende Variable aus der HMI-Standardvariablentabelle ins betreffende Bild ziehen und sie wird auch mit einem E/A-Feld und in den Eigenschaften angelegt, aber beim Übersetzen bringt es 6 Fehler, einer davon: "Mischungen".Color(1): ungültiger Datentyp.


Nach nun 6 Stunden geb ich auf und ersuche Rat unter den Wissenden dieser Gemeinde.


Meine Hard-Software:

1516-3PN/DP
KTP 700 Basic
TIA V15.1
Win CC Advanced

Den oft gelesenen Tip:
PLC-Datentyp in Typen (unter Projektbibliothek) zu ziehen habe ich probiert, half aber nichts, bzw. ich bin nicht weiter gekommen.

Vielen Dank für jede konstruktive Hilfe.

PS. Screenshot sind leider nur umständlich möglich, da TIA auf meinem 2. PC (offline) läuft.

LG
Silvi
 
Zuletzt bearbeitet:
Die Variablen für die Farben existieren bei Dir im HMI bisher nur innerhalb der Struktur "Mischungen".
Das TIA-Portal hat aber leider immer wieder Einschränkungen beim Zugriff darauf (warum auch immer, nervt mich auch sehr oft).

Umgehen kannst Du das Problem, wenn Du diese benötigten (Unter-) Variablen noch mal als Einzel-Variable aus der PLC ins HMI ziehst.


PS:
Hier sieht man als Beispiel einige noch zusätzlich angelegte Einzelvariablen aus dem PLC-Datentyp (UDT) "gdbHMI", der auch als komplette Struktur ins HMI übergeben wurde, weil diese aber in der Struktur nicht die volle benötigte Funktionalität im HMI besitzen:

attachment.php
 

Anhänge

  • Einzelvariablen.jpg
    Einzelvariablen.jpg
    65,4 KB · Aufrufe: 138
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
das geht ja eben nicht.
Wenn ich aus dem DB eine Einzel-Variable z.B. Rot vom Color[1] in ein Bild ziehe, kommt ein E/A-Feld und in den Eigenschaften wird:
Mischungen_Color(1)_Sorte_Rot eingetragen. Eigentlich ok, aber es ist rot hinterlegt und die Info-Meldung lautet: Ungültiger interner Datentyp.

Wenn ich die gleiche Variable aus dem DB in die HMI Standardvariablentabelle ziehe, wird sie richtig eingetragen, aber Datentyp und Verbindung (interne Variable) ist rot hinterlegt, mit der gleichen Fehlermeldung.

doch mal 2 Screenshots gemacht:
1.jpg
2.PNG
 
Zuletzt bearbeitet:
Hast du vielleicht aus verschiedenen Projekten etwas zusammenkopiert? Ich kenne derartige Probleme eigentlich nur, wenn verschiedene Versionen der Datenstruktur zusammen gebracht werden. Und das kenne ich in meinen Fällen auch nur in Verbindung mit Bildbausteinen. Ansonsten ist der Zugriff auf elementare Daten aus der Struktur prinzipiell möglich. Vielleicht aber nicht in jedem Fall. Daher wären auch umständliche Screenshots möglicherweise hilfreich.
 
welche Screenshots wären noch nötig?

Habe das Projekt heute Mittag neu angelegt, nichts kopiert etc.
In der Projektbibliothek unter Typen habe ich jetzt aber nichts mehr drin stehen. War ja nur ein Versuch, ob es dann klappen würde.
 
Zuletzt bearbeitet:
Sind die Variablen der Struktur in Deinem globalen DB auch vom HMI erreichbar/sichtbar:

attachment.php
 

Anhänge

  • Erreichbar.jpg
    Erreichbar.jpg
    15,8 KB · Aufrufe: 126
Noch mal zum Verständnis:

Mit der Projektbibliothek->Typen muss ich bei diesem kleinen Vorhaben nicht arbeiten? Oder doch?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
.. der letzte Screenshot ist die HMI- Std-Var-Tab
  • in der HMI-Variablentabelle würde ich die Struktur-Variablen erwarten, um die es ursprünglich ging
  • der PLC-Datentyp muss/sollte in der Projektbibliothekbibliothek abgelegt sein, der Datentyp von Screenshot ist es nicht
  • danach muss möglicherweise der DB oder besser alles komplett übersetzt werden (PLC und HMI)
  • eine HMI-Verbindung ist natürlich Grundvoraussetzung (unter "Geräte & Netze" anlegen)
 
Das Anlegen in der Projektbibliothek check ich noch nicht.

HMI-Verbindung: Wird die nicht gleich mit erstellt, wenn ich gleich am Anfang des Projekts (nach der PLC-Hardware-Anlegung) das HMI mit anlege?
unter Geräte & Netze sehe ich das HMI und die Steuerung. hmmmm und nu?
 
Zurück
Oben