TIA Array Of String / Anzeige in Tabelle

Azrael666

Level-1
Beiträge
239
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Leute,

es geht um WinCC V14 Advanced

Ich habe hier einen Array [0..1999] Of String als Powertag, diesen würde ich gerne in einer Art Tabelle anzeigen, da es völlig unpraktikabel wäre 2000 E/A Felder anzulegen.
Gibt es da ne Lösung? Geht es evtl. mit der Beobachtungstabelle?

MFG Azrael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das DataGridView-Control gehört in die .Net-Welt. Du kannst es natürlich versuchen, es einzubinden - manchmal funktioniert das (ich habe zu dem Control in dieser Umgebung keine Erfahrungswerte) und dann könntest du die benötigten Properties des Controls mittels Script beschalten.
Funktionell wäre dieses Control für dein Vorhaben das Richtige - ich kann mir aber nicht wirklich vorstellen (wie schon geschrieben), das es unter TIA / WinCCFlexibel funktioniert.

Aber ... Versuch macht klug ...

Gruß
Larry
 
Anderer Weg, ein Art eigenes DataGrid bauen, du wirst je nach Panel maximal
20-30 Zeilen als Liste Darstellen können. Also brauchst du im Prinzip pro
Zeile 1 Variabel. Für dein DataGrid könntest du dann entsprechend viele interne
Variablen nehmen und diese dann Erergnisgesteuert von deinen echten Variablen
entsprechend umladen.

Ich habe das mal gemacht, da hatten meine Datein auch mehrere Tausend Einträge,
wie bei deiner Applikationen.

IMG_0096.JPG
 
@ Larry Laffer
das ist genau das was mich vor dieses Problem stellt (.Net-Welt). :D ich kämpfe schon mit dem "normalen" VBScript und die vielen Beispiele die man zu diesem Thema findet sind meist für VB, was anscheinend ein kleiner feiner Unterschied ist, denn eins zu eins lassen sich die Programcodes nicht verwenden.

@ rostiger Nagel
diese Tabelle sieht spektakulär aus! Sind das .Net Komponenten oder hast du sie selbst mit WinCC Elementen gebaut?
Ich stehe nämlich kurz davor mir so eine Tabelle einfach aus E/A-Feldern zusammenzubauen, was natürlich ein riesiger Aufwand ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@ rostiger Nagel
diese Tabelle sieht spektakulär aus! Sind das .Net Komponenten oder hast du sie selbst mit WinCC Elementen gebaut?
Ich stehe nämlich kurz davor mir so eine Tabelle einfach aus E/A-Feldern zusammenzubauen, was natürlich ein riesiger Aufwand ist.

Die ist aus EA-Feldern gemacht, man kann da per Tastendruck Scrollen und hat sogar einen Slider.
 
Hi

Datagrid geht in der V13 nicht mehr, gibt glaubs auch ein Beitrag dazu im Forum. Keine Ahnung obs in der V14 wieder geht.
Wenn du nur Anzeigen musst, könntest du per Skript ein html zusammenbauen und dieses html im Browser anzeigen lassen. So habs ich gemacht, als ich merkte, dass Datagrid (oder was es Gridview!?!?) nicht mehr geht.

Dort hasst du dann auch einen Slider ;)

Gruss blimaa
 
