Skip to main content

Visualisierung mit Schnittstelle parametrieren

Sie können für eine Visualisierung, die referenziert wird, eine Schnittstelle für Parameter deklarieren. Wenn die Visualisierung dann zur Laufzeit aufgerufen wird, werden die tatsächlichen Parameter an die Schnittstelle übergeben, ähnlich wie bei einem Funktionsbaustein.

Eine solche Visualisierung dient als Visualisierungsvorlage, die von einer übergeordneten Visualisierung über ein Frame- oder Registerkarten-Element referenziert wird. Im Schnittstelleneditor der Vorlagenvisualisierung werden die Schnittstellenvariablen deklariert. In der übergeordneten Visualisierung, die die Vorlagenvisualisierung aufruft, werden beim Referenzelement (Frame oder Registerkarte) die Übergabeparameter zugewiesen.

Zuerst deklarieren Sie die Schnittstellenvariablen im Schnittstelleneditor der Vorlagenvisualisierung. Dann konfigurieren Sie die Parameter, indem Sie jeder Schnittstellenvariable eine datentypkonforme Applikationsvariable zuweisen. Sie weisen die Parameter beim Frame-Element (oder Registerkarten-Element) in den Elementeigenschaften (Ansicht Eigenschaften) zu.

Abhängig von der Darstellungsvariante ist die Parameterübergabe von lokalen Variablen (mit Gültigkeitsbereich VAR) eingeschränkt.

Anmerkung

Wenn Sie die Visualisierung als integrierte Visualisierung ausführen, können Sie nur lokale Variablen als Parameter übergeben, die einen Basisdatentyp haben. Wenn die Visualisierung als CODESYS TargetVisu oder CODESYS WebVisu aufgerufen wird, können Sie auch Parameter mit benutzerdefiniertem Datentyp übergeben.

Unterstützung bei der Aktualisierung von Frame-Parameter

Wenn Sie Schnittstellenvariablen in einer Visualisierungsvorlage ändern, werden Sie bei der Aktualisierung der Verwendungsstellen unterstützt.

Beim Kompilieren werden Stellen mit einer nicht mehr gültigen Parameterübergabe ermittelt und im Meldungsfenster ausgegeben. Es erscheint für jede ermittelte Stelle folgende Fehlermeldung: Das Interface der referenzierten Visualisierung <Name der Visualisierung> passt nicht zur aktuellen Konfiguration. Bitte aktualisieren Sie die Framereferenzen der aktuellen Visualisierung.

Wenn Sie auf die Meldung doppelklicken, werden Sie bei der Behebung des Fehlers unterstützt und der Dialog Aktualisierung der Frame-Parameter öffnet sich. Dort können Sie die Parameterübergabe an der betroffenen Stelle bearbeiten. Aber Sie können auch die Parameterübergabe aller betroffener Stellen im gesamten Projekt bearbeiten.

Für weitere Informationen siehe: Aktualisierung der Frame-Parameter, Optionen: Visualisierung

Visualisierung mit Schnittstelle (VAR_IN_OUT) aufrufen

Voraussetzung: Im Projekt ist eine Visualisierung und eine Hauptvisualisierung vorhanden. Die Hauptvisualisierung enthält ein Element, das die Visualisierung referenziert.

  1. Öffnen Sie die Visualisierung.

  2. Wählen Sie den Befehl Visualisierung → Schnittstelleneditor .

  3. Deklarieren Sie im Schnittstelleneditor eine Variable.

    Die Visualisierung verfügt über eine Schnittstelle und der Dialog Aktualisierung der Frame-Parameter erscheint automatisch.

  4. Weisen Sie der Schnittstellenvariablen in allen Aufrufen einen typkonformen Übergabeparameter zu, indem Sie unter Wert eine Applikationsvariable angeben. Beenden Sie den Dialog.

    An den Stellen, an denen die Visualisierung referenziert wird, ist ein Übergabeparameter zugewiesen. Diese erscheinen nun bei der Hauptvisualisierung unter ihrer Eigenschaft Referenzierte Visualisierung.

Beispiel 24. Beispiel

Die Visualisierung visPie enthält einen animierten farbigen Kreissektor. Die Hauptvisualisierung visMain ruft die Visualisierung visPie in Registerkarten mehrmals auf. Über die Schnittstellenvariable pieToDisplay werden Farbinformationen, Winkelinformationen und eine Beschriftung übergeben. Zur Laufzeit variieren die Kreissektoren darin.

Visualisierung visPie:

_visu_img_tab.png
Tabelle 3. Eigenschaften des Elements Kreissektor:

Variable für Anfang

pieToDisplay.iStart

Variable für Ende

pieToDisplay.iEnd

Texte → Text

%s

Textvariablen → Textvariable

pieToDisplay.sLabel

Farbvariable → Normalzustand

pieToDisplay.dwColor



Schnittstelle der Visualisierung visPie:

                            VAR_IN_OUT
                            pieToDisplay : DATAPIE;
                            END_VAR
                        

