TIA EA Felder als Tabelle

rzwodzwo

Level-2
Beiträge
12
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe eine Frage zu EA Feldern. Ich möchte gerne EA Felder so darstellen das sie in einer Tabellenform sind oder das man zB scrollen kann.

Kurz zu meinen (-)Skills:
Ich kenn das TIA Portal erst seit einer Woche und bin daher blutiger Anfänger. Ich habe schon versucht zu der Thematik etwas im Inet zu finden, aber bisher waren da die Antworten eher in Richtung das dies so nicht geht. Ich wollte aber jetzt selber mal fragen, da viele Foren auch schon etwas älter waren und vielleicht sich ja etwas getan hat. Ich arbeite mit TIA Portal v17 und der WinCC Runtime Professional.

Mein Ist-Stand und Problem ausführlich:
Ich möchte Daten aus einer Datenbank laden und diese im TIA dann tabellarisch anzeigen. Das Abrufen der Daten konnte ich mit einem VBS Skript realisieren. Dabei werden die Daten abgerufen und in einem Recordset gespeichert. Anschließend schreibe ich die Werte jeder Spalte aus dem Recordset in eine angelegte, interne Array-Variable. Dadurch habe ich mehrere Arrays und jedes Array stellt eine Spalte aus der Datenbank-Tabelle dar. Dabei ist der Index vom Array gleich der Zeile aus der Tabelle (array[0] entspricht der ersten Zeile von der Tabelle, usw.).
Nun habe ich im TIA ein Bild angelegt und darin mehrere EA Felder reingezogen zum Testen. Bei den EA Feldern habe ich als Variable immer das Array-Element hinzugefügt welches dazu passt. Also ein EA-Feld welches zur Spalte col_a gehört und an der 1. Position ist hat die Variable array_col_a[0] (siehe Bild). Diese Zuordnung funktioniert auch in der Simulation, aber ich habe bisher nur 4 Spalten und 4 EA Felder. ---> Mein Wunschszenario ist eigentlich das man 30 Zeilen von der Tabelle im TIA darstellen kann (bzw. 30 Einträge aus den Arrays) und davon aber nur 10 ersichtlich sind. Die restlichen 20 würde man sehen in dem man zB scrollt (mit der Bildlaufleiste?). Also am Ende einfach eine Tabelle wo die Werte wieder drin stehen... gibt es da ein Element/Control für?

Ich habe rum probiert aber mit meinen wenigem Wissen über das Programm weiß ich auch nicht wirklich was eigentlich möglich ist und was nicht. Vielleicht kann mir ja jemand einen Tipp geben ob das überhaupt geht und falls ja was dann ein richtiger Ansatz wäre. Im Anhang ist nochmal ein Bild was die Test EA Felder zeigt, womit vielleicht die Problembeschreibung nochmal besser nachvollzogen werden kann.
 

Anhänge

  • pic-forum.png
    pic-forum.png
    5,5 KB · Aufrufe: 14
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi, danke für die Antwort.
Ich habe gerade versucht das mit einer Rezeptanzeige umzusetzen. Der Anfang sah auch gut aus, aber am Ende kann ich leider keine Variablenzuweisung machen.
Ich habe eine Rezeptur erstellt. Diese hat mehrere Elemente bekommen, welche dann ja die Spalten darstellen. Bis hierhin passt es und sieht auch super aus. Wenn ich aber bei dem erstellten Rezept auf den Reiter Datensätze gehe und für die jeweiligen Spalten Werte eingeben möchte, kann ich da nur numerische Werte eingeben. Da müsste ich ja dann eig. ein Feldelement aus meinem Array (zB array_col_a[0]) angeben usw. Gibt es da sonst vielleicht noch eine Einstellung die ich übersehen habe, damit ich bei den jeweiligen Spalten bzw. Rezepturelementen auch Variablen angeben kann statt nur Ziffern.
 
Ok, ich habe nochmal zwei Bilder angehangen, die meine Situation verdeutlichen sollen.
Bild1 zeigt meine Rezeptelemente und Bild2 meine Datensätze.
Ich dachte jetzt, ich kann bei den Datensätzen (Bild2) zB ein Feldelement aus meinem Array hinterlegen. Also das ich jetzt in einem Datensatzfeld schreibe array_col_a[0], im nächsten array_col_a[1] usw. Und bei der Ausführung der Simulation würden dann die entsprechenden Werte aus dem Array abgerufen werden und in die Rezeptanzeige eingetragen werden. Das Eintragen funktioniert aber so nicht, da nur Ziffern erlaubt sind - also kann ich nicht arrya_col_a[0...] schreiben.
Die Datentypen von den Arrays und den Feldern stimmen überein.
 