@Azrael:
Den Unterschied zwischen VB.Net und VB-Script als "klein und fein" darzustellen ist schon sehr sportlich ...
Im Grunde ist es anscheinend so, dass WinCCFlexibel / TIA irgendetwas nicht mit benutzen und auch nicht zur Verfügung stellen, was ein .Net-Control aber grundsätzlich braucht - wahrscheinlich sogar aus Absicht weil man nämlich sonst im Prinzip jedes .Net-Control integrieren könnte.
Speziell beim DataGridView ist es so, dass hier für die Zeilen-/Spaltendefinition weitere Objekte benötigt werden, die neu instanziert und übergeben werden müssen. Ich denke ml, dass dort das Hauptproblem beim DGV in Verbindung mit VB-Script liegen wird.
Aber prinzipiell : kannst du es denn den Visu-Controls hinzufügen und auf einer Seite plazieren ohne das sich das Entwicklungssystem schon dabei oder beim Generieren aufhängt ?

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Azrael:
Den Unterschied zwischen VB.Net und VB-Script als "klein und fein" darzustellen ist schon sehr sportlich ...
Im Grunde ist es anscheinend so, dass WinCCFlexibel / TIA irgendetwas nicht mit benutzen und auch nicht zur Verfügung stellen, was ein .Net-Control aber grundsätzlich braucht - wahrscheinlich sogar aus Absicht weil man nämlich sonst im Prinzip jedes .Net-Control integrieren könnte.
Speziell beim DataGridView ist es so, dass hier für die Zeilen-/Spaltendefinition weitere Objekte benötigt werden, die neu instanziert und übergeben werden müssen. Ich denke ml, dass dort das Hauptproblem beim DGV in Verbindung mit VB-Script liegen wird.
Aber prinzipiell : kannst du es denn den Visu-Controls hinzufügen und auf einer Seite plazieren ohne das sich das Entwicklungssystem schon dabei oder beim Generieren aufhängt ?

Gruß
Larry

ja hinzufügen und platzieren funktioniert. zeigt halt dann in der Runtime nichts an, weil ja ein Script für die Parameter fehlt
 
Das habe ich jetzt auch mal ausprobiert.
Anscheinend wird das Control selbst erstmal akzeptiert.
Das Problem ist nun, dass du dem Control weitere Objekte hinzufügen müßtest - in diesem Fall zunächst erstmal die Spalten - das wäre dann z.B. die DataGridViewTextboxColumn in die Column-Collection des DGV. Diese Objekte kannst du aber nun mal dem TA nicht hinzufügen - ich habe dafür jedenfalls im Augenblick keinen Weg gefunden ...

Gruß
Larry
 
Update dazu :
Ich habe mir jetzt mal mit Visual Studio ein MyDataGridView erstellt (in einer ControlLibrary-DLL) und dies eingebunden.
Dieses so erstellt Control hat jetzt schon mal grundsätzlich 5 Spalten drin - und wird auch so in TIA angezeigt.
Es wäre nun also vorstellbar (damit werde ich jetzt bei Gelegenheit mal experimentieren) ein umgewandeltes Control zu erstellen, dass zusätzliche Properties und Methode erhält damit es von TIA aus änderbar / erweiterbar ist.
Das ist jetzt natürlich mal ein komplett anderer Ansatz, der u.U. unerwartete Möglichkeiten eröffnet ...

Ich werde dann dazu Weiteres schreiben ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zum DataGridView-Versuch :
Nachdem der Anfangsversuch recht vielversprechend war habe ich dann mein Control mal etwas erweitert - hier jetzt erstmal mit dem Hintergrund dynamisch Spalten hinzufügen oder wegnehmen zu können. Dies habe ich über Properties zu lösen versucht. Hier habe ich dann aber wohl die Grenzen des Möglichen erreicht - ein so modifiziertes Control funktioniert zwar in der .Net-Welt - im TIA-Portal kann es aber nicht mehr eingefügt werden ohne das das TIA-Portal abstürzt.
Ich führe das im Augenblick auf die Unfähigkeit des TIA-Portals zurück, mit komplexeren Objekten oder generischen Listen umgehen zu können.

Auf der anderen Seite ist da ja auch immer noch der ChestySoft-XYChart, der mir vor vielen Jahren mal von JesperMP nahe gebracht wurde. Dieses Control hat ja schon unter Flex2008 funktioniert und tut es wahrscheinlich auch noch unter TIA.
Hier ist es aber so, dass im Designer-Modus recht wenig zu machen ist (nur Größe, Namen und die Farben) und der Rest über Scripte laufen muss. Ich werde jetzt, da mich das insgesamt interessiert, in dieser Richtung ein bißchen weiter probieren (bei Gelegenheit).

