Listbox in TwinCAT3 HMI

O'Gigis

Level-1
Beiträge
97
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich finde in der TwinCAT3 HMI kein Element mit der ich eine Listbox erstellen könnte, also ein Textefeld in der ich nacheinander Textzeilen einfügen könnte die über eine Scrolleiste entspechend hoch und runter eingesehen werden können.

Übersehe ich da was oder muss man sich das selber zusammenbauen, kann mir jemand dazu eine Tip geben?
 
Die Combobox ist nicht was du suchst, eher eine Tabelle ?

Vielleicht kannst du eher was mit dem Datagrid anfangen...
 
Ich wollte ein Trace-Fenster erstellen, in dem ich nach und nach Meldungen mit Zeitstempel ausgebe. Das geht über eine ListBox in einer Hochsprache sehr einfach - für die Beckhoff HMI habe ich da noch nichts gefunden.

Kann mir einen String in einem TciHmiTextblock ausgeben in dem ich in der Kategorie Common dem Text mit einer PLC String Variable verknüpfe, der String wird aber natürlich nicht nach Unten geschoben sondern überschrieben wenn die Stringvariable geändert wird.

Habe mittlerweile rausgefunden das bei aktivierter Multiline in der Kategorie Common mit $N in einem String mehre Zeilen ausgegeben werden können.

Also der String $NABC$NDEF$NGHI in der PLC

ergibt ausgegeben am TciHmiTextblock

ABC
DEF
GHI

leider kann ich so immer noch nicht weitere Strings ausgeben ....
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Würde mir das an deiner Stelle in einem HTML Host selbst zusammenbauen, dann bist du flexibel und musst dich nicht immer rumärgern wenn es mit den Beckhoff Controls doch nicht so geht wie du gerne hättest.

Combobox und Datagrid sind auch nur generierte Div's und in wie weit du da Einfluss drauf hast weiß ich nicht.
 
Tja ... in Anbetracht der Tatsache, dass ich für das Projekt um das es geht sehr wenig Zeit habe und ich mir durch fertige Controls eben Zeitersparnis erhoffe keine echte Alternative mich noch darin einzuarbeiten wie ich mich über einen eigenen HTML Host und selbst erstellten Controls mit der Beckhoff PLC verbinde ;)

Die TF 1800 hat ja so einige, da gibt es auch eine Listbox, in der TF2000 sind wiederum andere Controls die ich wiederum (mehr) brauche ... Kreislauf :s17:
 
Ich würde eigentlich sagen, dass das Datagrid genau das ist was du suchst. Lege ein Array als interne Variable in deinem HMI an. Verknüpfe das Array mit dem Datagrid. Mappe die String-Variable aus dem PLC Programm. Binde die gemappte Variable an ein Custom-Event, das feuert wenn die Variable sich ändert und pushe dann jedes mal den Inhalt des Strings in das Array. Das Datagrid aktuallisiert sich dann automatisch mit.....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Hinweis, habe mir jetzt mal das Beispielprogramm von der Infosys runtergeladen und angeguckt ... also irgendwie wird es schon damit gehen, wenn auch etwas aufwendig und unschön.

Ich kann immer noch nicht glauben, dass so eine einfache Listbox nicht in der TF2000 HMI bereits vorhanden ist :confused:
 
Ich kann nur spekulieren was der Denkprozess Beckhoff war. Für mich sieht es danach aus wie: "Wir geben euch die Möglichkeit zu machen was ihr wollt, also macht gefälligst eure eigenen Controls." Vieleicht kommt in Zukunft noch etwas nachgeliefert. Im letzten Update war ja auch endlich eine Rezeptverwaltung mit dabei ....
 
... das betont auch Beckhoff so, nur ist in meinen Augen eine Listbox ein Standard-Control was in jeder Hochsprache vorhanden ist. Wenn ich eine Lösung fertig habe poste ich die noch hier und mach denn Thread dann zu ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich könnte dir bei der manuellen Erstellung helfen, ich hatte so schon mal eine Alarm Anzeige gemacht.

Wir hatten halt eine Struktur mit Alarm Nr, Bereich, Text und Zeit, daraus hab ich bei einer Änderung dieser die Tabelle generiert.
 
Danke für das Angebot Mathias, habe das mit dem DataGrid selber hinbekommen ;) Wie gesagt, poste noch den Lösungsvorschlag von Beckhoff ...
 
Zurück
Oben