Hauptvisualisierung visMain:

Tabelle 4. Eigenschaften des Elements Registerkarten:

Referenzierte Visualisierungen

visPie

Überschrift

A

pieToDisplay

PLC_PRG.pieA

visPie

Überschrift

B

pieToDisplay

PLC_PRG.pieB

visPie

Überschrift

C

pieToDisplay

PLC_PRG.pieC



DATAPIE (STRUCT)

TYPE DATAPIE : // Parameter type used in visPie
STRUCT
    dwColor : DWORD; // Color data
    iStart : INT; // Angle data
    iEnd : INT;
    sLabel : STRING;
END_STRUCT
END_TYPE
                        

GVL

{attribute 'qualified_only'}
VAR_GLOBAL CONSTANT
    c_dwBLUE : DWORD := 16#FF0000FF; // Highly opaque
    c_dwGREEN : DWORD := 16#FF00FF00; // Highly opaque
    c_dwYELLOW : DWORD := 16#FFFFFF00; // Highly opaque
    c_dwGREY : DWORD :=16#88888888; // Semitransparent
    c_dwBLACK : DWORD := 16#88000000; // Semitransparent
    c_dwRED: DWORD := 16#FFFF0000;  // Highly opaque
END_VAR                        

PLC_PRG

PROGRAM PLC_PRG
VAR
    iInit: BOOL := TRUE;
    pieA : DATAPIE; // Used as argument when visPie is called
    pieB : DATAPIE;
    pieC : DATAPIE;
    iDegree : INT; // Variable center angle for the pie element used for animation
END_VAR

IF iInit = TRUE THEN
    pieA.dwColor := GVL.c_dwBLUE;
    pieA.iStart := 0;
    pieA.sLabel := 'Blue';

    pieB.dwColor := GVL.c_dwGREEN;
    pieB.iStart := 22;
    pieB.sLabel := 'Green';

    pieC.dwColor := GVL.c_dwYELLOW;
    pieC.iStart := 45;
    pieC.sLabel := 'Yellow';

    iInit := FALSE;
END_IF
iDegree := (iDegree + 1) MOD 360;
pieA.iEnd := iDegree;
pieB.iEnd := iDegree;
pieC.iEnd := iDegree;                       

Hauptvisualisierung visMain in Laufzeit:

_visu_img_pie_rt.png


Instanzname eines Übergabeparameters ausgeben

Um den Instanznamen eines Übergabeparameters zu erhalten und auszugeben, können Sie eine Schnittstellenvariable (Datentyp STRING) mit Pragma {attribute 'parameterstringof'} unter dem Gültigkeitsbereich VAR_INPUT implementieren.

Im Projekt ist eine Visualisierung und eine Hauptvisualisierung vorhanden. Die Hauptvisualisierung enthält Elemente, die die Visualisierung referenziert.

  1. Öffnen Sie die Visualisierung.

  2. Wählen Sie den Befehl Visualisierung → Schnittstelleneditor .

  3. Deklarieren Sie eine Schnittstellenvariable (VAR_IN_OUT).

    pieToDisplay : DATAPIE;

  4. Deklarieren Sie im Schnittstelleneditor eine Variable (VAR_INPUT) mit Attribut {attribute 'parameterstringof'}.

    {attribute 'parameterstringof' := 'pieToDisplay'}

    sNameToDisplay : STRING;

  5. Speichern Sie die Änderungen.

    Der Dialog Aktualisierung der Frame-Parameter öffnet sich nicht.

  6. Füge Sie ein Element Textfeld ein.

  7. Weisen Sie dem Textfeld in der Eigenschaft Texte, Text einen Ausgabetext zu.

    Visualization of %s

  8. Weisen Sie dem Textfeld in der Eigenschaft Textvariablen, Textvariable die Schnittstellenvariable zu.

    sNameToDisplay

    visPie hat eine Überschrift.

Beispiel 25. Beispiel

Die Visualisierung visPie besteht bisher aus einem Kreissektor. Die Hauptvisualisierung visMain ruft visPie in Registerkarten dreimal mit unterschiedlichen Übergabeparameter auf.

visPie wird um ein Textfeld erweitert, das den Namen des an die Visualisierung übergebene tatsächliche Parameters ausgibt. Dazu wird die Schnittstelle von visPie um eine Stringvariable erweitert, die den Instanznamen des angegebenen Übergabeparameters enthält. Zur Laufzeit wird jeder Kreissektor überschrieben.

_visu_img_titled_pie.png
Tabelle 5. Eigenschaften des Elements Textfeld:

Texte, Text

Visualization of %s

Textvariablen, Textvariable

sNameToDisplay



Schnittstelle der Visualisierung visPie

VAR_INPUT
    {attribute 'parameterstringof' := 'pieToDisplay'}
    sNameToDisplay : STRING;
END_VAR
VAR_IN_OUT
    pieToDisplay : DATAPIE;
END_VAR                        

Hauptvisualisierung visMain in Laufzeit:

_visu_img_pie_rt_labeled.png