Gruß
Larry
 
@Larry Laffer

ich bin tatsächlich etwas überrascht, dass es funktioniert. Zumindest eine wenn eine statische Variante einer Tabelle möglich ist, ist das schonmal eine große Bereicherung.
Aktuell beschäftigt mich gerade ein anderes Problem, das ich erst mal lösen muss ;)
Wenn ich dieses schaffen sollte, ist das mit einer Tabelle durchaus etwas dass ich dann auch gerne integrieren würde.
 
Naja ... ich verfolge dieses Thema natürlich aus einem gewissen Eigennutz ...
Liese es sich nämlich erreichen, dass man spezialisierte .Net-Controls in die TIA-Welt einbinden und darin benutzen könnte, dann würde das die Nutzbarkeit der HMI ganz erheblich erweitern. Man könnte, wenn es denn umsetzbar wäre, Controls erschaffen, die man TIA-Bildbausteinen in 100 Jahren nicht zuwege bringen würde ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In der Tat, WinCC ist doch leider sehr beschränkt was solche Dinge angeht. Um mal bei dem Thema Tabellen zu bleiben, ich kann es leider nicht nachvollziehen, wieso es bei WinCC solch eine Funktion nicht von Haus aus gibt. Wenn ich mal über den Tellerrand blicke, dann gibt es z.B. eine andere Programiersoftware, die so etwas standardmäßig an Bord hat.
 
Naja ... ich weiß nun nicht, von welcher SW du da sprichst ... ich vermute aber mal, dass deren Visu .Net-basiert ist ... und das ist der Schlüssel : unter .Net gibt es leistungsfähige Controls schon seit sehr vielen Jahren (Jahrzehnten ?). Bei Siemens ist man aber auf dem Trip, sich weitmöglichst von derartigen Standards fernzuhalten - ich doch auch klar, wozu das führt : das System müßte zwangsläufig offener sein und die Messlatte würde auf einmal eben nicht mehr durch Siemens derfiniert werden ...
Das kann ich also schon verstehen - die beste Art sich unabkömmlich zu machen ist immer, die Dinge so zu gestalten, dass da kein Anderer mitmischen kann ... :sb6:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So ... ich habe noch einmal "ein wenig" herumgespielt ...
Es ist also tatsächlich so, dass man TIA mit selbst erstellten .Net-Controls, zumindestens bei der PC-Runtime, aufpimpen kann.
Diese Controls können dabei sogar aufwändige Grafik-Spielereien beinhalten. Sie dürfen nur keine komplexen Properties haben. Diese werden entweder ignoriert oder falsch behandelt (was u.U. zum Absturz von TIA führen kann).
Es ist mir bislang nicht direkt gelungen, Variablen an solche Properties zu binden - dafür würde man dann ein Script benötigen.
Darüber hinaus hat Siemens auch ein spezielles Verhalten eingebaut : Die Properties Size (bzw. Width und Height) und Location werden, auch wenn sie im Konstruktor behandelt werden, ignoriert. An diese Stelle setzt Siemens dann Größe und Position, die zwar dasselbe bewirken, jedoch irgendwie den Konstruktor aushebeln können.
Hat ein Control komplexe Properties (also z.B. etwas, das über den ExpandableObjectConverter des .Net PropertyGrids laufen würde) so müßte man diese entweder auflösen oder durch zusätzlich, dem Control hinzuzufügende, Methoden behandeln.

Aber erstmal grundsätzlich ... da ginge was ...

@Azrael: das war eine interessante Anregung ...

Gruß
Larry
 
@ Larry Laffer

;) keine Ursache, sollte ich tatsächlich noch auf die Idee kommen solch eine Tabelle einzubauen, werde ich vermutlich hier wieder um Rat fragen
 
Zurück
Oben