Skip to main content

Objekt: Eigenschaft

Symbol: _cds_icon_interface_property.png

Schlüsselwort: PROPERTY

Eigenschaften sind eine Erweiterung der Norm IEC 61131-3 und ein Mittel der objektorientierten Programmierung.

Eigenschaften dienen der Datenkapselung, da sie von außen Zugriff auf Daten ermöglichen und gleichzeitig als Filter fungieren. Dafür stellt eine Eigenschaft die Accessormethoden Get und Set bereit, die Lese- und Schreibzugriff auf die Daten der Instanz ermöglichen, unter der die Eigenschaft angeordnet ist.

Unterhalb eines Programms, eines Funktionsbausteins oder einer Globalen Variablenliste können Sie eine Eigenschaft mit Accessormethoden hinzufügen. Verwenden Sie dafür den Befehl Projekt → Objekt hinzufügen → Eigenschaft, um den Dialog Eigenschaft hinzufügen zu öffnen.

Tipp

Unterhalb einer Schnittstelle können Sie eine Schnittstelleneigenschaft einfügen.

Wenn Sie eine Eigenschaft kopieren, die unter einem Programmierbaustein eingehängt ist, und sie unter einer Schnittstelle einfügen, oder wenn Sie die Eigenschaft dorthin verschieben, werden automatisch die enthaltenen Implementierungen entfernt.

Dialog: Eigenschaft hinzufügen

Funktion: Legt eine neue Eigenschaft an, die mit Beenden des Dialogs unterhalb des selektierten Programmierbausteins angeordnet wird.

Aufruf: Projekt → Objekt hinzufügen → Eigenschaft , Kontextmenü

Voraussetzung: In Ansicht POUs oder Ansicht Geräte ist ein Programm (PRG), ein Funktionsbaustein (FUNCTION_BLOCK) oder eine Globale Variablenliste (GVL) selektiert.

Name

Name (Bezeichner) der Eigenschaft

Beispiel: prop_iA

Rückgabetyp

Standardtyp oder strukturierter Typ des Rückgabewerts

Beispiel: INT

Implementierungssprache

Beispiel: Stukturierter Text (ST)

Zugriffsmodifizierer

Regelt den Zugriff auf die Daten

PUBLIC oder keine Angabe

Der Zugriff ist nicht beschränkt.

PRIVATE

Der Zugriff ist auf das Programm, den Funktionsbaustein oder die GVL beschränkt.

Im POUs- oder Gerätebaum ist das Objekt mit (private) gekennzeichnet. Die Deklaration enthält das Schlüsselwort PRIVATE.

PROTECTED

Der Zugriff ist auf das Programm, die GVL, oder dem Funktionsbaustein mit seinen Ableitungen beschränkt.

Im POUs- oder Gerätebaum ist das Objekt mit (protected) gekennzeichnet. Die Deklaration enthält das Schlüsselwort PROTECTED.

INTERNAL

Der Zugriff ist auf den Namensraum (Bibliothek) beschränkt.

Im POUs- oder Gerätebaum ist das Objekt mit (internal) gekennzeichnet. Die Deklaration enthält das Schlüsselwort INTERNAL.

Abstrakt

standard icon: Kennzeichnet, dass die Eigenschaft keine Implementierung hat und die Implementierung durch den abgeleiteten FB bereitgestellt wird

Hinzufügen

Fügt unterhalb des selektierten Objekts eine neue Eigenschaft und darunter die Accessormethoden Get und Set hinzu

Hinweis: Wenn Sie eine Eigenschaft selektiert haben, können Sie mit dem Befehl Objekt hinzufügen auch explizit einen vorher entfernten Accessor hinzufügen.

Editor: Eigenschaft

Im Editor können Sie den Datenzugriff programmieren. Der Code darf zusätzliche lokale Variablen enthalten. Aber er darf keine zusätzlichen Eingangsvariablen oder (im Gegensatz zu einer Funktion oder Methode) keine zusätzlichen Ausgangsvariablen enthalten.

Beispiel 522. Beispiel
_cds_img_property.png

Funktionsbaustein FB_A

FUNCTION_BLOCK FB_A
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    iA : INT;
END_VAR

iA := iA + 1;

Eigenschaft prop_iA

PROPERTY PUBLIC prop_iA : INT

Accessormethode FB_A.prop_iA.Get

prop_iA := iA;

Accessormethode FB_A.prop_iA.Set

iA := prop_iA;
PROGRAM PLC_PRG
VAR
        fbA : FB_A;
        iVar: INT;
END_VAR

fbA();
IF fbA.prop_iA > 500 THEN
        fbA.prop_iA := 0;
END_IF
iVar := fbA.prop_iA;


Get- Accessor, Set-Accessor