Anhänge

  • 1_elemente.png
    1_elemente.png
    37,7 KB · Aufrufe: 22
  • 2_datensaetze.png
    2_datensaetze.png
    30,5 KB · Aufrufe: 22
Zuviel Werbung?
-> Hier kostenlos registrieren
1694680677807.png
Deshalb kannst Du dort nur Zahlen eintragen...

Im Reiter Datensätze erstellst Du fertige Rezepte. Die müssen natürlich in die Rezepturelemente passen.

Du müßtest die Rezepturen vermutlich aus der Steuerung laden. Jede Rezeptur = 1 Datensatz.
Und die müßtest Du dann in der SPS befüllen. Das wird vermutlich nicht mit den Arrays so funktionieren, wie Du sie momentan vorliegen hast, sondern vermutlich eher mit einem Array einer Datensatzstruktur.
 
Hallo,

ich habe eine Frage zu EA Feldern. Ich möchte gerne EA Felder so darstellen das sie in einer Tabellenform sind oder das man zB scrollen kann.

Kurz zu meinen (-)Skills:
Ich kenn das TIA Portal erst seit einer Woche und bin daher blutiger Anfänger. Ich habe schon versucht zu der Thematik etwas im Inet zu finden, aber bisher waren da die Antworten eher in Richtung das dies so nicht geht. Ich wollte aber jetzt selber mal fragen, da viele Foren auch schon etwas älter waren und vielleicht sich ja etwas getan hat. Ich arbeite mit TIA Portal v17 und der WinCC Runtime Professional.

Mein Ist-Stand und Problem ausführlich:
Ich möchte Daten aus einer Datenbank laden und diese im TIA dann tabellarisch anzeigen. Das Abrufen der Daten konnte ich mit einem VBS Skript realisieren. Dabei werden die Daten abgerufen und in einem Recordset gespeichert. Anschließend schreibe ich die Werte jeder Spalte aus dem Recordset in eine angelegte, interne Array-Variable. Dadurch habe ich mehrere Arrays und jedes Array stellt eine Spalte aus der Datenbank-Tabelle dar. Dabei ist der Index vom Array gleich der Zeile aus der Tabelle (array[0] entspricht der ersten Zeile von der Tabelle, usw.).
Nun habe ich im TIA ein Bild angelegt und darin mehrere EA Felder reingezogen zum Testen. Bei den EA Feldern habe ich als Variable immer das Array-Element hinzugefügt welches dazu passt. Also ein EA-Feld welches zur Spalte col_a gehört und an der 1. Position ist hat die Variable array_col_a[0] (siehe Bild). Diese Zuordnung funktioniert auch in der Simulation, aber ich habe bisher nur 4 Spalten und 4 EA Felder. ---> Mein Wunschszenario ist eigentlich das man 30 Zeilen von der Tabelle im TIA darstellen kann (bzw. 30 Einträge aus den Arrays) und davon aber nur 10 ersichtlich sind. Die restlichen 20 würde man sehen in dem man zB scrollt (mit der Bildlaufleiste?). Also am Ende einfach eine Tabelle wo die Werte wieder drin stehen... gibt es da ein Element/Control für?

Ich habe rum probiert aber mit meinen wenigem Wissen über das Programm weiß ich auch nicht wirklich was eigentlich möglich ist und was nicht. Vielleicht kann mir ja jemand einen Tipp geben ob das überhaupt geht und falls ja was dann ein richtiger Ansatz wäre. Im Anhang ist nochmal ein Bild was die Test EA Felder zeigt, womit vielleicht die Problembeschreibung nochmal besser nachvollzogen werden kann.
Du könntest mit zwei Buttons anlegen (Pfeil nach oben / Pfeil nach unten) und damit den Zeiger auf die nächsten 10 Werte umschalten.

Würde dazu nicht alle Werte nehmen sondern einen Bereich anlegen in einem Datenbaustein welcher einmal für jedes Feld eine Variable enthält und dann eine Schleife basteln welche dir bedingt dann die jeweiligen Werte umschaltet, dabei ist darauf zu achten dass die Arraygrenzen eingehalten werden: Wenn mein Array nur 30 Werte beinhaltet dann muss nach Fach 29 wieder wieder ab Fach 0 angezeigt werden usw.

Ansonsten stellt sich die Frage, MÜSSEN die Werte im HMI dargestellt werden oder ist das nur ein nice-to-have?
 
Zurück
Oben