Visualisierungselement als Vorlage konfigurieren und vervielfachen
Eine Tabelle kann auch auf folgende Weise zur Darstellung von Datenarrays erstellt werden. Sie vervielfachen ein Einzelelement, das mindestens eine Eigenschaft hat, die durch eine strukturierte Variable beschrieben wird. Das Einzelelement wird dazu als „Vorlage“ konfiguriert und mit einem Befehl vervielfacht.
Sie können den Befehl
verwenden, um Arraydaten zu visualisieren. Der Befehl bewirkt, dass durch Vervielfachen eines Vorlageelements für jede Arraykomponente ein typgleiches Element erzeugt wird. Die Anordnung der neuen Elemente in der Visualisierung ist eindimensional als Zeile oder Spalte oder zweidimensional als Tabelle.Ziehen Sie dafür ein geeignetes Element in den Visualisierungseditor. Konfigurieren Sie dann Eigenschaften des Elements mit Arrayvariablen und geben Sie als Komponentenzugriff den Indexzugriff-Platzhalter $FIRSTDIM$
an. Wenn Sie ein mehrdimensionales Array deklariert haben, können Sie für eine weitere Dimension den zweiten Indexzugriff-Platzhalter $SECONDDDIM$
verwenden. Konfigurieren Sie die übrigen Eigenschaften wie gewohnt mit den üblichen Werten. Ziel ist es, ein gültiges Vorlagenelement zu erstellen. Wenden Sie dann auf dem Vorlagenelement den Befehl an. Nun erscheint der gleichnamige Dialog. Dort legen Sie detailliert fest, wie viele Elemente erzeugt und wo sie angeordnet werden.
Nach dem Vervielfachen enthält die Visualisierung so viele gleichartige Elemente, wie über die Platzhalter indiziert werden unter Berücksichtigung der Einstellungen im DialogVisualisierungselement vervielfachen. Alle neuen Elemente haben in den Eigenschaften, die mit Platzhalter vorbelegt waren, diese ersetzt mit konkreten Indizes. Die übrigen Eigenschaften sind unverändert übernommen und kopiert worden.
Beispielsweise können Sie so 9 Schaltflächen als 3 x 3 Tabelle anordnen lassen, die alle gleich groß oder gleich farbig sind, die aber in der Beschriftung variieren. Die Beschriftungen sind als Array von Strings (9 Komponenten) deklariert und werden der Eigenschaft Texte, Text als Wert übergeben.
Deklaration von Arrayvariablen
Beispiel:
asText: ARRAY[1..3, 1..3] OF STRING;
Element mit geeignetem Elementtyp
Konfiguration wenigstens einer Eigenschaft des geeigneten Elements mit Arrayvariablen mit Indexzugriff-Platzhaltern
Beispiel: Eigenschaft Texte, Text =
PLC_PRG.asText[$FIRSTDIM$, $SECONDDIM$]
Das ist bei allen Eigenschaften möglich, die als Wert eine Variable erlauben, beispielsweise auch Eigenschaften der Kategorien Animation oder Eingabe. Um bei einem Element mehrere Eigenschaften mit Arrays mit Indexzugriff-Platzhalter zu konfigurieren, müssen alle Arrays den selben Aufbau mit gleicher Dimension haben. Die Deklarationen müssen kompatible sein.
Konfiguration der Eigenschaften, die nicht variieren (und somit für alle erzeugten Elemente gleich sind), mit den üblichen Werten ohne Indexzugriff-Platzhalter
Beispiel:
sButtonTip : STRING := 'This element is created by multiplication'
Eigenschaft Texte, Tooltip =
%s
Eigenschaft Textvariablen, Tooltipvariable =
sButtonTip
Tipp
Sie können weiterhin bei den Eigenschaften unter Texte wie gewohnt den Platzhalter %
für die Textausgabe von Variablenwerten verwenden.
Geeignete Visualisierungselemente, die vervielfacht werden können
Rechteck
Abgerundetes Rechteck
Ellipse
Linie
Polygon
Linienzug
Bézierkurve
Bild
Frame
Schaltfläche
Kreissektor
Spinbox
Textfeld
Checkbox
Bildwechsler
Lampe
Hebelschalter
Energieschalter
Drückschalter
Drückschalter LED
Kippschalter
Drehschalter
Lampe und Schaltfläche als Vorlage konfigurieren und vervielfachen
Erstellen Sie ein neues Standardprojekt.
Als Gerät ist eine CODESYS Control Win konfiguriert. Die
MainTask
ruftPLC_PRG
auf. Die Implementierungssprache ist ST.Deklarieren Sie im Programmcode in
PLC_PRG
Arrayvariablen mit BasisdatentypSTRING
.PROGRAM PLC_PRG VAR axLampIsOn: ARRAY[1..2,1..3] OF BOOL; // For lamp, property 'variable' and button, user input asButtonText: ARRAY[1..2,1..3] OF STRING := // Output text for button, property 'text variables''text variable' [ '1A Lamp', '2A Lamp', '1B Lamp', '2B Lamp', '1C Lamp', '2C Lamp' ]; END_VAR
Selektieren Sie im Gerätebaum die Applikation und wählen Sie den Befehl
.Geben Sie im Dialog Visualisierung hinzufügen als Name
VisuMain
ein und beenden Sie den Dialog mit Hinzufügen.Ziehen Sie ein Element des Typs Lampe aus der Ansicht Visualisierungswerkzeuge in die Visualisierung.
Konfigurieren Sie feste Eigenschaftswerte.
Doppelklicken Sie in das Wertefeld der Eigenschafte Variable.
Der Zeileneditor öffnet sich.
Klicken Sie auf das Symbol
Die Eingabehilfe erscheint.
Wählen Sie aus dem Variablenbaum die Arrayvariable
PLC_PRG.axLampIsOn
aus.Erweitern Sie den String am Ende, beispielsweise mit „
[f
„.Wenn Sie intelligentes Codieren (Dialog Optionen, Kategorie Intelligentes Codieren, Option Komponenten sofort nach Eingabe eines Zeichens auflisten) aktiviert haben, erscheint die aktuelle Variablenliste mit den Platzhaltern:
Selektieren Sie den Platzhalter
$FIRSTDIM$
für die 1te Dimension und bestätigen Sie die Eingabe.Erweitern Sie den String am Ende, beispielsweise mit den Zeichen „
,s
„.Es erscheint wieder die Variablenliste.
Selektieren Sie den Platzhalter
$SECONDDIM$
für die 2te Dimension und bestätigen Sie die Eingabe.Schließen Sie den String mit einer schließenden eckigen Klammer ab.
PLC_PRG.axLampIsOn[$FIRSTDIM$, $SECONDDIM$]
Die Lampe ist als Vorlage konfiguriert.
Wählen Sie den Befehl
.→ Der Dialog Visualisierungselement vervielfachen öffnet sich. Die voreingestellten Werte sind abgeleitet aus den Arraydeklarationen.
Gesamtzahl Elemente, Horizontal =
2
Gesamtzahl Elemente, Vertikal =
3
Deklarieren Sie den Abstand der neuen Elementen zueinander.
Offset zwischen den Elementen, Horizontal =
3
Offset zwischen den Elementen, Vertikal =
3
Kontrollieren Sie die erweiterten Einstellungen.
Bestätigen Sie die Einstellungen mit OK.
Im Visualisierungseditor erscheinen die neuen Elemente. Alle Eigenschaften sind mit konkretem Index konfiguriert und die Arrayvariablen sind indiziert.
Wählen Sie in der Ansicht Visualisierungswerkzeuge aus der Kategorie Allgemeine Steuerelemente das Element Schaltfläche aus und ziehen Sie es in den Visualisierungseditor.
Die Ansicht Eigenschaften des Elements öffnet sich.
Konfigurieren Sie die festen Eigenschaftswerte.
Konfigurieren Sie für die Eigenschaft Textvariablen, Textvariable den Wert.
PLC_PRG.asButtonText[$FIRSTDIM$, $SECONDDIM$]
Konfigurieren Sie für die Eigenschaft Eingabekonfiguration, Umschalten, Variable den Wert.
PLC_PRG.axLampIsOn[$FIRSTDIM$, $SECONDDIM$]
Die Schaltfläche ist als Vorlage konfiguriert.
Wählen Sie den Befehl
.Der Dialog Visualisierungselement vervielfachen öffnet sich. Die voreingestellten Werte sind abgeleitet aus den Arraydeklarationen.
Gesamtzahl Elemente, Horizontal =
2
Gesamtzahl Elemente, Vertikal =
3
Deklarieren Sie den Abstand der neuen Elementen zueinander.
Offset zwischen den Elementen, Horizontal =
3
Offset zwischen den Elementen, Vertikal =
3
Kontrollieren Sie die erweiterten Einstellungen.
Bestätigen Sie die Einstellungen mit OK.
Im Visualisierungseditor erscheinen die neuen Elemente. Alle Eigenschaften sind mit konkretem Index konfiguriert und eie Arrayvariablen sind indiziert.
Übersetzen, starten und laden Sie die Applikation.
Visualisierung zur Laufzeit:
Arrayvariable mit mehr als 2 Dimensionen
Sie können das Vorlageelement auch mit Arrayvariablen konfigurieren, die mehr als 2 Dimensionen haben, aber Sie können nur maximal 2 der Dimensionen mit Platzhaltern versehen. In den zusätzlichen Dimensionen sind die Indexe fix.
Deklaration
PROGRAM PLC_PRG VAR asText: ARRAY[1..2, 1..3, 1..6, 1..2] OF STRING; END_VAR
Konfiguration der Eigenschaft Textvariablen, Tooltipvariable beim Vorlageelement:
PLC_PRG.asText[2, $FIRSTDIM$, $SECONDDIM$, 2]
Eindimensionales Array tabellarisch anordnen
Sie können das Vorlageelement mit einem eindimensionalen Array konfigurieren und benötigen dafür den Indexzugriff-Platzhalter $FIRSTDIM$
. Wenn die Anzahl der neu zu erzeugenden Elemente größer als 5 ist, wird im Dialog Visualisierungselement vervielfachen eine tabellarische Anordnung voreingestellt, wobei die neuen Elemente möglichst quadratisch angeordnet sind.
PROGRAM PLC_PRG VAR asText: ARRAY[1..100] OF STRING; END_VAR
Die Voreinstellung im Dialog Visualisierungselement vervielfachen bewirkt, dass 100 neue Elemente als 10 x 10 Feld angeordnet werden.