Dei Aufruf des Set -Accessors wird auf die Eigenschaft geschrieben. Sie wird somit wie ein Eingabeparameter verwendet. Bei Aufruf des Get-Accessors wird die Eigenschaft gelesen. Sie wird wie ein Ausgabeparameter verwendet. Der Zugriff wird jeweils über Zugiffsmodifizierer (Qualifizierer) beschränkt. Die Objekte sind dabei entsprechend gekennzeichnet.

Wenn auf eine Eigenschaft nur lesend oder nur schreibend zugegriffen wird, können Sie den nicht benötigten Accessor löschen.

Sie können explizit Accessoren hinzufügen, indem Sie eine Eigenschaft selektieren und den Befehl Objekt hinzufügen ausführen. Es öffnet sich der Dialog Get-Accessor hinzufügen oder Set-Accessor hinzufügen. Dort können Sie die Implementierungssprache und den Zugriff einstellen.

Tabelle 60. Dialog Get (Set)-Accessor hinzufügen

Implementierungssprache

Beispiel: Strukturierter Text (ST)

Zugriffsmodifizierer

Qualifizierer für Deklarationsabschnitt

PUBLIC oder keine Angabe

Der Zugriff ist nicht beschränkt.

PRIVATE

Der Zugriff ist auf das Programm, den Funktionsbaustein oder die GVL beschränkt.

Im POUs- oder Gerätebaum ist das Objekt mit (private) gekennzeichnet. Die Deklaration enthält das Schlüsselwort.

PROTECTED

Der Zugriff auf die Eigenschaft ist auf das Programm, die GVL oder dem Funktionsbaustein und seine Ableitungen beschränkt. Die Deklaration enthält das Schlüsselwort.

Im POUs- oder Gerätebaum ist das Objekt mit (protected) gekennzeichnet.

INTERNAL

Der Zugriff auf die Methode ist auf den Namensraum (die Bibliothek) beschränkt.

Im POUs- oder Gerätebaum ist das Objekt mit (internal) gekennzeichnet. Die Deklaration enthält das Schlüsselwort.

Hinzufügen

Fügt unterhalb der selektierten Eigenschaft die Accessormethoden Get oder Set hinzu.



Monitoring von Eigenschaften im Onlinebetrieb

Für das Monitoring von Eigenschaften im Onlinebetrieb stehen folgende Pragmas zur Verfügung, die Sie an oberster Stelle in der Deklaration der Eigenschaft einfügen:

  • {attribute 'monitoring' := 'variable'}

    Bei jedem Zugriff auf die Eigenschaft speichert CODESYS den Istwert in einer Variablen und stellt den Wert dieser Variablen dar. Dieser Wert kann unter Umständen veralten, wenn im Code kein Zugriff mehr auf die Eigenschaft erfolgt.

  • {attribute 'monitoring' := 'call'}

    Bei jeder Darstellung des Werts ruft CODESYS den Code des Get-Accessors auf. Wenn dieser Code einen Seiteneffekt enthält, dann wird der Seiteneffekt durch das Monitoring ausgeführt!

. Sie können eine Eigenschaft mit Hilfe folgender Funktionalitäten monitoren.
  • Inline-Monitoring

    Voraussetzung: In der Kategorie Texteditor des Optionen-Dialogs ist die Option Inline-Monitoring aktivieren aktiviert.

  • Überwachungsliste

Eingabeunterstützung beim Erzeugen von erbenden Bausteinen

Wenn Sie objektorientiert programmieren und die Vererbung (Schlüsselwort EXTENDS) von Bausteinen nutzen, können Sie folgendermaßen Unterstützung erhalten:

Wenn Sie unterhalb eines von einem Basisbaustein abgeleiteten Bausteins eine Aktion, Eigenschaft, Methode oder Transition einfügen, öffnet sich der Dialog … hinzufügen. Dort ist das Eingabefeld für den Namen erweitert zu einer Combobox. Die Auswahlliste der Combobox enthält eine gültige Auswahl aus den im Basisbaustein vorhandenen Aktionen, Eigenschaften, Methoden oder Transitionen. Nun können Sie beispielsweise eine Methode des Basisbausteins auf einfache Weise zunächst übernehmen, um sie dann entsprechend für die abgeleitete Funktion des Bausteins anzupassen.

Methoden und Eigenschaften mit dem Zugriffsmodifizierer PRIVATE erscheinen in dieser Auswahl nicht, da sie auch nicht vererbt werden. Methoden und Eigenschaften mit dem Zugriffsmodifizierer PUBLIC erhalten beim Übernehmen in den abgeleiteten Baustein automatisch ein leeres Zugriffsmodifiziererfeld, was funktional das Gleiche bedeutet.

Für weitere Informationen siehe: Eigenschaft, Methode, Transition, Aktion,

Beispiel 523. Beispiel
_cds_img_input_wizzard_for_blocks.png